计算机操作系统第三版课后答案(汤子瀛等著)
signal(mutex);
/* signal(empty); */ consumer item in nextc; until false; end
10 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法. 设初始值为1的信号量c[I]表示I号筷子被拿(I=1,2,3,4,...,2n),其中n为自然数. send(I): Begin
if I mod 2==1 then {
P(c[I]);
P(c[I-1 mod 5]); Eat;
V(c[I-1 mod 5]); V(c[I]); } else {
P(c[I-1 mod 5]); P(c[I]); Eat; V(c[I]);
V(c[I-1 mod 5]); } End
11 在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;计算任务从该单缓冲中取出数据
进行计算.试写出利用信号量机制实现两者共享单缓冲的同步算法. int mutex=1; int empty=n; int full=0; int in=0; int out=0; main() {
cobegin send(); obtain(); coend }
send() {
while(1)
第 11 页 共 29 页
计算机操作系统第三版课后答案(汤子瀛等著)
{ . .
collect data in nextp; . .
wait(empty); wait(mutex); buffer(in)=nextp; in=(in+1) mod n; signal(mutex); signal(full); }
}//send obtain() {
while(1) {
wait(full); wait(mutex);
nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty);
culculate the data in nextc; }//while }//obtain
12 画图说明管程由哪几部分组成?为什么要引入条件变量?
管程由三部分组成:局部于管程的共享变量说明;对该数据结构进行操作的一组过程;对局部于管程的
数据设置初始值的语句. (图见P80)
因为调用wait原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量. 13 如何利用管程来解决生产者-消费者问题? (见P82)
14 什么是AND信号量?试利用AND信号量写出生产者-消费者问题的解法.
为解决并行所带来的死锁问题,在wait操作中引入AND条件,其基本思想是将进程在整个运行过程中所
需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放. 解决生产者-消费者问题可描述如下: var mutex,empty,full: semaphore:=1,n,0; buffer: array[0,...,n-1] of item; in,out: integer:=0,0; begin parbegin
第 12 页 共 29 页
计算机操作系统第三版课后答案(汤子瀛等著)
producer: begin repeat . .
produce an item in nextp; . .
wait(empty);
wait(s1,s2,s3,...,sn); //s1,s2,...,sn为执行生产者进程除empty外其余的条件 wait(mutex);
buffer(in):=nextp; in:=(in+1) mod n; signal(mutex); signal(full);
signal(s1,s2,s3,...,sn); until false; end
consumer: begin repeat wait(full);
wait(k1,k2,k3,...,kn); //k1,k2,...,kn为执行消费者进程除full外其余的条件 wait(mutex);
nextc:=buffer(out); out:=(out+1) mod n; signal(mutex); signal(empty);
signal(k1,k2,k3,...,kn); consume the item in nextc; until false; end parend end
15 在单处理机环境下,进程间有哪几种通信方式? a. 共享存储器系统通信方式; b. 消息传递系统通信方式; c. 管道通信方式.
16 试比较进程间的低级通信工具与高级通信工具.
用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须
由程序员来实现. 而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,
高效地传送大量的数据.
17 消息队列通信机制应有哪几方面功能? 略
第 13 页 共 29 页
计算机操作系统第三版课后答案(汤子瀛等著)
18 试比较消息队列与管道通信机制.
a. 所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe文件.
管道通信是属于共享存储器系统的.
b. 消息队列通信机制属于消息传递系统通信机制,存在通信链路,有消息的格式,有若干缓冲队列,
采用独特的发送原语和接收原语. (详见P89-90) 10.试比较FCFS和SPF两种进程调度算法
答:FCFS进程调度算法:一种最简单的调度算法,比较有利于长作业(进程),而不利于短作业(进程)
SPF进程调度算法:对短作业或短进程优先调度的算法。该算法对长作业不利。
计算机操作系统【第四章】
1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?
a. 作业调度又称宏观调度或高级调度,其主要任务是按一定的原则对外存上处于后备状态的作业进行
---选择,给选中的作业分配内存,输入输出设备等必要的资源,并建立相应的进程,以使该作业的进
---程获得竞争处理机的权利.
b. 进程调度又称微观调度或低级调度,其主要任务是按照某种策略和方法选取一个处于就绪状态的进
---程,将处理机分配给它.
c. 为了提高内存利用率和系统吞吐量,引入了中级调度. 2. 在作业调度中需做出哪两个决定? a. 接纳多少个作业; b. 接纳哪些作业.
3. 在剥夺调度方式中,有哪些剥夺原则? a. 时间片原则; b. 优先权原则;
c. 短作业(进程)优先原则.
4. 在OS中引起进程调度的主要因素有哪些? (有待讨论)
5. 选择调度方式和调度算法时,应遵循的准则是什么?
a. 面向用户的准则有周转时间短,响应时间快,截止时间的保证,以及优先权准则. b. 面向系统的准则有系统吞吐量高,处理机利用率好,各类资源的平衡利用. 6. 在批处理系统,分时系统和实时系统中,各采用哪几种进程(作业)调度算法? (有待讨论)
7. 为什么说多级反馈队列能较好地满足各种用户的需要?
a. 对于终端型作业用户,由于终端型作业用户所提交的作业,大都属于交互型作业,系统只要能使
这些作业(进程)在第一队列所规定的时间片内完成,便可使终端型作业用户都感到满意. b. 对于短批处理作业用户,很短的批处理型作业如果仅在第一队列中执行一个时间片即可完成,便可
---获得与终端型作业一样的相应时间.对于稍长的作业,通常也只需在第二队列和第三队列
第 14 页 共 29 页
计算机操作系统第三版课后答案(汤子瀛等著)
中各执行
---一个时间片即可完成,其周转时间仍然很短.
c. 对于长批处理作业用户,用户也不必担心其作业长期得不到处理.
8. 在按时间片轮转调度算法中,在确定时间片的大小时,应考虑哪些因素? a. 系统对相应时间的要求; b. 就绪队列中进程的数目; c. 系统的处理能力.
9. 为实现实时调度,对实时系统提出了哪些要求? a. 要提供必要的调度信息;
b. 在调度方式上要具体情况具体分析; c. 要具有快速响应外部中断的能力; d. 快速任务分派.
10 目前常用的调度方式和算法,能否应用到实时系统中?
a. 对于时间片轮转调度算法,是一种常用于分时系统的调度算法;
b. 对于非抢占式优先权调度算法,可用于要求不太严格的实时控制系统中;
c. 对于基于时钟中断抢占的优先权调度算法,有很好的响应效果,可用于大多数的实时系统中;
d. 对于立即抢占(Immediate Preemption)的优先权调度,要求操作系统具有快速响应外部时间的能力.
11 在多处理机系统中,比较有代表性的线程调度方式有哪几种? a. 自调度方式; b. 成组调度;
c. 专用处理机分配调度方式. 12 试比较自调度和成组调度?
a. 自调度方式是系统中有一个公共的线程或进程的就绪队列,所有的处理机在空闲时,都可自己从
---该队列中取出一个进程或线程运行;
b. 成组调度是由系统将一组相关的进程或线程,同时分配到一组处理机上运行,进程或线程与处理机 ---一一对应;
c. 在一般情况下,成组调度的性能优于自调度,因为自调度存在瓶颈,低效,线程切换频繁等问题,而
---成组调度可减少线程的切换和调度的开销,因而目前得到了广泛的认可. 13 在OS/2中采用哪种调度方式和调度算法?
在OS/2中采用的是抢占式调度方式,多优先级的抢占式调度算法. 14 何谓死锁?产生死锁的原因和必要条件是什么?
a. 死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;
b. 产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;
c. 必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件.
15 在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高? a. 解决死锁可归纳为四种方法: 预防死锁,避免死锁,检测死锁和解除死锁; b. 其中,预防死锁是最容易实现的; c. 避免死锁使资源的利用率最高.
第 15 页 共 29 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机操作系统第三版课后答案(汤子瀛等著)(全部的)(3)在线全文阅读。
相关推荐: