1-4章 习题 联系客服

发布时间 : 星期三 文章1-4章 习题更新完毕开始阅读

V(mutex1); 选购商品;

P(mutex2); 结账,并归还篮子; V(mutex2); V(S);

end

3.独木桥问题。某条河上只有一座独木桥,以便行人过河。现在河的两边都有人要过桥,按照下面的规则过桥。为了保证过桥安全,请用P、V操作分别实现正确的管理。

Var S, S1, S2: semaphore; rc1,rc2: integer; S, S1, S2:=1; rc1,rc2:=0; process (E-W)i: begin

rc1:=rc1+1; if rc1=1 then P(S); V(S1); 过桥; P(S1); rc1:=rc1-1; if rc1=0 then V(S); V(S1);

P(S1);

end process (W-E)j: begin

rc2:=rc2+1; if rc2=1 then P(S);

P(S2);

V(S2); 过桥; P(S2); rc2:=rc2-1; if rc2=0 then V(S); V(S2);

end

过桥的规则是:同一方向的可连续过桥,某方向有人过桥时另一方向的人要等待。

4. 拣棋子问题。生产围棋的工人不小心把相等数量的黑棋子和白棋混装在一个箱子里,先要用自动分拣系统把黑棋子和白棋子分开,该系统由两个并发执行的进程组成,系统功能如下:

(1)进程A专门拣黑子,进程B专门拣白子;

(2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一进程去拣子; (3)当一个进程拣了一个子(黑或白)以后,必让另一个进程拣一个子(黑或白) 。

请用P、V操作管理两个并发进程,使其能正确实现上述功能。 Var S1, S2: semaphore:=1,0; process A: begin repeat

拣黑子; V(S2);

P(S1);

until false; end process B: begin repeat

P(S2);

拣白子; V(S1);

until false end

5.某寺庙有小、老和尚若干,有一水缸,由小和尚提水入缸供老和尚饮用。水缸可以容纳10桶水,水取自同一井水。水井狭窄,每次只能容一个桶取水。水桶总数为3个。每次入、出水缸仅一桶,且不可同时进行。试给出有关取水、入水的算法描述。

Var mutex1, mutex2, empty, full, count: semaphore; mutex1:=1; mutex2:=1; empty:=10; full:=0; count:=3; process 小和尚: begin repeat

P(count); P(mutex1); 从井中取水; V(mutex1); P(mutex2); 送水入水缸; V(mutex2); V(count); V(full);

P(empty);

until false; end process 老和尚: begin repeat

P(count); P(mutex2);

P(full);

从缸中取水; V(mutex2); V(empty); V(count);

until false; end

第三章 习题

一、选择题

(1)在三种基本类型的操作系统中,都设置了 C ,在批处理系统中还应设置B,在分时系统中除了 C ,通常还设置了 D 。 A.剥夺调度 B.作业调度 C.进程调度 D.中级调度

(2)我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用 B ;为照顾紧急作业的用户,应采用E;为能实现人机交互作用采用C;而能使短作业、长作业及交互作业用户都比较满意时,应采用D。 A.FCFS调度算法 C.时间片轮转法

B.短作业优先调度算法

D.多级反馈队列调度算法

E.基于优先权调度算法

(3)产生死锁的基本原因是B竞争资源和A进程推进顺序不当,产生死锁的四个必要条件是互斥条件C请求和保持条件,不剥夺条件和B环路等待条件。 ①A.资源分配不当 C.作业调度不当

B.竞争资源

D.资源的独占性

②A.进程推进顺序不当 B.进程调度不当 C.系统中进程太多 ③A.请求和阻塞条件

D.CPU运行不快 B.请求和释放条件 D.释放和阻塞条件

C.请求和保持条件