77范文网 - 专业文章范例文档资料分享平台

操作系统教程 课后答案-武伟主编(3)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

它存入B2中;当B1中有数,由进程W1将其打印输出;当B2中有数,进程W2将其打印输出。试编写保证三者正确工作的程序。

struct semaphone B1_Empty, B1_Full, B2_Empty, B2_Full; B1_Empty.value=1; B1_Full.value=0; B2_Empty.value=1; B2_Full.value=0; void R( ) { int a; While(1)

{ read a number a; if(a%2==1) { wait(B1_Empty);

put a in B1; signal(B1_Full);

} else

{ wait(B2_Empty);

put a in B2; signal(B2_Full);

} } } void W1( ) { while(1) { wait(B1_Full); print a number from B1; signal(B1_Empty); } } void W2( ) { while(1) { wait(B2_Full); print a number from B2; signal(B2_Empty); } } void main( ) { parbegin(R( ), W1( ), W2( )); }

(2)8个协作的任务A、B、C、D、E、F、G、H分别完成各自的工作。它们满足下列条件:任务A必须领先于任务B、C和E;任务E和D必须领先于任务F;任务B和C必须领先与任务D;而任务F必须领先于任务G和H。试写出并发程序,使得在任何情况下它们均能正确工作。

(3)多个进程共享一个文件,其中只读文件的称为读者,只写文件的称为写者。读者可以同时读,但写者只能独立写。问:

1)说明进程间的制约关系,应设置哪些信号量? 2)用wait、signal操作写出其同步程序。

3)修改上述算法,使得它对写者优先,即一旦有写者到达,后续的读者必须等待。而无论是否有读者在读文件。

见教材“读者-写者问题”

(4)桌上有一空盘,可放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子;儿子专等吃盘中的桔子;女儿专等吃盘中的苹果。规定一次只能放一只水果,试写出爸爸、儿子、女儿正确同步的程序。

struct semaphone plate, apple, orange; plate.value=1; apple.value=0; orange.value=0; void father( ) { while(1)

{ prepare an apple or orange; wait(plate); put the apple or orange in plate; if(Apple) signal(apple); //如果放的是苹果 else signal(orange); //如果放的是桔子 }

} void son( ) { while(1) { wait(orange); get an orange from the plate; signal(plate); } } void daughter( ) { while(1) { wait(apple); get an apple from the plate; signal(plate); } } Void main( )

(5)三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用procuce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()

从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述(2009年全国硕士研究生入学考试题)。

struct semaphone full_odd, full_even, mutex, empty; full_odd.value=0; full_even.value=0; mutex.value=1; empty.value=N; void P1( ) { int X; while(1)

{ X=produce( ); wait(empty); wait(mutex); put( ); if(X%2==0) signal(full_even); else signal(full_odd); signal(mutex); } }

void P2( )

{ wait(full_odd); wait(mutex); getodd( ); countodd( )=countodd( )+1; signal(empty); signal(mutex); }

void P3( )

{ wait(full_even); wait(mutex); geteven( ); counteven( )=counteven( )+1; signal(empty); signal(mutex); }

void main( )

{ parbegin(P1( ), P2( ), P3( )); } (6)放小球问题:一个箱子里只有白色和黑色两种小球,且数量足够多。现在需要从中取出一些小球放入一个袋子中。约定:1)一次只能放入一个小球;2)白球的数量至多只能比黑球少N个,至多只能比黑球多M个(M,N为正整数)。请用信号量机制实现

进程的同步与互斥。

struct semaphone mutex1, mutex2; int black=0, white=0; mutex1.value=1; mutex2.value=1; void put( ) { while(1)

{ wait(mutex1);

get a black ball or white ball from the box; signal(mutex1); wait(mutex2);

if(Black) //如果取到的是黑球 if(black-white

void main( )

{ parbegin(put( )); }

习题5

1.单项选择题

(1)当作业进入完成状态时,操作系统 。

A、 将删除该作业并收回其所占资源,同时输出结果 B、 将该作业的控制块从当前作业队列中删除,收回其所占资源,并输出结果 C、 将收回该作业所占资源并输出结果 D、 将输出结果并删除内存中的作业

(2)批处理作业是被成批存入 ,以等待作业调度选择。 A、输入井 B、输出井 C、映象区 D、内存

(3)一种即有利于短作业又兼顾长作业的作业调度算法是 。 A、最高响应比优先 B、先来先服务 C、短作业优先 D、均衡调度

(4)在批处理系统中,周转时间是 。

A、作业运行时间 B、作业等待时间和运行时间之和 C、作业的相对等待时间 D、作业被调度进入内存到运行完毕的时间

(5)在操作系统中,作业处于 状态时,已处于进程管理之下。 A、提交 B、后备 C、运行 D、完成 (6)在作业调度中,若采用优先级调度算法,为了尽可能使处理器和外部设备并行工作,有如下三个作业:J1以计算为主,J2计算和输入输出兼顾,J3以输入输出为主,则它们的优先级从高到低的排列顺序是 。 A、J1,J2,J3 B、J2,J3,J1 C、J2,J3,J1 D、J3,J1,J2 (7)一个作业被成功调度后,系统为其创建相应的进程,该进程的初始状态是 。 A、执行态 B、阻塞态 C、就绪态 D、等待访问设备态 (1)B (2)A (3)A (4)B (5)B

2.填空题

(1)作业调度是从处于 后备 状态的队列中选取适当的作业投入运行。从作业提交给系统到作业完成的时间间隔叫做 周转时间 。 等待时间 是指作业从进入后备队列到被调到程序中的时间间隔。假定把下列四个作业同时提交系统并进入 后备 队列,当使用短作业优先调度算法时,单道环境下,四个作业的平均等待时间是 4.25小时 ,平均周转时间是 8.75小时 ;当使用高优先数优先的调度算法时,作业的平均等待时间是 5.75小时 ,平均周转时间是 10.25小时 。 作业 1 2 3 4

所需运行时间(小时) 2 5 8 3 优先数 4 9 1 7 (2)在一个具有分时兼批处理的系统中,总是优先调度 分时作业 。 3.简答题

(1)什么是分层次调度?在分时系统中有作业调度的概念吗?如果没有,为什么? (2)作业调度和进程调度的主要功能分别是什么?

(3)作业调度的性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统教程 课后答案-武伟主编(3)在线全文阅读。

操作系统教程 课后答案-武伟主编(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/400941.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: