第四章處理單元間的同步處理.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文档。上传文档
查看更多
和春技術學院資訊管理系 九十三學年度第一學期 系統程式 教學投影片 課程網頁 講師:毛立仁 第四章 處理單元間的同步處理 4-1 競賽狀態 (Racing Condition) 4-2 臨界段落 (Critical Section) 4-1 競賽狀態 (Racing Condition) 在多程式系統 (Multiprocessing System) 中,會因處理單元 (Process) 之執行順序不同,而產生不同之執行結果,謂之競賽狀態(Racing Condition) 。其解決的方法是當處理單元共用資源時,必須確保任何時候僅會有一個處理單元使用該共享的資源;即當某個處理單元正在使用某一資源時,其它處理單元則不能使用該資源。 ? 範例:有 A、B 兩個處理單元,它們會去存取同一個變數 X = 5。A 處理單元會對 X 做加 1,而 B 處理單元會對 X 做減 1。若系統不對 X 做適當的鎖定,則 A、B 兩個處理單元在同時對 X 做處理時會有下列三種情況發生。 (1) A 先存取 X,並加 1;然後 B 再存取 X,並減 1,則 X 的值為 5。 (2) A、B 同時存取 X,並各自做加 1 及減 1, ? 若 A 先存回,B 再存回,則 X = 4。 ? 若 B 先存回,A 再存回,則 X = 6。 (3) B 先存取 X,並減 1;然後 A 再存取 X,並加 1,則 X 的值為 5。 4-2 臨界段落 (Critical Section) 1. 臨界段落 (或稱臨界區段) 為處理單元 (Process) 中的一段程式碼,該段程式碼會讀取共享的變數或修改共享的變數 (即管理共享的資源)。其特色是當一個處理單元進入臨界段落時,則不允許同時有其它的處理單元進入臨界段落;即臨界段落具有互斥性 (Mutual Exclusive)。 ? 範例:有A、B兩個處理單元,其程式碼之部分如下: 處理單元A與處理單元B的程式碼中與變數 x 和變數 y (變數x與變數y為共享變數)有關的敘述句分別標示(1) (2) (3) 與 (4),其餘與變數 x 和變數 y 無關之敘述句則以…表示。在 Procedure A中,(1) (2) 敘述句會對共享的變數 x 和變數 y 做存取,(1) (2) 這兩條程式碼即是所謂的臨界段落。同理,Procedure B中的 (3) (4) 兩條程式碼也是臨界段落。 解決臨界段落的互斥問題 (Mutual Exclusion Problem) 必須滿足下列三個要求: (1)互斥性 (Mutual Exclusion):同時僅允許一個處理單元進入臨界段落。 (2)進展性 (Progress):若無處理單元執行臨界段落,而且有一些處理單元等待進入臨界段落,則僅會有一個且必有一個處理單元被允許進入臨界段落,並且不可有無限期延遲 (Indefinte Postponement) 之情況。 (3)有限等待 (Bounded Waiting):當有多個處理單元要求進入臨界段落時,將限制處理單元進入臨界段落的次數,以免某些處理單元等候過久。 解決臨界段落的方式可分成三種: (1) 以軟體方式解決 (Dekkers Algorithm) (2) 以硬體指令解決 (Test-and-Set) (3) 以信號機解決 (P,V Semaphore) 以軟體的方式來解決: 以軟體的方式來解決,必須達到下列的目標 (1)兩個處理單元中僅允許一個能進入臨界段落。 (2)一個處理單元只能在另一個處理單元不在臨界段落時方可進入臨界段落。 (3)想進入臨界段落的處理單元不會發生無限等待 (Indefinitely Postponed) 的情形。 其中最著名的方法稱之為德克演算法 (Dekkers Algorithm),其演算法之副程式與主程式簡述如下: 程式中利用 turn 及 flag 來控制進入臨界區段的處理單元只會有一個,且不會有無限期延遲的情況發生。 以硬體的方式解決: 其做法是利用硬體在任何一瞬間只會有一個處理單元來執行它,藉以達到互斥 (Mutual Exclusion) 的效果。此一硬體指令稱之為 test-and set,它是一個不可分割的指令 (Atomic),其操作方式如下: 所以,以 test - and - set 指令來完成臨界區段的互斥之方式如下: 以信號機(semaphore)的方式解決: 其利用兩個基本操作 P(S) (或稱為 wait (s)) 與 V(S) (或稱為 signal (s)),它們兩個分別代表要求資源與釋放資源,其中 S 代表資源的數量。 P與V之操作方式如下:(P減V加) (1) 以 P 與 V 指令來完成臨界區段的互斥方式如下: (2) P 與 V 指令除了

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档