您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > (第4章进程及进程管理)习题四答案
《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com1习题四参考答案(P69)4-1试解释下列名词:程序的顺序执行、程序的并发执行。答:一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。4-2什么是与时间有关的错误?试举例说明。答:当程序并发执行时,系统处于一个复杂的动态组合状态,各程序执行的相对速度不确定,这使得(即使初始条件相同)这些程序多次并发执行得到的结果不同,其中有一个结果是正确的,而其他的是错误的。这些错误与并发程序执行的相对速度有关,是与时间有关的错误。例如,三个并发执行程序的誊抄。其中,get程序负责从输入序列f中读取字符,并送到缓冲区s中;copy程序把缓冲区s中的数据复制到缓冲区t中去;put程序从缓冲区t中取出数据打印。若程序写出:while(誊抄未完成){cobegincopy;put;get;coend}copy、put、get三个程序段并发执行,就有六种组合:(假设此时的状态为:f=(r1,r2,...,rn);s=r2,t=r1,g=(r1))1、copy;put;get2、copy;get;put3、put;copy;get4、put;get;copy5、get;copy;put《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com26、get;put;copy易知,如果按照1和2的执行顺序可以得到正确的誊抄结果,而3、4、5、6的执行顺序都会到错误的誊抄结果(即产生了与时间相关的错误)。4-3什么是进程?进程与程序的主要区别是什么?答:进程,即是一个具有一定独立功能的程序关于某个数据集合的一次活动。进程与程序的主要区别是:(1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义,进程是程序在处理机上的一次执行过程,是一个动态概念。(2)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因调度而执行、因得不到资源而暂停、因撤消而消亡。(3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制块3部分组成。(4)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程序在执行中也可以产生多个进程。(5)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位。而程序无此概念。4-4图4-2标明程序段执行的先后次序。其中I表示输入操作、C表示计算操作、P表示打印操作,下角标说明是对哪个作业进行上述操作。请指明:(1)哪些操作必须有先后次序,其原因是什么?(2)哪些操作可以并发执行,其原因又是什么?答:(1)Ii必须先于Ci执行,Ci必须先于Pi执行,这是因为同一个作业的这三个操作之间具有逻辑上的严格的先后执行次序;Ii必须先于Ii+1执行,Ci必须先于Ci+1执行,Pi必须先于Pi+1执行,这是因为Ii和Ii+1共享输入设备、Ci和Ci+1共享CPU、Pi和Pi+1共享输出设备。(2)Ii+1和Ci、Pi-1可以并发执行,因为这三个进程分属于不同的作业,且它们占据的是不同的资源。《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com34-5如下图所示,设一誊抄程序,将f中记录的序列正确誊抄到g中,这一程序由get、copy、put三个程序段组成,它们分别负责获得记录、复制记录、输出记录。请指出这三个程序段对f中的m个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图。(假设f中有1,2,…,m个记录,s,t为设置在主存中的软件缓冲区,每次只能装一个记录。)答:(不是很明白题目的要求,所以给出三个程序段正确完成誊抄的算法)。输入:f输出:g1.if(f不为空)then2.{3.get(s,f);//从f中读入一个字符放入缓冲区s4.while(1)5.{6.if(s中的字符不是结束符)then7.{8.copy(t,s);9.cobegin10.get(s,f);11.put(g,t);12.coend13.}14.else15.{16.copy(t,s);17.put(g,t);18.break;《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com419.}20.}//while21.}4-6进程有哪几个基本状态?在一个系统中为什么必须区分出这几种状态。答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、睡眠)。因为多道程序设计技术的引入,使得多个进程可以并发执行。并发执行的进程之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们的执行过程具有“执行——暂停——执行——暂停——执行——…”的动态特征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程进行分析、管理和控制。4-7试用图画出批处理系统的进程状态变迁图。答:如下所示。4-8试用图画出分时系统的进程状态变迁图。答:如下所示。《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com54-9某系统进程状态变迁图如下图所示,请回答下列问题:(1)什么原因会导致发现变迁2、3、4?(2)当观察系统中进程时,可能看到某一进程产生的一次状态变迁将引起另一进程作一次状态变迁,这两个变迁称为因果变迁。在什么情况,一个进程的变迁3能立即引起另一个进程的变迁1?(3)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生?a.2-1b.3-2c.4-1答:(1)如图中所示。(2)正在运行的进程因请求资源未得到满足而变为等待状态的变迁3,必然引起一个就绪进程被调度执行的变迁1(只要就绪队列不为空)。(3)a.正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进程被调度执行的变迁1。《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com6b.3-2不可能。c.当一进程从等待状态变为就绪状态的变迁4,在该进程的优先级最高且系统采用抢占式调度时,就会引起该进程又被调度执行的变迁1。4-10某系统进程状态除了三个基本状态外,又增加了创建状态、完成状态两种新的状态,试用图画出增加新状态后的进程状态变迁图,并说明发生每一种变迁的原因。答:如下所示。运行就绪阻塞终止创建创建完成等待某事件的发生等待的事件的发生了进程调度程序的调度善后处理工作完成4-11什么是进程控制块?它有什么作用?答:存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,系统通过它感知进程的存在。4-12什么是线程?线程和进程有什么区别?答:线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的一个执行路径。一个进程可以有多个执行路径即线程。线程和进程的主要区别如下:(1)线程是进程的一个组成部分。一个进程可以有多个线程,而且至少有一个可执行的线程。(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com7(3)进程的多个线程都在进程的地址空间内活动。这样,在以线程为单位进行处理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换时间较短。而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率降低。(4)线程和进程一样,都有自己的状态和相应的同步机制。但是,由于线程没有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存去。(5)因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核。(6)进程的调度和控制大多由操作系统的内核完成,而线程的控制既可以由操作系统内核完成,也可以由用户控制完成。4-13试说明进程创建的主要功能是什么?答:进程创建的主要功能是形成被创建进程所对应的进程控制块PCB。4-14用于进程控制的原语主要有哪几个?每种原语的执行将使进程的状态发生什么变化?答:(1)创建原语,创建一个就绪状态的进程,使进程从创建状态变迁为就绪状态;(2)撤销原语,使进程从执行状态变迁为完成状态;(3)阻塞原语,使进程从运行状态变迁为阻塞状态;(4)唤醒原语,使进程从阻塞状态变迁为就绪状态。4-15n个并发进程共用一个公共变量Q,写出用记录型信号量实现n个进程互斥时的程序描述,给出信号量的取值范围,请说明每个取值的物理意义。答:如下所示。vcobeginprocessi:begin//i=1,2,…,n《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com8P对公共变量Q的访问Vendcoend信号量mutex的取值范围为:mutex.value∈[1,-(n-1)]。①值为1时,表示没有进程访问公共变量Q;②值为0时,表示有一个进程正在访问公共变量Q;③值0时,表示有一个进程正在访问公共变量Q,同时又|mutex.value|个进程等待访问公共变量Q。4-16图4-30(a)、4-30(b)分别给出了两个进程流图。试用信号灯的P、V操作实现如图中所示进程之间的同步,并写出程序描述。答:(a)main(){vars12,s13,s14:semaphore:=0,0,0;cobeginsfp5p6p7sfP1P2P3P4图4.22(a)图4.22(b)《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com9P1();P2();P3();P4();coend}P1(){p1execute;V(s12);V(s13);V(s14);}P2(){P(s12);p2execute;}P3(){P(s13);p3execute;}P4(){P(s14);p4execute;}(b)《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com10main(){vars57,s67:semaphore:=0,0;cobeginP5();P6();P7();coend}P5(){p5execute;V(s57);}P6(){P6execute;V(s67);}P7(){P(s57);P(s67);P7execute;}4-17如下图所示的进程流图中,有五个进程合作完成某一任务。说明这五个进程之间的同步关系,并用信号灯的P、V操作实现之,要求写出程序描述。《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北工业大学计算机学院Email:nancy78733@126.com11sfP1P2P3P4P5答:五个进程间的同步关系是:P2、P3、P4必须等待P1执行完后方能开始执行;P5必须等待P2和P4均执行完后才能开始执行。main(){vars12,s13,s14,s35,s45:semaphore:=0,0,0,0,0;cobeginP1();P2();P3();P4();P5();coend}P1(){p1execute;V(s12);V(s13);V(s14);}P2(){P(s12);p2execute;}P3()《操作系统原理与Linux系统实验》课后习题参考答案沈华湖北
本文标题:(第4章进程及进程管理)习题四答案
链接地址:https://www.777doc.com/doc-3983015 .html