操作系统的基本概念
批处理与多道程序设计
多道程序设计:允许多个程序(作业)同时进入一个计算机系统的内存并启动进行交替计算的方法,也就是,计算机中可以同时存放多道程序,他们都处于开始和结束之间。从宏观上来看它们是并行的,多道程序都同时处于运行过程中,但都未运行结束,但是微观上是串行的,轮流占用CPU交替执行,引入多道程序设计技术的根本目的是提高CPU的利用率,充分发挥计算机系统部件的并行性,现代操作系统都采用了多道程序设计技术。
操作系统发展历程
-
手工操作阶段:用户在计算机上的所有操作都要人工干预,如程序的装入、运行、结果的输出等。
- 缺点:用户独占全机、人机速度矛盾导致资源利用率低。
-
批处理阶段:为了缓解人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,产生了批处理系统。引入了脱机输入/输出技术 ,并由 监督程序 负责控制作业的输入、输出。 同时针对批处理紫铜又可分为单道批处理系统和躲到批处理系统。
-
单道批处理系统:系统对作业的处理是成批进行的,但内存中始终保持一道作业。
-
特点:
- 自动性:磁带上的一批作业能自动逐个运行,无需人工干预。
- 顺序性:作业完成的顺序与进入内存的顺序完成相同,即先调入先执行。
- 单道性:每一时刻内存中仅有一道程序运行。
-
优点:缓解了一定程度的人机速度矛盾。
-
缺点:内存中仅能有一道程序运行,只有该程序运行结束才能调入下一道程序,CPU有大量时间是在空闲等待I/O完成。资源利用率依旧不高。
-
多道批处理阶段:允许多道程序同时进入内存并允许他们交替地运行。(标志操作系统的正式诞生。)
-
特点:多道(内存中同时存在多道相互独立的程序)、宏观上并行、微观上串行。
-
优点:多道程序并发执行,共享计算机资源。资源利用率大幅度提高。
-
缺点:用户响应时间长,没有人机交互功能。
-
-
分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务。各用户可通过终端与计算机进行交互。
-
优点:用户请求可被立即响应,解决了人机交互问题。允许多个用户使用同一台计算机,并且用户对计算机相互独立,感受不到别人的存在。
-
缺点:不能优先处理一些紧急任务。(不具备优先级功能),OS对各个用户/作业完全公平。
-
特点:同时性(多个用户可以同时或基本同时使用计算机)、交互性、独立性(系统中多个用户可以独立的进行操作,互不干扰)、及时性(用户的请求能在很短的时间内被响应)。
-
实时操作系统:计算机系统收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
-
优点:能够优先响应一些紧急任务,某些紧急情况不需要时间片排队。
-
分类:
- 硬实时操作系统:必须在严格规定的时间内完成处理。如:导弹控制系统、自动驾驶系统。
- 软实时操作系统:能接受偶尔违反时间规定。如:火车订票系统。
-
网络操作系统:最主要的特点是网络中各种资源的共享及各台计算机之间的通信。
-
分布式操作系统:主要特点是分布性和并行性。系统中各台计算机底为相同,任何工作都可以分布在这些计算机上,由他们并行、协同完成。
-
个人操作系统:windows、Linux、MacOS等。
操作系统的特征
-
并发:指两个或多个时间在同一时间间隔内发生(宏观上同时发生,微观上交替发生)。OS的并发性之计算机系统中同时存在多个运行的程序,具有调度和处理多个程序运行的能力。并发性通过分时得以实现。
注意:要正确区分并发和并行的区别。并发性是指两个或多个事件在同一时间间隔内发生;并行性是指两个或多个事件在同一时刻发生。 -
共享:指系统中的资源可供内存中多个并发执行的进程共同使用。
-
分类:
- 互斥贡享:系统中的资源虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
- 同时共享方式:系统中的资源,允许在一个时间段内由多个进程“同时”对他们进行访问。
-
注意:并发和共享是操作系统两个最基本的特征,两者互为存在条件:①资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;②若系统不能对资源实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
-
虚拟:指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户感受到的。
操作的系统的虚拟技术可归纳为:时分复用技术,如处理器的分时共享;空分复用技术,如虚拟存储器。 -
异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
异步性使得操作系统允许在一种随机的环境下,可能导致与事件有关的错误(就像对全局变量访问顺序不当产生的错误)。
同时需要注意一点虚拟性和异步性也是在拥有了并发性后才产生的。
并发与并行概念辨析
- 并发是指两个或多个程序在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。
- 在多道程序环境下,并发性是指在一段时间间隔内,宏观上由多个程序同时运行,但在单处理器系统中每个时刻只能有一道程序执行,因此在微观上这些程序只能分时地交替执行。若在计算机系统中有多个处理器,则这些可以并发执行的程序便可分配到多个处理器上,实现并行执行,即利用多个处理器来处理一个可并发执行的程序。
操作系统的层次结构和功能模块
层次结构:是一种操作系统的组织结构,其提供了一种隔离操作系统各层功能的模型。
- 目的:力求使模块间调用的无序性变为有序性,减少模块调用的无归性。
- 分层结构的限制过于严格,几乎没有一种操作系统是用这种方式构造的,但其分层的思想值得借鉴和参考。
操作系统的功能:
-
系统资源的管理者
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
-
向上层提供服务
-
给普通用户提供的服务:
- GUI用户图形界面
- 命令接口:联机命令接口和脱机命令接口(联机命令接口用户说一句系统做一条;脱机命令接口用户说一堆系统做一堆)。
-
给软件/程序员用的->程序接口即系统调用。
-
-
对硬件机器的扩展。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造为功能更强、使用更方便的机器。
程序的并发执行与顺序执行
程序的顺序执行:在早期无操作系统及单道批处理系统时,程序都是按照顺序进行执行的。先进入内存的先执行,在执行的过程中不能执行其他的程序。程序中的指令也是按照顺序执行,一条指令正在执行时不能开始执行另一条指令。所以程序顺序执行有以下几个特点:
- 顺序性:处理机的操作,严格按照顺序执行,前一操作还没执行完毕,后继操作则不能继续执行。
- 封闭性:程序是在封闭的环境下运行的。即程序在运行时独占全机资源,各资源的状态只有本程序才能改变。程序一旦开始运行,其结果不受外界的影响。
- 可再现性:只要程序的环境和初始条件相同,无论程序执行多少次,执行结果相同。例如一个加法运算,无论执行多少次,相加的结果都不会发生改变。
程序的并发执行:程序的并发执行是指在同一时间间隔内运行多个程序。也就是在一个程序运行结束之前,可以运行其它的程序。对于用户来说,有多个程序在同时向前推进,但是从微观上来看,任意时刻CPU上都只有一个程序在执行。在多道程序系统和分时系统都允许程序并发执行,程序的并发执行有以下几个特点:
- 间断性:程序在并发执行时,因为要共享资源,但是资源往往都少于正在执行的程序数,所以会存在资源抢占的问题。因而,每个程序在CPU上运行,都是时断时续的。当一个资源被占用时,其他需要该资源的程序不得不暂停,待资源被释放时方可执行。
- 失去封闭性:程序正在并发执行时,由于它们共享资源或者合作完成同一项任务,系统的状态不再受其中一个程序的控制和改变,所以就失去了封闭性。
- 不可再现性:因为程序在并发执行时失去了封闭性,所以任何一个程序都有可能对系统的状态进行改变,这也意味着程序执行的结果可能会不相同。例如两个程序同时往一个文件追加内容,在执行数次之后,每个文件所展现出的内容可能各不相同。