第4章进程及进程管理习题四答案资料下载.pdf
《第4章进程及进程管理习题四答案资料下载.pdf》由会员分享,可在线阅读,更多相关《第4章进程及进程管理习题四答案资料下载.pdf(22页珍藏版)》请在冰点文库上搜索。
![第4章进程及进程管理习题四答案资料下载.pdf](https://file1.bingdoc.com/fileroot1/2023-4/30/519ead1e-b9b5-402c-87fb-70836d712be1/519ead1e-b9b5-402c-87fb-70836d712be11.gif)
put3、put;
copy;
get4、put;
copy5、get;
put操作系统原理与Linux系统实验课后习题参考答案沈华湖北工业大学计算机学院Email:
26、get;
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可以并发执行,因为这三个进程分属于不同的作业,且它们可以并发执行,因为这三个进程分属于不同的作业,且它们占据的是不同的资源。
占据的是不同的资源。
34-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;
419.20./while21.4-6进程有哪几个基本状态?
进程有哪几个基本状态?
在一个系统中为什么必须区分出这几种状态在一个系统中为什么必须区分出这几种状态。
进程有三个基本状态:
运行状态、就绪状态和等待状态(又称阻塞、挂起、答:
运行状态、就绪状态和等待状态(又称阻塞、挂起、睡眠)。
睡眠)。
因为因为多道程序设计技术的引入,使多道程序设计技术的引入,使得多个进程可以并发执行。
并发执行的进程得多个进程可以并发执行。
并发执行的进程之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们的执行过程具有“执行的执行过程具有“执行暂停暂停执行执行暂停暂停执行执行”的动态特”的动态特征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程进行分析、管理和控制。
进行分析、管理和控制。
4-7试用图画出批处理系统的进程状态变迁图。
试用图画出批处理系统的进程状态变迁图。
如下所示如下所示。
4-8试用图画出分时系统的进程状态变迁图。
试用图画出分时系统的进程状态变迁图。
54-9某系统进程状态变迁图如下图所示,请回答下列问题:
某系统进程状态变迁图如下图所示,请回答下列问题:
(1)什么原因会导致发现变迁)什么原因会导致发现变迁2、3、4?
(2)当)当观察系统中进程时,可能看到某一进程产生的一次状态变迁将引起另一观察系统中进程时,可能看到某一进程产生的一次状态变迁将引起另一进程作一次状态变迁,这两个变迁称为因果变迁。
在什么情况,一个进程的变进程作一次状态变迁,这两个变迁称为因果变迁。
在什么情况,一个进程的变迁迁3能立即引起另一个进程的变迁能立即引起另一个进程的变迁1?
(3)下述因果变迁是否可能发生?
如果可能的话,在什么情况下发生?
)下述因果变迁是否可能发生?
a.2-1b.3-2c.4-1答:
(1)如图中所示)如图中所示。
(2)正在运行的进程因请求资源未得到满足而变为等待状态的变迁正在运行的进程因请求资源未得到满足而变为等待状态的变迁3,必然引,必然引起一个就绪进程被调度执行的变迁起一个就绪进程被调度执行的变迁1(只要就绪队列不为空)(只要就绪队列不为空)。
(3)a.正运行的进程因时间片到变为就绪状态的变迁正运行的进程因时间片到变为就绪状态的变迁2,必然引起一个就绪进必然引起一个就绪进程被调度执行的变迁程被调度执行的变迁1。
6b.3-2不可能。
不可能。
c.当一进程从等待状态变为就绪状态的变迁当一进程从等待状态变为就绪状态的变迁4,在该进程的优先级最高且系统采,在该进程的优先级最高且系统采用抢占式调度时用抢占式调度时,就会引起该进程又被调度执行的变迁就会引起该进程又被调度执行的变迁1。
4-10某系统进程状态除了三个基本状态外,又增加了创建状态、完成状态某系统进程状态除了三个基本状态外,又增加了创建状态、完成状态两两种种新的状态,试用图画出增加新状态后的进程状态变迁图,并说明发生每一种变新的状态,试用图画出增加新状态后的进程状态变迁图,并说明发生每一种变迁的原因迁的原因。
如下所示。
运行就绪阻塞终止创建创建完成等待某事件的发生等待的事件的发生了进程调度程序的调度善后处理工作完成4-11什么是进程控制块?
它有什么作用?
什么是进程控制块?
存放进程的管理和控制信息的数据结构称为存放进程的管理和控制信息的数据结构称为进程控制块。
它是进程管理和进程控制块。
它是进程管理和控制的最重要的数据结构,控制的最重要的数据结构,系统通过它感知进程的存在系统通过它感知进程的存在。
4-12什么是线程?
线程和进程有什么区别?
什么是线程?
线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的一个执行路径。
一个进程可以有多个执行路径即线程。
一个执行路径。
线程和进程的主要区别如下:
(1)线程是进程的一个组成部分。
一个进程可以有多个线程,而且至少有一个)线程是进程的一个组成部分。
一个进程可以有多个线程,而且至少有一个可执行的线程。
可执行的线程。
(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。
线程是)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。
线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有任何资源。
任何资源。
7(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:
8P对公共变量对公共变量Q的访问的访问Vendcoend信号量信号量mutex的取值范围为:
的取值范围为:
mutex.value1,-(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:
9P1();
P2();
P3();
P4();
coendP1()p1execute;
V(s12);
V(s13);
V(s14);
P2()P(s12);
p2execute;
P3()P(s13);
p3execute;
P4()P(s14);
p4execute;
(b)操作系统原理与Linux系统实验课后习题参考答案沈华湖北工业大学计算机学院Email:
10main()vars57,s67:
=0,0;
cobeginP5();
P6();
P7();
coendP5()p5execute;
V(s57);
P6()P6execute;
V(s67);
P7()P(s57);
P(s67);
P7execute;
4-17如下图所示的进程流图中,有五个进程合作完成某一任务。
说明这五个进如下图所示的进程流图中,有五个进程合作完成某一任务。
说明这五个进程之间的同步关系,并用信号灯的程之间的同步关系,并用信号灯的P、V操作实现之,要求写出程序描述。
操作实现之,要求写出程序描述。
11ssffPP11PP22PP33PP44PP55答:
五个进程间的同步关系是:
P2、P3、P4必须等待必须等待P1执行完后方能开始执行;
执行完后方能开始执行;
P5必须等待必须等待P2和和P4均执行完后才能开始执行均执行完后才能开始执行。
main()vars12,s13,s14,s35,s45:
=0,0,0,0,0;
cobeginP1();
P5();
P3()操作系统原理与Linux系统实验课后习题参考答案沈华湖北工业大学计算机学院Email:
12P(s13);
V(s35);
V(s45);
P5()P(s35);
P(s45);
4-18如如下下图所图所示,示,get、copy、put三进程共用两个缓冲区三进程共用两个缓冲区s、t(其大小为每次(其大小为每次存放一个记录)。
存放一个记录)。
get进程负责不断地把输入记录送入缓冲区进程负责不断地把输入记录送入缓冲区s中,中,copy进程负进程负责从缓冲区责从缓冲区s中取出记录复制到缓冲区中取出记录复制到缓冲区t中,而中,而put进程负责从缓冲区进程负责从缓冲区t中取出中取出记录打印。
试用记录打印。
试用P、V操作实现这三个进程之间的同步,并写出程序描述。
操作实现这三个进程之间的同步,并写出程序描述。
答答:
main()/sa表示缓冲区表示缓冲区S是否为空,是否为空,sb表示是否为满表示是否为满缓冲区S缓冲区Tgetcopyput操作系统原理与Linux系统实验课后习题参考答案沈华湖北工业大学计算机学院Email:
13/ta表示缓冲区表示缓冲区T是否为空,是否为空,tb表示是否为满表示是否为满varsa,sb,ta,tb:
=1,0,1,0;
cobeginget;
coendget()while
(1)P(sa);
inputdatatobufferS;
V(sb);
copy()while
(1)P(sb);
copydatafrombufferS;
V(sa);
P(ta);
inputcopy-datatobufferT;
V(tb);
put()操作系统原理与Linux系统实验课后习题参考答案沈华湖北工业大学计算机学院Email:
14while
(1)P(tb);
outputdatatobufferS;
V(ta);
4-19什么是进程的互斥什么是进程的互斥?
什么是进程的?
什么是进程的同步?
同步和互斥这两个概念有什么联同步?
同步和互斥这两个概念有什么联系和区别?
系和区别?
在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须答:
在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才被允许去访问此临界等待,当占用临界资源的进程退出临界区后,另一进程才被允许去访问此临界资源。
我们称进程之间的这种相互制约关系为互斥。
资源。
进程同步是指多个相关进程在执行次序上的协调。
这些进程相互合作,在一些进程同步是指多个相关进程在执行次序上的协调。
这些进程相互合作,在一些关键点上可能需要互相等待或互通消息。
关键点上可能需要互相等待或互通消息。
实际上进程互斥也是一种同步,它协调多个进程互斥进入同一个临界资源对应实际上进程互斥也是一种同步,它协调多个进程互斥进入同一个临界资源对应的临界区。
的临界区。
4-20在生产者在生产者-消费者问题中,消费者问题中,设置了三个信号灯,一个是用于互斥的信号灯设置了三个信号灯,一个是用于互斥的信号灯mutex,其初值为,其初值为1;
另外两个信号灯是:
;
full(初值为(初值为0,用来指示缓冲区内是,用来指示缓冲区内是否有物品)和否有物品)和empty(初值为(初值为n,表示可利用的缓冲区数目)。
试写出此时的生,表示可利用的缓冲区数目)。
试写出此时的生产者产者-消费者问题的描述。
消费者问题的描述。
解:
main()messagebuffern;
intin=0,out=0;
semaphoremutex=1,full=0,empty=n;
cobeginproducer();
15consumer();
coendproducer()while(生产未完成生产未完成)生产一个产品生产一个产品m;
P(empty);
P(mutex);
bufferin=m;
in=(in+1)modn;
V(mutex);
V(full);
consumer()while(消费未完成消费未完成)P(full);
b=bufferout;
out=(out+1)modn;
V(empty);
消费一个产品消费一个产品b;
164-21判断下列同步算法是否有错,如果有错,判断下列同步算法是否有错,如果有错,请指出错误原因并更正。
请指出错误原因并更正。
(1)三三个个进程进程并发并发活动活动的的进程进程流图流图如如下图下图所示所示,其其同步同步算法算法描述描述如下如下:
ssffPP11PP22PP33mai