操作系统1-3章习题讲解 操作系统期中考试讲评
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chap1 操作系统引论
补充3:分时系统的出现让用户感受到了 什么好处?典型的分时系统是什么?
解答:1)同时性或多路性:多用户同时操作、使 用计算机 2)独占性:各终端用户感觉到自己独占了 计算机; 3)及时性:用户请求在较短时间内相应; 4)交互性:用户能计算机进行人机对话。 典型的分时系统:UNIX
作业问题: 1)认为缓冲区满后会溢出(或缓冲区中原有 数据被覆盖)。 2)认为消费者(或生产者)阻塞就是死锁。 3)只下结论,缺少分析过程。
Chap2 进程管理
Producer: (2)Wait(empty) 成功,继续 repeat (当缓冲区放 wait(empty) 满后,生产者 进程也阻塞) wait(mutex) … signal(mutex) signal(mutex) until false Consumer: (1)Wait(full)不成 repeat 功,消费者进程 阻塞 wait(full) wait(mutex) … signal(mutex) signal(empty) until false
Chap2 进程管理
补充3:用wait-signal操作解决下图之同步问题:
get copy put
f
s
t
g
Var Sfull, Sempty, Tfull, Tempty:semphore:=0,1,0,1;
Chap2 进程管理
Get进程: Copy进程: Put进程:
Begin
Repeat Wait(Sempty); Get(f, s); Signal(Sfull);
Chap1 操作系统引论
补充2:操作系统是如何从单道批处理, 发展到多道批处理,再到分时系统的,随 之出现了哪些技术。 解答:1)单道多道批处理:提高资源利 用里,产生了多道程序设计技术、通道、 中断、作业管理、处理机管理、存储管理、 文件系统。 2)批处理分时系统:提高系统的交 互能力,产生了时钟技术。
Chap2 进程管理
10:进程切换时保存CPU状态信息包含哪 些?(P81) 解答:1)通用寄存器 2)指令计数器 3)程序状态字 4)用户栈指针 注意:处理机状态是PCB的一部分,它描 述了进程在处理机上执行时的各种信息; 当进行进程切换时,处理机中的这些信息 统统要被其它进程覆盖,所以必须保存。
操作系统
Operating System
第1~3章 习题讲解 2010 年春
Chap1 操作系统引论
1. OS的主要目标是什么? (P33) 解答:1)方便性:方便用户、程序员; 2)有效性:提高软硬件资源利用率; 3)可扩充性:便于扩充功能和性能; 4)开放性:增加系统兼容性和互操作 性。
Chap1 操作系统引论
Chap2 进程管理
互换signal会不会死锁? Consumer: Producer: (2)Wait(full) repeat repeat 成功,继续 wait(full) wait(empty) wait(mutex) (3)wait(mutex) wait(mutex) 失败,消费者阻 … … 塞 signal(full) (1)Signal(full) signal(mutex) 成功 signal(empty) signal(mutex) until false until false
Var barber, customers, mutex:semaphore:=1,0,1; 改进版 int custCount=0; Customers Repeat Barbar wait(mutex); Repeat if (cust_count=N) then wait(mutex); signal(mutex); if (custCount=0 ) then leave…..; signal (mutex); else Sleep….; custCount=custCount+1; wait(customers); if(custCount=1) then else signal(customers); signal(mutex); signal(mutex); Cut hair; wait(barber); signal(barber); Get hair cut …. end if wait(mutex); Until false; custCount=custCount-1; signal(mutex); Until false;
Producer: (1)Wait(empty) Consumer: (2)Wait(mutex) 成功,继续 成功,继续 repeat repeat wait(empty) wait(mutex) wait(mutex) wait(full) (3)Wait(mutex) (4)Wait(full)失 失败,生产者 败,消费者 … … 进程阻塞 进程阻塞 signal(mutex) signal(mutex) signal(full) signal(empty) until false until false
Chap2 进程管理
21:如何使用信号量机制实现多个进程 对临界资源的互斥访问?(P82) 解答: 1)设臵记录型信号量mutex,初值为1。 2)将访问临界资源的代码放臵于 wait(mutex); 和 signal(mutex)之间。
Chap2 进程管理
23:在生产者—消费者问题中,如果缺 少了signal(full)和signal(empty),对执行 结果有何影响? (P82)
Chap2 进程管理
24:在生产者—消费者问题中,如果将 两个wait操作即wait(full)和wait(mutex)互 换位臵,或者将signal(mutex)与signal(full) 互换位臵,结果会如何?(P82)
1)认为signal互换会引起死锁。
2)缺少分析过程。
作业问题:
Chap2 进程管理
Chap1 操作系统引论
22. 基于微内核的OS中,应用了哪些新技 术? (P33) 解答:客户/服务器技术、面向对象技术。
Chap1 操作系统引论
补充1:什么是多道程序设计? 实现多道 程序设计的计算机需要那些必不可少的硬 件支持? 采用多道程序设计会带来什么好 处? 解答:在计算机内存中同时存放几道相互独 立的程序,它们在管理程序的控制下相互 穿插地运行,共享CPU和外设等资源。 硬件支持:中断技术 优点:资源的利用率、系统吞吐量大。
Chap2 进程管理
课堂练习
有一个阅览室,共有100个座位,读者进入时必 须先在一张登记表上登记,该表为每一座位列一表 目,包括座号和读者姓名等,读者离开时要消掉登 记的信息,试问:
Begin
Repeat Wait(Sfull); Wait(Tempty); Copy(s, t);
Begin
Repeat Wait(Tfull); Put(t, g); Signal(Tempty);
Until false;
end
Signal(Sempty);
Signal(Tfull); Until false; end
解答:没有。都要经过中间状态: 1.等待状态的进程获得所需的资源后, 必须转入就绪状态,直到获得CPU后才能 运行。 2.进程在运行过程中才会请求资源,才 有可能因请求不到资源而转入等待状态。
Chap2 进程管理
补充2:一个状态转换的发生,是否一定导 致另一个转换发生,列出所有的可能。
解答:不一定。可能的情况如下: 1)执行阻塞 导致 就绪执行(就绪队列不空) 2)执行就绪 导致 就绪执行 3)阻塞就绪 可能导致 就绪执行 (在抢占方式下,该进程优先级高于当前进程和 就绪队列中的所有进程)
Chap2 进程管理
6:从动态性、并发性和独立性上比较进程和 程序.(P81)答案见P37-38 7:说明PCB作用,为什么PCB是进程存在唯一 标志.(P81) 解答:1)PCB 是进程实体的一部分,是操作系统 中最重要的记录型数据结构。PCB 中记录了操 作系统所需的用于描述进程情况及控制进程运 行所需的全部信息。 2)在进程的整个生命周期中,系统总是 通过其PCB 对进程进行控制,系统是根据进程 的PCB 而不是任何别的什么而感知到该进程的 存在的。
解答: 1)wait操作意味着请求一个单位的资源; 若减1后S.value<0时,表示资源已分配完 毕,故进程调用block原语进行自我阻塞, 并被插入到等待队列中。 2)signal操作意味着释放一个单位的资源; 若加1后S.value<=0,表示等待队列中仍有 进程等待该资源,故进程调用wakeup原 语唤醒一个等待进程。
Var barber, customers, mutex:semaphore:=1,0,1; int custCount=0;
Barbar Repeat wait(customers); Cut hair; signal(barber); Until false;
简化版
Customers Repeat wait(mutex); if (cust_count=N+1) then signal(mutex); leave…..; else custCount=custCount+1; signal(mutex); signal(customers); wait(barber); Get hair cut …. wait(mutex); custCount=custCount-1; signal(mutex); Until false;
Chap2 进程管理
38:从调度性、并发性、拥有资源及系统开销 方面比较进程与线程?(P83)解答见P73 40:用于实现线程同步的私有信号量和共有信 号量之间的差别?(P83)解答见P76
41:何谓用户级线程和内核支持线程?(P83) 解答见P77
百度文库
Chap2 进程管理
补充1:有没有这样的状态转换,为什 么?等待运行; 就绪等待
Chap2 进程管理
18:同步应该遵循的基本原则?(P82) 答案见P50 19:记录型信号量的wait和signal 的物 理含义(P82) 1) 只答出wait、signal操作的原子性。 2)只答出wait表示申请一个资源, signal表示释放一个资源。
作业问题:
Chap2 进程管理Cont.
Chap1 操作系统引论
13. OS有那几大特征?最基本的特征是什 么?(P33) 解答:基本特征是:并发、共享、虚拟、 异步。最基本的特征是:并发性和共享性
Chap1 操作系统引论
18. 什么原因使OS具有异步性? (P33) 解答:1)程序执行结果是不确定的,即程序 运行结果是不可再现的。 2)每个程序在何时执行,多个程序 间的执行次序以及完成每个程序的时间都 是不确定的,即不可预知性。
Until false;
end
Chap2 进程管理
补充4:理发师睡觉问题
理发店里有一位理发师, 一把理发椅和N 把供等候理发的顾客坐的椅子。
如果没有顾客, 理发师便在理发椅上睡觉。 当一个顾客到来时, 他必须先唤醒理发师。 如果顾客到来时理发师正在理发, 则如果 有空椅子, 可坐下来等; 否则离开。
Chap2 进程管理
问题分析:
理发师(barber)重复的下列活动:(1)睡觉; (2)为顾客理发; 每个顾客(customers)执行下列活动:(3)在椅 子上等候;(4)理发;离开;
显然,理发师在(1)处要考察是否有顾客等候理发, 如果没有,理发师睡觉;在(2)处理发师等待最先 进入理发店的顾客唤醒,开始理发。 顾客在(3)处先看是否有座位,没有则离开;等候 理发的顾客在(4)处被理发师唤醒(最先理发的顾 客要唤醒理发师);理发结束后离开。
2. OS的作用可表现在哪几个方面? (P33) 解答:1)从一般用户的观点,可把OS看作 是用户与计算机硬件系统之间的接口; 2)从资源管理角度看,可把OS视为 计算机系统资源的管理者; 3)OS作为系统软件覆盖在裸机之上 后,便可获得一台功能显著增强的虚拟机 器,因此,OS还有扩充机器的作用。