2.2處理機的調度

1.調度

處理機調度是對處理機進行分配;

從進程就緒隊列中按照一定的調度算法對進程進行處理機分配,以實現併發執行;

處理機調度是多到程序操作系統基礎,是操作系統設計核心問題

調度的層次

1)作業調度,高級調度,內存與輔存之間的調度;

2)內存調度,中級調度,提高內存的利用率和系統的吞吐量;

3)進程調度,低級調度,根據調度算法分配處理機。

三層調度的關係

1.作業調度爲進程左準備活動,選擇作業進入內存,並創建進程分配資源;內存調度處於作業調度和進程調度之間;

2.作業調度少,內存調度略多,進程調度最爲頻繁;

3.進程調度是操作系統中最基本的一種調度,不可或缺;

2.調度的時機、切換與過程

進程調度進程切換程序都是操作系統內核程序

進程調度與進程切換有什麼樣的聯繫?

先後順序:請求進程調度的事件發送後,運行進程調度程序,從就緒隊列中調度了新的進程後,纔會進行進程之間的切換;

3.進程的調度方式

1)非搶佔式(非剝奪)調度方式,當前執行進程不因其他重要進程就緒而停止執行;

注:優:實現簡單、系統開銷小;

適用批處理系統不適用分時系統實時系統

2)搶佔式(剝奪)調度方式,運行進程可因爲其他重要進程就緒而暫停執行;

優:提高了系統吞吐率和響應效率;

該方式需要根據調度的原則決定優先程度:優先權、短進程優先、時間片輪轉等;

4.調度的準則

調度算法的性能評判因素:

1)CPU利用率 2)系統吞吐量(cpu單位時間內完成作業數目) 3)週轉時間 4)等待時間 5)響應時間

5.調度算法

1)先來先服務調度算法(FCFS)

即可用作業調度,又可用於進程調度

FCFS屬於不可剝奪調度算法;在執行作業過長,導致後面作業等待過長時間,故不適合分時系統和實時系統;

注:可與優先級調度算法結合,相同優先級的進程按FCFS先來先服務調度;

算法特點:簡單,但效率低;

2)短作業優先調度算法(SJF)

短作業優先調度;

不可忽視缺點:

只考慮短作業,對長作業明顯不利;

不考慮作業的重要程度;

短作業會受用戶影響;

注:SJF調度算法的平均等待時間、平均週轉時間最少

3)優先級調度算法

根據作業或進程的優先級調度;適合實時系統;

作業調度,選擇優先級高的作業,調入內存,分配資源,並創建相應進程,插入就緒隊列;

進程調度,當有優先級更高的進程就緒能否搶佔正在執行的進程;

非搶佔式優先級調度;

搶佔式優先級調度;

進程的優先級可分爲:靜態優先級、動態優先級;

靜態優先級:創建時確定優先級,運行週期時不變;

動態優先級:運行時,根據進程動態變換調整優先級;

一般優先級:

1)系統進程>用戶進程;

2)交互進程(前端實時響應)>非交互進程(後臺運行);

3)I/O進程>計算型進程;注:I/O處理速度慢,設優先級高,先開始有助於提高系統整體效率;

4)高響應比調度算法

主要用於作業調度:選擇作業調度內存,分配資源;

綜合FCFS、SJF,同時考慮作業等待時間和估計運行時間;

響應比R_p=(等待時間+要求服務時間)/要求服務時間

適合分時操作系統;

5)時間片輪轉調度算法

將就緒進程隊列,按達到時間排成循隊列,選着當前隊頭進程運行指定時間片,eg:100ms;,時間片結束下一個進程,結束進程從新排隊;

時間片的大小決定算法效率,設置時間片影響因素有:系統響應時間、就緒進程數目、系統的處理能力;

6)多級反饋隊列調度算法

綜合****時間片輪轉調度優先級調度,通過動態調整進程優先級和時間片大小,兼顧系統多方面目標;

算法思想:

1)設置多個進程就緒隊列,並將隊列分級,級別高該隊列優先級高;

2)每個隊列中時間片大小不同;優先級高的時間片小;

3)新進程進入內存,按優先級梯度下降FCFS調度執行直至作業完成;

總結:

優先級調度算法適合實時操作系統

高響應比、時間片輪轉、多級反饋隊列調度適合分時操作系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章