計算機概論-作業系統(行程管理與排班)

by 10月 11, 20200 Comments

行程管理(Process management)

行程(process)指的是正在執行的程式,是一個具有獨立功能的程序關於某個數据集合的一次運行活動。它可以申請和擁有系统資源,是一個動態的概念,是一個活動的實體。它不只是程序的代碼,還包括當前的活動,通過程序計數器的值和處理寄存器的内容來表示。

process組成

文本區域(text region):

  • 程式碼(code section)

資料區域(data region):

  • 全域變數(global variable)
  • 堆積(heap):動態分配的記憶體

堆疊(stack region):

  • 活動過程調用的指令
  • 程式計數器(program counter)
  • 本地變數(local variable)

行程狀態(process state)

Process的生命週期可以劃分為一組狀態,系統根據PCB結構(process Control block)中的狀態值控制process。
Process在結束前僅處於以下三種基本狀態之一:

  • 就緒狀態:當process已分配到除CPU以外的所有必要資源後,處於排班中。
  • 執行狀態:process正在CPU上運行的狀態,該process已獲得必要的資源及處理器,用戶程序正在處理器上運行。
  • 等待狀態:正在執行的process,由於發生某事件而暫時無法繼續執行時,放棄處理器而處於暫停狀態。

  • 新建(new):該process正在產生中
  • 執行中(running):process正在執行
  • 等待(waiting):等待某事件發生(通常是等待I/O)
  • 就緒(ready):排班中,該process正等待指定一個處理器
  • 結束(terminate):該process完成執行

內文切換(context switch)

  • 時機:當CPU的使用權由一個process移交給另一個process使用時
  • 動作:先儲存原process狀態至PCB,再載入新process的PCB
  • 時間:system overhead,且與硬體有關
註:PCB應保留在主記憶體中,以加快排程和內文切換的速度,減少system overhead

狀態中的佇列

  • Job queue:由一群位於次儲存體 (如:硬碟 ) 中,等待進1入主記憶體之programs所形成的集合
  • Ready queue:由一群位於記憶體中,就緒並等待執行的processes所行程的集合,一般都是用鏈結串(link list)的方式儲存
  • Device queue:由一群正在等待 I/O 裝置的processes所形成的集合,毎個裝置本身都有其 device queue,以記錄不同process的請求

PCB(process control block)

說明:用來儲存process的狀態與資訊
PCB內容:

  • Process state:process的狀態(new、running...)
  • Program counter:下一個要執行的指令位址
  • CPU register:所有暫存器內容
  • CPU scheduling information:排班順序、佇列...
  • Memory management information:分配給process的記憶體大小
  • Accounting information:CPU實際時間的使用數量、process ID
  • I/O status information:配置給process的輸出/入裝置

    排班程式(scheduler)類型

    類型執行頻率批次系統分時系統即時系統
    Long-term scheduler最低OXX
    Midium-term scheduler中等XOX
    Short-term scheduler最高OOO

    Long-term scheduler

    • 從job queue選擇適合的jobs載入至記憶體內準備執行
    • 可調控multiprogramming degree(記憶體中正在執行的process數量)
    • 可調控CPU bound與I/O bound的比例

    Midium-term scheduler

    • 當記憶體空間不足,又有其它process欲進入記憶體執行,此時必須選擇某些process,將其swap out到disk,待記憶體有足夠空間,再將其swap in回記憶體中繼續執行
    • 可調控multiprogramming degree
    • 可調控CPU bound與I/O bound的比例

    short-term scheduler

    • 從ready queue中選擇已ready且適當的process,使其獲得CPU使用權
    • 無法調控multiprogramming degree
    • 無法調控CPU bound與I/O bound的比例

    0留言

    <