复习题_问答题部分New (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章

1、已知一个求值公式(3A+2B)/(A+5B2+C),若A、B、C已赋值,试画出该公式求值过程的前趋图。

解:令S1:X1 = 3A;

S2:X2 = 2B;

S3:X3 = X1+X2;

S4:X4 = 5B2;

S5:X5 = A+X4+C;

S6:X6 = X3/X5

则求值过程的前趋图为:

2、已知一个求值公式(B2+AB)/(5B+A),若A、B已赋值,试画出该公式求值过程的前趋图。

解:令 S1:X1 = B2;

S2:X2 = AB;

S3:X3 = X1 + X2;

S4:X4 = 5B;

S5:X5 = X4 + A;

S6:X6 = X3 / X5。

则求值过程的前趋图为:(自己画出)

3、写出实现两个进程单向同步问题的伪码。(参考讲义)

3、写出通过信号量实现生产进程和消费进程(单缓冲区)双向同步的伪码。(参考讲义)

解:

定义信号量:

var s1,s2: semaphore :=1,0;

生产进程伪码:

Process P:

begin

while(true) do

begin

生产一个产品;

wait(s1); //P操作,等待可以生产的信号量

将产品放入缓冲区。。。。。。//其他操作

singal(s2);//V操作,发送可以消费的信号量end

end

消费进程伪码:

Process C:

begin

while(true) do

begin

wait(s2); //P操作,等待可以消费的信号量

从缓冲区中取出产品进行消费。。。。。。//其他操作

singal(s1); //V操作,发送可以生产的信号量end

end

4、写出通过信号量实现进程1和进程2互斥访问共享资源(临界资源)的伪码。(参考讲义)

解:定义信号量:

var s: semaphore :=1;

访问资源进程1伪码:

Process P1:

begin

while(true) do

begin

wait(s); //P操作,申请访问资源权限的的信号量

临界区代码; //其他访问资源操作

singal(s);//V操作,释放访问资源权限的信号量end

end

访问资源进程2伪码:(同P1类似)

Process P2:

begin

while(true) do

begin

wait(s); //P操作,申请访问资源权限的的信号量

临界区代码; //其他访问资源操作

singal(s); //V操作,释放访问资源权限的信号量end

end

5、写出具有缓冲池(n个缓冲区)的生产者-消费者问题的伪码。(参考讲义、教材)

6、写出公共汽车司机和售票员同步问题的伪码。(参考讲义)

解:信号量定义

var s1,s2:semaphore:=0,0;

//s1为控制能否行车的信号量

//s2为控制能否开门的信号量

司机进程:

Process Driver:

begin

while(true) do

begin

wait(s1);

加油行车;

到站停车;

singal(s2);

end

end

售票员进程:

Process Conductor:

begin

while(true) do

begin

关车门;

singal(s1);

售票;

wait(s2);

开车门;

end

end

7、读者-写者同步问题(参考讲义和教材)

第三章

1、系统有5个进程,其就绪时刻(指在该时刻已经在就绪队列中就绪)、服务时间如下表所示。当分别采用先来先服务(FCFS)和短进程优先(SPF)算法时,画出调度过程,并计算平均周转时间和平均带权周转时间。(

平均周转时间=

平均带权周转时间=

平均周转时间= 平均带权周转时间

=

2、系统中有5个进程,每个进程的运行时间和到达时刻如下表所示。若采用时间片轮转调度算法(时间片为1),画出进程执行过程,P95)

解:进程执行过程如下:

时间:

P1P2P3P4P5

平均周转时间:(11+1+6+2+8)/5 = 5.6 平均带权周转时间:(11/5+1/1+6/2+2/1+8/3)/5≈2.17

3、系统中有5个进程,每个进程的运行时间、优先级和到达时

刻如下表所示。若采用抢占式优先级调度算法(优先级越大越优先执行)

4、假定系统中有三个进程P1、 P2和P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得5台、2台和2台磁带机,如下表所示:

(1) 该状态是否是安全状态?请说明理由。

解:T0时刻,系统是处于安全状态,因为此时的空闲磁带机资源为3,存在一个安全序列,即只要系统按此进程序列分配磁带机资源,就能够使三个进程都顺利完成。(为什么?)

(2) 若到达一新进程P4,请求1台磁带机,其最大需求为4台,是否可以分配?请说明理由。(参考P108)

解:可以进行资源分配。因为将1台磁带机分配给P4后,尚有2台空闲磁带机,存在一个安全序列,即只有系统按此进程序列分配磁带机资源,就能够使四个进程都顺利完成。(为什么?)

5、

设系统中有3种类型的资源(A ,B ,C)和5个进程P1、P2、P3、P4、P5,A 资源的数量为17,B 资源的数量为5,C 资源的数量为20,在T0时刻系统状态如下表所示。系统采用银行家算法实施死锁避免策略。(参考P110)

相关文档
最新文档