亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

經典的進程調度算法有哪些

發布時間:2021-10-18 17:09:47 來源:億速云 閱讀:126 作者:iii 欄目:web開發

這篇文章主要介紹“經典的進程調度算法有哪些”,在日常操作中,相信很多人在經典的進程調度算法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”經典的進程調度算法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

文中的很多圖片來源我考研時看的網課,B  站上應該還能找到,王道考研出品的操作系統系列,各位可以去看看,適用于考試,不太適用于春招秋招,因為知識點講的太細,邊邊角角都會講到,各位可以挑幾個章節去看。全文脈絡思維導圖如下:

經典的進程調度算法有哪些

1. 調度的概念

當 CPU 有一堆任務要處理時,由于其資源有限,這些事情就沒法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是 “調度”  研究的問題。除了接下來將要說的進程調度,還有作業調度、內存調度等。

回顧一下進程的三態模型:

  • 「運行態」(running):進程占有 CPU 正在運行。

  • 「就緒態」(ready):進程具備運行條件,等待系統分配 CPU 以便運行。

  • 「阻塞態」 / 等待態(wait):進程不具備運行條件,正在等待某個事件的完成。

經典的進程調度算法有哪些

所謂進程調度,就是「從進程的就緒隊列(阻塞)中按照一定的算法選擇一個進程并將 CPU  分配給它運行」,以實現進程的并發執行。這是操作系統中最基本(最低級)的一種調度,在一般的操作系統中都必須配置進程調度。進程調度的頻率很高,一般幾十毫秒一次。

2. 非搶占式進程調度算法

所謂非搶占式的意思就是,當進程正在運行時,它就會一直運行,直到該進程完成或發生某個事件發生而被阻塞時,才會把 CPU 讓給其他進程。

對應的,搶占式的意思就是,當進程正在運行的時,可以被打斷,把 CPU 讓給其他進程。

① 先到先服務 FCFS

先來先服務調度算法(First Come First  Serve,FCFS):按照進程到達的先后順序進行調度,「先到的進程就先被調度」,也就是說,等待時間越久的越優先得到服務。

經典的進程調度算法有哪些

優點:公平、算法實現簡單

缺點:對短進程不利。排在長進程后面的短進程需要等待很長時間,短進程的響應時間太長了,用戶交互體驗會變差。

② 最短作業優先 SJF

最短作業/進程優先調度算法(Shortest Job First,SJF):「每次調度時選擇當前已到達的、且運行時間最短的進程」。

經典的進程調度算法有哪些

最短作業優先算法和先到先服務恰好相反,先到先服務對短進程不利,而最短作業優先算法對長程不利。因為如果一直有短進程到來,那么長進程永遠得不到調度,長進程有可能會餓死,處于一直等待短作業執行完畢的狀態。

③ 高響應比優先 HRRN

高響應比優先算法(Highest Response Ratio Next,HRRN):只有當前運行的進程主動放棄 CPU  時(正常/異常完成,或主動阻塞),才需要進行調度,「調度時計算所有就緒進程的響應比,為響應比最高的進程分配 CPU」。響應比 = (進程的等待時間 +  進程需要的運行時間) / 進程需要的運行時間

經典的進程調度算法有哪些

3. 搶占式進程調度算法

搶占就是指當進程正在運行的時,可以被打斷,把 CPU 讓給其他進程。搶占的原則一般有三種,分別是時間片原則、優先權原則、短作業優先原則。

① 最短剩余時間優先 SRTN

最短剩余時間優先(Shortest Remaining Time Next,SRTN)算法是「最短作業優先的搶占式版本」。

「當一個新的進程到達時,把它所需要的整個運行時間與當前進程的剩余運行時間作比較。如果新的進程需要的時間更少,則掛起當前進程,運行新的進程,否則新的進程等待。」

經典的進程調度算法有哪些

② 輪轉調度算法 RR

輪轉調度算法(Round Robin,RR)也稱時間片調度算法:調度程序每次把 CPU 分配給就緒隊列首進程使用規定的時間間隔,稱為時間片,通常為  10ms ~ 200ms,「就緒隊列中的每個進程輪流地運行一個時間片,當時間片耗盡時就強迫當前運行進程讓出 CPU  資源,轉而排到就緒隊列尾部,等待下一輪調度」。所以,一個進程一般都需要多次輪轉才能完成。

輪轉調度算法對每個進程都一視同仁,就好比大家都排好隊,一個一個來,每個人都運行一會兒再接著重新排隊等待運行。

經典的進程調度算法有哪些

需要注意的是:時間片的長度是一個很關鍵的因素:

  • 如果時間片設置得太短,就會導致頻繁的進程上下文切換,降低了 CPU 效率;

  • 如果時間片設置得太長,那么隨著就緒隊列中進程數目的增加,輪轉一次消耗的總時間加長,即每隔進程的相應速度放慢。甚至時間片大到讓進程足以完成其所有任務,RR  調度算法便退化成 FCFS 算法。

4. 最高優先級調度算法 HPF

RR  調度算法對所有的進程都是相同的策略,如果用戶進程太多,可能會導致內核的服務進程響應跟不上。而在操作系統中,內核進程是比用戶進程重要的多的,畢竟它關乎整個系統的穩定性。

最高優先級調度算法(Highest Priority  First,HPF)就是「從就緒隊列中選擇最高優先級的進程進行運行」。進程的優先級是怎么規定的呢?分為靜態優先級或動態優先級:

  • 「靜態優先級」:創建進程時候,就預先規定優先級,并且整個運行過程中該進程的優先級都不會發生變化。一般來說,內核進程的優先級都是高于用戶進程的。

  • 「動態優先級」:根據進程的動態變化調整優先級。比如隨著進程的運行時間增加,適當的降低其優先級;隨著就緒隊列中進程的等待時間增加,適當的升高其優先級。

另外,需要注意的是,最高優先級算法并非是固定的搶占式策略或非搶占式,「系統可預先規定使用哪種策略」:

  • 非搶占式:當就緒隊列中出現優先級高的進程,則運行完當前進程后,再選擇該優先級高的進程。

  • 搶占式:當就緒隊列中出現優先級高的進程,則立即強制剝奪當前運行進程的 CPU 資源,分配給優先級更高的進程運行。

到此,關于“經典的進程調度算法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威信县| 即墨市| 钦州市| 灵璧县| 东港市| 商南县| 蓝山县| 湖口县| 蒲城县| 无为县| 革吉县| 额济纳旗| 池州市| 同仁县| 西和县| 芜湖县| 塔城市| 台北市| 景德镇市| 乐东| 酒泉市| 拜城县| 泽州县| 天津市| 张掖市| 水富县| 新安县| 康平县| 临西县| 临湘市| 广德县| 徐水县| 江门市| 原平市| 富顺县| 塘沽区| 隆安县| 社会| 萍乡市| 温泉县| 盘锦市|