iT邦幫忙

0

作業系統L3-行程

  • 分享至 

  • xImage
  •  

作業系統L3-行程

行程(Process)–正在執行的程式

行程(Process) VS 程式(Program)

  • 行程(Process):執行中的程式,主動個體
  • 程式(Program):儲存在硬碟中的可執行檔,被動
  • 一個程式可能有數個行程

行程記憶體結構

  • 文本區(text):程式碼,包含PC計數器和暫存器資料

  • 資料區間:包含全域變數

  • 堆積(Heap):動態配置的記憶體

  • 堆疊(stack):區域變數,函式參數

行程狀態

  • new: Process已被建立,取得PCB空間,未載入記憶體
  • ready:Process已在記憶體,等待CPU
  • waiting:Process鄧帶IO中
  • running:Process取得CPU執行中
  • terminated:完成工作,準備回收PCB

行程控制表(PCB)

    又稱任務控制表(task control block)
  • 行程ID:唯一
  • 行程狀態︰running或waiting等
  • 程式計數器︰指向下一個要執行指令的位址
  • CPU暫存器:記錄在暫存器的值
  • CPU排班相關的資訊:
  • 記憶體管理資訊:
  • 會計資訊
  • I/O資訊

行程排班

佇列

  • 工作佇列(Job queue) –所有行程的集合

  • 就緒佇列(Ready queue)–位於主記憶體中且就緒等待執行的行程

  • 裝置佇列(Device queues)–等待某I/O裝置的行程

      佇列圖(Queuing diagram)
    

排班佇列

  • 長程排班程式(Long-term scheduler,job scheduler):放入Ready queue,控制多元規劃程度

  • 短程排班程式(Short-term scheduler,PU scheduler):並將CPU分配給它

  • 中程排班程式(Medium-term scheduler)

  • 行程描述:

    • I/O傾向行程(I/O-bound process):IO花費時間多
    • CPU傾向行程(CPU-bound process):CPU花費多
  • 置換(swapping):從記憶體移除行程,儲存到磁碟OR從磁碟回存到記憶體繼續執行


Context Switching

  • CPU要從舊行程轉到新行程時,在儲存裝置載入和儲存狀態
  • Context Switching的轉換時間是負擔,OS和PCB影響時間

行程產生/結束

  • fork():呼叫新行程
  • exec():新行程取代記憶體空間
  • exit():新行程執行完後,刪除自身
  • abort():父行程可以結束子行程的執行
  • wait():子行程輸出資料到父行程

行程通訊

合作行程

  • 行能夠影響其它行程,或是受到其它行程所影響
  • 好處:(1)資訊共享、(2)加速運算、(3)模組化、(4)方便性
  • 行程間通訊(Inter-Process Communication, IPC)
    • 訊息傳遞(Message passing)
    • 共用記憶體(Shared memory)
  • 無限緩衝區(unbounded-buffer)對於緩衝區的大小沒有限制
  • 有限緩衝區(bounded buffer)假設緩衝區的大小固定

獨立行程

  • 無法影響其它行程的執行且不受其它的行程影響

通訊鍊

  • 構成
    • send(P, message) –傳送訊息給行程P
      *** receive(Q, message) –從行程Q接收訊息**
    • port(信箱埠):傳送與接收訊息,兩個行程共用信箱埠時,它們才可互相聯繫
  • 操作
    • 產生一個新的信箱埠
    • 經由信箱埠傳送並接收訊息
    • 刪除一個信箱埠
  • 同步
    • 等待(blocking),同步(synchronous)
      • 等待傳送(blocking send)︰傳送行程等待,直到訊息被接收
      • 等待接收(blockingreceive)︰接收者等待,直到有訊息出現
    • 非等待(non-blocking)被視為非同步(asynchronous)
      • 非等待傳送(non-blocking send)︰傳送行程送出訊息後繼續執行
      • 非等待接收(non-blocking receive)︰接收者取回有效訊息或無效資料

緩衝器(Buffer)

  • 1.零容量(Zero capacity)–零訊息傳送者必須等候接收者(約會)
  • 2.有限容量(Bounded capacity)–有限長度n 的訊息如果鏈已經填滿,那麼傳送者必須等待
  • 3.無限制容量(Unbounded capacity)–無限長度傳送者不需要等待

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言