第3章操作系统《进程管理》习题

第3章操作系统《进程管理》习题

ID:35646828

大小:2.95 MB

页数:264页

时间:2019-04-06

第3章操作系统《进程管理》习题_第1页
第3章操作系统《进程管理》习题_第2页
第3章操作系统《进程管理》习题_第3页
第3章操作系统《进程管理》习题_第4页
第3章操作系统《进程管理》习题_第5页
资源描述:

《第3章操作系统《进程管理》习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.1为什么要引入进程的概念3.2进程的表示和调度状态3.3进程的控制3.4进程调度3.5线程及其管理3.6进程通讯3.7死锁3.8小结习题3.1.1从顺序程序设计谈起自从计算机问世以来,人们广泛地使用“程序”这一概念。在多道程序设计出现以前,“程序”的最大特征是它的顺序性,即顺序执行。实际上应把它称为“顺序程序”,但是因为这一性质是不言而喻的,所以就简称为“程序”。下面我们用一个简单的例子来说明顺序程序的某些重要特性。3.1为什么要引入进程的概念我们假设有n个作业,而每个作业Ji都由三个程序段Ii、Ci、Pi组成。其中,Ii表示从输入机上读入第i个作业的

2、信息;Ci表示执行第i个作业的计算;Pi表示在打印机上印出第i个作业的计算结果。在早期的计算机中,每一作业的这三个程序只能是一个接一个地顺序执行。也就是输入、计算和打印三者串行工作,并且前一个作业结束后,才能执行下一个作业,见图3.1。图3.1程序的顺序执行显然,程序的顺序执行具有如下特性:(1)当顺序程序在处理机上执行时,处理机严格地顺序执行程序规定的动作。每个动作都必须在前一动作结束后才能开始。除了人为的干预造成机器暂时停顿外,前一动作的结束就意味着后一动作的开始。程序和机器执行程序的活动严格一一对应。(2)一个程序在机器中执行时,它独占全机资源,除了初

3、始状态外,只有程序本身规定的动作才能改变这些资源的状态。(3)程序的执行结果与其执行速度无关。也就是说,处理机在执行程序的两个动作之间如有停顿时,不会影响程序的执行结果。   上述特点概括起来就是程序的封闭性和可再现性。所谓封闭性指的是程序一旦开始执行,其计算结果就只取决于程序本身,除了人为改变机器运行状态或机器故障外,不受外界因素的影响。所谓可再现性是指当该程序重复执行时,必将获得相同的结果。这给程序的调试带来了很大的方便。3.1.2程序的并发执行和资源共享1.程序的并发执行采用多道程序设计技术后,系统中各个部分不再以单纯的串行方式工作。换句话说,在任一时

4、刻,系统中不再只有一个活动,而是存在着许多并行的活动。从硬件方面看,处理机、各种外设、存储部件常常并行地工作着;从程序活动方面看,则可能有若干个作业程序或者同时,或者相互穿插地在系统中被执行。这就是说,有很多程序段是可以并发(Concurrent)执行的。所谓并发执行是指两个程序的执行在时间上是重叠的,即使这种重叠只有很小的一部分,我们也称这两个程序是并发执行的。程序的并发执行已成为现代操作系统的一个基本特征。现在我们回到图3.1的例子。对于任何一个作业i,其输入操作Ii、计算操作Ci、打印操作Pi这三者必须顺序执行,但对n个作业来说,则有可能并发执行。例如

5、,输入程序在输入完第i个作业程序后,计算程序在对第i个作业进行计算的同时,再启动输入程序,输入第i+1个作业程序,这就使得第i+1个作业的输入和第i个作业的计算能并发执行。图3.2给出了输入、计算、打印程序对一批作业进行处理的执行顺序。图3.2程序段并发执行的有向图在该例中:I1先于C1和I2;C1先于P1和C2;P1先于P2;I2先于C2和I3。 说明了某些程序段必须在其它程序段之前完成。此外从图中可以看出:I2和C1;I3、C2和P1;I4、C3和P2;是重叠的。2.资源共享资源共享是现代操作系统另一基本特性。所谓资源共享是指系统中的硬件资源和软件资源不

6、再为单个用户程序所独占,而由几道用户程序共同使用。于是,这些资源的状态不再取决于一道程序,而是由多道程序的活动所决定。这就从根本上打破了一道程序封闭于一个系统中执行的局面。   程序并发执行和资源共享之间互为依存条件。一方面,资源共享是以程序并发执行为条件的,因为若系统不允许程序并发,也就不存在资源共享问题;另一方面,若系统不能对共享资源进行有效的管理,也就降低了程序并发执行的效果。3.1.3程序并发执行的特性程序并发执行虽然卓有成效地增加了系统的处理能力,提高了系统资源的利用率,但也带来了一些新问题,也就是产生了与顺序程序不同的新特性,这些新特性是:1.失

7、去了程序的封闭性设有观察者和报告者并行工作。在一条单向行驶的公路上经常有卡车通过。观察者不断观察并对通过的卡车计数。报告者定时地将观察者的计数值打印出来,然后将计数器重新清“0”。此时我们可以写出如下程序(其中Cobegin和Coend表示它们之间的程序可以并发执行):begincount∶integer;count∶=0;cobeginobserverbeginL1;……observenextcar;count∶=count+1;gotoL1endreporterbeginL2∶……printcount;count∶=0gotol2endcoendend由

8、于观察者和报告者各自独立地并行工作,count∶=c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。