排程型別:高階排程、低階排程、中級排程
高階排程:
又稱作業排程、巨集觀排程。外存上後備佇列中的作業調入記憶體。適用於批處理系統。
低階排程:
又稱進度排程、微觀排程。決定就緒佇列中哪些程序獲得處理機。適用於分時、實時、批處理系統。
排程方式:非剝奪式、剝奪式
搶占原則:時間片、優先權、程序長短
中級排程:
又稱對換程式。記憶體外存對換,解決記憶體緊張問題。
程序排程方式:
不可剝奪方式(非搶占方式)、可剝奪方式(搶占方式)
程序排程時機:
程序退出、程序阻塞、新程序建立、中斷發生、時鐘中斷
排程效能準則:
面向使用者的準則(響應時間快、周轉時間短、優先權準則、截止時間保證)
面向系統的準則(系統吞吐量、處理機利用率、各類資源平衡利用、公平)
周轉時間=作業完成時刻-作業到達時刻
先來先服務排程演算法fcfs:有利於長作業
短作業優先排程演算法sjf:(短程序優先排程演算法spn):極端情況下,長作業得不到排程
時間片輪轉排程演算法:
響應時間t=使用者數目n時間片q*
最短剩餘時間優先srt
多級反饋佇列mfq
優先權排程演算法:
靜態優先權:確定因素:靜態型別、程序對資源的需求、使用者需求
動態優先權:確定因素:等待時間、執行時間
一組競爭系統資源或相互通訊的程序相互的「永久」阻塞。若無外力作用,這組程序將永遠不能繼續執行。
產生死鎖的原因:
資源數《要求該種資源的程序數
程序的推進順序非法
可重複資源:
往往一次只能分配給乙個程序安全使用,並且不會因為使用而耗盡。程序得到這類資源,使用完畢就釋放,其他程序再次使用。如i/o通道、處理機、裝置等。
可消耗資源:
是指可以建立和撤消的資源,乙個程序使用後,就不在存在。如中斷、訊號量、訊息和快取區等。
產生死鎖的條件:
產生死鎖的必要條件
互斥條件
請求保持條件
不可剝奪條件
產生死鎖的充分條件
環路條件
死鎖的處理方法:
死鎖的預防
死鎖的避免
死鎖的檢測與恢復
死鎖的預防:
互斥條件不可禁止
去掉「請求保持條件」
採用預先靜態分配方法:系統要求所有程序一次性地申請其所需的全部資源。
去掉「不可剝奪條件」
去掉「環路條件」
採用資源的有序分配:令所有資源排隊,並賦予序號。當程序請求資源,必須嚴格按照遞增次序提出,從而消除環路。
死鎖的預防效率低。
死鎖的避免:
銀行家演算法
進行資源預分配
實施安全檢測
(安全:真正資源分配;不安全:回到預分配前狀態)
死鎖的檢測:資源分配圖
死鎖的解除:
剝奪資源(從其他程序剝奪足夠數量的資源給死鎖程序)
撤銷程序(為接觸死鎖狀態所需撤消的程序數目最小 撤消程序所付出的代價最小)
不會出現死鎖的條件:總資源大於(程序需求-1)程序個數
安全狀態不會出現死鎖,出現死鎖一定是在不安全狀態,不安全狀態不一定是因為死鎖。
總結:
(1)排程型別與準則:高階排程(從記憶體)、中級排程、低階排程(從就緒佇列) 不可剝奪、可剝奪
(2)排程演算法:先來先服務、短作業優先(最短剩餘時間,高響應比優先)、時間片輪詢、優先權排程、多級反饋佇列
(3)死鎖的預防與避免:四個死鎖必要條件、死鎖預防(按順序分配資源)、死鎖避免(銀行家演算法)、死鎖的檢測(資源分配圖)、死鎖的解除(剝奪資源、撤消程序)
(真實系統解決死鎖:鴕鳥演算法)
作業系統第四章
2 分割槽分配演算法 動態分割槽方式,分割槽多 大小差異各不相同,此時把乙個新作業裝入記憶體,更需選擇乙個合適的分配演算法,從空閒分割槽表 鏈中選出一合適分割槽 首次適應演算法ff 迴圈首次適應演算法 最佳適應演算法 最差適應演算法 快速適應演算法 4 動態重定位分割槽分配 有緊湊功能的動態分割槽分...
作業系統第四章
常用排程演算法 先來先服務演算法 fcfs 短程序優先演算法 spf 短剩餘時間優先演算法 srt 最高響應比優先演算法 hrrn 時間片輪轉演算法 rr 和多級反饋演算法 mfq 先來先服務演算法 fcfs 基本思想是按照程序進入就緒佇列的先後次序來分配處理機.採用不可剝奪方式 fcfs演算法很少...
作業系統第四次作業
4.2 解 發生模式切換可以不改變正處於執行態的程序狀態,在這種情況下,儲存上下文環境和以後恢復上下文環境只需要很少的開銷,執行緒包含的狀態資訊更少 4.3解 資源所有權和排程執行 4.4.解 例如位址空間,檔案資源,執行特權等。problems 4.2解 因為對於使用者級執行緒來說,乙個程序的執行...