第4章习题及答案Word下载.docx
- 文档编号:17488122
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:12
- 大小:107.84KB
第4章习题及答案Word下载.docx
《第4章习题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《第4章习题及答案Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
I3、C2和P1。
4-9某系统进程调度状态变迁图如图4.31所示,请说明:
(1)什么原因会导致发生变迁2、变迁3、变迁4?
发生变迁2的原因:
时间片到
发生变迁3的原因:
请求I/O或其他系统调用
发生变迁4的原因:
I/O完成或其他系统调用完成
(2)在什么情况下,一个进程的变迁3能立即引起另一个进程发生变迁1?
一个进程的变迁3能立即引起另一个进程发生变迁的条件是,就绪队列非空。
(3)下列因果变迁是否可能发生?
若可能,需要什么条件?
a.2→1;
b.3→2;
c.4→1
a.2→1不需要条件,一定会发生。
b.3→2不可能发生。
c.4→1可能发生,条件:
就绪队列为空,或在可剥夺调度方式下,转变为就绪状态的进程优先级最高。
4-10某系统jincheng状态除了3个最基本状态外,又增加了创建状态、完成状态、因等消息而转变为等待状态3种新的状态,试画出增加新状态后的进程状态变迁图,并说明发生每一个变迁的原因。
进程状态变迁图:
进程状态变迁原因:
运行—>
等待:
请求I/O;
等待—>
就绪:
请求完成;
运行—>
时间片到;
就绪—>
运行:
CPU空闲,进程调度程序工作;
创建—>
进程创建;
等消息:
等待消息;
等消息—>
收到消息;
完成:
任务完成
4-12n个并发进程共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围,并说明每个取值的物理意义。
解:
(1)程序描述
main(){
intmutex=1;
//公共变量Q的互斥信号灯
cobegin
P1;
P2;
…Pn;
coend
}
Pi(){
…
P(mutex);
使用Q;
V(mutex);
(2)信号灯值的取值范围:
[(n–1),1]
(3)mutex每个取值的物理意义:
mutex=1说明没有进程进入临界段执行;
mutex=0说明有一个进程进入临界段执行;
mutex=1说明有一个进程进入临界段执行,另有一个进程正在等待进入;
mutex=(n–1)说明有一个进程进入临界段执行,另有(n–1)个进程正在等待进入。
4-13图4.32(a)、(b)分别给出了两个进程流图。
试用信号灯的p、v操作分别实现图4.32(a)、(b)所示的两组进程之间的同步,并写出程序描述。
(a)(b)
图4.32
图(a)解:
main(){
ints12=0,s13=0,s14=0;
//s12表示进程P2可否执行;
s13表示进程P3可否执行;
s14表示进程P4可否执行//
P1;
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)
ints13=0,s23=0;
//s13表示进程P1执行完成否;
s23表示进程P2执行完成否//
P1execute;
P2execute;
V(s23);
P(s23);
P3execute;
4-15如图4.34所示,get、copy和put三个进程共用两个缓冲区s和t(其大小每次存放一个记录),get进程负责不断地把输入记录输入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲区t中,而put进程负责从缓冲区t中取出记录打印。
试用PV操作实现这三个进程之间的同步,并写出程序描述。
图4.34
ints1=1,s2=0;
//s1表示缓冲区S是否为空,s2表示是否已满//
ints3=1,s4=0;
//s3表示缓冲区T是否为空,s4表示是否已满//
get;
copy;
put;
get(){
while
(1){
P(s1);
inputdatatobufferS;
V(s2);
copy(){
P(s2);
copydatafrombufferS;
V(s1);
P(s3);
inputcopy-datatobufferT;
V(s4);
put(){
P(s4);
outputdatatobufferS;
V(s3);
4-16什么是进程的互斥与同步?
同步和互斥这两个概念有什么联系和区别?
在操作系统中,当某一进程正在访问某一存储区域时,就不允许其他进程读出或者修改该存储区的内容,否则,就会发生后果无法估计的错误。
进程之间的这种相互制约关系称为互斥。
所谓同步,就是并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通信息称为进程同步。
同步和互斥这两个概念都属于同步范畴,描述并发进程相互之间的制约关系。
同步是指并发进程按照他们之间的约束关系,在执行的先后次序上必须满足这种约束关系。
而互斥是同步的一种特例,是指并发进程按照他们之间的约束关系,在某一点上一个时刻只允许一个进程执行,一个进程做完了,另一个进程才能执行,而不管谁先做这个操作。
4-22什么是线程?
线程和进程有什么区别?
线程也称为轻量级进程,它是比进程更小的活动单位,它是进程中的一个执行路径,一个进程可能有多个执行路径,即线程。
线程和进程的主要区别如下。
(1)线程是进程的一个组成部分,一个进程可以有多个线程,而且至少有一个可执行的线程。
(2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源;
线程是处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并没有任何资源。
(3)进程的多个线程都在进程的地址空间内活动。
这样,在以线程为单位进行处理机调度和切换时,切换时间较短;
而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及现场保护等问题,将导致切换时间变长和资源利用率下降。
(4)线程和进程一样,都有自己的状态和相应的同步机制,但是,由于线程没有自己单独的程序和数据空间,因而不能像进程那样将程序和数据交换到外存去。
(5)进程的调度和控制大多由操作系统的内核完成,而线程的控制既可以由操作系统内核完成,也可以由用户控制完成。
4-27试画出Linux系统的进程状态变迁,并说明这些变迁可能的原因。
画出Linux系统的进程状态变迁如图所示。
(1)进程创建
当系统或用户需要创建一个新进程时,调用fork()系统调用,被创建的新进程被置为就绪状态TASK_RUNNING。
(2)进程调度
当调度时机来到时,进程调度程序从进程运行队列中选择优先级最高的进程,将其投入运行,设置状态为运行状态。
(3)被抢占
正在CPU上运行的进程,当其优先级低于处于就绪状态的某一个进程的优先级时,它被抢占而被迫让出CPU的控制权,此时,该进程的状态转为就绪状态。
(4)进程等待
若正在运行的进程因等待某一事件而暂时不能运行下去时,进入相应的等待队列,设置为等待状态。
(5)进程唤醒
当某个进程等待的原因撤销时,该进程被唤醒,将其从等待队列中移出,进入就绪队列。
(6)进程终止
当正在运行的进程完成其任务时,通过exit()系统调用终止自己而进入终止状态。
4-29某公园有一个长凳,其上最多可以坐5个人。
公园里的游客遵循以下规则使用长凳:
(1)如果长凳还有空间可以坐,就坐到长凳上休息,直到休息结束,离开长凳。
(2)如果长凳上没有空间,就转身离开。
试用信号灯的P、V操作描述这一场景。
intcount=5;
//长凳上可坐的人数
intmutex=0;
//访问count的互斥信号灯
guesti;
//i=1,2,3,4……
guesti{
if(count==0){
V(mutex);
return;
}
count--;
休息;
Count++;
4-316个进程合作完成一项计算任务的并发描述如图4-38所示,程序中,s1、s2、s3、s4、s5、s6分别是同步信号灯,x、y、z是共享数据变量。
试给出变量z的最终结果,并画出6个进程合作的进程流图。
Z=12
4-32现有3个并发进程P1、P2和P3,如图4.39所示。
3个并发进程共享两个单缓冲区B1和B2。
进程P1负责不断从输入设备读数据,若读入的数据为正数,则直接送入B2,否则应先将数据送入B1,经P2取出加工后再送入B2,P3从B2中取信息输出。
请使用信号灯和P、V操作描述进程P1、P2、P3实现同步的算法。
缓冲区B1设置信号灯s1、t1,s1表示缓冲区B1是否空闲,t1表示缓冲区B1是否有数据,缓冲区B2设置信号灯s2、t2,s2表示缓冲区B2是否空闲,t2表示缓冲区B2是否有数据。
Main()
{
Ints1=s2=1;
Intt1=t2=0;
Cobegin
P1();
p2();
p3();
Coend
4-34某商场有一个地下停车场,有N个停车位,车辆只能通过一个指定的通道进出停车场,通道处只能容一辆车通过,请设计信号灯和P、V操作给出进、出车辆两种进程的程序描述。
main()
{
intcount1=count2=0;
/*计数器*/
intmutex1=mutex2=1;
/*两个计数器的互斥访问信号灯*/
intmutex=1;
/*通道互斥访问信号灯*/
cobegin
in();
out();
coend
in()
P(empty);
P(mutex1);
Count1++;
ifcount1==0P(mutex);
V(mutex1);
开车进地下停车场;
count1--;
ifcount1==0V(mutex);
out()
P(mutex2);
Count2++;
ifcount2==0P(mutex);
V(mutex2);
开车出地下停车场;
Count2--;
ifcount2==0V(mutex);
V(empty);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 答案