進(jìn)程調(diào)度
多任務(wù)
多任務(wù)操作系統(tǒng)就是能同時(shí)并發(fā)地交互執(zhí)行多個(gè)進(jìn)程的操作系統(tǒng)。
分類(非搶占式多任務(wù),搶占式多任務(wù))
1.搶占式多任務(wù)
在此模式下,由調(diào)度程序來決定什么時(shí)候停止一個(gè)進(jìn)程的運(yùn)行,以便其他進(jìn)程能夠得到執(zhí)行機(jī)會(huì)。
這個(gè)強(qiáng)制的掛起動(dòng)作就叫做搶占。
進(jìn)程在被搶占之前能夠運(yùn)行的時(shí)間是預(yù)先設(shè)置好的,叫做進(jìn)程的時(shí)間片。
時(shí)間片就是進(jìn)程能夠在處理器上運(yùn)行的時(shí)間。
2.非搶占式多任務(wù)模式
除非進(jìn)程自己主動(dòng)停止運(yùn)行,否則它會(huì)一直執(zhí)行。進(jìn)程主動(dòng)掛起的
的操作叫做讓步。
》缺點(diǎn)
調(diào)度程序無(wú)法對(duì)每個(gè)進(jìn)程該執(zhí)行多長(zhǎng)時(shí)間做出統(tǒng)一規(guī)定。
Linux的進(jìn)程調(diào)度
原始的叫做O(1)調(diào)度器,現(xiàn)在采用CFS(完全公平調(diào)度算法)。
CFS以前又叫做“反轉(zhuǎn)樓梯最后期限調(diào)度算法”(RSDL)
策略
策略決定調(diào)度程序在何時(shí)讓什么進(jìn)程運(yùn)行。調(diào)度器的策略往往就決定系統(tǒng)的整體印象,并且,還要負(fù)責(zé)優(yōu)化使用處理器時(shí)間。無(wú)論從哪個(gè)方面來看,它都是至關(guān)重要的。
I/O消耗型進(jìn)程:進(jìn)程的大部分時(shí)間用來提交I/O請(qǐng)求或是等待I/O請(qǐng)求。
處理器耗費(fèi)型進(jìn)程:進(jìn)程的時(shí)間大多用在了執(zhí)行代碼上。