操作系统应用题..docVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统应用题.

应 用 题 1、 设系统中只有一台打印机,有三个用户的程序在执行过程中都要使用打印机输出计算结果。设每个用户程序对应一个进程。问:这三个进程间有什么样的制约关系?试用P、V操作写出这些进程使用打印机的算法。 解: 因为打印机是一种临界资源,所以这三个进程只能互斥使用这台打印机,即一个用户的计算结果打印完之后,另一个用户再打印。 设三个进程分别为A、B和C。 设一个互斥信号量mutex,其初值1。 A进程 B进程 C进程 P(mutex) P(mutex) P(mutex) 使用打印机 使用打印机 使用打印机 V(mutex) V(mutex) V(mutex) ? ? 2、判断下面的同步问题的算法是否正确?若有错,请指出错误原因并予以改正。 (1)设A、B两进程共用一个缓冲区Q,A向Q写入信息,B则从Q读出信息,算法框图如图所示。                 注:信号量S的初值为0 (2)设A、B为两个并发进程,它们共享一临界资源。其运行临界区的算法框图如图所示。                注:信号量S1、S2的初值均为0 解:① 这个算法不对。因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从Q中读出完整的信息。 改正:A、B两进程要同步使用缓冲区Q。为此,设立两个信号量: empty表示缓冲区Q为空,初值为1; full表示缓冲区Q为满,初值为0。 算法框图如图1所示。 ② 这个算法不对。因为A、B两个进程是并发的,它们共享一个临界资源,所以二者应互斥地使用该临界资源,在进入临界区时不存在A先B后的时序关系,而是哪个进程先到一步就先进入自己的临界区。 改正:A、B两个进程应互斥地进入临界区。为此,设立一个信号量:互斥信号量mutex,其初值为1。 算法框图如图2所示。 A进程 B进程 A进程 B进程 ? P(empty) P(full) P(mutex) P(mutex) P(mutex) 向Q写入信息 从Q中读出信息 临界区代码CSa 临界区 代码CSb V(full) V(empty) V(mutex) V(mutex) V(mutex) ? 图1 图 2 3、设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后在搬到缓冲区B2中,并在打印机上印出,问: ①系统要设几个进程来完成这个任务?各自的工作是什么? ②这些进程间有什么样的相互制约关系? ③用P、V操作写出这些进程的同步算法。 解:①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。 ②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。 ③信号量含义及初值: B1full—— 缓冲区B1满,初值为0; B1empty——缓冲区B1空,初值为0; B2full—— 缓冲区B2满,初值为0; B2empty——缓冲区B2空,初值为0;

文档评论(0)

sa43sad5 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档