Operating System Concepts 作業系統原理 Chapter 6 同步 (Synchronization)

Slides:



Advertisements
Similar presentations
作者 : 陳鍾誠 單位 : 金門技術學院資管系 URL : 日期 : 2016/7/21 行程的同步 註:本章學術性較重,但考試常考。
Advertisements

第一單元 建立java 程式.
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
第二章 进程的描述与控制管理.
作業系統 第六章 同步與死結.
Chapter 7: Process Synchronization 进程同步
第6章 死結(Deadlock).
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
Chapter 6 同步 (Synchronization)
Operating System Process Management - 4 Monday, August 11, 2008.
CHT Project Progress Report
LINGO.
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
主題五 CPU Learning Lab.
操作系统 (并发进程) 徐锋 南京大学计算机科学与技术系 2018年9月18日3时52分.
題目:十六對一多工器 姓名:李國豪 學號:B
Chapter 5 迴圈.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
第十一章 結構.
中国科学技术大学计算机系 陈香兰 2013Fall 第五讲 进程同步和通信(part II) 中国科学技术大学计算机系 陈香兰 2013Fall.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
Deadlocks P0 P1 Example System has 2 tape drives.
和春技術學院資訊管理系 九十三學年度第一學期 系統程式 第三章 死結(Deadlock)
2-3 基本數位邏輯處理※.
经典同步问题.
作業系統 第六章 同步與死結.
Chapter 3 行程觀念 (Process Concept)
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
第5章 同步(Synchronization)
第三章 进程互斥与同步 进程通信 Communication.
安裝JDK 安裝Eclipse Eclipse 中文化
操作系统原理 Operating System Principles
App Inventor2呼叫PHP存取MySQL
李元金 计算机与信息工程学院 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 1/
Java 程式設計 講師:FrankLin.
Chap3 Linked List 鏈結串列.
第一單元 建立java 程式.
PLC-GPPW軟體使用教學 授課教師:張祖烈
第2章 进程和线程 内容提要: 2.1 进 程 概 念 2.2 进程的状态和组成 2.3 进 程 管 理 2.4 线 程.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
第 19 章 XML記憶體執行模式.
第七單元 正反器 (教科書第四章) 數位系統實驗
Operation System(OS).
CH05. 選擇敘述.
期末考.
挑戰C++程式語言 ──第8章 進一步談字元與字串
第7章 進階的同步 觀念與實務.
GridView.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
信号量(Semaphore).
HelloPurr_Extend 靜宜大學資管系 楊子青
Repeating Blocks: Iteration 靜宜大學資管系 楊子青
CHAPTER 6 Concurrency:deadlock And Starvation
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
MiRanda Java Interface v1.0的使用方法
陣列與結構.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
Commando War ★★☆☆☆ 題組:Problem Set Archive with Online Judge
資料表示方法 資料儲存單位.
MultiThread Introduction
Race Conditions and Semaphore
多站台網路預約系統之 AJAX即時資料更新機制
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
SQLite資料庫 靜宜大學資管系 楊子青.
Chapter 4 Multi-Threads (多執行緒).
快取映射 之直接對映 計算整理.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
Presentation transcript:

Operating System Concepts 作業系統原理 Chapter 6 同步 (Synchronization)

CHAPTER 6 同步 6.1 背景 6.2 臨界區間問題 6.3 Peterson’s解決方案 6.4 同步之硬體 6.5 號誌 6.1 背景 6.2 臨界區間問題 6.3 Peterson’s解決方案 6.4 同步之硬體 6.5 號誌 6.6 典型的同步問題 6.7 監督程式 6.8 不可分割的交易

6.1 背景 這個不正確的狀態是因為允許兩個行程並行處理這個 counter變數。像這種數個行程同時存取和處理相同資料的情況,而且執行的結果取決於存取時的特殊順序,就叫兢爭情況 (race condition)。

6.2 臨界區間問題(Critical-Section Problem) 互斥(Mutual Exclusion):如果行程Pi正在臨界區間內執行,則其它的行程不能在其臨界區間內執行。 進行(Progress):如果沒有行程在臨界區間內執行,同時某一行程想要進入其臨界區間,那麼只有那些不在剩餘區間執行的行程才能加入決定誰將在下一次進入臨界區間,並且這個選擇不得無限期地延遲下去。 有限制的等待(Bound Waiting):一個行程已要求進入其臨界區間,在此要求尚未被答應前,允許其它的行程進入其臨界區間的次數要有限制。

6.3 Peterson’s解決方案 要證明 互斥性存在, 進行的要求能被滿足, 有限制的等待要求亦能符合。 P0 P1 i=0, 1

6.4 同步之硬體 硬體上的特殊性質可以使寫程式的工作變得比較容易,並且增進系統的效率。 6.4 同步之硬體 lock=FALSE 硬體上的特殊性質可以使寫程式的工作變得比較容易,並且增進系統的效率。 電腦系統都提供了一些特殊的硬體指令,允許我們可以在同一記憶體週期內去測試修改一個字組的內容,或交換兩個字組的內容。 回傳*target, 並設定*target為True lock=FALSE 設定lock為True *a & *b內容對換

waiting[i]=FALSE; lock=FALSE lock=FALSE TestAndSet及Swap由硬體製作(不可分方式執行)

6.5 號誌 (Semaphore) 6.5.1 用途 計數號誌 (counting semaphore)的值可以不受限制。二元號誌 (binary semaphore)的數值可以是0或 1。在某些系統,二元號誌稱為互斥鎖 (mutex locks),當它們是鎖而且互斥。 mutex=1 wait(mutex);

6.5.2 製作 號誌定義都有一個主要的缺點,那就是它們都需要忙碌等待 (busy waiting)。意即當一個行程置於其臨界區間時,其它欲進入它們的臨界區間之行程必定在入口的程式碼形成迴路。 Implementation of wait: wait(semaphore *S) { S->value--; if (S->value < 0) { add this process to S->list; block(); } Implementation of signal: signal(semaphore *S) { S->value++; if (S->value <= 0) { remove a process P from S->list; wakeup(P);

6.5.3 死結和飢餓(Deadlock and Starvation) Deadlock – two or more processes are waiting indefinitely for an event that can be caused by only one of the waiting processes Let S and Q be two semaphores initialized to 1 P0 P1 wait (S); wait (Q); wait (Q); wait (S); . . signal (S); signal (Q); signal (Q); signal (S); Starvation – indefinite blocking. A process may never be removed from the semaphore queue in which it is suspended Priority Inversion - Scheduling problem when lower-priority process holds a lock needed by higher-priority process 10

6.5.4 優先權倒置(Priority Inversion) 假設有三個行程L、M、H,其優先權順序是L < M < H。假設行程H要求正被行程L存取的資源R。通常行程H會等待L完成使用資源R。然而,現在因為行程M變成可執行的,因此可搶先行程L。間接地一個有較低優先權的行程(行程M)已經影響到行程H。這個問題被稱為優先權倒置。 優先權繼承協定必須允許行程L暫時地繼承行程H的優先權,因此才能阻止行程M搶先它的執行。當行程L已經完成使用資源R時,它將放棄它從H所繼承的優先權並假設其最初的優先權。因為資源R是可用的,接下來讓行程H使用,而不是M。

6.6 典型的同步問題 6.6.1 有限緩衝區問題(Bounded-Buffer Problem) 6.6 典型的同步問題 6.6.1 有限緩衝區問題(Bounded-Buffer Problem) N buffers, each can hold one item Semaphore mutex initialized to the value 1 Semaphore full initialized to the value 0 Semaphore empty initialized to the value N.

6.6.2 讀取者-寫入者問題(Readers and Writers Problem) Allow multiple readers to read at the same time. Only one single writer can access the shared data at the same time. 除非有一Writer已獲得允許使用共用資料,否則Reader不需保持等候狀態 (Reader不用等候其他Reader結束,但Writer需要等候)。Writer可能有Starvation 若有一Writer已在等候存取共用資料,則不能有新Reader去讀取資料。Reader可能 有Starvation Semaphore mutex initialized to 1 Semaphore wrt initialized to 1 Integer readcount initialized to 0

Shared data 6.6.3 哲學家進餐的問題(Dining-Philosophers Problem) Bowl of rice (data set) Semaphore chopstick [5] initialized to 1

6.7 監督程式 (monitor) 6.7.1 用途 一種抽象的資料型態使用公用的方法封裝私人的資料以對或函數之實體。 此資料進行操作。監督程式之型式為該程式是由一組程式設計者定義之運算元所組成。 此監督程式之形式之表示是由變數宣告所組成,該變數之值定義了形式範例的狀態,以及形式運作之程序。

6.7.2 使用監督程式哲學家進餐的解

6.7.3 使用號誌製作監督程式 對每一個監督程式提一個號誌mutex(初始值為 1)。每一個行程在進入監督程式之前,都必須先執行wait (mutex) 的動作,並在離開監督程式之後,執行signal (mutex) 的動作。

6.7.4 監督程式內的恢復行程 一個行程可能在沒有先取得某項資源的存取允許權之前就先使用該資源。 6.7.4 監督程式內的恢復行程 一個行程可能在沒有先取得某項資源的存取允許權之前就先使用該資源。 一個行程在獲得某項資源的存取權之後,就佔住不放。 一個行程可能會試圖桿放一項從未取得過的資源。 一個行程可能會對相同的資源提出兩次要求(沒有先釋放出該資源)。

6.8 不可分割的交易 臨界區間的互斥性保證了臨界區間的執行之不可分割。換言之,如果兩個臨界區間並行地執行,結果相當於它們以某種未知的順序循序地執行。雖然這項性質在許多應用領域很有用,依然有許多情況下我們希望工作是完整的執行完,或完全不執行。 資料的一致性 (連同資料的儲藏和取回),時常與資料庫系統 (Database systems)有關。最近,與起應用資料庫系統的技術在作業系統的與趣。作業系統可以視為資料的處理者:因此,可以從資料庫研究的進階技術和模型得到一些幫助。

6.8.1 系統模型 為了決定系統該如何確保不可分割的性質,我們首先需要誠別用來儲存被交易存取各項資料之裝量的特性。不同型態的儲存媒體是由它們的速度、容量和失效彈性來區分。 揮發性儲存體 (volatile storage):儲存在揮發性儲存體的資訊在系統當掉時通 常不存在。這種儲存體的例子有主記憶體和快取記憶體。對揮發性儲存體的存取非常快,這是因為記憶體存取本身的速度,和因為可以直接在揮發性儲存體 存取任何資料項。 非揮發性儲存體 (nonvolatile storage):儲存在非揮發性儲存體的資訊在系統當掉之後通常還存在。這種儲存體的例子有磁碟和磁帶。目前非 揮發性儲存體的速度比揮發性儲存體的速度慢好幾個級次。因為磁碟和磁帶裝 置是電子機械式,並且需要實體移動以存取資料。 穩定儲存體 (stable storage):在穩定儲存體的資訊絕不會遺失 。為了製作近似這種的儲存體,我們需要複製資訊到數個非揮發性的儲 存體快取 (通常是磁碟),每一個有各自的失效模式,並且以控制的方式更新 資訊 。

6.8.2 以記載簿為基礎的復原 每一筆登錄記載著一筆寫入交易的操作,並有以下各欄: 6.8.2 以記載簿為基礎的復原 每一筆登錄記載著一筆寫入交易的操作,並有以下各欄: 交易名稱 (transaction):執行 write操作之交易的唯一名稱。 資料項名稱 (data item name):寫入資料項的唯一名稱。 舊值 (old value):寫入動作前的資料項數值。 新值 (new value):寫入後的資料項數值。

6.8.3 檢查點(checkpoint) 1. 將所有記錄簿中目前在揮發性儲存體(通常是主記憶體)的記錄輸出到穩定儲存體。 2. 將所有在揮發性儲存體的已修改資料輸出到穩定儲存體。 3. 輸出一筆記錄簿記錄(checkpoint)到穩定儲存體。

6.8.4 並行的不可分割交易 每一筆交易都是不可分割,交易的並行執行就相當於以某種任意順序依序地執行這些交易。這項性質 [叫做可串列化,serialization)可以藉著在一個臨界區間只執行一項交易來維持。 所有的交易都共享一個共用號誌 mutex,此號誌被設定成 1的初值。當一項交易開始執行時,它的第一個動作時執行wait (mutex)。在此交易交付或中止時,它就執行 signal (mutex)。

6.8.4.1 可串列化

6.8.4.2 上鎖協定

6.8.4.3 時間戳記為基礎的協定 使用系統時鐘的數值做為時間戳記:換言之,一筆交易的時間戳記等於此交易 進入系統時的時鐘數值。這種方法對於發生在分隔系統間的交易,或沒有共用 同一時鐘的處理器之交易無效。 使用邏輯計數器做為時間戳記:換言之,交易的時間戳記等於此交易進入系統時的計數器數值。當設定一個新的時間戳記之後,計數器就加 1。