最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中進(jìn)程的調(diào)度算法詳解

 更新時(shí)間:2023年07月26日 10:36:11   作者:Python 學(xué)習(xí)者  
這篇文章主要介紹了Python中進(jìn)程的調(diào)度算法詳解,要想多個(gè)進(jìn)程交替運(yùn)行,操作系統(tǒng)必須對(duì)這些進(jìn)程進(jìn)行調(diào)度,這個(gè)調(diào)度也不是隨即進(jìn)行的,而是需要遵循一定的法則,由此就有了進(jìn)程的調(diào)度算法,需要的朋友可以參考下

一、先來(lái)先服務(wù)調(diào)度算法

先來(lái)先服務(wù)(FCFS)調(diào)度算法是一種最簡(jiǎn)單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。FCFS算法比較有利于長(zhǎng)作業(yè)(進(jìn)程),而不利于短作業(yè)(進(jìn)程)。

由此可知,本算法適合于CPU繁忙型作業(yè),而不利于I/O繁忙型的作業(yè)(進(jìn)程)。

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

短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法(SJ/PF)是指對(duì)短作業(yè)或短進(jìn)程優(yōu)先調(diào)度的算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。

但其對(duì)長(zhǎng)作業(yè)不利;

不能保證緊迫性作業(yè)(進(jìn)程)被及時(shí)處理;

作業(yè)的長(zhǎng)短只是被估算出來(lái)的。

三、時(shí)間片輪轉(zhuǎn)法

時(shí)間片輪轉(zhuǎn)(Round Robin,RR)法的基本思路是讓每個(gè)進(jìn)程在就緒隊(duì)列中的等待時(shí)間與享受服務(wù)的時(shí)間成比例。

在時(shí)間片輪轉(zhuǎn)法中,需要將CPU的處理時(shí)間分成固定大小的時(shí)間片

例如,幾十毫秒至幾百毫秒。如果一個(gè)進(jìn)程在被調(diào)度選中之后用完了系統(tǒng)規(guī)定的時(shí)間片,但又未完成要求的任務(wù),則它自行釋放自己所占有的CPU而排到就緒隊(duì)列的末尾,等待下一次調(diào)度。

同時(shí),進(jìn)程調(diào)度程序又去調(diào)度當(dāng)前就緒隊(duì)列中的第一個(gè)進(jìn)程。

顯然,輪轉(zhuǎn)法只能用來(lái)調(diào)度分配一些可以搶占的資源。

這些可以搶占的資源可以隨時(shí)被剝奪,而且可以將它們?cè)俜峙浣o別的進(jìn)程。CPU是可搶占資源的一種。但打印機(jī)等資源是不可搶占的。

由于作業(yè)調(diào)度是對(duì)除了CPU之外的所有系統(tǒng)硬件資源的分配,其中包含有不可搶占資源,所以作業(yè)調(diào)度不使用輪轉(zhuǎn)法。

在輪轉(zhuǎn)法中,時(shí)間片長(zhǎng)度的選取非常重要。

首先,時(shí)間片長(zhǎng)度的選擇會(huì)直接影響到系統(tǒng)的開銷和響應(yīng)時(shí)間。如果時(shí)間片長(zhǎng)度過(guò)短,則調(diào)度程序搶占處理機(jī)的次數(shù)增多。

這將使進(jìn)程上下文切換次數(shù)也大大增加,從而加重系統(tǒng)開銷。反過(guò)來(lái),如果時(shí)間片長(zhǎng)度選擇過(guò)長(zhǎng)

例如,一個(gè)時(shí)間片能保證就緒隊(duì)列中所需執(zhí)行時(shí)間最長(zhǎng)的進(jìn)程能執(zhí)行完畢,則輪轉(zhuǎn)法變成了先來(lái)先服務(wù)法。

時(shí)間片長(zhǎng)度的選擇是根據(jù)系統(tǒng)對(duì)響應(yīng)時(shí)間的要求和就緒隊(duì)列中所允許最大的進(jìn)程數(shù)來(lái)確定的。

在輪轉(zhuǎn)法中,加入到就緒隊(duì)列的進(jìn)程有3種情況:

  • 第一種是分給它的時(shí)間片用完,但進(jìn)程還未完成,回到就緒隊(duì)列的末尾等待下次調(diào)度去繼續(xù)執(zhí)行。
  • 第二種情況是分給該進(jìn)程的時(shí)間片并未用完,只是因?yàn)檎?qǐng)求I/O或由于進(jìn)程的互斥與同步關(guān)系而被阻塞。當(dāng)阻塞解除之后再回到就緒隊(duì)列。
  • 第三種情況就是新創(chuàng)建進(jìn)程進(jìn)入就緒隊(duì)列。

如果對(duì)這些進(jìn)程區(qū)別對(duì)待,給予不同的優(yōu)先級(jí)和時(shí)間片從直觀上看,可以進(jìn)一步改善系統(tǒng)服務(wù)質(zhì)量和效率。

例如,我們可把就緒隊(duì)列按照進(jìn)程到達(dá)就緒隊(duì)列的類型和進(jìn)程被阻塞時(shí)的阻塞原因分成不同的就緒隊(duì)列,每個(gè)隊(duì)列按FCFS原則排列,各隊(duì)列之間的進(jìn)程享有不同的優(yōu)先級(jí),但同一隊(duì)列內(nèi)優(yōu)先級(jí)相同。這樣,當(dāng)一個(gè)進(jìn)程在執(zhí)行完它的時(shí)間片之后,或從睡眠中被喚醒以及被創(chuàng)建之后,將進(jìn)入不同的就緒隊(duì)列。

四、多級(jí)反饋隊(duì)列

前面介紹的各種用作進(jìn)程調(diào)度的算法都有一定的局限性。如短進(jìn)程優(yōu)先的調(diào)度算法,僅照顧了短進(jìn)程而忽略了長(zhǎng)進(jìn)程,而且如果并未指明進(jìn)程的長(zhǎng)度,則短進(jìn)程優(yōu)先和基于進(jìn)程長(zhǎng)度的搶占式調(diào)度算法都將無(wú)法使用。

而多級(jí)反饋隊(duì)列調(diào)度算法則不必事先知道各種進(jìn)程所需的執(zhí)行時(shí)間,而且還可以滿足各種類型進(jìn)程的需要,因而它是目前被公認(rèn)的一種較好的進(jìn)程調(diào)度算法。在采用多級(jí)反饋隊(duì)列調(diào)度算法的系統(tǒng)中,調(diào)度算法的實(shí)施過(guò)程如下所述。

應(yīng)設(shè)置多個(gè)就緒隊(duì)列,并為各個(gè)隊(duì)列賦予不同的優(yōu)先級(jí)。第一個(gè)隊(duì)列的優(yōu)先級(jí)最高,第二個(gè)隊(duì)列次之,其余各隊(duì)列的優(yōu)先權(quán)逐個(gè)降低。該算法賦予各個(gè)隊(duì)列中進(jìn)程執(zhí)行時(shí)間片的大小也各不相同,在優(yōu)先權(quán)愈高的隊(duì)列中,為每個(gè)進(jìn)程所規(guī)定的執(zhí)行時(shí)間片就愈小。

例如,第二個(gè)隊(duì)列的時(shí)間片要比第一個(gè)隊(duì)列的時(shí)間片長(zhǎng)一倍,……,第i+1個(gè)隊(duì)列的時(shí)間片要比第i個(gè)隊(duì)列的時(shí)間片長(zhǎng)一倍。

當(dāng)一個(gè)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊(duì)列的末尾,按FCFS原則排隊(duì)等待調(diào)度。當(dāng)輪到該進(jìn)程執(zhí)行時(shí),如它能在該時(shí)間片內(nèi)完成,便可準(zhǔn)備撤離系統(tǒng);如果它在一個(gè)時(shí)間片結(jié)束時(shí)尚未完成,調(diào)度程序便將該進(jìn)程轉(zhuǎn)入第二隊(duì)列的末尾,再同樣地按FCFS原則等待調(diào)度執(zhí)行;如果它在第二隊(duì)列中運(yùn)行一個(gè)時(shí)間片后仍未完成,再依次將它放入第三隊(duì)列,……,如此下去,當(dāng)一個(gè)長(zhǎng)作業(yè)(進(jìn)程)從第一隊(duì)列依次降到第n隊(duì)列后,在第n 隊(duì)列便采取按時(shí)間片輪轉(zhuǎn)的方式運(yùn)行。

僅當(dāng)?shù)谝魂?duì)列空閑時(shí),調(diào)度程序才調(diào)度第二隊(duì)列中的進(jìn)程運(yùn)行;僅當(dāng)?shù)?~(i-1)隊(duì)列均空時(shí),才會(huì)調(diào)度第i隊(duì)列中的進(jìn)程運(yùn)行。如果處理機(jī)正在第i隊(duì)列中為某進(jìn)程服務(wù)時(shí),又有新進(jìn)程進(jìn)入優(yōu)先權(quán)較高的隊(duì)列(第1~(i-1)中的任何一個(gè)隊(duì)列),則此時(shí)新進(jìn)程將搶占正在運(yùn)行進(jìn)程的處理機(jī),即由調(diào)度程序把正在運(yùn)行的進(jìn)程放回到第i隊(duì)列的末尾,把處理機(jī)分配給新到的高優(yōu)先權(quán)進(jìn)程。

到此這篇關(guān)于Python中進(jìn)程的調(diào)度算法詳解的文章就介紹到這了,更多相關(guān)Python進(jìn)程的調(diào)度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python-pip配置國(guó)內(nèi)鏡像源快速下載包的方法詳解

    Python-pip配置國(guó)內(nèi)鏡像源快速下載包的方法詳解

    pip如果不配置國(guó)內(nèi)鏡像源的話,下載包的速度非常慢,畢竟默認(rèn)的源在國(guó)外呢,這篇文章主要介紹了Python-pip配置國(guó)內(nèi)鏡像源快速下載包的方法詳解,需要的朋友可以參考下
    2024-01-01
  • 詳解Python字典小結(jié)

    詳解Python字典小結(jié)

    這篇文章主要介紹了詳解Python字典小結(jié),詳細(xì)的介紹了什么是字典且創(chuàng)建字典和示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Python3 實(shí)現(xiàn)減少可調(diào)用對(duì)象的參數(shù)個(gè)數(shù)

    Python3 實(shí)現(xiàn)減少可調(diào)用對(duì)象的參數(shù)個(gè)數(shù)

    今天小編就為大家分享一篇Python3 實(shí)現(xiàn)減少可調(diào)用對(duì)象的參數(shù)個(gè)數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 使用pandas讀取csv文件的指定列方法

    使用pandas讀取csv文件的指定列方法

    下面小編就為大家分享一篇使用pandas讀取csv文件的指定列方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python使用textcase庫(kù)輕松實(shí)現(xiàn)文本格式處理

    Python使用textcase庫(kù)輕松實(shí)現(xiàn)文本格式處理

    在Python開發(fā)中,規(guī)范的文本格式處理是提升代碼可讀性和維護(hù)性的關(guān)鍵一環(huán),本文將系統(tǒng)講解textcase庫(kù)的核心功能,典型應(yīng)用場(chǎng)景及性能優(yōu)化策略,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • python通過(guò)smpt發(fā)送郵件的方法

    python通過(guò)smpt發(fā)送郵件的方法

    這篇文章主要介紹了python通過(guò)smpt發(fā)送郵件的方法,涉及Python實(shí)現(xiàn)發(fā)送郵件的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-04-04
  • Python截取字符串的簡(jiǎn)單方法實(shí)例

    Python截取字符串的簡(jiǎn)單方法實(shí)例

    字符串切片也就是截取字符串,取子串,下面這篇文章主要給大家介紹了關(guān)于Python截取字符串的簡(jiǎn)單方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python解析微信dat文件的方法

    Python解析微信dat文件的方法

    這篇文章主要介紹了Python解析微信dat文件的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 使用Pandas進(jìn)行時(shí)間序列分析的10個(gè)關(guān)鍵點(diǎn)詳解

    使用Pandas進(jìn)行時(shí)間序列分析的10個(gè)關(guān)鍵點(diǎn)詳解

    這篇文章主要為大家詳細(xì)介紹了使用Pandas進(jìn)行時(shí)間序列分析的10個(gè)關(guān)鍵點(diǎn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-10-10
  • python GUI實(shí)現(xiàn)小球滿屏亂跑效果

    python GUI實(shí)現(xiàn)小球滿屏亂跑效果

    這篇文章主要為大家詳細(xì)介紹了python GUI實(shí)現(xiàn)小球滿屏亂跑效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論

商水县| 赤壁市| 梁平县| 宁化县| 扎赉特旗| 垦利县| 泸定县| 佛教| 松桃| 颍上县| 金门县| 桃源县| 乐至县| 和田县| 河津市| 文水县| 徐汇区| 阿拉善右旗| 高邮市| 靖宇县| 积石山| 呼玛县| 温宿县| 崇义县| 剑河县| 乐业县| 故城县| 班戈县| 佳木斯市| 安龙县| 林口县| 昔阳县| 色达县| 泗阳县| 凤凰县| 常熟市| 漳州市| 徐闻县| 宣武区| 从江县| 福泉市|