目錄
臨界區問題
peterson演算法
硬體同步
訊號量(semaphore)
計數訊號量 和 二進位制訊號量 173p
忙等待 和 自旋鎖 174p
死鎖與飢餓
有限快取問題—生產者消費問題 177p
讀者-寫者問題
管程
協作程序是可以與系統中其它執行的程序之間互相影響的程序。 如果乙個程序是協作的,那麼該程序可以直接共享邏輯位址空間 ( 即**和資料 ), 或者只通過檔案或訊息來共享資料。
臨界區問題需要注意的有: 有兩種方法用於處理作業系統內的臨界區問題:具有等待佇列的訊號量的實現可能會導致這樣的情況:與死鎖相關的另乙個問題是無限期阻塞(indefinite blocking)或飢餓(starvation):即程序在訊號量內無限期等待。
舉個例子來理解死鎖與飢餓的區別:
死鎖(deadlock)例如:1、桌子上有慢慢一桌子的美食,但是只有一雙筷子。
2、甲拿了一根,然後在找另一根。
3、乙拿了一根,然後也在找另一根。
4、因為他們都掌握了對方必需的資源,導致最後他們倆誰都吃不到美食。
飢餓(starvation)例如:1、小明要告訴媽媽明天開家長會。
2、小明媽媽因為工作太忙,在公司加班,沒有回家。
3、於是第二天,小明的媽媽就錯過了家長會。(「餓死」)
4、其實小明的媽媽沒有出現「死鎖」。只是小明的優先順序過低,不如工作重要。
作業系統 第六章 程序同步
實驗 經典同步問題之讀者寫者問題 關於前面討論過的共享記憶體問題,為了讓它能夠儲存buffersize個元素,我們修改其 如下。生產者 while true 消費者 while true 乍一看,消費者和生產者 都正確,但是當這兩段 併發執行的時候就有問題了。併發時,兩個程序會同時操作counter...
作業系統原理第六章(程序排程)
一 排程 分派結構 排程 依照完全確定的策略將一批程序進行排序 分派 從就緒佇列中移出乙個程序並給它提供處理機的使用權 排程程式負責將乙個程序插入到就緒佇列中,並按一定原則保持佇列結構 分派程式將程序下從就緒佇列中移出並建立該程序執行的機器狀態。二 程序排程的功能和排程準則 1.程序排程的功能 記錄...
第三章 程序(作業系統概念第七版)
一.基本概念 為什麼要建立子程序 總結來講,就是時候對於同一程序而言,這些函式 執行緒都是存在於同乙個位址空間下的,而且在執行時,大多只對與其相關的一些資料進行處理,對於無關的就要保護,所以建立子程序。父程序來掌握子程序的啟動 執行和退出從而保護父程序中的無關資料。程序的五個狀態 五個狀態 new ...