作業系統的PV操作

來源:互聯網
上載者:User
 

PV操作
1962年,狄克斯特拉離開數學中心進入位於荷蘭南部的艾恩德霍芬技術大學(Eindhoven Technical University)任數學教授。在這裡,他參加了X8電腦的開發,設計與實現了具有多道程式運行能力的作業系統——THE Multiprogramming System。THE是艾恩德霍芬技術大學的荷蘭文Tchnische Hoogeschool Eindhov –en的詞頭縮寫。狄克斯特拉在THE這個系統中所提出的一系統方法和技術奠定了電腦現代作業系統的基礎,尤其是關於多層體繫結構,順序進程之間的同步和互斥機制這樣一些重要的思想和概念都是狄克斯特拉在THE中首先提出並為以後的作業系統如UNIX等所採用的。為了在單處理機的情況下確定進程(process)能否佔有處理機,狄克斯特拉將每個進程分為“就緒”(ready)、“運行”(running)和“阻塞”(blocking)三個工作狀態。由於在任一時刻最多隻有一個進程可以使用處理機,正佔用著處理機的進程稱為“運行”進程。當某進程已具備了使用處理機的條件,而當前又沒有處理機供其使用,則使該進程處於“就緒”狀態。當運行進程由於某種原因無法繼續運行下去時,就停止其佔用處理機,使之進入“阻塞”狀態,待造成其退出啟動並執行條件解除,再進入“就緒”狀態。而對系統中所有同時啟動並執行進程,在一個進程訪問共用資料時,另一個進程不訪問該資料)和互斥(mutually- exclusive,指兩個進程不能同時在一個臨界區中使用同一個可重複使用的資源,諸如讀寫緩衝區)兩個關係,狄克斯特拉巧妙地利用火車運行控制系統中的“號誌”(semaphore,或叫”訊號量”)概念加以解決。所謂號誌,實際上就是用來控制進程狀態的一個代表某一資源的儲存單元。例如,P1和P2是分別將資料送入緩衝B和從緩衝B讀出資料的兩個進程,為了防止這兩個進程並發時產生錯誤,狄克斯特拉設計了一種同步機制叫“PV操作”,P操作和V操作是執行時不被打斷的兩個作業系統原語。執行P操作P(S)時訊號量S的值減1,若結果不為負則P(S)執行完畢,否則執行P操作的進程暫停以等待釋放。執行V操作V(S)時,S的值加1,若結果不大於0則釋放一個因執行P(S)而等待的進程。對P1和P2可定義兩個訊號量S1和S2,初值分別為1和0。進程P1在向緩衝B送入資料前執行P操作P(S1),在送入資料後執行V操作V(S2)。進程P2在從緩衝B讀取資料前先執行P操作P(S2),在讀出資料後執行V操作V(S1)。當P1往緩衝B送入一資料後訊號量S1之值變為0,在該資料讀出後S1之值才又變為1,因此在前一數未讀出前後一數不會送入,從而保證了P1和P2之間的同步。我國讀者常常不明白這一同步機製為什麼叫PV操作,原來這是狄克斯特拉用荷蘭文定義的,因為在荷蘭文中,通過叫passeren,釋放叫vrijgeven,PV操作因此得名。這是在電腦術語中不是用英語表達的極少數的例子之一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.