iT邦幫忙

1

【小白馬的OS筆記】(10)程式生命週期-new, ready, running, waiting, terminated

程式的生命週期

對一般寫程式的使用者來說,
執行一支程式恐怕就是按下「編譯執行」,
然後等程式跑完吧?
然而對OS要同時執行很多程式來說,
對於程式的生命週期可是細分為五個狀態,
直接附上上課精美的投影片:

https://ithelp.ithome.com.tw/upload/images/20191112/20117114yUH4wTXxEm.png

從字面上大概可以了解粗略的意思:

new: 程式剛創建的階段
ready: 程式準備就緒,就等OS安排執行了
running: 程式正在執行中
waiting: 等候system call完成
terminated: 程式已經執行完畢

那麼,各個狀態之間如何切換呢?
就有請scheduler安排了。

短、中、長期的排程決定者- scheduler

OS有三種不同的排程決定者:

  • Short-term scheduler: 又稱 CPU scheduler,在Ready state中選擇哪支程式可以進入running state,被CPU執行。
  • Long-term scheduler: 又稱 job scheduler,選擇哪些程式可以從new state進入ready state,決定的是當前可以有多少支程式同時執行。
  • Medium-Term Scheduler: 決定哪支程式要請出記憶體,由running state 進入waiting state等待。用意是當程式要做IO, sleep這類耗時長的事情時,先將程式移出記憶體,等待它做完,再將程式搬回記憶體,節省記憶體空間。

啃考古題時間

【清大2012秋季博士班資格考】
Describe the purposes of short-term, medium-term, and long-term schedulers.

小馬的答案(不是很確定對不對,還請高手指導了):

  • Short-term scheduler 選擇哪支程式可以從Ready state進入running state被CPU執行。目的為合理安排每支程式的執行時間,避免有些程式都沒被執行到。
  • Long-term scheduler 選擇哪些程式可以從new state進入ready state,決定的是當前可以有多少支程式同時執行。目的為避免同時太多程式在執行使CPU負荷不了
  • Medium-Term Scheduler 會在程式要做IO, sleep這類耗時長的事情時,先將程式移出記憶體,用意為挪出記憶體空間以達到好的空間使用

尚未有邦友留言

立即登入留言