进程A:(0,1,0)(不满足) (3,2,1) A的所有资源被剥夺,A处于等待
进程C:(2,0,0) (1,2,1) C,B完成之后,A可完成。
4.设公共汽车上,司机和售票员的活动分别是: 司机: 启动车辆 售票员: 上乘客 正常行车 关车门 到站停车 售票 开车门 `下乘客 在汽车不断地到站,停车,行使过程中,这两个活动有什么同步关系?并用 wait和signal 原语操作实现它们的同步。 解:BEGIN integer stop,run;
Stop:=0; Run:=0; COBEGIN
Driver: BEGIN
L1: wait(run);
启动车辆;
正常行车; 到站停车;
signal(stop); Goto L1;
END
Conductor: BEGIN
L2: 上乘客; 关车门; signal(run); 售票;
wait(stop); 开车门; 下乘客; Goto L2;
END
COEND
END
5、某虚拟存储器的用户编程空间共321KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:
页号 1 2 3 4 物理块号 5 10 4 7 则逻辑地址0A5C(H)所对应的物理地址是什么?
答:逻辑地址0A5CH)所对应的二进制表示形式是:0000 1010 0101 1100 ,由于1K=210,下划线部分前的编码为000010,表示该逻辑地址对应的页号为3查页表,得到物理块号是4(十进制),即物理块地址为:0001 0010 0000 0000 ,拼接块内地址0000 0000 0101 1100,得0001 0010 0101 1100,即125C(H)。
6、某段表内容如下:
段号 0 1 2 3 段首地址 120K 760K 480K 370K 段长度 40K 30K 20K 20K 一逻辑地址为(2,154)的实际物理地址为多少?
答:逻辑地址(2154)表示段号为2,即段首地址为480K,154为单元号,则实际物理地址为480K+154。
7、设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表1和表2所示。(共10分)
系统采用银行家算法实施死锁避免策略。
① T0时刻是否为安全状态?若是,请给出安全序列。
② 在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么? ③ 在②的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么? ④ 在③的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么? 表1 T0时刻系统状态
最大资源需求量 A P1 P2 P3 P4 P5 5 5 4 4 4 B 5 3 0 2 2 C 9 6 11 5 4 A 2 4 4 2 3 已分配资源数量 B 1 0 0 0 1 C 2 2 5 4 4 表2 T0时刻系统状态
剩余资源数 A 2 B 3 C 3 8.系统中有五个进程P1、P2、P3、P4、P5,有三种类型的资源:R1、R2、和R3。在T0时刻系统状态如表所示。若采用银行家算法实施死锁避免策略,回答下列问题: (共9分,每小题3分)
1. T0时刻是否为安全状态?为什么? 2. 若这时P4请求资源(1,2,0),是否能实施资源分配?为什么? 3. 在上面的基础上,若进程P3请求资源(0,1,0),是否能实施资源分配?为什么?
T0时刻系统状态
P1 P2 P3 P4 P5
剩余资源数
已分配资源数量 R1 R2 R3 0 0 1 2 0 0 0 0 3 1 1 5 0 3 3 最大资源需求量 R1 R2 R3 0 0 1 2 7 5 6 6 5 4 3 5 0 6 5 R1 3 R2 3 R3 0 解:(共9分,每小题3分)
1. T0时刻是安全的,安全序列为:P1,P4,P5,P2,P3 2. P4请求资源(1,2,0),根据银行家算法,预分配后系统是安全的,安全
序列为:P1,P4,P5,P2,P3 3. P3请求资源(1,1,0),根据银行家算法,预分配后系统不安全,所以不
能实施资源分配。 9.一个进程的大小占5个页面,每页的大小为1K,系统为它分配了3个物理块。当前进程的页表如图所示:(共8分) 块号 存在位P 访问位R 修改位M 0x1C 1 1 0 0x3F 1 1 1 - 0 0 0 0x5D 1 0 0 - 0 0 0
1. 有那些页面不在内存?(2分)
2. 请分别计算进程中虚地址为0x3B7、0x12A5、0x1432单元的物理地址
(用十六进制表示),并说明理由。 (6分)
解:(共8分)
不在内存的是第2和4页(按页号),或第3和5页(按序号)。 (2分) 0x3B7的物理地址=0x 73 B7 (2分)
0x12 A5的物理地址=0x 176 A5,缺页,换出第三页。 (2分) 0x1432地址越界,出错。 (2分) 10.系统运行有三个进程:输入进程、计算进程和打印进程,它们协同完成工作。输入进程和计算进程之间共用缓冲区buffer1,计算进程和打印进程之间共用缓冲区buffer2。输入进程接收外部数据放入buffer1中;计算进程从buffer1中取出数据进行计算,然后将结果放入buffer2;打印进程从buffer2取出数据打印输出。
用算法描述这三个进程的工作情况,并用wait和signal原语实现其同步操作。(共8分) 解:(共8分)
解答:输入进程、计算进程和打印进程之间的同步问题描述如下:
var:mutex1,mutex2,empty1,empty2,full1,full2:=1,1,1,1,0,0; InP:begin repeat
wait(empty1); wait(mutex1);
input a data from keyboard;
Add to buffer1; signal(mutex1); signal(full1); until false end
CalP:begin repeat
wait(full1); wait(mutex1);
Take a data form buffer1; Add to ch1; signal(mutex1); signal(empty1); calculate ch1; wait (empty2); wait(mutex2);
Take a data form ch1; Add to buffer2; signal (mutex2); signal (full2);
until false end