第四章  习题及解答
4-3 什么是进程?进程与程序的主要区别是什么?
答:进程是一个具有一定独立功能的程序关于某个数据集合的一次活动。进程与程序的主要区别是:
(1) 程序是指令的有序集合,是一个静态概念。进程是程序在处理机的一次执行过程,是一个动态概念。进程是有生命期的,因创建而产生,因调度而执行,因得到资源而暂停,因撤消而消亡;
(2) 进程是一个独立的运行单元,是系统进行资源分配和调度的独立单元,而程序则不是。
(3) 进程与程序之间无一一对应关系。一个程序可以对应多个进程,一个进程至少包含一个程序。
4-4 图4.2标明程序段执行的先后次序。其中:I表示输入操作,C表示计算操作,P表示打印操作,下角标说明是对哪个程序进行上述操作。请指明:
(1)哪些操作必须有先后次序? 其原因是什么 
(2)哪些操作可以并发执行? 其原因又是什么
答:(1)     InCnPn之间有先后顺序要求,这是由于程序本身的逻辑要求。使用同一设备的不同的程序段,如C1…Cn,I1…In,P1…Pn,之间有先后顺序要求,这是由于设备某一时刻只能为一个程序服务。
(2) 不同程序使用不同设备时,占用不同设备,无逻辑关系,可以并发执行,如I2和C1;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. 32  c. 4→1
答:a. 2→1  不需要条件,一定会发生。
b. 32  不可能发生。
c. 4→1  可能发生,条件:就绪队列为空,或在可剥夺调度方式下,转变为就绪状态的进程优先级最高。
4-10某系统jincheng 状态除了3个最基本状态外,又增加了创建状态、完成状态、因等消息
而转变为等待状态3种新的状态,试画出增加新状态后的进程状态变迁图,并说明发生每一个变迁的原因。
答:进程状态变迁图:
进程状态变迁原因:
    运行—>等待:请求I/O; 等待—>就绪:请求完成;
运行—>就绪:时间片到; 就绪—>运行:CPU空闲,进程调度程序工作;
创建—>就绪:进程创建; 运行—>等消息:等待消息;
等消息—>就绪:收到消息;运行—>完成:任务完成
4-12 n个并发进程共用一个公共变量Q,写出用信号灯实现n个进程互斥时的程序描述,给出信号灯值的取值范围, 并说明每个取值的物理意义。
解:(1) 程序描述
main ( ){
int mutex=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(){
int s12=0,s13=0,s14=0; // s12 表示进程P2可否执行;s13表示进程P3可否执行;s14表示进程P4可否执行//

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。