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.请求和保持条件
④A.线性增长条件 C.无序释放条件
B.环路等待条件
D.有序请求条件
(4)实际操作系统,要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用D策略。
A.预防死锁 B.避免死锁 C.检测死锁 D.三者的混合 (5)在下列死锁的解决办法中,属于预防死锁策略的是B。 A.银行家算法 C.死锁检测法 二、填空题
(1)资源的一次分配法和有序分配法分别破坏了产生死锁的必要条件中的请求和保持条件和环路等待条件,它们属于预防死锁,而银行家算法属于避免死锁。 (2)作业调度是从后备作业队列中选出一 批 作业,为它们分配资源,并为它们创建进程。
(3)最有利于提高系统吞吐量的作业调度算法是短作业优先算法;能对紧急作业进行及时处理的调度算法是高优先权优先算法;能较好的满足短作业用户要求,又能适当的照顾长作业,及照顾作业到达次序的调度算法是高响应比优先算法。 (4)在高响应比优先的调度算法中,当各个作业的等待时间相同时,短作业将得到优先调度;当各个作业要求的运行时间相同时,等待时间最长者将得到优先调度。
三、应用题第三章
B.资源有序分配法 D.资源分配图化简法
习题
运行时间(小时)
2 1
1.设有三道作业,它们的提交时间和运行时间如下表: 作业号 1 2 3
提交时刻(时) 10.00 10.10 10.25
0.25
求:试给出下面两种调度算法下,作业的执行顺序、平均周转时间和平均带权周转时间。
(1)先来先服务FCFS调度算法
(2)短作业优先SJF调度算法
2. 设有四道作业,它们的提交时间和运行时间如下表: 作业号 提交时刻(时) 1 2 3
运行时间(小时) 2.0 0.5 0.1
8:00 8:50 9:00