当前位置:首页 > 操作系统引论
第一章 操作系统引论
1. 操作系统的主要作用可表现为哪几个方面,其含义分别是什么? 2. 在OS中引入多道程序设计技术,带来了哪些好处? 3. 操作系统具有哪几大特征?它的最基本特征是什么?
4. 试在交互性与及时性方面,将分时系统与实时系统进行比较。 5. 操作系统用户接口中包括哪几种接口?它们分别提供给谁使用?
第二章 进程管理
1. 在操作系统中为什么要引入进程概念?它会产生什么样的影响? 2. 试从动态性、并发性和独立性上来比较进程和程序?
3. 试说明PCB的作用,为什么说PCB是进程存在的唯一标志? 4. 试说明进程在三个基本状态之间转换的典型原因。
5. 在进行进程切换时,所要保存的处理机状态信息主要有哪些?
6. 试从调度性、并发性、拥有资源和系统开销几个方面,对进程和线程进行比较。 7. 什么是用户级线程和内核级线程?并对它们进行比较。
8. 进程在运行时,存在着哪两种形式的制约?并举例说明之。 9. 什么是临界资源和临界区?
10. 同步机构应遵循哪些基本准则?为什么?
11. 试从物理概念上来说明记录型量和wait、signal操作。
12. 我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁已打
开。试写出开锁和关锁原语,并利用它们去实现互斥。 13. 试利用记录型信号量写出一个不会死锁的哲学家进餐问题的算法。 14. 在测量控制系统中的数据彩样任务,把所采集的数据送一单缓冲区,计算任务从
该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲的
同步算法。
15. 图2-1示出了一个从键盘输入到打印机输出的数据处理流图,其中键盘输入进
程通过缓冲区buffer1把输入数据传送给计算进程,计算进程把处理结果通过缓
冲区buffer2传送给打印进程。设上述两个缓冲区的大小分别是n1和n2,为实现输入进程与计算进程的同步,我们设置发一个互斥信号量mutex1,以及分别表示buffer1空和满的两个资源信号量empty1和full1;类似地,为实现计算进程和打印之间的同步,我们又设置buffer2的对应信号量mutex2、empty2及full2。试用类Pascal语言写出键盘输入进程、计算及打印进程间的同步算法。 输入进程 → buf1 → 计算进程 → buf2 → 打印进程
图2-1 从键盘输入到打印输出流程 16. 如何用管程来解决生产者-消费者问题? 17. 在单处理环境下,进程之间有哪几种通信方式?
-- 1 --
18. 在剥夺调度方式中,剥夺的原则有哪些?
19. 在操作系统中引起进程调度的主要因素有哪些?
20. 在批处理系统、分时系统和实时系统中,各采用哪几种进程调度算法? 21. 为什么说多级反馈队列能较好地满足各种用户的需要?.
22. 在按时间片轮转调度的算法中,在确定时间片大小时,应考虑哪些因素? 23. 何谓死锁?产生死锁的原因和必要条件是什么?
24. 在解决死锁问题的几个方法中,哪一种方法最容易实现?哪一种方法使资源的利
用率最高? 25. 请详细说明可通过哪些途径预防死锁?
26. 在银行家算法中,若出现下述的资源分配情况: Process Allocation Need Available P0 0 0 3 2 0 0 1 2 1 6 2 2 P1 1 0 0 0 1 6 5 0 P2 1 3 5 4 2 3 5 6 P3 0 3 3 2 0 6 5 2 P4 0 0 1 4 0 6 5 6 试问:① 该状态是否安全?
② 若进程P2提出请求Request(1,2,2)之后,系统能否将资源分配给它? 27. 试写出相应的程序来描述如下所示的前趋图。
S4
S2 S5 S7
S1
S3 S6
28. 假如有四道作业,它们的进入时间和运行时间由表3-3给出。 表3-3 四道作业的进入时间和运行时间
作业号 进入时间(时) 执行时间(小时)
1 10:00 0.4 2 10:10 1 3 10:20 0.6 4 10:30 0.2
在单道程序环境下,分别采用先来先服务和最短作业优先调度算法,试分别说明它
-- 2 --
们的调度顺序及平均周转时间?
29. 请用信号量解决以下的“过独木桥”问题:同一方向的行人可连续过桥,当某一方向有
人过桥时,另一方向的人必须等待;当某一方向无人过桥时,另一方向的人可以过桥。 30. 下面是用记录型信号量来描述前趋关系的算法,讨论它的正确性。如果是正确的,请证
明它;否则,请说明原因,并给出正确的算法。 begin p1 p2 var s:semaphore:=-1; parbegin begin p1; signal(s) end begin p2; signal(s) end p3 begin wait(s), p3 end parend
end
31. 设A、B两进程共享一个缓冲区Q,A向Q写入信息,B则从Q读出信息,讨论下面算法
的正确性。如果是正确的,请证明它;否则,请说明原因,并给出正确的算法。 begin
var s:semaphore:=0;
parbegin
A:begin B:begin repeat repeat
向Q写入信息; wait(s); signal(s); 从Q读出信息 until false; until false; end end parend end
32. 若P、Q为两个并发进程,共享一个物理资源(resource),下面给出P、Q对资源使用
实现互斥的算法:
var Pturn:boolean; begin
Pturn:=true; cobegin P:repeat
repeat until Ptrun; use resource; Pturn:=false; P passive
forever
Q:repeat repeat until Ptrun;
-- 3 --
end
use resource; Pturn:=true; P passive
forever
coend
33. 试问上述算法能否达到P、Q互斥地使用资源?若不能,则说明存在什么问题。 下述流程是解决两进程互斥访问临界区问题的一种方法。试从“忙则等待”、“空闲让进”、“有限等待”等三个方面讨论它的正确性。如果它是正确的,则证明之;如果它不正确,请说明理由。
program attemp; var c1,c2:integer; procedure p1;(*对第一个进程p1) begin
repeat
remain section 1; repeat c1:=1-c2 until c2<>0;
Critical Section;(*临界区*) c1:=1
until false
end;
procedure p2;(*对第二个进程p2) begin repeat
remain section 2; repeat c2:=1-c1 until c1<>0;
Critical Section;(*临界区*)
c2:=1 until false
end;
begin(*主程序*)
c1:=1; c2:=1; cobegin
p1;p2 (* 两个进程p1、p2开始并发执行*) coend
-- 4 --
end
34. 桌上有一空盘,允许存放一只水果,爸爸可向盘内放苹果,妈妈可向盘内放桔子,儿子
专等吃盘内的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者
取用,请用P、V操作实现爸爸、妈妈、儿子、女儿四个并发进程的同步与互斥。 35. 进程用户态图象(映象)由共享正文段、数据段和栈段组成。 (1)请指出C语言程序中的下列部分将位于哪一段中: a.外部变量。 b.局部变量 c.函数调用实参传递值 d. 用malloc()要求动态分配的存储区。 e.常数值,例如1995,3.1415, ”string”。 f.进程间通信使用的共享内存段。(9分)
(2)进程用户态图象中,哪些部分是可共享的,哪些部分是不可共享的?
36. [Dijkstra 1965]Sleepy Barber Problem:一个理发店由一个有几张椅子的等候室和一
个放有一张椅子的理发室组成。若没有要理发的顾客,则理发师就去睡觉;若一个顾客
走进理发店且所有的椅子都被占用了,则该顾客离开理发店;否则,若理发师正在为人理发,则该顾客就找一张空椅子坐下等待;若理发师在睡觉,则顾客唤醒他。试用信号量实现这一同步问题。
37. [Patil 1971]Cigarette Smokers Problem。考虑有三个吸烟者进程和一个经销商进程
的系统。每个吸烟者连续不断地做烟卷并抽他做好的烟卷。做一支烟卷需要烟草、纸和
火柴三种原料。这三个吸烟者分别掌握有烟草、纸和火柴。经销商源源不断地提供上述三种原料,但他只将其中的两种原料放在桌上,具有另一种原料的吸烟者就可做烟卷并抽烟,且在做完后给经销商发信号,然后经销商再拿出两种原料放在桌上,如此反复。试设计一个同步算法来描述他们的活动。 38. 考虑由相同类型的四个资源组成的系统,它们被三个进程共享,而且每个进程至多需要两个资源,请问该系统是否可能发生死锁?为什么?
39. 考虑由n个进程共享的具有m个同类资源的系统,每个进程一次只能申请、释放一个资源。证明如果下列两个条件满足,则进程不会死锁。 (1)每个进程的最大需求在1和m之间; (2)最大资源需求之和小于m+n。
-- 5 --
共分享92篇相关文档