售前電話
135-3656-7657
售前電話 : 135-3656-7657
DMS-100系統(tǒng)的操作系統(tǒng)核心中用于進程調(diào)度的程序稱為調(diào)度器(Scheduler).在以下情況下,將進入調(diào)度器:
①正在運行的進程將自身掛起
正在運行的進程如果要等待消息的到來,等待某種資源的分配,等待訪問共享數(shù)據(jù)區(qū),或者需要定時喚醒,可以將PCB編入郵箱隊列、標(biāo)志隊列、號志隊列或定時隊列。關(guān)于郵箱(Mailbox).標(biāo)志(Flag)、號志(Semaphore)等概念已在本章第三節(jié)中述及,被用于進程的通信與同步。
②較高級別的進程被喚醒
如果某一進程被疏醒,其優(yōu)先級高于正在執(zhí)行的進程,就進入調(diào)度器按調(diào)度算法進行調(diào)度。正在執(zhí)行的進程稱為被“占入”而暫停執(zhí)行,編入對應(yīng)的調(diào)度類別的就緒隊列之首,時間片所剩余的時間保存在PCB中。而被喚醒的進程則從等待隊列中取出,編入對應(yīng)的調(diào)度類別的就緒隊列之尾,PCB中Procstatus(進程狀態(tài))應(yīng)改為ready(就緒),并給予該進程一新的時間片。
例如,一個正在執(zhí)行中的進程發(fā)送消息到另一進程的郵箱,另一進程正在郵箱上等待這一消息并具有較高的優(yōu)先級(即調(diào)度類別),應(yīng)在執(zhí)行有關(guān)操作后進入調(diào)度器。如果被喚醒的進程的級別并不高于正在執(zhí)行的進程,則發(fā)送消息的進程繼續(xù)執(zhí)行,而不進入調(diào)度器。還應(yīng)注意的是,進入調(diào)度器后并不一定立即調(diào)度被喚醒的進程。
①正在運行的進程的時間片用完
正在運行的行中的進程由于以下各種原因,會讓出處理機資源:
(a)進程進入等待狀態(tài)
進v程收到一個消息而被調(diào)度執(zhí)行時,按FMM工作方式完成應(yīng)有的動作并進行狀態(tài)轉(zhuǎn)移,從而要等待下一個消息的到來,也就是進程進入了等待狀態(tài),自愿讓出處理機資源。
(b)進程進入閉鎖狀態(tài)
進程在執(zhí)行中要求分配某種資源(例如發(fā)送消息的用戶緩沖器)而未能滿足時,不能繼續(xù)執(zhí)行其功能,只有暫停執(zhí)行而進入閉鎖狀態(tài),讓出處理機資源。
(c)進z程中止(Aborted)
進程在執(zhí)行過程中遇到某些不正常情況時,將提前撤消這一進程,此即所謂進程中止。中止了的進程當(dāng)然也不再需要處理機資源。
(d)進程終止(Terminated)
當(dāng)進程執(zhí)行了某個正常的執(zhí)行流程中所有的功能后,將終止這一進程,讓出處理機資源。
(e)進程被中斷
進程在執(zhí)行中被中斷插入,執(zhí)行了中斷服務(wù)程序后并不立即返回斷點去恢復(fù)進程的執(zhí)行,而是暫時讓出處理機資源。當(dāng)進程讓出處理機資源時,必須確定下一個要調(diào)度的作業(yè),于是應(yīng)進入SNJ。