Presentation is loading. Please wait.

Presentation is loading. Please wait.

第7章 進階的同步 觀念與實務.

Similar presentations


Presentation on theme: "第7章 進階的同步 觀念與實務."— Presentation transcript:

1 第7章 進階的同步 觀念與實務

2 在臨界區域中發生中斷的後果

3 共用變數(shared variable)的 解決辦法

4 共用變數(shared variable)的改良解決辦法

5 測試(test)與設定(set)

6 多個共用變數與中斷

7 多個共用變數與中斷

8 同時執行的處理元(concurrent processes)

9 同步問題解法要滿足那些條件才算完備呢? 互斥 有限關聯性 有限等待 有限容量防止饑餓(starvation)

10 用號誌(semaphore)解決基本的臨界區域同步問題

11 用號誌(semaphore)解決基本的合作型態的同步問題

12 運用測試並設定(test-and-set)的指令

13 用測試並設定的指令支援記數號誌(counting semaphore)的演算法

14 多處理器(multiprocessors)的情況
號誌在實作上常以取消中斷(interrupts)的方式來達成,但是對於多處理器共用記憶體的電腦來說,取消一個CPU的中斷,並沒有影響其他CPUs中斷的存在 所以多處理器共用記憶體的電腦會採用其他的技術來實作號誌

15 巢狀號誌(nesting semaphore)

16 同時號誌(simultaneous semaphore)的用法

17 監督器(monitor) 假如同步的問題很複雜,則純粹使用號誌的話,可能很難設計,監督器可以運用抽象化來簡化複雜的同步問題。
就解決問題的能力來說,號誌與監督器是一樣的,只是在運用上監督器的表示方式好用多了。 監督器的抽象化方法以抽象資料型式(abstract data types)為基礎,在監督器中,任何時間只有一個處理元能執行一個程序,也就是說 : only one process may be executing a procedure at any given time

18 運用臨界區域的觀念來寫監督器

19 IPC的機制

20 從執行環境的觀點來看執行緒 使用者執行緒(user threads) 常駐執行緒(daemon threads)

21 Java程式使用執行緒的兩種方法 實作Runnable介面 繼承Thread類別

22 執行緒裡頭的組成 執行緒的識別碼(thread ID)。 程式計數器(program counter)。
暫存器組(register set)。 堆疊(stack)。

23 多執行緒的程式設計優點 資源的共用 提升系統回應的效率 整體效能的提升

24 Java執行緒的狀態變化


Download ppt "第7章 進階的同步 觀念與實務."

Similar presentations


Ads by Google