《操作系统原理》
buffer-in(in1):=nextin; in1 :=(in1+1) mod M; signal (mutex-in); signal (full-in); until false; end
compute:begin
repeat
wait(full-in); wait(mutex-in); nextc:=buffer-in(out1); out1 :=(out1 + 1) mod M; signal (mutex-in); signal (empty-in); wait(mutex-out); wait(empty-out); buffer-out(in2):=nextc; in2 :=(in2+1) mod N; signal (mutex-out); signal (full-out); until false; end
process out:begin repeat
wait(full-out); wait(mutex-out);
nexto:=buffer-out(out2);
- 15 -
《操作系统原理》
out2 :=(out2 + 1) mod N; signal (mutex-out); signal (empty-out); output the item in nexto; until false; end
3、某数据库有一个写进程,N个读进程,他们之间读写操作的互斥要求是: 写进程正在写该数据库时,不能有其他进程读该数据库。 写进程之间不互斥,可以同时读该数据库。
如果有若干进程正在读该数据库,一个写进程正在等待写,则随后欲读的进程也不能读该数据库,需等待写进程先写。 答
:
READ : While wc = 1 do skip; ------若有写进程请求,则后续读不响应 P(mutex); Rc:=rc + 1; If rc = 1 then P(wr); -----若是第一个读进程,则要看有无写进程 V(mutex); READING P(mutex); Rc := rc -1; If rc = 0 then V(wr); -------若所有读进程都执行完,可以让其它进程读写 V(mutex); 。 WRITE Wc := 1; P(wr); WRITING; Wc := 0; V(wr); a
4、有一个仓库,可以存放A和B两种产品,仓库的存储空间足够大,但要求: (1)一次只能存放一种产品(A或B); (2)-N
- 16 -
《操作系统原理》
试描述A,B入库的过程
答:设:mutex:=1;sa=M-1;sb=N-1;
A Repeat P(sa); P(mutex); Put A v(mutex); V(sb) Until false B Repeat P(sb); P(mutex); Put b V(mutex); V(sa) Until false - 17 -
《操作系统原理》
第三章处理机调度与死锁
本章要点:
1.进程调度、进程调度算法(先来先服务,优先数,时间片轮转,多级队列反馈)、选择进程调度算法的准则、进程调度的时机、进程的切换、调度过程; 2.死锁的定义、死锁产生的原因、有关死锁的结论;
3.产生死锁的四个必要条件(互斥使用资源,占有并等待资源,不可抢夺资源,循环等待资源);
4.资源分配图(资源类,资源实例,占有边,等待边)、死锁定理、资源分配图化简 5.解决死锁的方法:死锁的防止;死锁的避免;死锁的检测;死锁的解除。 本章目标:
1. 熟悉处理机三级调度概念和处理机调度模型,掌握作业的状态和作业调度的功能。 2. 掌握进程调度的方式和功能,熟悉调度方式和算法的选择准则,掌握七种调度算法及
适合范围。
3.掌握死锁的定义和产生死锁的原因,掌握死锁的四个必要条件;熟悉预防死锁的方法, 4.熟练掌握银行家算法及其在死锁避免中的应用;掌握资源分配图的简化及其死锁定理,熟悉解除死锁的方法 本章重点:
1.进程调度、进程调度算法(先来先服务,优先数,时间片轮转,多级队列反馈)、选择进程调度算法的准则、进程调度的时机、进程的切换、调度过程 2.死锁的定义、死锁产生的原因、有关死锁的结论
3.资源分配图(资源类,资源实例,占有边,等待边)、死锁定理、资源分配图化简 4.死锁的避免(安全状态,银行家算法),死锁的检测(资源分配表、进程等待表)
一、单项选择题:
1,设有三个作业J1,J2,J3同时到达,运行时间分别为T,T2,T3,且T≤T2 ≤ T3。若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为( C )。 A,T1+T2+T3 B,1/3( T1+T2+T3 ) C, T1+ 2/3T2 + 1/3T3 D, T1+ 1/3T2 + 2/3T3
- 18 -
《操作系统原理》
2、在操作系统中,死锁出现是指(C )
A,计算机系统发生重大故障 B,资源数目远远少于进程数 C,若干进程因竞争资源而无限等待其他进程释放已占有的资源 D,进程同时申请的资源数超过资源总数
3、.若系统有三个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是(B )
A,9 B,10 C,11 D,12
4、在所学的调度算法中,对所有进程和作业都是公平合理的调度算法是(A);最有利于提高系统吞吐量的作业调度算法是(B);能兼顾作业等待时间和作业执行时间调度算法是(C);最有利于提高资源的使用率、能使短作业、长作业及交互作业用户都比较满意的调度算法是(D);为实现人机交互作用应采用调度算法是(E);能对紧急作业进行及时处理的调度算法是(F)。 (A1,B2,C5,D4,E3,F6)
A,B,C,D:(1)FCFS调度算法;(2)短作业优先调度算法;(3)时间片轮转法;(4)多级反馈队列调度算法;(5)高响应比优先算法;(6)基于优先权的剥夺调度算法。
5、产生死锁的基本原因是(A)和(B),产生死锁的四个必要条件是互斥条件(C),不剥夺条件和(D)。 (A2,B1,C3,D2)
A:(1)资源分配不当;(2)系统资源不足;(3)作业调度不当;(4)资源的独占性。 B:(1)进程推进顺序非法;(2)进程调度不当;(3)系统中进程太多;(4)CPU运行太快。 C:(1)请求和阻塞条件;(2)请求和释放条件;(3)请求和保持条件;(4)释放和阻塞条件;(5)释放和请求条件。
D:(1)线性增长条件;(2)环路条件;(3)无序释放条件;(4)有序请求条件;(5) 无序请求条件。
6、预防死锁的论述中,( D)条是正确的论述。
A,由于产生死锁的基本原因是系统资源不足,因而预防死锁的有效方法,是根据系统规模,配置足够的系统资源。
B,由于产生死锁的另一种基本原因是进程推进顺序不当,因而预防死锁的有效方法,是使进程的推进顺序合法。
C,因为只要系统不进入不安全状态,便不会产生死锁,故预防死锁的有效方法,是防止系统进入不安全状态。
D,可以通过破坏产生死锁的四个必要条件之一或其中几个的方法,来预防发生死锁。
- 19 -