全国硕士研究生入学统一考试计算机科学与技术学科联考操作系统考点归纳与典型题(含历年真题)详解(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-14 11:41:23

点击下载

作者:圣才电子书

出版社:圣才电子书

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

全国硕士研究生入学统一考试计算机科学与技术学科联考操作系统考点归纳与典型题(含历年真题)详解

全国硕士研究生入学统一考试计算机科学与技术学科联考操作系统考点归纳与典型题(含历年真题)详解试读:

第1章 操作系统概述

1.1 考点归纳

【考纲指定考点】【题型及考点分析】

这章主要以选择题形式考查,从历年的考研真题来看,一般是1~2题选择题,主要考查的知识点集中在用户态、内核态概念、处理器状态判断、状态转换以及系统调用。

一、操作系统的概念、特征、功能和提供的服务

1操作系统的概念(1)操作系统定义

操作系统(Operating System,OS)是为裸机配置的一种系统软件,是管理和控制计算机软件和硬件资源的管理机构,由一系列程序模块组成的程序集合。它为用户和其他软件提供用机接口和环境,合理组织调度计算机的工作和资源的分配,使用户以及应用程序能够以安全和高效的方式得到运行。(2)操作系统的设计目标

操作系统的设计目标包括:

①提供用户与计算机硬件系统之间的接口,方便用户使用;

②有效管理计算机系统硬件和软件资源,使其得到更有效的利用;

③合理组织调度计算机系统的工作流程,以改善系统性能。

2操作系统的特征

操作系统是一种系统软件,但与其他的系统软件和应用软件不同,操作系统有自己的基本特征包括并发性、共享性、虚拟性和异步性。(1)并发性

并发性是指两个或两个以上的事件或活动在同一时间间隔内发生,是指宏观上在一段时间内有多个程序在同时运行,但在微观上这些程序是交替执行的。

注意并发与并行的区别,并行性是指两个或多个事件在同一时刻发生。【例】在操作系统中,并发性是指若干个事件(  )发生。

A.在同一时刻

B.一定在不同时刻

C.在某一时间间隔内

D.依次在不同时间间隔内【答案】C【解析】并发性是指两个或多个事件在同一时间间隔内发生。而并行性主要指的是硬件上的概念,是指两个或多个事件在同一时刻发生。(2)共享性

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享是支持并发性的基础,为了支持进程的并发执行,操作系统必须有效地控制并发进程对资源的共享。

共享可分为两种资源共享方式:

①互斥共享方式

系统中的某些资源在一段时间内只允许一个进程访问,进程之间互斥地共享这些资源,比如打印机、磁带机等。

②同时访问方式

系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问,这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即“分时共享”,典型的可供多个进程“同时”访问的资源是磁盘设备。

并发和共享是操作系统两个最基本的特征,这两者之间又是互为存在条件的:一方面,资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。(3)虚拟性

虚拟性是指操作系统的一种管理技术,它把物理上的一个实体变成逻辑上的多个对应体,或者把物理上的多个实体变为逻辑上的一个对应体,物理实体是实的,即实际存在的:而逻辑上的是虚的,是用户感觉上的事物。操作系统中利用了多种虚拟技术,例如CPU的分时和虚拟存储器等,用分时使用一个处理器它能同时为多个用户服务,使每个终端用户都感觉有一个中央处理器(CPU)在专门为它服务。类似地,虚拟存储器是将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量,当然,这时用户所感觉到的内存容量是虚的。(4)异步性

异步性也称为随机性,由于系统资源的共享,有限的资源使并发进程之间产生相互制约关系,系统中的各个进程何时执行、何时暂停以及以怎样的速度向前推进、什么时候完成等都是不可预知的,这种特性称为计算机的异步性。

3操作系统的功能

操作系统是计算机资源的管理者,它为用户分配所需的各种软硬件资源,向用户提供了程序执行的良好环境。它的功能主要包括:处理机管理、存储器管理、设备管理以及文件管理,同时为了方便用户使用操作系统,还必须向用户提供接口。(1)处理机管理

处理机管理的主要任务是对处理机的分配和运行实施有效管理,依据系统设计的各种策略执行处理机的调度以及处理内部和外部的各种中断事件。在多道程序环境下,处理机的分配和运行都是以进程为基本单位,因而对处理机能管理可归结为对进程的管理。进程管理的主要功能有:进程控制、进程同步、进程通信、死锁处理、处理机调度等。(2)存储器管理

存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,主要包括内存分配、地址映射、内存保护与共享和内存扩充等功能。(3)设备管理

设备管理主要管理各种外部设备,根据用户的请求,帮助完成各种I/O操作。设备管理包括设备外设的管理和控制,提供设备的驱动和中断处理程序,负责设备的分配和驱动,保证设备独立性,提供缓冲技术,以便提高设备的利用率。(4)文件管理

文件管理主要指对系统中的各种软件资源的管理,提供各种操作命令,实现用户的按名存取,实现文件的共享和存取控制以及文件存储空间的管理等。

4操作系统提供的服务

由操作系统的功能可总结出它提供的如下服务:(1)提供用户接口

操作系统是用户与计算机硬件之间的接口,操作系统提供的接口主要分为三类:命令接口、程序接口以及图形接口。用户利用命令接口来组织和控制作业的执行;而编程人员可以使用程序接口来请求操作系统服务。

①命令接口

该接口按作业控制方式的不同可以分为联机命令接口和脱机命令接口。

a.联机用户接口

是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。当用户在终端或控制台上每键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释并执行该命令。在完成指定功能后,控制又返回到终端或控制台上,等待用户键入下一条命令。

b.脱机命令接口

是为批处理作业的用户提供的,故也称为批处理用户接口,该接口由一组作业控制语言JCL组成,用户利用该接口与自己的作业进行交互。

②程序接口

该接口由一组系统调用命令(简称系统调用,也称广义指令)组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。用户在程序中可以直接使用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和回收内存以及其他各种控制要求。

③图形接口

该接口是为了让用户更方便获得操作系统服务,其采用图形化的操作界面将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。用户可用鼠标或通过菜单以及对话框,来完成对应用程序和文件的操作。(2)执行程序

将用户程序装入内存,并启动程序,控制程序正常完成任务或错误终止。(3)I/O操作

为请求I/O的用户执行设备的启动、驱动和中断处理等。(4)文件系统操作

为用户提供操作文件所需的各种操作和功能。(5)通信服务

控制进程之间的同步和通信。(6)错误检测和处理。【例】操作系统为用户提供了多种接口,它们是(  )。

Ⅰ.计算机高级指令;

Ⅱ.终端命令;

Ⅲ.图标菜单;

Ⅳ.汇编语言;

Ⅴ.C语言;

Ⅵ.系统调用

A.Ⅰ;Ⅱ;Ⅴ

B.Ⅱ;Ⅲ;Ⅵ

C.Ⅲ;Ⅳ;Ⅴ

D.Ⅱ;Ⅳ;Ⅵ【答案】B【解析】操作系统有两种接口,命令输入和系统调用,而命令输入又可以分为命令行和图形用户界面。终端命令是命令行,图标菜单是图形用户界面。所以只有Ⅱ、Ⅲ和Ⅵ正确。

二、操作系统的发展与分类

1无操作系统的计算机系统(1)手工操作方式

还未出现OS时,计算机操作是由用户(即程序员)采用人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行当程序运行完毕并取走计算结果之后,才让下一个用户上机。

这种人工操作方式有以下两方面的缺点:

①用户独占全机,此时,计算机及其全部资源只能由上机用户独占;

②CPU等待人工操作,当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。(2)脱机输入/输出方式

脱机输入/输出方式是事先将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速地调入内存。

相比手工操作方式,该方式有如下优点:

①减少了CPU的空闲时间;

②提高了I/O速度。

2批处理系统

它的工作方式是用户脱机使用计算机系统,采用单道或多道方式成批处理作业。特点是有效地提高了系统资源的利用效率;提高了系统的吞吐量;但用户与作业之间无法交互;作业平均周转时间较长。其适合处理计算量大的成熟的作业。早期的批处理系统用资源利用率、系统吞吐量以及作业的平均周转时间等指标来衡量操作系统的性能。(1)单道批处理系统

单道批处理系统是最早出现的一种OS,该系统的主要特征如下:

①自动性,一批作业能自动地逐个地依次运行,无需人工干预。

②顺序性,磁带上的各道作业是顺序地进入内存依次执行,亦即先调入内存的作业先完成。

③单道性,在一个时刻,内存中仅有一道程序运行。(2)多道批处理系统

在多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。

该系统的优点主要有:

①可提高CPU的利用率;

②可提高内存和I/O设备利用率;

③增加系统吞吐量。

但同时它也存在以下缺点:

①平均周转时间长;

②无交互能力。

多道批处理系统需要解决的问题有:

①处理机管理问题,在多道程序之间,应如何分配被它们共享的处理机才能保证系统高效的工作。

②内存管理问题,应如何为每道程序分配必要的内存空间,使程序彼此互不干扰。

③I/O设备管理问题,如何分配多种类型的I/O设备,以供多道程序所共享。

④文件管理问题,应如何组织大量的程序和数据,才能使它们既便于用户使用,又能保证数据的安全性和一致性。

⑤作业管理问题,系统中各作业存在差异,应如何组织这些作业。

3分时操作系统

分时操作系统是多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。它采用了分时技术,所谓分时技术就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用。分时操作系统的特点包括:同时性、独立性、交互性和及时性。(1)同时性也称多路性,指允许多个终端用户同时使用一台计算机;(2)独立性是指系统中多个用户可以彼此独立地进行操作,互不干扰,单个用户感觉不到别人也在使用这台计算机,好像只有自己单独使用这台计算机一样;(3)交互性即用户通过终端采用人-机对话的方式直接控制程序运行并且与程序进行交互;(4)及时性是指用户请求能在很短时间内获得响应。

分时操作系统适合处理计算量小的不成熟的作业,它使用响应时间来衡量操作系统的性能,影响分时操作系统响应时间的几个因素包括:用户数目、时间片以及程序切换时内外存需要对换的信息量。分时系统的响应时间是以用户能够接受的等待时间来确定的。

4实时操作系统

实时操作系统是一个专用系统,其工作方式是对随机发生的外部事件能够在规定的时间内做出响应和处理。实时系统的响应时间是以被控制对象所能接收的延迟时间来确定的,它的主要特点是:实时性、可靠性和可确定性。

三、操作系统的运行环境

1内核态与用户态

用户态和核心态是为了确保系统正确运行,防止用户程序破坏操作系统而引入的CPU的两种运行模式。(1)内核态

内核态又称为核心态,在此状态下,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。(2)用户态

用户态又称为目态,是指非特权的执行状态,在此状态下,内核禁止在此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。

系统把CPU的指令集划分为特权指令(Privileged Instructions)和非特权指令。特权指令是指关系系统全局的指令。例如,存取和操作CPU状态、启动各种外部设备、设置时钟时间、关中断、清主存、修改存储器、管理寄存器、改变用户方式到核心方式和停机指令等。这类指令只允许操作系统使用,不允许用户使用。如果在用户态下企图执行一条特权指令,CPU则拒绝执行该指令,并把它当作非法指令,终止其运行。在核心态下,CPU只能执行操作系统程序,允许执行处理机的全部指令集(包括特权和非特权指令),可以访问和管理主存的全部空间;而在用户态下,CPU执行用户程序,且只允许执行处理机的非特权指令。(3)状态切换

在内核态下CPU可执行任何指令,在用户态下CPU只能执行非特权指令。当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态时,用户从用户态切换到内核态只有在系统调用和中断两种情况下发生,一般程序一开始都是运行于用户态,当程序需要使用系统资源时,就必须通过调用软中断进入内核态。

①用户程序执行到系统调用命令时,CPU的执行状态由硬件自动从用户态切换为核心态,执行操作系统中相应的系统调用子程序。系统调用程序执行完成后,CPU在返回用户程序执行前,将执行方式再变回为用户态,之后继续执行用户程序,从而达到系统保护的目的。

②用户程序运行过程中发送了外界中断,CPU响应中断,它的执行状态也由用户态转换为核心态,执行相应的中断处理程序,中断处理完成后,通常CPU再返回到用户程序执行前将其执行方式改为用户态,之后继续执行用户程序。

2中断、异常(1)中断

中断(Interuption),也称外中断,指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序的执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。(2)异常

异常(Exception),也称内中断或陷入(Trap),指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页以及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。

3系统调用

系统调用(system call)是由操作系统实现的程序接口或应用编程接口(API)的集合,是应用程序同系统之间的接口。内核提供一系列具备预定功能的多内核函数,通过系统调用的接口呈现给用户。应用程序通过系统调用把请求传给内核,调用相应的的内核函数完成所需的处理,然后系统调用再将处理结果返回给应用程序。【例】以下说法错误的是(  )。

A.系统调用是OS提供给用户程序的唯一接口

B.系统调用是OS内核中提供的一些系统子程序

C.系统调用必须通过执行系统调用命令,由软中断转向相应的系统调用处理程序,同时CPU的执行状态将从用户态转换为系统态

D.系统调用像一般的过程调用那样执行完后直接返回调用过程继续执行【答案】D【解析】一般的过程调用在被调用过程执行完后,将直接返回到调用过程继续执行;而对系统调用,如果用抢占方式,则在被调用过程执行完后,必须先对要求运行的进程做优先权分析,只有当调用进程仍具最高优先权时,才返回到调用进程继续执行;否则,将引起重新调度。

四、操作系统体系结构

操作系统是一个非常复杂的大型软件。为了使它的功能正确而又便于修改和维护,必须进行细心的工程设计,这就是操作系统的结构设计。操作系统的结构主要包括:模块化结构、层次结构和微内核结构。

1模块化结构操作系统

模块化结构操作系统按其功能精心地划分为若干个具有一定独立性和大小的模块;每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O设备管理模块等,并仔细地规定好各模块间的接口,使各模块之间能通过该接口实现交互。然后,再进一步将各模块细分为若干个具有一定功能的子模块,如把进程管理模块又分为进程控制、进程同步等子模块,同样也要规定好各子模块之间的接口。各模块、子模块等组成了模块化操作系统结构。

模块化结构操作系统有以下优点:(1)提高OS设计的正确性、可理解性和可维护性;(2)增强OS的适应性;(3)加速OS的开发过程。

2层次结构操作系统

层次结构操作系统将系统分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的低层。

层次结构操作系统有以下优点:(1)易保证系统的正确性;(2)易扩充和易维护性。

3微内核结构操作系统

在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:(1)实现与硬件紧密相关的处理;(2)实现一些较基本的功能;(3)负责客户和服务器之间的通信。

它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。

微内核操作系统有以下优点:(1)提高了系统的可扩展性;(2)增强了系统的可靠性;(3)具有可移植性;(4)提供了对分布式系统的支持;(5)融入了面向对象技术。

微内核结构的最大问题是性能问题,因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。因此有的操作系统将那些频繁使用的系统服务又移回内核,从而保证系统性能。但是有相当多的实验数据表明,体系结构不是引起性能下降的主要因素,体系结构带来的性能提升足以弥补切换开销带来的缺陷。为减少切换开销,也有人提出将系统服务作为运行库链接到用户程序的一种解决方案,这样的体系结构称为库操作系统。

1.2 典型题(含历年真题)详解

一、单项选择题

1下列指令中,不能在用户态执行的是(  )。[2014年联考真题]

A.trap指令

B.跳转指令

C.后栈指令

D.关中断指令【答案】D【解析】关中断指令必须在核心态才能执行,trap指令可以在用户态下执行,执行完就转到核心态,跳转与退栈指令都是可以在用户态下执行的指令。

2下列选项中,会导致用户进程从用户态切换到内核态的操作是(  )。[2013年联考真题]

Ⅰ.整数除以零

Ⅱ.sin()函数调用

Ⅲ.read系统调用

A.仅Ⅰ、Ⅱ

B.仅Ⅰ、Ⅲ

C.仅Ⅱ、Ⅲ

D.Ⅰ、Ⅱ和Ⅲ【答案】B【解析】系统发生异常,需要进入内核态由操作系统进行处理,而read系统调用函数也是在内核态执行,sin()就是普通的用户函数,在用户态执行,因此答案选B。

3下列选项中,不可能在用户态发生的事件是(  )。[2012年联考真题]

A.系统调用

B.外部中断

C.进程切换

D.缺页【答案】C【解析】现代操作系统中为了共享和保护,设定了用户态和内核态(可以通过设置软、硬件标志位来实现),在用户态运行用户的程序,在内核运行系统的程序。所以,从选项来看,系统调用可以在任何态发生,用户可以发起系统调用,系统也可以;外部中断是不可控的,也会在任何时刻发生,缺页的发生也是不可控的,可以发生在用户代码之间;而进程切换却不会在用户态发生。我们可以考虑一下情形,进程切换是在什么时候发生的,进程切换前必定运行的是进程调度,只有进程调度选择了下一次被调度的进程,进程切换才可以进行。进程调度是scheduler,进程切换是dispatcher,这体现了现代操作系统策略与机制分离的设计思想。所以,进程切换必定不会在用户态发生(所谓发生指其起始的源头时刻),必定是在内核态发生的。

4下列关于操作系统的说法中,错误的是(  )。

Ⅰ.在通用操作系统管理下的计算机上运行程序,需要向操作系统预定运行时间

Ⅱ.在通用操作系统管理下的计算机上运行程序,需要确定起始地址,并从这个地址开始执行

Ⅲ.操作系统需要提供高级程序设计语言的编译器

Ⅳ.管理计算机系统资源是操作系统关心的主要问题

A.Ⅰ、Ⅲ

B.Ⅱ、Ⅲ

C.Ⅰ、Ⅱ、Ⅲ、Ⅳ

D.以上答案都正确【答案】A【解析】Ⅰ项错误:通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先预定运行时间;Ⅱ项正确,操作系统执行程序时,必须要从起始地址开始执行;Ⅲ项错误,编译器是操作系统的上层软件,不是操作系统所需要提供的功能;Ⅳ项正确,操作系统是计算机资源的管理者,故管理计算机系统资源是操作系统关心的主要问题。

5下列关于系统调用的说法正确的是(  )。

Ⅰ.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入(trap)指令

Ⅱ.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和屏蔽中断指令

Ⅲ.系统调用功能是操作系统向用户程序提供的接口

Ⅳ.用户及其应用程序和应用系统是通过系统调用提供的支持和服务来使用系统资源完成其操作的

A.Ⅰ、Ⅲ

B.Ⅱ、Ⅳ

C.Ⅰ、Ⅲ、Ⅳ

D.Ⅱ、Ⅲ、Ⅳ【答案】C【解析】Ⅰ项正确,系统调用需要触发trap指令,如基于x86的Linux系统,该指令为intx80或sys enter。Ⅱ是干扰项,程序设计无法形成屏蔽中断指令。Ⅲ项正确,系统调用的概念。Ⅳ项正确,操作系统是一层接口,对上层提供服务,对下层进行抽象。它通过系统调用向其上层的用户、应用程序和应用系统提供对系统资源的使用。

6相对于传统操作系统结构,采用微内核结构设计和实现操作系统具有诸多好处,下列哪些是微内核结构的特点(  )。

Ⅰ.使系统更高效;

Ⅱ.添加系统服务时,不必修改内核;

Ⅲ.微内核结构没有单一内核稳定;

Ⅳ.使系统更可靠。

A.Ⅰ、Ⅲ、Ⅳ

B.Ⅰ、Ⅱ、Ⅳ

C.Ⅱ、Ⅳ

D.Ⅰ、Ⅳ【答案】C【解析】微内核结构将操作系统的很多服务移动到内核以外(如文件系统),且服务之间使用进程间通信机制进行信息交换。Ⅰ项错误,这种通过进程间通信机制进行信息交换影响了系统的效率。Ⅲ项错误,由于内核的服务变少了,且一般来说内核的服务越少内核越稳定。而Ⅱ、Ⅳ正是微内核结构的优点。

二、综合应用题

什么是特权指令与非特权指令?

答:(1)特权指令,是指有特殊权限的指令,由于这类指令的权限最大,如果使用不当,将导致整个系统崩溃。比如:清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。为了保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权指令必须在核心态执行。实际上,CPU在核心态下可以执行指令系统的全集。(2)非特权指令,是指在用户态下能使用的指令。为了防止用户程序使用特权指令,用户态下只能使用非特权指令,核心态下可以使用全部指令。当在用户态下使用特权指令时,将产生中断以阻止用户使用特权指令。所以用户程序在用户态下运行,而操作系统中使用特权指令的那部分程序需在核心态下运行,这样才能保证计算机系统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常。

第2章 进程管理

2.1 考点归纳

【考纲指定考点】【题型及考点分析】

本章是操作系统的重点章,从历年的考题来看考查的题型有选择题和综合分析题。一般2~4题选择题,考点一般分布在进程调度算法、同步互斥、信号量、死锁等知识。而综合题主要是考查PV操作和银行家算法。

一、进程与线程

1进程概念(1)进程的引入

程序顺序执行时具有顺序性、封闭性、以及可再现性。但在多道程序环境下,可以有多个程序并发执行,此时它们封闭性和可再现性被破坏,具有间断性及不可再现性的特征。并且并行执行的程序共享系统资源,将产生相互制约关系,程序与CPU执行的活动之间也将不再一一对应。所以为了更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性,引入了进程(Process)的概念。(2)进程的定义

可以从不同的角度来定义进程,较典型的进程定义有:

①进程是程序的一次执行。

②进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

③进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

在引入了进程实体的概念后,我们可以把传统操作系统中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。”(3)进程的特征

进程是由多道程序的并发执行而引出的,它和程序是两个截然不同的概念。进程的特点包括:动态性、并发性、独立性、异步性和结构性。

①动态性

进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。进程实体有一定的生命期,故进程动态性表现在:“它由创建而产生,由调度而执行,由撤消而消亡”。

②并发性

指多个进程实体同存于内存中,且能在一段时间内同时运行。并发性既是进程的重要特征也是操作系统的重要特征。

③独立性

指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。需注意的是凡未建立PCB的程序都不能作为一个独立的单位参与运行。

④异步性

指进程按各自独立的、不可预知的速度向前推进。

⑤结构性

指为了程序能并发执行,为其配置进程控制块即PCB(Process Control Block),由程序段、相关的数据段和PCB三部分便构成了进程实体。(4)进程控制块PCB

进程控制块PCB也叫做进程描述符(Process Descriptor),用于记录进程的运行变化过程。PCB是进程存在的唯一标识,它包含了进程的描述信息和管理控制信息,是进程动态特性的集中表现。操作系统依据进程控制块来管理和调度系统中的进程。所谓创建进程,实质上是创建进程实体中的PCB;而撤消进程,实质上是撤消进程的PCB。

进程控制块包含的内容有:①进程标识数;②进程的状态以及调度和存储器管理信息;③进程使用的资源信息;④CPU现场保护区;⑤记账信息以及进程的链接指针。(5)进程与程序的联系与区别

①进程是程序的一次执行,它是一个动态的概念;程序是完成某个特定功能的指令的有序序列,它是一个静态的概念;

②进程是系统进行资源分配和调度的一个独立单位,程序则不是;

③进程是具有结构的,程序没有结构。【例】下面对进程的描述中,错误的是(  )。

A.进程是有生命期的

B.进程是动态的概念

C.进程是指令的集合

D.进程执行需要处理机【答案】C【解析】进程可以理解为:可并发执行的程序在一个数据集上的运行过程,是系统进行资源(如:CPU、内存、设备、文件、数据等)分配和调度的独立单位;进程的存在有一定的时间周期,它是一个动态的概念,有三种状态:执行状态、就绪状态和等待状态;当除CPU外其他资源都就绪时,进程处于就绪状态,当进程得到CPU时(根据进行调度算法,得到CPU),在得到的CPU时间片中,处于执行状态;当CPU时间片用完或其他资源不就绪时,进入等待状态;由此可见进程是抽象的,和程序不同,不是指令的集合。

2进程的状态与转换

进程在其生命周期内,由于系统中各进程之间的相互制约关系及系统的运行环境的变化,使得进程的状态也在不断地发生变化,为了表示这些不同状态,为进程定义了五种状态:就绪状态、运行状态、阻塞状态、创建状态以及结束状态,其中前三种是进程的基本状态。(1)进程的状态

①就绪状态

是指进程已分配到除CPU以外的所有必要资源,就只需等待CPU,一旦获得CPU,便可立即执行。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。

②运行状态

又称执行状态,指进程已经获得CPU,其程序正在执行。需要注意的是在单处理机系统中,每个时刻最多只有一个进程处于运行状态;而在多处理机系统中,则可以有多个处于运行状态的进程。

③阻塞状态

又称等待状态,指进程因为发生某事件而暂时无法继续执行不得不放弃处理机所进入的状态,致使进程进入阻塞的典型事件有:请求I/O、申请缓冲空间等。当进程所等待的事件完成后,进程将进入就绪状态。在一个系统中处于阻塞状态的进程可能有多个,通常将它们排成一个队列,称为阻塞列列。

④创建状态

进程被创建时的状态,在该状态下,主要的操作有申请空白PCB,根据进程信息向PCB中填写控制和管理该进程的信息,以及由系统为该进程分配所必需的资源。

⑤结束状态

进程从系统中消亡时的状态,在该状态下,主要的操作有回收进程的资源,清除进程相关信息。(2)进程状态的转换

一个进程从无到有,执行完任务而消亡,通常经历创建态、就绪态、运行态、等待态和终止态5个状态的变换。进程五种状态间的转换如图2-1所示:

图2-1 进程状态转换图

①就绪态→运行态

处于就绪队列中的进程通过进程调度获得CPU进入运行状态。

②运行态→阻塞态

当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作的完成)时,它就从运行状态转换为阻塞状态。

③运行态→就绪态

运行态进入就绪态有两种情况:

a.处于运行状态的进程时间片用完了,进入就绪态等待下一次的调度;

b.剥夺式调度中,当有更高优先级的进程就绪时,当前正在运行的进程让出CPU给高优先级进程,自己进入就绪状态。

④阻塞态→就绪态

阻塞进程等待的某个事件发生了,则该进程被唤醒进入就绪状态。如I/O操作完成或中断结束时,则应把因其阻塞的进程唤醒进入就绪状态。

需要注意的是,一个进程从运行状态变成阻塞状态是一个主动的行为,而从阻塞状态变到就绪状态是一个被动的行为,需要其他相关进程的协助。【例】进程从运行状态进入就绪状态的原因可能是(  )。

A.被选中占有处理机

B.等待某一事件

C.等待的事件已发生

D.时间片用完【答案】D【解析】进程被选中占用处理机是进入运行状态。进程等待某一事件发生会进入阻塞状态。等待的事件已发生会促使进程由阻塞状态进入就绪状态。时间片用完时,进程会进入就绪状态,等待调度程序的下一次时间片分配。

3进程控制

系统中的进程在运行过程中不断地产生和消亡。或者说,进程生命周期包括产生、存在、进程状态转换、消亡而最终撤离系统的,整个过程是由进程控制来管理和实现的。进程控制功能是由操作系统内核中的原语来实现的。进程控制包括进程的创建、进程的撤销、进程的阻塞、进程的唤醒、进程的挂起和激活以及进程的切换等。(1)原语的概念

原语是机器指令的延伸,是由若干条机器指令构成、运行在核心态的、用以实现特定功能的一段程序。为了保证操作的正确性,原语在执行的过程中是不可分割的,也即其执行过程是不允许中断的,换言之原语操作要么不做要么全做。(2)进程的创建

①引起进程创建的典型事件

在操作系统中,引起创建进程的典型事件有:a.用户登录;b.作业调度;c.提供服务;d.应用请求。其中前三种情况都是由系统内核为创建一个新进程,而d类事件应用进程自己创建一个新进程,以便使新进程以并发运行方式完成特定任务。由此可以看出操作系统是允许一个进程创建另一个进程的,创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。此外,在撤销父进程时,也必须同时撤销其所有的子进程。

②创建进程所做的操作即进程创建原语

a.申请空白PCB;

b.为新进程分配资源;

c.初始化进程控制块PCB,填写一些控制和管理进程的信息;

d.将新进程插入就绪队列。(3)进程的撤销

①引起进程撤销的原因

在操作系统中,引起进程撤销的原因有:

a.正常结束

正常结束即表示进程已经运行完成。

b.异常结束

异常结束是指在进程运行期间,出现某些错误和故障而迫使进程终止,这类异常事件很多,常见的有下述几种:越界错误、保护错误、非法指令、特权指令错误、运行超时、等待超时、算术运算错误以及I/O故障。

c.外界干预

外界干预是指进程因外界的请求而终止运行,常见的干预有:操作员或操作系统干预、父进程请求、以及父进程终止。

②撤销进程所做的操作即进程撤销原语

a.从PBC集合中检索出待消亡进程的PCB;

b.若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真以指示新的进程调度;

c.若被终止进程有子孙进程,应终止其子孙进程,以防其成为不可控的进程;

d.收回被终止进程所占资源,若其有父进程则归还给父进程,否则归还给系统;

e.将被终止进程从所在队列中移出。(4)进程的阻塞

①引起进程阻塞的事件

在操作系统中,引起进程阻塞的事件有:

a.请求系统服务

正在执行的进程请求操作系统提供服务,由于某种原因,操作系统并不立即满足该进程的要求时,该进程只能转变为阻塞状态来等待。

b.启动某种操作

当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,则必须先使该进程阻塞,以等待该操作完成。

c.新数据尚未到达

对于相互合作的进程,如果其中一个进程需要先获得另一(合作)进程提供的数据后才能对数据进行处理,则只要其所需数据尚未到达,该进程只有(等待)阻塞。

d.无新工作可做

系统往往设置一些具有某特定功能的系统进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来。

②阻塞进程所做的操作即进程阻塞原语如下:

a.从PCB集合中检索到相应PCB;

b.若该进程为运行状态,则立即停止执行保护现场,将相应PCB中的现行状态由“执行”改为“阻塞”;

c.把该PCB插入到相应事件的等待队列中去。(5)进程的唤醒

当被阻塞进程所等待的事件发生时,如其所期待的数据已经到达或是I/O操作完成,则应调用唤醒原语wakeup()将等待该事件的进程唤醒。

唤醒进程所做的操作即进程唤醒原语如下:

①在该事件的等待队列中检索到相应进程的PCB。

②将其从等待队列中移出,并将相应PCB中的现行状态由“阻塞”改为“就绪”;

③把该PCB插入就绪队列中,等待调度程序调度。

需要注意的是,Block()原语和Wakeup()原语是一对作用刚好相反的原语,必须成对使用。否则被阻塞进程将会因不能被唤醒而长久地处于阻塞状态,从而再无机会继续运行。(6)进程的挂起和激活

①引起进程挂起的原因

在操作系统中,引起进程阻塞的事件有:

a.用户进程请求将自己挂起;

b.父进程请求将自己的某个子进程挂起;

c.系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。

②进程挂起的所做的操作即进程挂起原语如下:

a.从PCB集合中检索到相应PCB;

b.检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。

③进程的激活

当发生激活进程的事件时,例如,父进程或用户进程请求激活指定进程,若该进程驻留在外存而内存中已有足够的空间时,则可将在外存上处于静止就绪状态的该进程换入内存。系统将利用激活原语active()将指定进程激活,其过程如下:

a.从PCB集合中检索到相应PCB;

b.检查被激活进程的状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。(7)进程的切换

对于通常的进程,其创建、撤销以及要求由系统设备完成的I/O操作都是利用系统调用而进入内核,再由内核中相应处理程序予以完成的。进程切换同样是在内核的支持下实现的,因此可以说,任何进程都是在操作系统内核的支持下运行的,是与内核紧密相关的。

①进程切换的所做的操作如下:

a.保存处理机上下文,主要是相关寄存器的内容比如程序计数器;

b.更新被调度出进程的PCB信息;

c.把被调度出进程的PCB根据进程状态移入相应的队列,如就绪、在某事件阻塞等队列;

d.选择另一个进程执行,并更新其PCB;

e.更新内存管理的数据结构;

f.恢复处理机上下文。【例】一个进程被唤醒意味着(  )。

A.该进程马上占有CPU

B.进程状态变为就绪

C.进程的优先权变为最大

D.其PCB移至就绪队列的队首【答案】B【解析】进程占有CPU是处于运行态。进程被唤醒,是指当进程需等待的事件发生时,进程会由挂起或阻塞态转变为就绪态,根据相应的调度算法插入到就绪队列的相应位置,不一定插在队首,进程的优先权可能会发生变化,也可能不变。

4进程组织

为了便于管理和调度,系统常常把各个进程的控制块用某种方法组织起来,常用的组织方式有两种:链接方式和索引方式。(1)链接方式

这是把具有同一状态的PCB,用其中的链接字链接成一个队列,例如就绪队列、阻塞队列等。其中的就绪队列常按进程优先级的高低排列,而阻塞队列也可以根据阻塞原因的不同形成不同的阻塞队列。(2)索引方式

系统根据所有进程的状态建立几张索引表,例如就绪索引表、阻塞索引表等,而当系统要查找相关进程的PCB时则在相关索引表里进行索引。

5进程通信

在操作系统中,进程主要通过三种方式来进行通信:共享存储系统、消息传递系统以及管道通信。(1)共享存储系统

基于共享存储系统的通信方式可分为两种:共享数据结构方式和共享存储区的方式。

①共享数据结构的通信方式

要求诸进程公用某些数据结构,借以实现诸进程间的信息交换。这种方式中的公用数据结构的设置及对进程间同步的处理,都是程序员的职责。因此,这种通信方式是低效的,只适于传递相对少量的数据。

②共享存储区的通信方式

为了传输大量数据,在存储器中划出了一块共享存储区,诸进程可通过对共享存储区中数据的读或写来实现通信。

需要注意的是在共享存储系统中,通信进程对共享空间需要使用同步互斥工具(比如PV操作)来对共享空间的写/读进行控制。(2)消息传递系统

在消息传递机制中,进程间的数据交换是以格式化的消息(message)为单位的。在这种方式中,程序员可以直接利用操作系统提供的一组通信命令(原语),实现大量数据的传递的同时隐藏了通信的实现细节,故该方式获得了广泛的应用。因其实现方式的不同可分为直接通信方式和间接通信方式两种。

①直接通信方式

该方式是指发送进程利用OS所提供的发送命令,直接把消息发送给目标进程,并将它挂在接收进程的消息缓冲队列上,接收进程只需从消息缓冲队列中取得消息。不过这种方式要求发送进程和接收进程都以显式方式提供对方的标识符。

②间接通信方式

该方式发送进程把消息发送到某个中间实体中,接收进程从中间实体中取得消息。这种中间实体一般称为信箱,这种通信方式又称为信箱通信方式。需要注意的是信箱可由操作系统创建,也可由用户进程创建。(3)管道通信

管道通信是消息传递的一种特殊方式。管道(pipe)是指用于连接一个写进程和一个读进程按照先进先出方法实现它们之间通信的共享文件,又称为pipe文件。它由操作系统核心管理的缓冲区来实现,是单向的通信方式。

发送进程以字符流的形式将大量的数据源源不断地写入管道,接收进程从管道中接收数据。为了协调双方的通信,管道机制必须提供以下三方面的协调能力:互斥、同步和确定对方的存在。需要注意的是从管道读数据是一次性操作,数据一旦被读取,它就从管道中被抛弃,释放间以便写更多的数据。管道只能采用半双工通信,即某一时刻只能单向传输。

6线程概念与多线程模型(1)线程的引入

因为进程是一个资源的拥有者,因而在创建、撤消和切换中,系统必须为之付出较大的时空开销。为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,所以在操作系统中引入了线程,实现更轻量级的处理机调度。(2)线程的定义

线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。

需要注意的是引入线程后,进程的内涵发生了改变,进程只作为除处理机以外系统资源的分配单元,线程则作为处理机的分配单元。(3)线程与进程的区别

为了更好地认识进程和线程,下面从拥有的资源、调度和并发性诸方面对两者进行比较。

①调度

在没有引入线程的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。在引入线程的操作系统中,则把线程作为调度和分派的基本单位,把资源拥有和处理机调度两个属性分开。在同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换。

②并发性

在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,使得操作系统具有更好的并发性。

③拥有资源

无论在何种操作系统中,进程都是系统中拥有资源的一个基本单位。线程只拥有自己必不可少的一点资源,它可以访问其隶属进程的资源。

④系统开销

因为进程是系统资源分配的基本单位,所以创建或撤销进程时,系统都要为之创建和回收进程控制块,分配或回收资源,因此操作系统所付出的开销远大于创建或撤销线程时的开销。并且线程切换时只需保存和设置少量寄存器内容,开销很小。

⑤通信

由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。

⑥地址空间和其他资源

进程的地址空间之间互相独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见。【例】进程与线程的根本区别是(  )。

A.进程要占用一个进程控制块,开销较大,而线程无此开销

B.进程增加会增加死锁的机会,而线程有效避免了这一问题

C.进程是资源分配单位,而线程是调度和执行的单位

D.进程是调度和执行单位,而线程是资源分配单位【答案】C【解析】线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间。(4)线程的属性

在多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体,线程具有下述属性:

①轻型实体

线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证其独立运行的资源,比如控制线程的线程控制TCB,用于指示被执行指令序列的程序计数器,保留局部变量、少数状态参数和返回地址等的一组寄存器和堆栈。

②独立调度和分派的基本单位

在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位,并且线程的切换非常迅速且开销小。

③可并发执行

在一个进程中的多个线程之间可以并发执行;同样,不同进程中的线程也能并发执行。

④共享进程资源

在同一进程中的各个线程都可以共享该进程所拥有的资源,所有线程都具有相同的地址空间(进程的地址空间)。(5)线程的实现方式

系统对线程的实现方式有3种:用户级线程、内核级线程和两级组合方式。

①用户级线程

用户级线程仅存在于用户空间中,它是由用户程序通过调用用户态运行的线程库完成的,线程的创建、撤消、线程之间的同步与通信等功能,都无须利用系统调用来实现,系统内核并不知道线程的存在。

②内核级线程

内核级线程是在内核的支持下运行的,内核空间为每一个内核线程设置一个线程控制块,内核是根据该控制块而感知某线程的存在,并对其加以控制,他们的创建、撤消和切换等也是依靠内核。

③组合方式

组合方式线程系统中,内核支持多内核级线程的建立、调度和管理,同时,也允许用户应用程序建立、调度和管理用户级线程。组合方式多线程机制能够结合内核级和用户级两者的优点,并克服了其各自的不足。(6)多线程模型

引入线程后,进程只作为操作系统中进行保护和资源分配的单位,允许一个进程有多个线程并发执行,线程切换不必通过进程调度,多线程借助共享内存区实现通信,通信容易实现。这大大减少了系统开销和提高了系统效率。

多线程引入,在单处理机和多处理机系统中,一个进程内的多线程不仅可以并发执行,而且可以被调度到不同的处理机,进程中的多线程还可以并行运行,大大加快了进程的完成速度,多线程模型有如下几种:

①多对一模型

将多个用户级线程映射到一个内核级线程,为了方便管理,这些用户线程一般属于一个进程,线程管理在该进程的用户空间完成。当用户线程需要访问内核时,才将其映射到内核线程上,用户级线程对操作系统透明。这种方式的优点是效率比较高,但是当一个线程在使用内核服务时被阻塞,那么整个进程都会被阻塞;多个线程不能并行地运行在多处理机上。

②一对一模型

为每一个用户线程都设置一个内核线程与之连接。这种方式的优点是:当一个线程被阻塞后,允许另一个线程继续执行,所以并发能力较强;缺点是:每创建一个用户级线程都需要创建一个内核级线程与其对应,这样创建线程的开销比较大,会影响到应用程序的性能。

③多对多模型

该模型综合上述两种模型的优点,将n个用户级线程映射到m个内核级线程上,要求m≤n。内核控制线程的数目可以根据应用进程和系统的不同而变化。

二、处理器调度

1调度的基本概念

在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免,所以引入了处理机调度。调度按照调度对象的不同可以分为高级、中级和低级调度。(1)高级调度

高级调度又称为作业调度,根据作业控制块中的信息,按照一定算法从外存上处于后备状态的作业中挑选某些作业调入内存,为它们创建进程,分配必要资源,然后再将新创建进程插入就绪队列。简言之,就是内存与辅存之间的调度。对于每个作业只调入一次、调出一次。(2)中级调度

中级调度又称内存调度,是将那些暂时不能运行的进程调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。而当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行条件的就绪进程,重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。(3)低级调度

低级调度又称进程调度,其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,可分为非抢占方式和抢占方式两种。(4)三级调度的联系

处理机的三级调度关系图如图2-2所示:

图2-2 处理机的三级调度

由上图可知,作业调度从外存的后备队列中选择一批作业进入内存,为它们建立进程,这些进程被送入就绪队列,进程调度从就绪队列中选出一个进程,并把其状态改为运行状态,把CPU分配给它。而中级调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来。当内存空间宽松时,通过中级调度选择具备运行条件的进程,将其唤醒。

2调度时机、切换与过程(1)进程的调度时机

进程调度的时机,是指什么时候引起进程调度程序工作。由上述的调度方式,可以得出如下调度的时机:

①现行进程完成执行或由于某种错误而中止运行;

②正在执行的进程提出I/O请求,等待I/O完成;

③在分时系统,按照时间片轮转,分给进程的时间片用完;

④优先级调度,由更高优先级进程变为就绪;

⑤进程执行了某种操作原语,如阻塞原语或唤醒原语时,都可能引起进程调度。(2)进程调度的切换过程

处理机调度工作是通过处理机调度程序来完成的。处理机调度程序的主要功能可描述如下:

①保存被中断进程的处理机现场信息;

②修改被中断进程的进程控制块的有关信息,如进程状态等。

③把被中断进程的进程控制块插入有关队列;

④选择一个进程占有CPU;

⑤修改被选中进程的进程控制块的有关信息,如进程状态等;

⑥根据被选中进程的进程控制块的处理机现场信息恢复处理机现场。

3调度的基本准则

不同的操作系统,其处理机调度依据的准则不同,采用的调度算法也不同。一个好的调度算法,应该使系统的性能更好。其中主要考虑的因素有:资源利用率、吞吐量、周转时间、等待时间和响应时间。(1)资源利用率

CPU是计算机系统中最重要和昂贵的资源之一,所以应尽可能使CPU保持“忙”状态,使这一资源利用率最高。(2)吞吐量

吞吐量表示单位时间内CPU完成作业的数量。长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量。而对于短作业,它们所需要消耗的处理机时间较短,因此能提高系统的吞吐量。根据调度算法的不同,对系统吞吐量会产生较大的影响。(3)周转时间

周转时间是指从作业提交到作业完成所经历的时间,包括作业等待、在就绪队列中排队、在处理机上运行以及进行输入/输出操作所花费时间的总和。

周转时间=作业完成时间-作业提交时间

平均周转时间=(作业1的周转时间+…+作业1的周转时间)/n

带权周转时间=作业周转时间/作业实际运行时间(4)等待时间

等待时间是指进程处于等处理机状态时间之和,等待时间越长,用户满意度越低。处理机调度算法实际上并不影响作业执行或输入/输出操作的时间,只影响作业在就绪队列中等待所花的时间。因此,衡量一个调度算法的优劣,常常只需简单地考察等待时间。(5)响应时间

响应时间是指从用户提交请求到系统首次产生响应所用的时间。在交互式系统中,周转时间不可能是最好的评价准则,一般采用响应时间作为衡量调度算法的重要准则之一。从用户角度看,调度策略应尽量降低响应时间,使响应时间处在用户能接受的范围之内。

显然这些因素相互之间是矛盾的,因此在设计操作系统时,应根据类型不同进行权衡,以达到较好的效果。对批处理系统,主要考虑作业的周转时间和带权周转时间。周转时间越短,系统的吞吐量越大。根据作业的性质,均衡调度作业,会大大提高系统资源的利用。对于分时系统,则更多考虑的是响应时间。在此基础上,才考虑资源的利用。对于实时系统,则更多考虑的是对外部事件的及时响应和处理以及系统的安全可靠性,在此基础上,才考虑资源的利用。

4调度方式

进程调度是操作系统中最基本的一种调度,可分为非抢占方式和抢占方式两种。(1)非抢占方式

在采用非抢占调度方式时,调度程序一旦把CPU分配给某一进程后便让它一直运行下去,直到进程完成或发生某事件(比如时间片用完、阻塞等待I/O完成等)而不能运行时。可能引起进程调度的因素可归结为这样几个:

①正在执行的进程执行完毕,或因发生某事件而不能再继续执行;

②执行中的进程因提出I/O请求而暂停执行;

③在进程通信或同步过程中执行了某种原语操作。

这种调度方式的优点是实现简单、系统开销小,适用于大多数的批处理系统环境。(2)抢占方式

在采用抢占调度方式时,当一个进程正在执行时,系统可以基于某种策略剥夺CPU给其他进程。进行抢占的原则有:

①优先权原则;

②短作业(进程)优先原则;

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载