日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

ad20中怎么多选操作改层_在操作系统中CPU是怎么调度的

發(fā)布時(shí)間:2023/12/10 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ad20中怎么多选操作改层_在操作系统中CPU是怎么调度的 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對(duì)于單處理器系統(tǒng),每次只允許一個(gè)進(jìn)程運(yùn)行,任何其他進(jìn)程必須等待,直到CPU空閑能被調(diào)度為止,多道程序的目的是在任何時(shí)候都有某些進(jìn)程在運(yùn)行,以使CPU使用率最大化。

CPU-I/O區(qū)間周期

CPU的成功調(diào)度依賴于進(jìn)程的如下屬性:進(jìn)程執(zhí)行由CPU 執(zhí)行I/O等待周期

進(jìn)程在這兩個(gè)狀態(tài)之間切換,進(jìn)程執(zhí)行從 CPU 區(qū)間開(kāi)始,在這之后是 I/O 區(qū)間,接著是另一個(gè) CPU 區(qū)間,然后是另一個(gè)I/O區(qū)間,如此進(jìn)行下去,最終,最后的CPU 區(qū)間通過(guò)系統(tǒng)請(qǐng)求終止執(zhí)行。

CPU調(diào)度程序

每當(dāng)CPU空閑時(shí),操作系統(tǒng)就必須從就緒隊(duì)列中選擇一個(gè)進(jìn)程來(lái)執(zhí)行,進(jìn)程選擇由短期調(diào)度程序 或 CPU 調(diào)度程序執(zhí)行,調(diào)度程序從內(nèi)存中選擇一個(gè)能夠執(zhí)行的進(jìn)程,并為之分配CPU。

就緒隊(duì)列不必是先進(jìn)先出(FIFO)隊(duì)列。正如研究各種調(diào)度算法時(shí)將看到的,就緒隊(duì)列可實(shí)現(xiàn)為FIFO隊(duì)列、優(yōu)先隊(duì)列、樹(shù)或簡(jiǎn)單的無(wú)序鏈表,不過(guò),從概念上講,就緒隊(duì)列內(nèi)的所有進(jìn)程都要排隊(duì)以等待在CPU上運(yùn)行,隊(duì)列中的記錄通常為進(jìn)程控制塊。

調(diào)度算法(重要)

CPU 調(diào)度處理是從就緒隊(duì)列中選擇進(jìn)程并為之分配CPU的問(wèn)題。

先到先服務(wù)調(diào)度(FCFS)

先到先服務(wù)(first-come, first-served(FCFS))

采用這種方案,先請(qǐng)求CPU的進(jìn)程先分配到CPU,FCFS 策略可以用FIFO隊(duì)列來(lái)實(shí)現(xiàn)。當(dāng)一個(gè)進(jìn)程進(jìn)入到就緒隊(duì)列,其PCB鏈接到隊(duì)列的尾部,當(dāng)CPU空閑時(shí),CPU分配給位于隊(duì)列頭的進(jìn)程,接著該運(yùn)行進(jìn)程從隊(duì)列中刪除。采用 FCFS策略的平均等待時(shí)間通常是比較長(zhǎng)的

FCFS 調(diào)度算法是非搶占的,一旦CPU被分配給了一個(gè)進(jìn)程,該進(jìn)程就會(huì)保持CPU直到釋放CPU為止,即程序終止或是請(qǐng)求 I/O. FCFS 算法對(duì)于分布式系統(tǒng)(每個(gè)用戶需要定時(shí)地得到一定的CPU時(shí)間)是特別麻煩的。允許一個(gè)進(jìn)程保持CPU 時(shí)間過(guò)長(zhǎng)將是個(gè)嚴(yán)重的錯(cuò)誤。

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

最短作業(yè)優(yōu)先調(diào)度算法(shortest-job-first (SJF) scheduling algorithm)

這一算法將每個(gè)進(jìn)程與其下一個(gè)CPU區(qū)間段相關(guān)聯(lián),當(dāng)CPU為空閑時(shí),他會(huì)賦給具有最短CPU區(qū)間的進(jìn)程。如果兩個(gè)進(jìn)程具有相同長(zhǎng)度,那么可以使用FCFS調(diào)度來(lái)處理。

SJF 調(diào)度算法可以證明為最佳的,這是因?yàn)閷?duì)于給定的一組進(jìn)程,SJF 算法的平均等待時(shí)間最小,通過(guò)將短進(jìn)程移到長(zhǎng)進(jìn)程之前,短進(jìn)程等待時(shí)間的減少大于長(zhǎng)進(jìn)程等待時(shí)間的增加,因而,平均等待時(shí)間減少了。

優(yōu)先級(jí)調(diào)度

SJF 算法可以作為通用優(yōu)先級(jí)調(diào)度算法的一個(gè)特例。每個(gè)進(jìn)程都有一個(gè)優(yōu)先級(jí)與其關(guān)聯(lián)。具有最高優(yōu)先級(jí)的進(jìn)程會(huì)分配到CPU,具有相同優(yōu)先級(jí)的進(jìn)程按FCFS順序。SJF算法屬于簡(jiǎn)單優(yōu)先級(jí)算法,其優(yōu)先級(jí)(p)為下一個(gè)(預(yù)測(cè)的)CPU區(qū)間的倒數(shù),CPU區(qū)間越大,則優(yōu)先級(jí)越小,反之亦然。

優(yōu)先級(jí)可通過(guò)內(nèi)部或外部方式來(lái)定義,內(nèi)部定義優(yōu)先級(jí)使用一些測(cè)量數(shù)據(jù)以計(jì)算進(jìn)程優(yōu)先級(jí)。例如,時(shí)間極限,內(nèi)存要求,打開(kāi)文件的數(shù)量和平均I/O區(qū)間與平均CPU區(qū)間之比都可以用于計(jì)算優(yōu)先級(jí)。

優(yōu)先級(jí)調(diào)度算法的一個(gè)主要問(wèn)題是無(wú)阻塞 或饑餓,可以運(yùn)行但缺乏CPU的進(jìn)程可以認(rèn)為是阻塞的,它在等待CPU。

輪轉(zhuǎn)法調(diào)度(RR)

輪轉(zhuǎn)法(round-robin, RR)調(diào)度算法是專門為分時(shí)系統(tǒng)設(shè)計(jì)的,它類似于FCFS調(diào)度,但是增加了搶占以切換進(jìn)程。定義一個(gè)較小時(shí)間單元,稱之為時(shí)間片, 時(shí)間片通常為 10 - 100 ms, 將就緒隊(duì)列作為循環(huán)隊(duì)列。CPU 調(diào)度程序循環(huán)就緒隊(duì)列,為每一個(gè)進(jìn)程分配不超過(guò)一個(gè)時(shí)間片的CPU

為了實(shí)現(xiàn)RR調(diào)度,將就緒隊(duì)列保存為進(jìn)程的FIFO隊(duì)列,新進(jìn)程增加到就緒隊(duì)列的尾部,CPU調(diào)度程序從就緒隊(duì)列中選擇第一個(gè)程序,設(shè)置定時(shí)器在一個(gè)時(shí)間片之后中斷,再分派該進(jìn)程。

接下來(lái)將可能發(fā)生兩種情況,進(jìn)程可能只需要小于時(shí)間片的CPU區(qū)間,對(duì)于這種情況,進(jìn)程本身會(huì)自動(dòng)釋放CPU,調(diào)度程序接著處理就緒隊(duì)列的下一個(gè)進(jìn)程,否則,如果當(dāng)前運(yùn)行進(jìn)程的CPU區(qū)間比時(shí)間片要長(zhǎng),定時(shí)器會(huì)中斷并產(chǎn)生操作系統(tǒng)中斷,然后進(jìn)程上下文切換,將進(jìn)程加入到就緒隊(duì)列的尾部,接著CPU調(diào)度程序會(huì)選擇就緒隊(duì)列中的下一個(gè)進(jìn)程。

RR調(diào)度算法是可搶占的,對(duì)于RR調(diào)度算法,隊(duì)列中沒(méi)有進(jìn)程被分超過(guò)一個(gè)時(shí)間片的CPU時(shí)間(除非它是唯一可運(yùn)行的進(jìn)程),如果進(jìn)程的CPU區(qū)間超過(guò)了一個(gè)時(shí)間片,那么該進(jìn)程會(huì)被搶占,而被放回就緒隊(duì)列。

RR算法的性能很大程度上依賴域時(shí)間片的大小,在極端情況下,如果時(shí)間片非常大,那么RR算法與FCFS算法一樣,如果時(shí)間片很小(如毫秒),那么RR算法稱為處理器共享,(從理論上來(lái)說(shuō))n個(gè)進(jìn)程對(duì)于用戶都有它自己的處理器,速度為真正處理數(shù)度的 1/n。這種方法用在 Control Data Corporation(CDC)的硬件上,可以用一組硬件和10組寄存器實(shí)現(xiàn) 10 個(gè)外設(shè)處理器。硬件為一組寄存器執(zhí)行一個(gè)指令,然后為下一組執(zhí)行,這種循環(huán)不斷進(jìn)行,形成10個(gè)慢處理器器而不是1個(gè)塊處理器。

多級(jí)隊(duì)列調(diào)度

多級(jí)隊(duì)列調(diào)度算法將就緒隊(duì)列分成多個(gè)獨(dú)立隊(duì)列,根據(jù)進(jìn)程的屬性,如內(nèi)存大小,進(jìn)程優(yōu)先級(jí)、進(jìn)程類型、一個(gè)進(jìn)程被永久地分配到一個(gè)隊(duì)列,每個(gè)隊(duì)列有自己的調(diào)度算法。這種算法的優(yōu)點(diǎn)是低調(diào)度開(kāi)銷,缺點(diǎn)是不夠靈活。

多級(jí)反饋隊(duì)列調(diào)度

多級(jí)反饋隊(duì)列調(diào)度算法,允許進(jìn)程在隊(duì)列之間移動(dòng),主要思想是根據(jù)不同CPU區(qū)間的特點(diǎn)以區(qū)分進(jìn)程,如果進(jìn)程使用過(guò)多的CPU時(shí)間,那么它會(huì)被移到更低的優(yōu)先級(jí)隊(duì)列。

多處理器調(diào)度

之前討論的是單處理器系統(tǒng)內(nèi)的CPU 問(wèn)題,如果有多個(gè)CPU,則負(fù)載分配成為可能,但調(diào)度問(wèn)題也相應(yīng)的變得更加復(fù)雜。與單處理器中的CPU調(diào)度算法一樣,沒(méi)有最好的解決方案。

多處理器調(diào)度的方法

在一個(gè)多處理器中,CPU調(diào)度的一種方法是讓一個(gè)處理器(主服務(wù)器)處理所有的調(diào)度決定、I/O處理以及其他系統(tǒng)活動(dòng),其他的處理器只執(zhí)行用戶代碼。這種非對(duì)稱多處理方法更為簡(jiǎn)單,因?yàn)橹挥幸粋€(gè)處理器訪問(wèn)系統(tǒng)數(shù)據(jù)結(jié)構(gòu),減輕了數(shù)據(jù)共享的需要。

另一種方法是使用對(duì)稱處理器方法,即每個(gè)處理器自我調(diào)度,所有進(jìn)程可能處于一個(gè)共同的就緒隊(duì)列中,或每個(gè)處理器都有它自己的私有就緒隊(duì)列。無(wú)論如何,調(diào)度通過(guò)每個(gè)處理器檢查共同就緒隊(duì)列并選擇一個(gè)進(jìn)程來(lái)執(zhí)行。如果多處理器試圖訪問(wèn)和更新一個(gè)共同數(shù)據(jù)結(jié)構(gòu),那么每個(gè)處理器必須編程:必須保證兩個(gè)處理器不能選擇同一個(gè)進(jìn)程,且進(jìn)程不會(huì)從隊(duì)列中丟失。

處理器親和性

考慮一下,當(dāng)一個(gè)進(jìn)程在一個(gè)特定處理器上運(yùn)行時(shí),緩存中會(huì)發(fā)生什么?進(jìn)程最近訪問(wèn)的數(shù)據(jù)進(jìn)入處理器緩存,結(jié)果是進(jìn)程所進(jìn)行的連續(xù)內(nèi)存訪問(wèn)通常在緩存中得以滿足。現(xiàn)在可以考慮一下,如果進(jìn)程移到其他處理器上時(shí),會(huì)發(fā)生什么:被遷移的第一個(gè)處理器的緩存中的內(nèi)容必須為無(wú)效,而將要遷移的第二個(gè)處理器的緩存需要重新構(gòu)建。由于使緩存無(wú)效或重新構(gòu)建的代價(jià)高,絕大多數(shù)SMP系統(tǒng)試圖避免將進(jìn)程從一個(gè)處理器移至另一個(gè)處理器,而是努力使一個(gè)進(jìn)程在同一個(gè)處理器上運(yùn)行,這被稱為處理器親和性,即一個(gè)進(jìn)程需要對(duì)其運(yùn)行所在的處理器的親和性。

負(fù)載平衡

負(fù)載平衡 設(shè)法將工作負(fù)載平均地分配到SMP系統(tǒng)中的所有處理器上,值得注意的是,負(fù)載平衡通常只是對(duì)那些擁有自己私有的可執(zhí)行進(jìn)程的處理器而言是必要的。在具有共同隊(duì)列的系統(tǒng)中,通常不需要負(fù)載平衡,因?yàn)橐坏幚砥骺臻e,它立刻從共同隊(duì)列中取走一個(gè)可執(zhí)行進(jìn)程,但同樣值得注意的是,在絕大多數(shù)支持SMP中,每個(gè)處理器都具有一個(gè)可執(zhí)行進(jìn)程的私有隊(duì)列。

負(fù)載平衡常會(huì)抵消處理器的親和性的優(yōu)點(diǎn)。

總結(jié)

以上是生活随笔為你收集整理的ad20中怎么多选操作改层_在操作系统中CPU是怎么调度的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。