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