内容发布更新时间 : 2024/12/25 12:49:18星期一 下面是文章的全部内容请认真阅读。
#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 原语操作组织正确的发送和接收操作。