>進(jìn)程的幾種狀態(tài):" />
當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 如何理解進(jìn)程調(diào)度?
如何理解進(jìn)程調(diào)度?
時(shí)間:2019-02-15 來源:華清遠(yuǎn)見
>>在什么時(shí)候進(jìn)程調(diào)度有意義:當(dāng)系統(tǒng)負(fù)載很高,時(shí)時(shí)刻刻都有 N 多個(gè)進(jìn)程處于可運(yùn)行狀態(tài),等待被調(diào)度運(yùn)行時(shí)進(jìn)程調(diào)度程序?yàn)榱藚f(xié)調(diào)這 N 個(gè)進(jìn)程的運(yùn)行,必然得做非常多工作。如果當(dāng)系統(tǒng)長時(shí)間都沒有一個(gè)進(jìn)程要運(yùn)行,那么進(jìn)程調(diào)度就沒多大用處了。
>>進(jìn)程的幾種狀態(tài):

創(chuàng)建狀態(tài):進(jìn)程在創(chuàng)建時(shí)需要申請(qǐng)一個(gè)空白PCB,向其中填寫控制和管理進(jìn)程的信息,完成資源分配。如果創(chuàng)建工作無法完成,比如資源無法滿足,就無法被調(diào)度運(yùn)行,把此時(shí)進(jìn)程所處狀態(tài)稱為創(chuàng)建狀態(tài)
就緒狀態(tài):進(jìn)程已經(jīng)準(zhǔn)備好,已分配到所需資源,只要分配到CPU就能夠立即運(yùn)行
執(zhí)行狀態(tài):進(jìn)程處于就緒狀態(tài)被調(diào)度后,進(jìn)程進(jìn)入執(zhí)行狀態(tài)
阻塞狀態(tài):正在執(zhí)行的進(jìn)程由于某些事件(I/O請(qǐng)求,申請(qǐng)緩存區(qū)失�。┒鴷簳r(shí)無法運(yùn)行,進(jìn)程受到阻塞。在滿足請(qǐng)求時(shí)進(jìn)入就緒狀態(tài)等待系統(tǒng)調(diào)用
終止?fàn)顟B(tài):進(jìn)程結(jié)束,或出現(xiàn)錯(cuò)誤,或被系統(tǒng)終止,進(jìn)入終止?fàn)顟B(tài)。無法再執(zhí)行
>>進(jìn)程調(diào)度方式:
這里按照是否剝奪的方式分為兩種調(diào)度方式。
1. 非剝奪方式(非搶占方式)
分派程序一旦把處理機(jī)分配給某進(jìn)程后便讓它一直運(yùn)行下去,直到進(jìn)程完成或發(fā)生某事件而阻塞時(shí),才把處理機(jī)分配給另一個(gè)進(jìn)程。
2. 剝奪方式(搶占方式)
當(dāng)一個(gè)進(jìn)程正在運(yùn)行時(shí),系統(tǒng)可以基于某種原則,剝奪已分配給它的處理機(jī),將之分配給其它進(jìn)程。剝奪原則有:優(yōu)先權(quán)原則、短進(jìn)程、優(yōu)先原則、時(shí)間片原則。
>>進(jìn)程調(diào)度算法:
先來先服務(wù)(FCFS):屬于不可剝奪算法。算法每次從后備作業(yè)隊(duì)列中選擇最先進(jìn)入該隊(duì)列的一個(gè)或幾個(gè)作業(yè)進(jìn)行處理。特點(diǎn):算法簡單,效率低,對(duì)長作業(yè)有利,對(duì)短作業(yè)不利。
短作業(yè)優(yōu)先:時(shí)間片短的任務(wù)先處理特點(diǎn):有效降低作業(yè)的平均等待時(shí)間和提高系統(tǒng)的吞吐量。
優(yōu)先級(jí):可分為非剝奪式和剝奪式;其中優(yōu)先級(jí)可分為:靜態(tài)優(yōu)先級(jí)和動(dòng)態(tài)優(yōu)先級(jí)。
時(shí)間片輪轉(zhuǎn):定義了一個(gè)的時(shí)間單元,稱為時(shí)間片(或時(shí)間量)。一個(gè)時(shí)間片通常在1~100 ms之間。當(dāng)正在運(yùn)行的進(jìn)程用完了時(shí)間片。后,即使此進(jìn)程還要運(yùn)行,操作系統(tǒng)也不讓它繼續(xù)運(yùn)行,而是從就緒隊(duì)列依次選擇下一個(gè)處于就緒態(tài)的進(jìn)程執(zhí)行,而被剝奪CPU使用的進(jìn)程返回到就緒隊(duì)列的末尾,等待再次被調(diào)度。
高響應(yīng)比優(yōu)先調(diào)度算法:(響應(yīng)比)Rp=(等待時(shí)間+預(yù)計(jì)執(zhí)行時(shí)間)/執(zhí)行時(shí)間=響應(yīng)時(shí)間/執(zhí)行時(shí)間

