操作系统经典习题(含答案)part2资料 下载本文

#define true; # define false; Int flag[2]; flag[1]=flag[2]=false; enter-crtsec(i) int i; {

While(flag[1-i]) flag[i]=true; }

leave-crtsec(i) Int i; {

flag[i]=false; }

process I; … Enter-crtsec(i); In critical section;

Leave-crtsec(i);

8. 设系统有三种类型的资源,数量为 (4,2 ,2),系统中有进程 A,B ,C按如下顺序请求资源:

进程A申请 (3,2 ,1)

进程B申请 (1,0 ,1) 进程A申请 (0,1 ,0) 进程C申请 (2,0 ,0)

请你给出一和防止死锁的资源剥夺分配策略,完成上述请求序列,并列出资源分配过程,指明哪些进程需要等待,哪些资源被剥夺。

9. 进程 A1,A2 ,?,An 通过 K 个缓冲区向进程 B1, B2,?,Bm 不断地发送消息。发送和接收工作遵循如下规则:

(1) 每个发送进程一次发送一个消息,写入缓冲区,缓冲区大小与消息长度一致; (2) 对每个消息, B1,B2 ,?,Bm 都需接收一次,读入各自的数据区内; (3) K 个缓冲区都满时,发送进程等待,没有可读的消息时,接收进程等待。 试用 wait 和 signal 原语操作组织正确的发送和接收操作。