進程調(diào)度
進程調(diào)度是操作系統(tǒng)的核心功能之一,以下為你詳細介紹:
進程調(diào)度的概念
進程調(diào)度是指操作系統(tǒng)按照一定的策略,動態(tài)地把處理機分配給處于就緒隊列中的某一個進程,以使之執(zhí)行。其主要目的是提高CPU利用率、增加系統(tǒng)吞吐量、減少進程等待時間和提高系統(tǒng)響應(yīng)速度等。
進程調(diào)度的時機
- 正在執(zhí)行的進程執(zhí)行完畢。
- 執(zhí)行中進程自己調(diào)用阻塞原語將自己阻塞起來進入睡眠等狀態(tài)。
- 執(zhí)行中進程調(diào)用了P原語操作,從而因資源不足而被阻塞;或調(diào)用了V原語操作激活了等待資源的進程隊列。
- 執(zhí)行中進程提出I/O請求后被阻塞。
- 在分時系統(tǒng)中時間片已經(jīng)用完。
- 在執(zhí)行完系統(tǒng)調(diào)用等系統(tǒng)程序后返回用戶進程時。
- 就緒隊列中的某進程的優(yōu)先級變得高于當前執(zhí)行進程的優(yōu)先級(在可剝奪式調(diào)度中)。
進程調(diào)度算法
- 先來先服務(wù)調(diào)度算法(FCFS):按進程進入就緒隊列的先后順序分配CPU,先進入的進程先執(zhí)行。該算法簡單,但不利于短進程,常用于批處理系統(tǒng)。
- 短作業(yè)(進程)優(yōu)先調(diào)度算法(SJF/SPF):對短作業(yè)或短進程優(yōu)先調(diào)度??山档推骄苻D(zhuǎn)時間,但對長進程不利,且需要事先知道進程的運行時間,實際中較難實現(xiàn)。
- 優(yōu)先級調(diào)度算法:
- 非搶占式優(yōu)先權(quán)算法:系統(tǒng)把處理機分配給優(yōu)先權(quán)最高的進程后,該進程一直執(zhí)行直至完成或因事件放棄處理機。常用于批處理系統(tǒng)或?qū)崟r性要求不嚴的實時系統(tǒng)。
- 搶占式優(yōu)先權(quán)調(diào)度算法:當有更高優(yōu)先權(quán)的進程進入就緒隊列時,立即暫停當前進程,將處理機分配給新的高優(yōu)先級進程。常用于嚴格的實時系統(tǒng)及對性能要求高的批處理和分時系統(tǒng)。
- 高響應(yīng)比優(yōu)先調(diào)度算法:綜合考慮進程的等待時間和服務(wù)時間,響應(yīng)比 =(等待時間 + 服務(wù)時間)/服務(wù)時間。既照顧了短作業(yè),又考慮了作業(yè)到達的先后次序,不會使長作業(yè)長期得不到服務(wù)。
- 輪轉(zhuǎn)調(diào)度算法:將CPU的處理時間分成固定大小的時間片,就緒進程按FCFS原則排隊,每個進程輪流獲得一個時間片的處理機時間。如果進程在時間片內(nèi)未完成任務(wù),則排到就緒隊列末尾等待下一次調(diào)度。時間片長度的選取很重要,會影響系統(tǒng)開銷和響應(yīng)時間。
- 多級反饋隊列調(diào)度算法:設(shè)置多個就緒隊列,各隊列優(yōu)先級不同,優(yōu)先級越高的隊列時間片越小。新進程先進入第一隊列,按FCFS原則排隊等待調(diào)度,若在一個時間片內(nèi)未完成,則轉(zhuǎn)入下一級隊列,如此下去,最后一級隊列采用時間片輪轉(zhuǎn)方式運行。該算法不必事先知道進程所需執(zhí)行時間,能滿足各種類型進程的需要。
進程調(diào)度的切換過程
- 保存當前進程的上下文:包括程序計數(shù)器、寄存器的值、進程狀態(tài)等信息,以便后續(xù)恢復(fù)進程執(zhí)行。
- 選擇下一個要執(zhí)行的進程:依據(jù)調(diào)度算法從就緒隊列中挑選進程,如優(yōu)先級調(diào)度選優(yōu)先級最高的進程,時間片輪轉(zhuǎn)則按順序選擇下一個進程。
- 恢復(fù)選中進程的上下文:將選中進程的上下文信息從內(nèi)存中讀出,恢復(fù)到相應(yīng)硬件部件中,使進程能從上次暫停處繼續(xù)執(zhí)行。
- 更新進程控制塊(PCB)信息:更新選中進程的PCB中進程狀態(tài)等信息,同時更新其他進程的PCB信息,如將被換下進程的狀態(tài)從運行態(tài)變?yōu)榫途w態(tài)或阻塞態(tài)。
進程調(diào)度的方式
- 非搶占式調(diào)度:進程獲得CPU后一直運行,直到主動放棄CPU,如執(zhí)行完畢、進入阻塞狀態(tài)或主動調(diào)用系統(tǒng)調(diào)用讓出CPU。實現(xiàn)簡單,但可能導(dǎo)致系統(tǒng)響應(yīng)時間長,其他就緒進程等待久。
- 搶占式調(diào)度:系統(tǒng)可根據(jù)策略,如優(yōu)先級、時間片等,強制暫停當前進程,將CPU分配給其他更需要的進程。能保證系統(tǒng)對緊急事件快速響應(yīng),提高實時性和公平性,但實現(xiàn)復(fù)雜,系統(tǒng)開銷大。
操作系統(tǒng)I 文章被收錄于專欄
操作系統(tǒng)(Operating System,簡稱 OS)是管理計算機硬件與軟件資源的核心程序,是用戶與硬件之間的橋梁,也是計算機系統(tǒng)的核心組成部分。