第二章
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
则求值过程的前趋图为:
S1S2S4S3S5S6
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)算法时,画出调度过程,并计算平均周转时间和平均带权周转时间。(参考P91-92) 进程 P1 P2 P3 P4 P5 就绪时刻 0 2 4 6 8 服务时间 2 5 3 6 1 解:(1) 采用FCFS算法时,调度过程如下表所示: 进程 P1 P2 P3 P4 P5 就绪时刻 0 2 4 6 8 服务时间 2 5 3 6 1 开始执行时间 0 2 7 10 16 完成时间 2 7 10 16 17 周转时间 2 5 6 10 9 带权周转时间 1 1 2 5/3 9 平均周转时间= 平均带权周转时间=
(2)采用最短进程优先算法时,调度过程如下表所示: 进程 P1 P2 P3 P4 P5 就绪时刻 0 2 4 6 8 服务时间 2 5 3 6 1 开始执行时间 0 2 7 11 10 完成时间 2 7 10 17 11 周转时间 2 5 6 11 3 带权周转时间 1 1 2 11/6 3 平均周转时间= 平均带权周转时间=
2、系统中有5个进程,每个进程的运行时间和到达时刻如下表所示。若采用时间片轮转调度算法(时间片为1),画出进程执行过程,并计算平均周转时间和平均带权周转时间。(参考P95)
进程 P1 P2 P3 P4 P5 到达时刻 0 1 2 3 4 运行时间 5 1 2 1 3 解:进程执行过程如下:
P1P2P3P4P5时间:0123456789101112
平均周转时间:(11+1+6+2+8)/5 = 5.6 平均带权周转时间:(11/5+1/1+6/2+2/1+8/3)/5≈2.17
3、系统中有5个进程,每个进程的运行时间、优先级和到达时
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库复习题_问答题部分New (2)在线全文阅读。
相关推荐: