操作系统 第3章试题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 进程的同步与通信;进程同步的任务: 使并发执行的诸进程之间能有效地共享资源和相互合作, 从而使程序的执行具有可再现性。;多道程序环境下,诸进程之间的关系: ;3.1 进程同步的基本概念;临界资源:一段时间内只允许一个进程访问的资源。 要求:共享临界资源的诸进程必须互斥访问临界资源。 原因: 例:生产者--消费者问题(P62) ; 生产者 counter:=counter+1;----CS ? 1 register1:=counter; 2 register1:= register1+1; 3 counter:= register1;;结论: counter是临界资源,生产者和消费者应互斥访问。 即:虽然生产者、消费者并发执行,但在执行counter的 加1、减1的语句时,只能顺序进行。 即:只能按可能性中A或B的顺序进行,绝不能交替进行。 临界资源实例: 硬件中的打印机、磁带机等,软件中的变量、队列、缓 冲区等。 ;临界区(CS):每个进程中访问临界资源的那段代码。 要求:为实现对临界资源的互斥访问,应保证诸进程互斥进入各自 的临界区。(两个互斥是一致的) 模型: 准则:1.空闲让进 2.忙则等待 3.有限等待 4.让权等待 ;问题描述: 两个进程P0和P1,共享一个临界资源R。 算法1 (turn=j,表示允许进程Pj进入临界区) ;算法2 var flag:array[0..1] of boolean; (flag[i]=true,Pi在临界区);算法3 var flag:array[0..1] of boolean;;算法4;缺点: 四种算法全部属于“忙等待”方式。 现在已很少使用。;利用Test-and-Set指令 1.Test-and-Set 指令 function TS(var. lock:boolean):boolean begin TS:=lock; lock:=true; end;2. 利用TS指令实现进程互斥的模型 repeat while TS(lock) do skip;----进入区 critical section; --------临界区 lock:=false; -----------------退出区 remainder section until false; 思路: false 可以进入CS a)每个临界资源?一个lock(初值=false) true 不能进入CS b)在进入区测试是否 不能 (lock=true):忙等待 可以进入临界区CS 可以 (lock=false)?进入CS执???退出CS;硬件指令的缺点: 1.虽可有效实现互斥,但属于“忙等待”方式,违背了 “让权等待”原则。 2.很难用它解决复杂的同步问题。;一、记录型信号量机制 二、AND型信号量集机制 1965年,荷兰科学家Dijkstra在THE系统上提出。 一个信号量S是一个整型量,除对其初始化外,它只能 由两个原子操作P和V来访问。 P和V的名称来源于荷兰文proberen(测试)和verhogen (增量),它们的执行具有不可中断性。 本书中将P、V操作称做 wait 和 signal 操作。;定义: ;实现进程互斥:;var mutex:semaphore:=1; begin parbegin process1:begin repeat P(mutex); count:=count+1; V(mutex); until false; end process2:begin

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档