- 相關(guān)推薦
操作系統(tǒng)調(diào)度器的種類(lèi)
進(jìn)行調(diào)度工作的程序叫做調(diào)度器。操作系統(tǒng)調(diào)度器的種類(lèi)都有哪些呢?下面小編為大家整理了操作系統(tǒng)調(diào)度器的種類(lèi),希望能幫到大家!
調(diào)度器是操作系統(tǒng)的一個(gè)模塊,它能夠選擇將被系統(tǒng)處理的下一個(gè)任務(wù),或執(zhí)行的下一個(gè)進(jìn)程。操作系統(tǒng)可能會(huì)提供三種不同類(lèi)型的調(diào)度器:長(zhǎng)期調(diào)度器、中期調(diào)度器和短期調(diào)度器。這些名字表明了任務(wù)被執(zhí)行的頻率。
進(jìn)程調(diào)度器
進(jìn)程調(diào)度器是操作系統(tǒng)的一部分,決定了何時(shí)運(yùn)行什么進(jìn)程。它通常能夠暫停一個(gè)運(yùn)行中的進(jìn)程,將它放回到運(yùn)行隊(duì)列當(dāng)中,并運(yùn)行一個(gè)新進(jìn)程,我們把這樣的調(diào)度器叫做搶占調(diào)度器。否則,它就是協(xié)同調(diào)度器。
長(zhǎng)期調(diào)度器
長(zhǎng)期調(diào)度器,決定了任務(wù)或進(jìn)程是否會(huì)被就緒隊(duì)列(內(nèi)存中)所接納。當(dāng)一個(gè)運(yùn)行程序的嘗試被做出后,長(zhǎng)期調(diào)度器或允許,或是延遲將它作為當(dāng)前執(zhí)行的一個(gè)進(jìn)程。因此,這種調(diào)度器掌控著能在系統(tǒng)上運(yùn)行的進(jìn)程。調(diào)度器同時(shí)還決定并發(fā)的程度:同時(shí)執(zhí)行程序的多少,在I/O密集型和CPU密集型進(jìn)程之前做出劃分。
通常,大多數(shù)進(jìn)程可以分為I/O密集型[2]和CPU密集型。I/O密集型程序?qū)⒋蠖鄶?shù)時(shí)間都花在了I/O操作而不是運(yùn)算上,而CPU密集型程序正好相反,將大多數(shù)時(shí)間花在了運(yùn)算上,而很少產(chǎn)生I/O操作。選出一個(gè)I/O密集型和CPU密集型程序的良好組合,對(duì)于長(zhǎng)期調(diào)度器是非常重要的。否則,假如所有的程序都是CPU密集型的,那么I/O隊(duì)列將會(huì)幾乎永遠(yuǎn)都是空的,這樣就會(huì)導(dǎo)致一些設(shè)備從來(lái)沒(méi)被人用過(guò),系統(tǒng)資源分配就是不均衡的。顯然,性能極佳的系統(tǒng)必然是CPU密集型和I/O密集型程序的組合。在現(xiàn)代操作系統(tǒng)中,這被用來(lái)保證實(shí)時(shí)進(jìn)程能獲得足夠的CPU時(shí)間來(lái)完成任務(wù)。
長(zhǎng)期調(diào)度對(duì)大型系統(tǒng),例如批處理系統(tǒng)、計(jì)算機(jī)集群、超級(jí)計(jì)算機(jī)和渲染場(chǎng)來(lái)說(shuō)同樣重要。例如,在并發(fā)系統(tǒng)中,為了避免交互的多個(gè)進(jìn)程,把時(shí)間都花在等待對(duì)方而產(chǎn)生阻塞,通常是需要進(jìn)行協(xié)同調(diào)度的。在這種情況下,處理操作系統(tǒng)底層的調(diào)度器之外,還需要符合要求的額外調(diào)度程序來(lái)實(shí)現(xiàn)必要的功能。
中期調(diào)度器
中期調(diào)度器臨時(shí)將進(jìn)程從內(nèi)存中去除,放入第二儲(chǔ)存設(shè)備(如硬盤(pán))中,或亦而反之。這通常被稱(chēng)為“換出”和“換入”(同時(shí)也被錯(cuò)誤叫做“分頁(yè)入”和“分頁(yè)出”)。中期調(diào)度器可能會(huì)將那些一直不活躍的進(jìn)程,優(yōu)先級(jí)低的進(jìn)程,頻繁產(chǎn)生頁(yè)錯(cuò)誤的進(jìn)程,或者占用大量?jī)?nèi)存的進(jìn)程放入交換區(qū),為其它程序釋放內(nèi)存。當(dāng)系統(tǒng)內(nèi)存充足時(shí),或者程序不再處于阻塞狀態(tài)時(shí),調(diào)度器又會(huì)將內(nèi)存重新放入內(nèi)存中。
短期調(diào)度器
短期調(diào)度器(也就是CPU調(diào)度器)決定了在一個(gè)時(shí)鐘中斷、I/O中斷、系統(tǒng)調(diào)用其它種類(lèi)的信號(hào)之后,應(yīng)該執(zhí)行(分配CPU)給哪些內(nèi)存中的進(jìn)程?梢(jiàn),短期調(diào)度器作出決定的頻率比長(zhǎng)期或中期調(diào)度器更加頻繁 —— 每隔一段非常短的固定時(shí)間,調(diào)度器就將做出一次決定。這種調(diào)度器可以是搶占式的,能夠強(qiáng)行把一個(gè)在CPU運(yùn)行中的程序中斷,然后分配給其它進(jìn)程;也可以是非搶占式的,這類(lèi)調(diào)度器無(wú)法強(qiáng)行把進(jìn)程從CPU上中斷。
搶占式調(diào)度器的功能需要一個(gè)運(yùn)行在內(nèi)核態(tài),能被中斷處理程序捕獲的可編程定時(shí)器才能實(shí)現(xiàn)。
調(diào)度規(guī)則
調(diào)度規(guī)則就是在同時(shí)占用資源的多方之間進(jìn)行資源分配的算法。在路由器、操作系統(tǒng)、硬盤(pán)、打印機(jī),大多數(shù)嵌入式系統(tǒng)等設(shè)備中,都能看到調(diào)度規(guī)則的應(yīng)用。
調(diào)度算法的主要目標(biāo),是使資源饑餓最小化,并保證使用資源多方的公平性。調(diào)度器需要處理在大量請(qǐng)求下如何分配資源的難題。調(diào)度算法種類(lèi)很多,在這一章,將會(huì)介紹幾種常見(jiàn)算法。
在包交換的計(jì)算機(jī)網(wǎng)絡(luò)和其它統(tǒng)計(jì)多路復(fù)用領(lǐng)域,需要一個(gè)合適的調(diào)度算法而不是一個(gè)先到先得的數(shù)據(jù)包隊(duì)列。
【操作系統(tǒng)調(diào)度器的種類(lèi)】相關(guān)文章:
操作系統(tǒng)的種類(lèi)07-07