1.1 操作系统的目标和作用
1.1.1 操作系统的目标
- 计算机上安装操作系统,主要目标是:方便性、有效性、可扩充性和开放性。
- 方便性:方便用户,使计算机变得易学易用
- 有效性:提高系统资源(资源指CPU(处理机),存储器,文件(数据和程序),外设)利用率和系统的吞吐量(吞吐量为单位时间完成的作业数量)
- 可扩充性:是为了适应计算机硬件、体系结构以及计算机应用发展,OS从早期的无结构化⇒\Rightarrow⇒模块化结构⇒\Rightarrow⇒层次化结构⇒\Rightarrow⇒微内核结构。如今的微内核结构可以方便添加新的功能和模块,易于扩充。
- 开放性:系统遵循世界标准规范,可以彼此兼容,方便互联。
1.1.1 操作系统的作用
下面我们从用户角度,资源管理角度和资源抽象角度进行叙述。
-
OS作为用户与计算机硬件系统之间的接口(用户角度)
用户可以通过三种方式使用计算机
- 命令方式
- 系统调用方式
- 图形—窗口方式
-
OS作为计算机系统资源的管理者(资源管理角度)
计算机系统的资源分为⟹\Longrightarrow⟹处理机(CPU),存储器, 外设(I/O设备)以及文件(数据和程序), OS的主要功能也是对这四类资源进行有效的管理。
- CPU的分配和控制
- 内存的分配和回收
- I/O设备的分配和操控
- 文件的存取、共享和保护。
-
OS实现了对计算机资源的抽象(资源抽象角度)
操作系统OS是铺设在计算机硬件上的多层软件的集合,不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。
虚拟机说白了就是:相同硬件基础上,通过软件进行扩充
1.1.3 推动操作系统的主要动力
-
不断提高计算机资源利用率
-
方便用户
-
器件的迭代更新
硬件推动软件,软件(远远)落后于硬件
-
计算机体系结构的不断发展
单处理机系统–>多处理机系统,以及计算机网络的出现,OS也不断发展
-
人们不断提出新的应用需求
1.2 操作系统的发展过程
操作系统默认不包括单任务操作系统(已经被淘汰了)
1.2.1 未配置操作系统的计算机系统
-
人工操作方式
- 人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带装入纸带输入机,再启动它们将程序和数据输入计算机,然后启动计算机运行,当程序运行完毕并取走计算结果之后,才让下一个用户上机。
- 缺点如下
- 用户独占全机。此时,计算机及其全部资源只能由上机用户独占。
- CPU等待人工操作。
- 严重降低了计算机资源的利用率,此即所谓的人机矛盾。随着CPU速度的提高和系统规模的扩大,人机矛盾变得日趋严重。此外,随着CPU速度的迅速提高而I/O设备的速度却提高缓慢,这又使CPU与I/O设备之间速度不匹配的矛盾更加突出
-
脱机输入输出方式
- 事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带上的数据输入到磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速地调入内存。
如下图所示:
- 由于程序和数据的输入和输出都是在外围机的控制下完成的,即它们是在脱离主机的情况下进行的,故称为脱机输入/输出方式;反之,在主机的直接控制下进行输入/输出的方式称为联机 。
- 优点
- 减少了CPU的空闲时间,缓和了人机矛盾。
- 提高了I/O速度。当CPU在运行中需要数据时,是直接从高速的磁带或磁盘上将数据调入内存的,不再是从低速I/O设备上输入,极大地提高了I/O速度,从而缓和了CPU和I/O设备速度不匹配的矛盾,进一步减少了CPU的空闲时间。
1.2.2 单道批处理系统
-
单道批处理系统的处理过程(Simple Batch Processing System)
单道批处理系统是最早出现的一种OS。严格地说,它只能算作是OS的前身而并非是现在人们所理解的OS。
- 单道批处理提系统的特点与缺点
- 自动性。在顺利情况下,在磁带上的一批作业能自动地逐个地依次运行,而无需人工干预。
- 顺序性。磁带上的各道作业是顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序,在正常情况下应完全相同,亦即先调入内存的作业先完成。
- 单道性。监督程序每次从磁带上只调入一道程序进入内存运行,当该程序完成或发生异常情况时,才换入其后继程序进入内存运行。即,内存中仅有一道程序运行。
1.2.3 多批处理系统(Multiprogrammed Batch Processing System)
-
多道程序设计的基本概念
单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差
多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为*“后备队列”*。由作业调度程序按一定的调度算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
- 提高CPU的利用率
-
可提高内存和I/O设备利用率
-
增加系统吞吐量
- 吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。
-
多道批处理系统的优缺点
- 资源利用率高
- 由于在内存中驻留了多道程序,它们共享资源,可保持资源处于忙碌状态,从而使各种资源得以充分利用。
- 系统吞吐量大
- 第一,CPU和其它资源保持“忙碌”状态;
- 第二,仅当作业完成时或运行不下去时才进行切换,系统开销小。
- 平均周转时间长
- 作业的周转时间(cycling time)) : 从作业进入系统开始,直至其完成并退出系统为止所经历的时间。
- 由于作业要排队,依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
- 无交互能力
- 用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,不利于修改和调试程序。
- 资源利用率高
-
多道批处理系统需要解决的问题
多道批处理系统是一种有效、但十分复杂的系统。为使系统中的多道程序间能协调地运行,必须解决下述一系列问题。
-
处理机管理问题
- 多道程序之间,应如何分配共享的处理机,又应在何时收回
- 既能满足程序运行需要,又提高处理机利用率
-
内存分配和保护问题
-
为每道程序分配必要的内存空间,不致因相互重叠而丢失信息
-
防止因某道程序出现异常情况而破坏其它程序
-
-
I/O设备分配问题
- 如何分配这些I/O设备,如何做到既方便用户对设备的使用,又能提高设备的利用率
-
文件组织和管理问题
- 应如何组织程序和数据,才能使它们既便于用户使用,又能保证数据的安全性和一致性
-
作业管理问题(调度)
- 对于系统中的各种应用程序,有各种各样作业。其中有些作业既重要又紧迫;而有的作业则要求系统能及时响应,这时应如何组织这些作业
-
用户与系统的接口问题
-
1.2.4 分时系统
-
分时系统的引入
分时系统(Time Sharing System)与多道批处理系统之间有着截然不同的性能差别,它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。
经常应用于查询系统中,满足许多查询用户的需要。用户的需求具体表现在以下几个方面:
- 人-机交互, eg:以边运行边修改的方式,对程序中的错误进行修改
- 共享主机, eg : 计算机非常昂贵,多个用户共享一台,而且用户在使用机器时应能够像自己独占计算机一样
- 便于用户上机, eg : 用户希望能通过自己的终端直接将作业传送到机器上进行处理,并能对自己的作业进行控制
-
分时系统中实现的关键问题
-
及时接收
-
系统中配置一个多路卡
-
每个终端配置一个缓冲区,用来暂存用户键入的命令
-
-
及时处理
- 各个用户的作业都必须在内存中,且应能频繁地获得处理机而运行。批处理系统的运行方式无法实现。
- 作业应直接进入内存,规定每个作业只运行一个很短的时间
- 在不长的时间(如3秒)内能使所有的用户作业都执行一次
- 从而,使用户的请求得到及时响应
-
-
分时系统的特征
- 多路性
- 允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。
- 宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运行一个时间片。
- 多路性即同时性,它提高了资源利用率,降低了使用费用,从而促进了计算机更广泛的应用。
- 独立性
- 每个用户各占一个终端,彼此独立操作,互不干扰
- 及时性
- 用户的请求能在很短的时间内获得响应。
- 交互性
- 用户可通过终端与系统进行广泛的人机对话。
- 其广泛性表现在:用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。
- 多路性
1.2.5 实时系统
所谓“实时”,是表示“及时”,
实时系统**(Real Time System)**是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 实时系统的类型
实时控制:
当把计算机用于生产过程的控制,以形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,进而自动地控制相应的执行机构,使某些(个)参数(如温度、压力、方位等)能按预定的规律变化,以保证产品的质量和提高产量。通常把用于进行实时控制的系统称为实时系统。
实时信息处理:
人们把用于对信息进行实时处理的系统称为实时信息处理系统。
该系统由一台或多台主机通过通信线路连接到成百上千个远程终端上,计算机接收从远程终端上发来的服务请求,根据用户提出的请求对信息进行检索和处理,并在很短的时间内为用户做出正确的响应。
典型的实时信息处理系统有早期的飞机或火车的订票系统、情报检索系统
-
实时任务的类型
- 按照是否呈现出周期性划分
- 周期性实时任务。
- 即外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
- 非周期性实时任务。
- 外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间(Deadline)。
- 截止时间分为开始截止时间和完成截止时间。
- 周期性实时任务。
- 根据对截止时间的要求来划分
- 硬实时任务(Hard real-time Task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果
- 软实时任务(Soft real-time Task)。它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。
- 按照是否呈现出周期性划分
-
实时系统与分时系统特征的比较
- 多路性。实时信息处理系统也按分时原则为多个终端用户服务。实系统的多路性则主要表现在系统周期性地对多路现场时控制信息进行采集,以及对多个对象或多个执行机构进行控制。而分时系统中的多路性则与用户情况有关,时多时少。多路性有着些许差别
- 独立性。实时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼此独立地操作,互不干扰;而实时控制系统中,对信息的采集和对对象的控制也都是彼此互不干扰。
- 及时性。实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。
- 交互性。实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源共享等服务。 即,分时系统的交互性更强。
- 可靠性。分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果,所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。即,实时系统要求更高的可靠性
1.2.6 微机操作系统的发展
主要几个大公司 : IBM, 微软(MS), Apple
-
单用户单任务操作系统
只允许一个用户上机,且只允许用户程序作为一个任务运行。
这是最简单的微机操作系统,主要配置在8位和16位微机上。最有代表性的单用户单任务微机操作系统是CP/M(8bitOS)、MS-DOS。
不但有MS Doc,其实还有 一个 IBM Dos
-
单用户多任务操作系统
只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。
主要是 Windows
-
多用户多任务操作系统
允许多个用户通过各自的终端使用同一台机器,共享主机系统中的各种资源,每个用户程序又可进一步分为几个任务,使它们能并发执行,从而可进一步提高资源利用率和系统吞吐量
- Unix,因为各个大公司各自为政,造成了最大问题就是不兼容
- Linux 是 Unix 的一个变种,源码公开,免费,没有版权问题,Linux只能通过维护、提供服务赚钱。
1.3 操作系统的基本特性
1.3.1 并发性(concurrence)
并行与并发
- 并行性和并发性(Concurrence)是既相似又有区别
- 并行性是指两个或多个事件在同一时刻发生
- 并发性是指两个或多个事件在同一时间间隔内发生
- 并行的要求更高,需要多核。并发包括并行。
进程
- 为使多个程序能并发执行,系统必须分别为每个程序建立进程(Process)
- 程序的每一次执行形成一个进程,进程是指在系统中能独立运行,并作为资源分配的基本单位,是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
- 多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源。
- 一个进程包括多个线程。
- 在引入线程的OS中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。
1.3.2 共享性(sharing)
互斥共享方式
同时访问方式
1.3.3 虚拟性(virtual)
时分复用技术
-
虚拟处理机技术
-
虚拟设备技术
空分复用技术