国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法

這篇具有很好參考價值的文章主要介紹了(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

進(jìn)程調(diào)度算法也稱 CPU 調(diào)度算法,畢竟進(jìn)程是由 CPU 調(diào)度的。

當(dāng) CPU 空閑時,操作系統(tǒng)就選擇內(nèi)存中標(biāo)的某個 [就緒狀態(tài)] 的進(jìn)程,將其分配給 CPU。

什么時候會發(fā)生CPU調(diào)度呢?通常有以下情況:

  1. 當(dāng)進(jìn)程從運行狀態(tài)轉(zhuǎn)換到等待狀態(tài)
  2. 當(dāng)進(jìn)程從運行狀態(tài)轉(zhuǎn)換到就緒狀態(tài)
  3. 當(dāng)進(jìn)程從等待狀態(tài)轉(zhuǎn)換到就緒狀態(tài)
  4. 當(dāng)進(jìn)程從運行狀態(tài)轉(zhuǎn)換到終止?fàn)顟B(tài)

其中發(fā)生在 1 和 4 兩種情況下的調(diào)度稱為 [非搶占式調(diào)度] , 2 和 3 兩種情況下發(fā)生的調(diào)度稱為 [搶占式調(diào)度]。

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

搶占式調(diào)度,顧名思義就是進(jìn)程正在運行的時候,可以被打斷,使其把 CPU 讓給其他進(jìn)程。那搶占的原則一般有三種,分別是時間片原則,優(yōu)先權(quán)原則,短作業(yè)優(yōu)先原則。

調(diào)度算法影響的是等待時間(進(jìn)程在就緒隊列中等待調(diào)度的時間總和),而不能影響進(jìn)程真在使用的 CPU 時間和 I/O 時間。

常見的調(diào)度算法:

  • 先來先服務(wù)算法
  • 最短作業(yè)優(yōu)先調(diào)度
  • 高響應(yīng)比優(yōu)先調(diào)度
  • 時間片輪轉(zhuǎn)調(diào)度
  • 最高優(yōu)先級調(diào)度
  • 多級反饋隊列調(diào)度

先來先服務(wù)調(diào)度算法

最簡單的一個調(diào)度算法,就是非搶占式的先來先服務(wù)(FCFS)算法。

(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法,操作系統(tǒng),學(xué)習(xí),筆記,服務(wù)器

?先來先服務(wù):每次從就緒隊列選擇最先進(jìn)入隊列的進(jìn)程,然后一直運行,直到進(jìn)程退出或被阻塞,才會繼續(xù)從隊列中選擇第一個進(jìn)程接著運行。

這似乎很公平,但是當(dāng)一個長作業(yè)先運行了,那么后面的短作業(yè)等待的時間就會很長,不利于短作業(yè)。

FCFS對長作業(yè)有利,適用于CPU繁忙型作業(yè)的系統(tǒng),而不適用于 I/O 繁忙型作業(yè)的系統(tǒng)。


最短作業(yè)優(yōu)先調(diào)度算法

最短作業(yè)優(yōu)先(SJF)調(diào)度算法同樣也是顧名思義,它會優(yōu)先選擇運行時間最短的進(jìn)程來運行,這有助于提高系統(tǒng)的吞吐量。

(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法,操作系統(tǒng),學(xué)習(xí),筆記,服務(wù)器

這顯然對長作業(yè)不利,很容易造成一種極端現(xiàn)象。

比如,一個長作業(yè)在就緒隊列等待運行,而這個就緒隊列有非常多的短作業(yè),那么就會使得長作業(yè)不斷地往后推,周轉(zhuǎn)時間變長,致使長作業(yè)長期不會被運行。


高響應(yīng)比優(yōu)先調(diào)度算法

前面的 [先來先服務(wù)調(diào)度算法] 和 [最短作業(yè)優(yōu)先調(diào)度算法] 都沒有很好的權(quán)衡短作業(yè)和長作業(yè)。

那么。高響應(yīng)比優(yōu)先(HRRN)調(diào)度算法主要是權(quán)衡了短作業(yè)和長作業(yè)。

每次進(jìn)行進(jìn)程調(diào)度時,先計算 [響應(yīng)比優(yōu)先級],然后把 [響應(yīng)比優(yōu)先級] 最高的進(jìn)程投入運行,[響應(yīng)比優(yōu)先級] 的計算公式:

(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法,操作系統(tǒng),學(xué)習(xí),筆記,服務(wù)器

從上面的公式可以發(fā)現(xiàn):

  • 如果兩個進(jìn)程的 [等待時間] 相同時, [要求服務(wù)時間] 越短,[響應(yīng)比] 就越高,這樣短作業(yè)的進(jìn)程容易被選中運行
  • 如果兩個進(jìn)程 [要求服務(wù)時間] 相同時,[等待時間] 越長,[響應(yīng)比] 就越高,這就兼顧到了長作業(yè)進(jìn)程,因為進(jìn)程的響應(yīng)比可以隨時間等待的增加而提高,當(dāng)其等待時間足夠長時,其響應(yīng)比便可以升到很高,從而獲得運行的機會

時間片輪轉(zhuǎn)調(diào)度算法

最古老、最簡單、最公平且使用最廣泛的算法就是時間片輪轉(zhuǎn)(RR)調(diào)度算法。

(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法,操作系統(tǒng),學(xué)習(xí),筆記,服務(wù)器

每個進(jìn)程被分配一個時間段,稱為時間片,即允許該進(jìn)程在該時間段中運行。

  • 如果時間片用完,進(jìn)程還在運行,那么將會把此進(jìn)程從CPU釋放出來,并把 CPU分配另外一個進(jìn)程
  • 如果該進(jìn)程在時間片結(jié)束前阻塞或結(jié)束,則 CPU 立即進(jìn)行切換

另外。時間片的長度就是一個很關(guān)鍵的點:

  • 如果時間片設(shè)的太短會導(dǎo)致過多的進(jìn)程上下文切換,降低了 CPU 效率
  • 如果設(shè)的太長又可能引起對短作業(yè)進(jìn)程的響應(yīng)時間變長,通常將時間片設(shè)置為 20ms-50ms 是一個比較合理的折中值。

最高優(yōu)先級調(diào)度算法

前面的 [時間片輪轉(zhuǎn)算法] 做了一個假設(shè),即讓所有的進(jìn)程同等重要,也不偏袒誰,大家的運行時間都一樣。

但是對于多用戶計算機系統(tǒng)就有不同的看法了,它們希望調(diào)度是有優(yōu)先級的,即希望調(diào)度程序能從就緒隊列中選擇最高優(yōu)先級的進(jìn)程進(jìn)行運行,這稱為最高優(yōu)先級(HPF)調(diào)度算法。

進(jìn)程的優(yōu)先級可以分為,靜態(tài)優(yōu)先級或動態(tài)優(yōu)先級:

  • 靜態(tài)優(yōu)先級:創(chuàng)建進(jìn)程時候,就已經(jīng)確定優(yōu)先級了,然后整個運行時間優(yōu)先級都不會變化;
  • 動態(tài)優(yōu)先級:根據(jù)進(jìn)程的動態(tài)變化調(diào)整優(yōu)先級,比如如果進(jìn)程運行時間增加,則降低其優(yōu)先級,如果進(jìn)程等待時間(就緒隊列的等待時間)增加,則升高其優(yōu)先級,也就是隨著時間的推移增加等待進(jìn)程的優(yōu)先級。

該算法也有兩種處理優(yōu)先級高的方法,非搶占式和搶占式:

  • 非搶占式:當(dāng)就緒隊列中出現(xiàn)優(yōu)先級高的進(jìn)程,運行完當(dāng)前進(jìn)程,再選擇優(yōu)先級高的進(jìn)程。
  • 搶占式:當(dāng)就緒隊列中出現(xiàn)優(yōu)先級高的進(jìn)程,當(dāng)前進(jìn)程掛起,調(diào)度優(yōu)先級高的進(jìn)程運行。

但是依然有缺點,可能會導(dǎo)致低優(yōu)先級的進(jìn)程永遠(yuǎn)不會運行。


多級反饋隊列調(diào)度算法

多級反饋隊列(MFQ)調(diào)度算法是 [時間片輪轉(zhuǎn)算法] 和 [最高優(yōu)先級算法] 的綜合和發(fā)展。

顧名思義:

  • [多級] 表示有多個隊列,每個隊列優(yōu)先級從高到低,同時優(yōu)先級越高時間片越短
  • [反饋] 表示如果有新的進(jìn)程加入優(yōu)先級高的隊列時,立刻停止當(dāng)前正在運行的進(jìn)程,轉(zhuǎn)而去運行優(yōu)先級高的隊列

(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法,操作系統(tǒng),學(xué)習(xí),筆記,服務(wù)器

?工作方式:

  • 設(shè)置多個隊列,賦予每個隊列不同的優(yōu)先級,每個隊列優(yōu)先級從高到低,同時優(yōu)先級越高時間片越短。
  • 新的進(jìn)程會被放入到第一級隊列的末尾,按先來先服務(wù)的原則排隊等待被調(diào)度,如果在第一級隊列規(guī)定的時間片沒運行完成,則將其裝入到第二級隊列的末尾,以此類推,直至完成
  • 當(dāng)較高優(yōu)先級的隊列為空,才調(diào)度較低優(yōu)先級的隊列中的進(jìn)程運行。如果進(jìn)程運行時,有新的進(jìn)程進(jìn)入較高優(yōu)先級的隊列,則停止當(dāng)前運行的進(jìn)程并將其移入到原隊列末尾,接著讓較高優(yōu)先級的進(jìn)程運行

可以發(fā)現(xiàn),對于短作業(yè)可能可以在第一級隊列很快被處理完。對于長作業(yè),如果在第一級隊列處理不完,可以移入下次隊列等待被執(zhí)行,雖然等待的時間變長了,但是運行時間也會變長,所以該算法很好的兼顧了長短作業(yè),同時有較好的響應(yīng)時間。文章來源地址http://www.zghlxwxcb.cn/news/detail-665606.html


到了這里,關(guān)于(學(xué)習(xí)筆記-調(diào)度算法)進(jìn)程調(diào)度算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 用代碼模擬操作系統(tǒng)進(jìn)程調(diào)度算法(Python)

    用代碼模擬操作系統(tǒng)進(jìn)程調(diào)度算法(Python)

    ?引言 近日,在學(xué)習(xí)完操作系統(tǒng)的進(jìn)程調(diào)度部分后,我萌生了一個有趣的想法:通過編寫代碼來模擬進(jìn)程調(diào)度算法,以加深自己對這一知識點的理解。于是,我花了一整天的時間投入到了這個突發(fā)奇想的實踐中。 ?背景 進(jìn)程調(diào)度是操作系統(tǒng)中的重要概念,它決定了如何合理地

    2024年02月06日
    瀏覽(22)
  • 操作系統(tǒng)進(jìn)程調(diào)度算法(c語言模擬實現(xiàn))

    操作系統(tǒng)進(jìn)程調(diào)度算法(c語言模擬實現(xiàn))

    ????????前言: 本文旨在分享如何使用c語言對操作系統(tǒng)中的部分進(jìn)程調(diào)度算法進(jìn)行模擬實現(xiàn),以及算法描述的講解, 完整代碼放在文章末尾,歡迎大家自行拷貝調(diào)用 目錄 常見的調(diào)度算法 數(shù)據(jù)結(jié)構(gòu) 先來先服務(wù)調(diào)度算法 算法模擬思路: 算法模擬:? 最短作業(yè)優(yōu)先調(diào)度算法

    2024年02月06日
    瀏覽(26)
  • 【操作系統(tǒng)】期末速成之計算題:進(jìn)程調(diào)度算法

    【操作系統(tǒng)】期末速成之計算題:進(jìn)程調(diào)度算法

    先來先服務(wù)是非搶占式的算法 一個?? 例題:各進(jìn)程到達(dá)就緒隊列的時間、需要的運行時間如下表所示。使用先來先服務(wù)調(diào)度算法,計算各進(jìn)程的等待時間、平均等待時間、周轉(zhuǎn)時間、平均周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間、平均帶權(quán)周轉(zhuǎn)時間。 進(jìn)程 到達(dá)時間 運行時間 P1 0 7 P2 2 4

    2024年02月11日
    瀏覽(19)
  • 計算機操作系統(tǒng)實驗-進(jìn)程調(diào)度模擬算法

    進(jìn)程調(diào)度是處理機管理的核心內(nèi)容。本實驗要求用高級語言編寫模擬進(jìn)程調(diào)度程序,以 便加深理解有關(guān)進(jìn)程控制快、進(jìn)程隊列等概念,并體會和了解優(yōu)先數(shù)算法和時間片輪轉(zhuǎn)算法 的具體實施辦法。 1.設(shè)計進(jìn)程控制塊 PCB 的結(jié)構(gòu),通常應(yīng)包括如下信息: 進(jìn)程名、進(jìn)程優(yōu)先數(shù)(

    2024年02月05日
    瀏覽(89)
  • 操作系統(tǒng)進(jìn)程調(diào)度算法的模擬實現(xiàn)(c語言版本)

    操作系統(tǒng)進(jìn)程調(diào)度算法的模擬實現(xiàn)(c語言版本)

    ????????前言: 本文旨在分享如何使用c語言對操作系統(tǒng)中的部分進(jìn)程調(diào)度算法進(jìn)行模擬實現(xiàn),以及算法描述的講解, 完整代碼放在文章末尾,歡迎大家自行拷貝調(diào)用 目錄 常見的調(diào)度算法 數(shù)據(jù)結(jié)構(gòu) 先來先服務(wù)調(diào)度算法 算法模擬思路: 算法模擬:? 最短作業(yè)優(yōu)先調(diào)度算法

    2024年02月06日
    瀏覽(16)
  • 操作系統(tǒng):實驗一:進(jìn)程調(diào)度實驗——最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法以及先來先服務(wù)算法 源碼

    操作系統(tǒng):實驗一:進(jìn)程調(diào)度實驗——最高優(yōu)先數(shù)優(yōu)先的調(diào)度算法以及先來先服務(wù)算法 源碼

    一、實驗?zāi)康?(1)了解進(jìn)程實體PCB結(jié)構(gòu); (2)理解進(jìn)程不同狀態(tài)和狀態(tài)之間的轉(zhuǎn)換過程; (3)掌握優(yōu)先數(shù)的調(diào)度算法和先來先服務(wù)算法; 二、實驗內(nèi)容與要求 設(shè)計一個有 N個進(jìn)程共行的進(jìn)程調(diào)度程序 四、實驗步驟 (1)實驗設(shè)計 進(jìn)程調(diào)度算法: 采用最高優(yōu)先數(shù)優(yōu)先的調(diào)

    2024年02月06日
    瀏覽(20)
  • 操作系統(tǒng)有關(guān)進(jìn)程調(diào)度算法(含先來先服務(wù),短作業(yè)優(yōu)先,優(yōu)先級調(diào)度算法和時間片輪轉(zhuǎn)調(diào)度算法)

    操作系統(tǒng)有關(guān)進(jìn)程調(diào)度算法(含先來先服務(wù),短作業(yè)優(yōu)先,優(yōu)先級調(diào)度算法和時間片輪轉(zhuǎn)調(diào)度算法)

    本文采用的進(jìn)程調(diào)度算法有:先來先服務(wù),短作業(yè)優(yōu)先,優(yōu)先級調(diào)度算法和時間片輪轉(zhuǎn)調(diào)度算法。 針對這四種算法,我采用的是建立數(shù)組結(jié)構(gòu)體,如: 先來先服務(wù)(FCFS)調(diào)度算法是一種最簡單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。采用FCFS算法,每次從

    2024年02月03日
    瀏覽(24)
  • 【操作系統(tǒng)】c語言--進(jìn)程調(diào)度算法(FCFS和SPN)

    【操作系統(tǒng)】c語言--進(jìn)程調(diào)度算法(FCFS和SPN)

    創(chuàng)作不易,本篇文章如果幫助到了你,還請點贊 關(guān)注支持一下???)!! 主頁專欄有更多知識,如有疑問歡迎大家指正討論,共同進(jìn)步! ??c++系列專欄:C/C++零基礎(chǔ)到精通 ?? 給大家跳段街舞感謝支持!? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? c語言內(nèi)容??:

    2024年02月12日
    瀏覽(17)
  • 操作系統(tǒng)進(jìn)程線程(一)—進(jìn)程線程協(xié)程區(qū)別、多進(jìn)程多線程、進(jìn)程調(diào)度算法、進(jìn)程線程通信

    操作系統(tǒng)進(jìn)程線程(一)—進(jìn)程線程協(xié)程區(qū)別、多進(jìn)程多線程、進(jìn)程調(diào)度算法、進(jìn)程線程通信

    定義上 進(jìn)程: 資源分配和擁有 的基本單位,是調(diào)度的基本單位。 運行一個可執(zhí)行程序會創(chuàng)建一個或者多個進(jìn)程;進(jìn)程就是運行起來的程序 線程:程序 執(zhí)行 基本單位,輕量級進(jìn)程。 每個進(jìn)程中都有唯一的主線程 ,主線程和進(jìn)程是相互依賴的關(guān)系。 協(xié)程: 用戶態(tài) 的輕量級

    2024年02月01日
    瀏覽(96)
  • 操作系統(tǒng)理論:Linux進(jìn)程與進(jìn)程狀態(tài)(進(jìn)程調(diào)度的大O(1)算法數(shù)據(jù)結(jié)構(gòu)模型)

    操作系統(tǒng)理論:Linux進(jìn)程與進(jìn)程狀態(tài)(進(jìn)程調(diào)度的大O(1)算法數(shù)據(jù)結(jié)構(gòu)模型)

    馮諾依曼體系的計算機在運行時,內(nèi)存中會預(yù)加載許多程序(數(shù)據(jù)+運算指令集),然而CPU 同一時刻只能執(zhí)行一個程序 (多個程序競爭CPU資源),此時就需要操作系統(tǒng) 對內(nèi)存中的諸多程序進(jìn)行管理 ,讓CPU資源得到合理的分配,于是便有了進(jìn)程的概念: 進(jìn)程:描述程序的結(jié)構(gòu)體對象( PCB結(jié)構(gòu)體

    2024年02月15日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包