iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
自我挑戰組

非本科系也能懂和該懂得作業系統系列 第 11

Day 11 - Process Control Block & Context switch

  • 分享至 

  • xImage
  •  

Process Control Block(PCB)

再來要介紹一種被存在OS Kernel中的資料結構,Process Control Block(PCB),可以把PCB當作一個容器,其存在的理由很單純,因為Time-Sharing,CPU不斷地轉跳執行不同的Process,因此需要有個地方把每個process目前的狀態與資訊儲存起來,以便下次被CPU執行時能夠銜接上一次的狀態。PCB內放置的相關的資訊,我列出幾項比較重要的在下方

  • Process Number: 單純就是unique id,用來識別process
  • Program Counter: 當Process被載入後對於CPU可以被視為很多的instructions,program counter會儲存下一個要做的instrction,以便於讓CPU知道該做什麼
  • Process State: 記錄前一天所說關於Process的狀態(new, ready, waiting.....)
  • CPU Scheduling Information: 後面會談到有關Process執行順序的問題,PCB存著這些資料,作為排程時排序的依據。

Context switch

Context switch是一個非常簡單的行為,當CPU遭受到interrupt的時候,不論是遇到I/O,或者互叫system call,還是因為執行時間過長觸發OS Timer,接著就是跳轉到下一個要執行的Process上面,但這其中其實還做了一件事情,就是Context switch。

由於要讓目前在做的task能夠在未來被銜接,CPU在要轉跳時會先去把需要的資訊存在PCB內,並且藉由下一個要做的process的PCB資訊,接軌先前上一輪的task去執行。這樣的一整個過程就叫做context switch。


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

尚未有邦友留言

立即登入留言