操作系统引论 | 操作系统的发展过程
在计算机刚出现的阶段,并没有操作系统,人们都是通过全手工的方式来操作计算机;当后来硬件技术出现了高速的磁盘和磁带之后,才出现批处理技术;在硬件技术出现通道和中断技术之后出现了多道程序设计技术,操作系统也发展成为了多道程序系统。后来随着人们对计算机技术的更新的需求,才出现了现有的个人计算机操作系统、网络操作系统、嵌入式操作系统和分布式操作系统。
操作系统的概念:
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
无操作系统的计算机系统
- 人工操作方式
- 卡带/卡片 -> 输入机 -> 计算机 -> 打印结果 -> 取走纸带
- 缺点:
- CPU等待人工操作:人工干预
- 当CPU速度提高时,出现了 人机矛盾 。
- 用户独占全机
- 串行性
- 脱机输入输出技术
在这个系统中,当主机系统进行 I/O 操作时,其接触的设备是快速的磁带或磁盘,而不是低速的纸带机和打印机,提高了主机进行 IO 操作的速度,减少了主机 CPU 的空闲等待时间,提高了 CPU 的利用率。
外围机其实也是一台打印机,但是性能相较主机较弱,但足以应付输入和输出设备的需求。
单道批处理系统
使用脱机输入输出技术后,减少了 CPU 的等待时间,但是启动一次主机仍然只能执行一个程序。为了启动一次主机能够运行多道程序,于是我们设计了批处理系统。
- 作业的概念
- 用户角度:是用户定义的、由计算机完成的一个工作单位。作业由不同的顺序相连的作业步(在一个作业的处理过程中,计算机所做的相对独立的工作)组成。
- 系统角度: 作业=程序+数据+作业说明书
- 应用:作业概念一般用于早期批处理系统和现在的大型机、巨型机系统中。
- 单道批处理
- 程序员将作业提交到系统管理员,当系统管理员收集到了一批数据后,再通过脱机输入的方式,将一组作业存放到磁盘上,然后将这个装着一批作业的磁盘安装到主机上,接着启动主机运行这一批作业,在主机上我们会常驻一个监督程序。对于监督程序的介绍可以观察下图。监督程序接管系统后,会从磁盘上先读入当前第一个作业进入主机,按照作业说明书的要求对其进行操作。执行完成后在执行当前队列的下一个作业(如果作业运行出错,就将其保存到另外的一个磁盘上,接着运行下一个作业),直到这一批作业全部完成再关闭主机。
- 由于一次只有一个作业在主机中运行,所以叫做 单道批处理系统。关于该系统的处理流程图可以看下图:
- 单道批处理系统特点:自动性、顺序性、单道性。
- 存在的问题:CPU 和 IO 设备使用忙闲不均,CPU 效率低。
- 当 CPU 进行计算操作的时候,外部设备空闲。
- 当外部设备进行 I/O 操作的时候,CPU 空闲。
- CPU 和外部设备是完全串行的工作状态。
多道批处理系统
为了解决单道批处理系统存在的忙闲不均的问题,就出现了多道批处理系统。一次从磁带或磁盘上同时装入多个用户作业到内存中,使这多个作业同时处于运行状态。当该系统对计算硬件具有一定的要求,需要中断技术和通道技术,对软件要求多道程序设计技术。
- 多道程序设计技术
- 内存中同时驻留多个相互独立的程序,它们在操作系统的控制下共享系统资源,相互穿插地运行。
- 举个例子:
- 当有 A、B 两道作业如下时:
- 我们就可以使用多道批处理技术合理分配处理时间如下,当作业A完成计算操作,CPU 空闲时,就会响应作业B的计算请求, 当输入设备完成作业A时,就会响应作业B的输入请求......
- 特征:多道、宏观并行、微观串行、走走停停运行。
- 优点:
- 提高 CPU 的利用率
- 提供内存和 I/O 设备的利用率
- 增加系统吞吐量
- 需要解决的问题
- 在多个作业之间合理的分配资源。
- 解决这些问题的办法
- 进程的引入与进程概念
- 进程状态及控制
- 同步与互斥
- 进程调度
- 多道批处理系统
- 将用户提交的作业排列在磁盘上(称为后续队列),由系统的调度程序按照一定的标准一次性选择若干作业装入主机内存,然后同时启动多个作业的运行,共享系统资源,作业的运行结果保存到磁盘上,供之后突击输出。
- 多道批处理特点:多道性、无序性、调度性。
- 优点:资源利用率高、系统吞吐量大
- 缺点:作业平均周转时间(从进入后备队列到运行完成出系统所经历的时间)较长;无交互能力,程序员不能以交互的方式来控制作业的运行。
分时系统
是指一台主机上连接了多个终端,同时允许多个用户通过自己的终端,以交互的方式使用计算机,共享主机中的资源的系统。
为了保证每一个终端用户都感觉是自己一个人在使用计算机资源,系统规定每个终端用户的作业能连续使用CPU的最长时间叫做时间片。时间片一到,无论请求是否完成都会暂停请求的继续执行,而去响应下一个请求。
- 分时系统实现中的关键问题
- 人机交互
- 要求:及时响应用户请求(及时接收、及时处理、及时返回处理结果)
- 解决方法:
- 配置多路卡,同时接收多个终端用户发送的请求,避免请求的丢失。
- 为每个终端配置输入输出缓冲区,用来暂时存放来不及处理的请求和输出。
- 作业(终端用户请求)提交时直接进内存,避免了请求在磁盘上的等待时间。
- 引入时间片的概念、多个作业分时共享CPU,保证在不太长的时间内每个用户都用运行一次作业的机会。
- 时间片
- 举个例子:如果作业一(J1)不能在一个时间片内完成作业,就会重新进入作业队列的队尾等待下次运行。如下图所示,作业1、2、3都不能在一个时间片内完成作业,系统就会所有的作业都在 CPU 上运行完一次以后,再第二次为之前没有运行的 J1、J2、J3 分配时间。对于运行时间不需要一个时间片的作业,如图中红色箭头所指的第二次运行时的剩余的 J1 和 J3,他们的运行时间就是实际运行时间而不是一个时间片的时间,为了提高系统运行的效率。
- 分时系统的特征
- 多路性:系统允许多个用户在多个终端上登录系统,使用计算机资源。
- 独立性:每个用户能够独立的操作终端,但不能操作主机中的资源。
- 及时性:及时响应用户请求,使用响应时间(用户提交请求开始→得到系统响应)来描述。
- 交互性:用户可以决定着系统的下一步操作。可以实现很多的操作,编译源程序,链接一个程序,运行游戏程序......
实时系统
系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 实时系统应用需求
- 实时控制:生产过程控制、武器控制
- 实时信息处理:订票系统、情报检索系统
- 截止时间
- 开始截止时间
- 举个例子:生产线上一个工作点,任务周期50s,任务需要时间30s。所以对于任务的允许的开始时间就是从 0s~20s 这样的一个时间范围。它的开始截止时间就是 20s。
- 完成截止时间
- 举个例子:对于拦截导弹来说,可以在对方来弹的发射 2 分钟后拦截,也可以在 3 分钟后拦截,但是不能在导弹进入我方区域开始下降的时间内进行拦截,因为这样会导致导弹在我方爆照。
- 实时任务的分类
- 按任务执行时是否呈现周期性划分
- 周期性实时任务:工作生产线
- 非周期性实时任务:导弹拦截任务
- 根据对截止时间的要求来划分
- 硬实时任务:必须保证截止时间,如导弹拦截系统。
- 软实时任务:最好保证截止时间,但不是必须。如生产线,最大的后果就是产生次品。
- 实时系统与分时系统的比较
- 设计目标不同:实时系统是专用性的系统,而分时系统是通用性的系统,如Linux。
- 多路性:实时信息处理系统与分时系统类似
- 独立性:实时信息处理系统与分时系统类似
- 及时性:实时系统更高
- 交互性:分时系统最强,可以实现各种的工作。而实时系统的任务却是单一的,高压锅炉的操作系统,流水线的操作系统......
- 可靠性:实时系统要求高度可靠,如医院病房的监测报警系统。
微机操作系统
- 单用户单任务操作系统:
- 单用户:在一段时间内只允许一个用户登录系统
- 单任务:在一段时间内只能运行一个任务,多个任务是以完全串行的方式依次完成的。
- 举个例子:DOS
- 单用户多任务操作系统:
- 多任务:引入多道程序设计技术,同时可以启动多个程序的运行。
- 举个例子:Windows
- 多用户多任务操作系统:
- 多用户:在一段时间内允许多个用户通过不同的终端登录系统,在各自的终端上向系统提交请求。
- Unix、Linux 这类的分时操作系统
多处理机系统
多处理机系统也称并行系统(parallel system)或紧耦合系统。
- 定义
- 包含两个或多个功能相当的处理器
- 所有处理器共享一个公共内存
- 所有处理器共享I/O通道、控制器和外围设备
- 由一个操作系统控制
- 实现方式
- 非对称多处理机模式(又称主-从模式),主处理机运行操作系统,并且控制系统中的所有资源,为其余的从处理器分配任务。从处理机只处理主处理分配的任务。但是如果主处理机出现问题,就会导致整个系统的崩溃,存在可靠性问题。
- 对称多处理机模式,所有的处理机都运行操作系统,每个处理机完成自己的任务。
- 多处理机系统的特点
- 具有并行处理能力,效率高
- 紧耦合:存在瓶颈、可扩展性差
- 不支持大规模并行计算;不支持分布处理:将一个大的任务分为几个小的任务进行分布执行,
网络操作系统
由线路将一些独立自治的计算机相互连接形成的一个集合体称为计算机网络。每个计算机的各自操作系统都可以不同。每一台都是独立的。
- 计算机网络的特点
- 多个独立计算机
- 无公共内存
- 具备消息通信机制
- 网络操作系统
- 网络操作系统除了具备一般操作系统应具有的功能模块外 (如系统核心、设备管理、存储管理、文件系统等),还要增加一个网络通信模块。该模块由通信接口中断处理程序、通信控制程序以及各级网络协议软件组成。
- 计算机网络的局限性
- 不能支持透明的资源存取
- 不能对网络资源进行有效、统一的管理
- 不能支持合作计算
分布式系统
- 定义
- 包含多个分布的通用资源部件,并经过通信网络相互作用;
- 有一个分布式操作系统对资源进行全局和动态的管理控制;
- 系统对用户是透明的;用户看到的是一台超级计算机,而不是 n 台计算机。
- 任务可以分布处理;
- 特点:
- 可扩展性:只需要增加与一个处理节点或者功能节点就可以增加一个相应的功能。
- 增加性能
- 高可靠性:一个分布式节点出现故障不会影响其余节点的正常工作。
- 分布式系统与网络系统的区别
- 如下图所示,左图便是网络系统,右图便是分布式系统。
- 在网络系统中,每一台计算机配置的是自己的操作系统。当一个用户登录在了网络中的计算机3上,如果要访问计算机4,就要提高其的具体地址。
- 对于分布式系统,整个系统只安装一个分布式系统,当用户登录这个计算机时看到的只是一个整合了整个网络上所有计算机资源的一台超级计算机。
嵌入式操作系统
是指将应用程序和OS与计算机硬件集成在一起的系统。
EOS负责嵌入式系统的全部软、硬件资源的分配、调度工作、控制协调并发活动等
- 嵌入式系统举例
- 手机操作系统等一系列嵌入式操作系统。