iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
0
我:我這次鐵人賽要寫有關作業系統的主題
資工同事:作業系統我應該只記得Scheduling那一段了吧

今天要講的是,連畢業一年的資工系學生也不會忘記的Scheduling。Time-Sharing的作業系統會不停地轉跳在不同的Process去執行,轉跳的順序誰先誰後直接影響了系統的效能與使用者的體驗,因此有一個非常重要的環節在安排哪個Process先做後做,就是接下來幾天要說明的Scheduling。

Context switch

當CPU從一個task轉跳到另一個task,這個行為叫做Context Switch,我們知道所有有關Process的資料都會被儲存在Kernel Memory的PCB裡面,context switch會把PCB內有關於這個Process的資料重建於CPU之上,讓CPU依照之前做的進度(Program Counter)和狀態把任務執行完成。

我僅僅帶過了簡單的觀念,我覺得維基百科有關於Content Switch的這一頁講的蠻好的,如果想更深一步了解的朋友可以到這邊來研究。

Process Scheduling Queues

Scheduling是一個決定先後順序、排序的動作,有『排』的這個動作代表其中一定有像是隊伍、陣列、序列的結構存在,Process Scheduling Queues是儲存所有Process所用的Queue資料結構(用指標互相串接的Link list)。

Process會依照他的狀態在這幾種不同的queue上面被搬來搬去的

  • Job queue(New State) : 等待執行程式會被放在這。
  • Ready queue(Ready State) : 存放Ready的Process
  • Device queue(Wait State) : 暫時在做IO在等待的Process會被存放在這。

系統會依靠一些演算法和一些資訊去選擇出,Queue裡面哪一個Process要先被執行。


上一篇
Day 14 - Multi-Thread Programming
下一篇
Day 16 - Scheduler
系列文
非本科系也能懂和該懂得作業系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言