說明:其他」課堂問答筆記「也在」作業系統「專欄
程序互斥演算法——4種程式實現方法的優缺點?
空閒讓進:當臨界區空閒時,可以允許乙個請求進入臨界區的程序立即進入臨界區。
忙則等待:當已有程序進入臨界區時,其他試圖進入臨界區的程序必須等待。
有限等待:對請求訪問的程序,應保證能在有限時間內進入臨界區(保證不會飢餓)。
讓權等待:當程序不能進入臨界區時,應立即釋放處理機,防止程序忙等待。
演算法1優點:很好的貫徹了忙則等待和有限等待
缺點:對空閒讓進和讓權等待考慮不周
演算法2優點:比較好的解決了空閒讓進和有限等待的問題
缺點:忙則等待和讓權等待無法貫徹執行
演算法3優點:比較好的解決了忙則等待的問題
缺點:違背了空閒讓進、讓權等待和有限等待的準則
peterson演算法除了在讓權等待方面依然不能貫徹,其他三項程序機制同步準則方面都貫徹的比較到位
忙則等待:條件不成立,一直迴圈空轉不往下走
有限等待:程式總有機會往下執行,不會一直空轉
空閒讓進:條件一旦成立,就可讓程式執行下去
讓權等待:我的程式執行不了,即條件不成立,那麼讓別人執行
如果是通過執行迴圈空轉,那麼無法交出處理機cpu,也就無法讓別人執行,因此4個程式方法都無法實現讓權等待,因為都是通過迴圈空轉在等待
硬體方式解決程序互斥的優缺點?整型訊號量s的值代表什麼含義?其優缺點?
整型訊號量就是乙個整型變數。
利用訊號量可以解決程序互斥問題也可以解決程序同步問題,當前僅討論程序互斥問題,用訊號量解決程序同步問題在後續課程中講述。
s的值代表的是資源可不可用,它的優缺點還是一樣沒有較好的解決讓權等待。
訊號量的值表資源的數量,後面講同步的內容。
wait(s): while s<=0; //當s≤0時,迴圈檢測s是否≤0,即空操作
s:=s-1; //s>=0時,可以進入臨界區,進入前先置s-1
signal(s): s:=s+1; //退出臨界區,置s+1。
解決程序互斥問題,訊號量s的取值只有1和0,初值是1表示可進入臨界區,0表示不能進入臨界區(當前有其它程序在使用臨界區)需等待。
訊號量機制較好的體現空閒讓進、忙則等待和有限等待,仍然沒有較好的實現讓權等待。
請記住dijkstra這位大神!其貢獻有:
1)提出"goto語句有害論",只用三種基本控制結構就可以寫各種程式;
2)提出訊號量和pv原語;
3)解決了"哲學家就餐"問題;
4)最短路徑演算法和銀行家演算法的創造者;
5)第乙個algol 60編譯器的設計者和實現者;
6)the作業系統的設計者和開發者;
2023年第7屆圖靈獎獲得者
作業系統 課堂問答筆記16 習題答案
說明 其他 課堂問答筆記 也在 作業系統 專欄 本節課課後討論彙總 動態分割槽分配演算法和固定分割槽分配演算法的區別?4種動態分割槽分配演算法各自的優缺點?答 固定分割槽分配是在處理作業之前儲存器就已經被劃分成若干個分割槽,每個分割槽的大小可以相同,也可以不同。但是,一旦劃分好分割槽後,記憶體中的分...
作業系統 課堂問答筆記03
機器的速度和人的速度的不匹配導致資源浪費。同時 這兩個字要打引號,因cpu在任何時刻只能做一件事,巨集觀上可以理解計算機可以同時做多件事情 即在任何乙個時間點,計算機只做一件事 但考察乙個時間段,計算機完成了多件事情。按照事先制定的規則排隊。就像你乙個晚上做了很多門課的作業,但是任何乙個時刻,只做一...
作業系統 課堂問答筆記06
就緒 程序處於萬事俱備只欠東風 就差cpu的執行 的狀態。已經為程序建立好了pcb,並放到就緒佇列中排隊,就等cpu資源就可以執行了。pcb 程序控制塊 阻塞 程序因為需要某個條件 如i o 而暫時停止cpu的執行,喚醒 把程序由阻塞變為就緒 之前的條件已經得到滿足 掛起 因記憶體空間不足而暫時把記...