操作系统附加题答案.ppt

操作系统附加题答案.ppt

ID:50574700

大小:354.01 KB

页数:11页

时间:2020-03-11

操作系统附加题答案.ppt_第1页
操作系统附加题答案.ppt_第2页
操作系统附加题答案.ppt_第3页
操作系统附加题答案.ppt_第4页
操作系统附加题答案.ppt_第5页
资源描述:

《操作系统附加题答案.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、进程同步问题操作系统附加题作业由三个进程get,copy和put以及两个缓冲区buffer1和buffer2完成一项输入/输出操作。进程get的功能是把一张卡片上的信息从读卡机上读进buffer1;进程copy的功能是把buffer1中的信息复制到buffer2;进程put的功能是取出buffer2中的信息并从打印机上打印输出。试用P、V操作完成这三个进程间的尽可能并发正确执行的关系(用程序或框图表示),并指明信号量的作用和初值。某寺庙,有小和尚、老和尚若干。有一水缸,由小和尚提水入缸老和尚饮用。水缸可容十桶水,水取自

2、同一井中。水井径窄,每次只能容一个桶取水。水桶总数为3个。每次入、取水仅为一桶,且不可同时进行。试给出有关取水、入水的算法描述。semaphoreempty=10;//表示缸中目前还能装多少桶水,初始时能装10桶水semaphorefull=0;//表示缸中有多少桶水,初始时缸中没有水semaphorebuckets=3;//表示有多少只空桶可用,初始时有3只桶可用semaphoremutex_well=1;//用于实现对井的互斥操作semaphoremutex_bigjar=1;//用于实现对缸的互斥操作young_

3、monk(){while(1){P(empty);P(buckets);gotothewell;P(mutex_well);getwater;V(mutex_well);gotothetemple;P(mutex_bigjar);purethewaterintothebigjar;V(mutex_bigjar);V(buckets);V(full);}}old_monk(){while(){P(full);P(buckets);P(mutex_bigjar);getwater;V(mutex_bigjar);drink

4、water;V(buckets);V(empty);}}47.系统中有多个生产者进程和多个消费者进程,共享一个能存放1000件产品的环形缓冲区(初始为空)。当缓冲区未满时,生产者进程可以放入其生产的一件产品,否则等待;当缓冲区未空时,消费者进程可以从缓冲区取走一件产品,否则等待。要求一个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才可以取产品。请使用信号量P,V(wait(),signal())操作实现进程间的互斥与同步,要求写出完整的过程,并说明所用信号量的含义和初值。semaphoremutex1=1;s

5、emaphoremutex2=1;semaphoreempty=n;semaphorefull=0;producer(){while(1){生产一个产品;P(empty);//判断缓冲区是否有空位P(mutex2);//互斥访问缓冲区把产品放入缓冲区;V(mutex2);//互斥访问缓冲区V(full);//产品的数量加1}}consumer(){while(1){P(mutex1)//连续取10次for(inti=0;i<=10;++i){P(full);//判断缓冲区是否有产品P(mutex2);//互斥访问缓冲区

6、从缓冲区取出一件产品;V(mutex2);//互斥访问缓冲区V(empty);//腾出一个空位消费这件产品;}V(mutex1)}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。