行程与同步并行.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
行程与同步并行

QA討論時間 本章結束 * * 第六章 行程與同步並行 課前指引 我們曾於3-5節述及合作行程(Cooperating Process),於執行時,行程之間可相互影響,分享記憶體(Memory),分享資料(Data),但往往因管理不周嚴,使得資料失去一致性(Inconsistency)。因此在多個行程同時執行時,如何保持資料的一致性(Consistency),是行程作業的一個重要環節,本章將深入探討之。 本章大綱 備註:可依進度點選小節 6-1 簡介 6-2 並行條件 6-4 兩任務演算法 6-5 硬體並行指令 6-3 臨界區 6-6 信號 我們曾於3-5節述及合作行程(Cooperating Process),於執行時,行程之間可相互影響,分享記憶體(Memory),分享資料(Data),但往往因管理不周嚴,使得資料失去一致性(Inconsistency)。例如有一個銀行帳戶,哥哥到銀行臨櫃存錢,同一時間,弟弟以提款卡到提款機取錢,如此同時行為,如果管理不當,資料將失去一致性,帳戶餘額將會混亂錯誤。 6-1 簡介 因此、在多個行程同時執行時,如何保持資料的一致性(Consistency),是行程作業的一個重要環節,本章將深入探討之。 6-1 簡介 1966年,伯恩斯坦(Bernstein) 提出同步並行條件,伯恩斯坦條件(Bernstein Condition): R(Si ) ∩ W(Sj ) = ? W(Si ) ∩ R(Sj ) = ? W(Si ) ∩ W(Sj ) = ? 其中W為寫入(Write),R為讀取(Read),且i≠j,當同時滿足此三條件時,才可無誤地執行同步並行。 6-2 並行條件 1966年,伯恩斯坦(Bernstein) 提出同步並行條件,伯恩斯坦條件(Bernstein Condition): 6-2 並行條件 S1:a ← 5 S2:b ← a+1 S3:c ← a+2 S4:d ← b+c 1966年,伯恩斯坦(Bernstein) 提出同步並行條件,伯恩斯坦條件(Bernstein Condition): 6-2 並行條件 S1:a ← 5 S2:b ← a+1 S3:c ← a+2 S4:a ← b S5:a ← c S6:print a 為了系統內各執行緒可在臨界區順利執行,系統必須滿足下列三要件(Requirements): 互斥性(Mutual Exclusion) 進展性(Progress) 有限等待性(Bounded Waiting) 6-3 臨界區 於系統中,有多個執行緒(T1、T2、…、Tn) 等待執行,為了容易解說,將此n個執行緒類分成2種角色:(1)使用者關心的執行緒Ti;(2)其他執行緒Tj。例如使用者關心T3,則Ti = {T3}、Tj = { T1、T2、T4、…、Tn}。 如圖6-4,執行緒進入臨界區(CS) 前,須先至入口區(Entry Section) 接受演算法之安排,離開臨界區時,須至出口區(Exit Section) 接受演算法之安排。 6-4 兩任務演算法 在演算法中,使用者關心的執行緒Ti,有三種關鍵機制信號:(1)是否有意願進入臨界區?以信號want-in表達;(2)是否輪序到進入臨界區?以信號turn表達;(3)是否有權進入臨界區?以信號in-CS表達。 6-4 兩任務演算法 演算法1(Algorithm1) 如圖6-4-1,設使用者關心的執行緒為Ti,(1)於入口區,當尚未輪序到Ti時(turn≠ i ),Ti沒有動作(do skip);反之,當輪序到Ti時(turn = i ),Ti進入臨界區。(2)於出口區,將輪序由Ti轉為其他執行緒Tj (turn ← j )。 6-4 兩任務演算法 演算法1(Algorithm1) 優點為: 因有輪序(turn) 機制,Ti與Tj不可能同時都在臨界區,故滿足互斥性(Mutual Exclusion) 如6-3節三要件之第1要件; 缺點為: 如果此時臨界區內無任何執行緒,以致無任何執行緒跳離臨界區,進而無法於出口區將輪序轉給其他執行緒,因而造成流程停頓不前,亦即無法滿足進展性(Progress) 如6-3節三要件之第2要件。 6-4 兩任務演算法 演算法2(Algorithm2) 如圖6-4-2-1,設使用者關心的執行緒為Ti,(1)於入口區,當尚未輪序到Ti時(while flag[j]),Ti沒有動作(do skip),但Ti表達有意願進入(flag[i]←true);反之,當輪序到Ti (while flag[i]),且Ti有意願時,則Ti進入臨界區。(2)於出口區,Ti將意願拋棄消除(flag[i]←false)。 6-4 兩

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档