进程调度算法-高响应比优先调度算法(HRRN)
定義
為每一個作業引入一個動態優先級,即優先級是可以改變的。它隨等待時間延長而增加,這將使長作業的優先級在等待期間不斷地增加,等到足夠的時間后,必然有機會獲得處理機。
變化規律
Tw為等待時間,TR為服務時間。
從上式可以看出:
1. 等待時間相同,則短作業優先權高,有利于短作業。
2. 服務時間相同,等待時間越長,其優先權越高,相當于先來先服務。
3. 服務時間相對較長的作業,當其等待足夠長時,便可獲得處理機運行。
算法性能
優勢
既考慮了作業到達的先后次序,又照顧了短作業,不會使長作業長期得
不到服務。
不足
每次要進行調度之前,都需要先做響應比的計算,顯然會增加系統開銷。
案例
| A | 0 | 10 | 3 |
| B | 1 | 1 | 1 |
| C | 2 | 2 | 4 |
| D | 3 | 1 | 5 |
| E | 4 | 5 | 2 |
系統有如圖進程,采用搶占式和非搶占式調度方法來計算平均周轉時間和平均帶權周轉時間。(優先數越小,優先級越高。)
非搶占式
非搶占式調度(Non-preemptiveMode)進程一旦獲得處理機,只有在該進程任務完成或因某事件而阻塞時,才讓出處理機,決不允許某進程搶占已經分配出去的處理機。
方法
最先到達的進程開始運行(A);
根據上一進程的完成時間,找到在這個完成時間內所有到達的進程,運行這些進程中**優先級最高(B>E>A>C>D)**的那個;
重復2直至完成所有進程。
| A | 0 | 10 | 10 |
| B | 1 | 11 | 10 |
| C | 2 | 18 | 16 |
| D | 3 | 19 | 16 |
| E | 4 | 16 | 12 |
平均周轉時間:(10+10+16+16+12)/5=12.8
平均帶權周轉時間:(1+10+8+16+2.4)/4 =7.48
搶占式
搶占式調度(PreemptiveMode)允許調度程序根據某種原則,暫停某個占用處理機的進程,搶占已經分配出去的處理機。搶占的原則有優先權原則、短作業優先原則和時間片原則。
方法
| A | 0 | 16 | 16 |
| B | 1 | 2 | 1 |
| C | 2 | 18 | 16 |
| D | 3 | 19 | 16 |
| E | 4 | 9 | 5 |
平均周轉時間:(16+1+16+16+5)/5=10.8
平均帶權周轉時間:(1.6+1+8+16+1)/5 =5.52
總結
以上是生活随笔為你收集整理的进程调度算法-高响应比优先调度算法(HRRN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python --- opencv部分
- 下一篇: zblog php 外部调用,ZBlog