計算機硬件---調度與死鎖

進程調度緣由及調度切換時機,進程調度方式與實現及各類調度算法的我的總結:算法

1.通常調度概念 1)什麼是調度 就是選出待分派的做業或進程。 操做系統管理了系統的有限資源,當有多個進程(或做業)發出請求要使用這些資源時,由於資源的有限性,必須按照必定的原則選擇進程(或做業)來佔用資源。這就是調度。併發

2)調度目的 1.控制資源使用者的數量 2.選取資源使用者 3.許可哪些使用者佔用資源 4.讓使用者直接佔用資源。性能

2、調度類型 一、高級調度(長程調度)。 即做業調度,選取輸入井中的做業,生成根進程。目的是控制使用系統資源的進程數。優化

二、中級調度(中程調度)。 指選取進程佔用內存或有資格佔用內存,又稱進程滾入滾出,中級調度將在存儲管理章節中介紹,有頁式調度、段式調度、段頁式調度等。操作系統

三、低級調度(短程調度) 指選取進程佔用處理機,又稱進程調度。 四、I/O調度 選取進程佔用I/O設備。blog

3、調度和狀態轉換 在許多系統中,調度被分爲三種:長程、中程和短程。 1)調度和進程狀態轉換隊列

 

從狀態轉換的觀點: 一、長程調度(做業調度)就是將一個或一批做業從後備狀態變爲運行狀態。一個做業一旦被高級調度選中,即可得到所須要的基本內存和設備資源,並被裝入內存,此後就以進程形式參與併發執行,與其它進程競爭CPU。進程

從狀態轉換的觀點: 二、中程調度就是將進程從活動態變爲靜止的掛起態,或者將進程從掛起態變爲就緒或阻塞態。 三、短程調度就是將某個進程從就緒態變爲(在CPU上運行的)執行態。事件

2)調度的層次(調度做用的嵌套關係)內存

 

 

 

3)三級調度示意圖 調度從根本上講,是要使隊列延遲的時間最小,並優化系統的執行效率

 

 

 

 

 

 

 

4.1.2做業調度的功能

①記錄系統中各個做業的狀況。 ②按照某種調度算法從後備做業隊列中挑選做業,即決定接納多少個做業進入內存和挑選哪些做業進入內存。

③爲選中的做業分配內存和外設等資源。 ④爲選中的做業創建相應的進程,並把該進程放入就緒隊列中。 ⑤做業結束後進行善後處理工做。如輸出必要的信息,收回該做業所佔用的所有資源,撤消與該做業相關的所有進程和該做業的JCB 。

 

4.1.3進程調度的功能與調度時機 1、進程調度的功能 (1)保存現場(2)挑選進程(3)恢復現場

 

 

 

2、進程調度的時機 通常在下列事件發生後要執行進程調度。 (1)建立進程。 當進程建立時,要決定是運行父進程仍是子進程。 (2)進程終止。 (3)等待事件。 (4)中斷髮生。 (5)運行到時。

4.1.4進程調度的基本方式 1)非剝奪調度(非搶佔) 只有當處理機上的進程主動放棄處理機時,才從新調度。 2)剝奪調度(搶佔) 當進程運行時能夠被系統以某種原則爲由剝奪其處理機。

例:只有一部電話機,小李正在通電話,此時小張有急事也要打電話,此時小張的調度方式有兩種: 一種是非搶佔,即等待小李打完電話,本身再打電話。 另外一種是搶佔,不等小李通完電話,搶過話筒就撥打電話。

3)進程調度在覈心態進行。 ★CPU狀態有兩種,目態和管態。 管態——也稱核心態或系統態,系統程序在CPU上運行的狀態。 目態——用戶程序在CPU上運行的狀態。

 

 

 

4.2 調度算法 4.2.1 經常使用的調度算法

1. FCFS 誰先到就緒隊列就將處理機分給誰。 2. 短做業優先 取一個下次所需運行時間最短的做業(該算法能使平均等待時間最短)。

3. 優先級調度 選優先級最高的進程佔用處理機(優先級可動態改變)。 4.輪轉調度法 以先來後到的次序+ 時間片輪轉。

5.多隊列調度法 按屬性將就緒進程分類,不一樣類進程可有不一樣的調度算法。 6.多級反饋隊列調度法 設置多條就緒隊列,進程被調度執行後,在被剝奪或放棄處理機後而在就緒時,能夠改變其就緒隊列(見下圖)。

 

 

又一個多級反饋隊列調度算法的例子:使用優先權實現調度。作法以下:

(1)以優先級設置多隊列。 (2)各隊列的調度算法採用FCFS+時間片輪轉. (3)進程優先級升降原則是:等待太久升,輸入/輸出完成時升,運行完一個完整時間片降……

(4)進程最初進入就緒隊列以用戶初置優先級爲參數。 (5)開始調度時,先從最高優先權的就緒隊列(RQ0)開始選取一個進程,若是RQ0空,則檢查RQ1,如此下去。見下圖示:

 

 

4.2.2 調度策略的討論

1、調度性能評價準則 一、CPU利用率。 二、吞吐率。即每單位時間所完成的做業數目。 三、週轉時間。即從做業提交直至完成這一做業的時間間隔。

四、等待時間。即做業在就緒隊列中等待所花的時間。 五、響應時間。即從做業提交到首次產生回答信息之間的時間。

2、主要的調度算法 下面以表所示的進程集做爲範例討論不一樣的調度策略。 到達時間:進程或做業提交時間。 服務時間:進程要求服務的時間,或完成做業所需的時間。

 

1、FCFS調度策略(或先進先出)

 

 

 

 

 

 

 

FCFS策略更適合於長進程。例:

 

 

注:週轉時間=完成時間—到達時間 tq/ts :帶權週轉時間=週轉時間/服務時間

(1)進程C的等待標準化時間是不能容忍的。它位於系統的總時間是它所需服務時間的100倍。不管什麼時候,一個長進程到後,一個短進程就會出現較長的等待。 (2)進程D的標準化等待時間尚可容忍,小於2.0。進程D的輪轉時間差很少是C的兩倍。

總結: FCFS(First Come First Served)即先來先服務,故它的本質是非搶佔的。它簡單易行,但調度性能較差,有可能使短的、重要的或緊迫的做業等進程長期等待,其實現過程容易,可採用FIFO隊列管理。

相關文章
相關標籤/搜索