1. Linux 0.11的調度函數schedule() 1. 也就是找到了counter最大的進程,然後就跳出去執行switch_to,對應上面的優先順序演算法,而counter本身也是時間片,也作了輪轉調度 2. 現在就緒態的所有進程的時間片都用完了counter=0,右移+本身就是把counter ...
1. Linux 0.11的調度函數schedule()
- 也就是找到了counter最大的進程,然後就跳出去執行switch_to,對應上面的優先順序演算法,而counter本身也是時間片,也作了輪轉調度
- 現在就緒態的所有進程的時間片都用完了counter=0,右移+本身就是把counter設置成初值,而如果是其他進程,阻塞的那些進程就把counter除2再加上初值,這樣的話,當阻塞態進程變成就緒態的話,也就是那些IO進程成就緒態的話,它對應的counter一定大,優先順序就高,那麼就先執行,而且執行的時間也稍微長點
2. counter的作用:時間片
這是在時鐘中斷,每次時鐘中斷都讓counter=0,然後就開始切換
3. counter的作用:優先順序
4. counter的作用
IO時間越長,counter越大?對應前面的第二點