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