6、某段表内容如下:
段号段首地址段长度
0120K40K
1760K30K
2480K20K
3370K20K
一逻辑地址为(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时刻系统状态
最大资源需求量已分配资源数量
ABCABC
P1559212
P2536402
P34011405
P4425204
P5424314
表2 T0时刻系统状态
ABC
剩余资源数233
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时刻系统状态
已分配资源数量最大资源需求量
R1R2R3R1R2R3
P1001001
P2200275
P3003665
P4115435
P5033065
R1R2R3
剩余资源数330
解:(共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
0x1C110
0x3F111
-000
0x5D100
-000
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
OutP:begin
repeat
wait(full2);
wait(mutex2);
Take a data from buffer2;
Add to printer controler;
signal(mutex2);
signal(empty2);
start printer;
until false
end
(评分标准:信号量设置2分,输入进程、计算进程、打印进程各2分)
11.在一个请求分页系统中,有一个长度为 5 页的进程,假如系统为它分配 3 个物理块 ,并且此进程的页面走向为 2,3,2,1,5,2,4,5,3,2,5,2。试用 FIFO 和 LRU 两种算法分别计算出程序访问过程中所发生的缺页次数。(10分)
解:FIFO:
2 3 2 1 5 2 4 5 3 2 5 2
第1页 2 2 2 5 5 5 3 3 3
第2页 3 3 3 2 2 2 5 5
第3页 1 1 1 4 4 4 2
缺页中断次数 = 6
LUR:
2 3 2 1 5 2 4 5 3 2 5 2
第1页 2 2 2 2 5 5 5 3
第2页 3 3 5 2 3 3 5
第3页 1 1 4 4 2 2
缺页中断次数 = 5
12. 进程 A1,A2,…,An 通过 K 个缓冲区向进程 B1,B2,…,Bm 不断地发送消息。发送和接收工作遵循如下规则:
1. 每个发送进程一次发送一个消息,写入缓冲区,缓冲区大小与消息长度一致;
2. 对每个消息,B1,B2,…,Bm 都需接收一次,读入各自的数据区内;
3. K 个缓冲区都满时,发送进程等待,没有可读的消息时,接收进程等待。
试用 wait 和 signal 原语操作组织正确的发送和接收操作。(10分)
解:
BEGIN
Integer Mutex, Avail[n], Full[m];
Integer I;
Mutex:=1;
FOR i:=1 TO m DO
BEGIN
Avail[I] := k;
Full[I] := 0;
END
PROCEDURE Send(K)
Integer I;
BEGIN