1. 程式人生 > >作業系統概念學習筆記 第三章 程序

作業系統概念學習筆記 第三章 程序

3.1 程序概念

1. 程序

程序是一種執行中的程式

  • 執行什麼程式
  • 執行什麼資料
  • 處在什麼狀態

程序包括

  • 程式程式碼/文字段
  • 當前活動,程式計數器和CPU暫存器
  • 記憶體中的程序
    • 堆疊段(臨時資料,如函式引數,返回地址,區域性變數)
    • 資料段(如全域性變數)
    • 堆(程序執行期間動態分配的記憶體)

記憶體中的程序

程序 VS 程式

  • 程式是被動實體,是可執行程式碼/指令檔案內容
  • 程序是活動實體,當一個程式被裝載入記憶體(執行)時,程式變成程序

2. 程序狀態

  • 新的:程序正在被建立
  • 執行:指令正在被執行
  • 等待:程序等待某個事件的發生(如I/O完成或受到訊號)
  • 就緒 :程序等待分配處理器
  • 終止 :程序完成執行

程序狀態

3. 程序控制塊 (process control block, PCB)

  • 識別符號:id
  • 程序狀態: 狀態可包括新的,就緒,執行,等待,終止等
  • 程式計數器 : 計數器表示程序要執行的下個指令的地址
  • CPU暫存器: 與程式計數器一起,這些暫存器的狀態資訊在出現中斷時也需要儲存,以便程序以後能正確的執行
  • CPU排程資訊:這類資訊包括程序優先順序、排程佇列指標和其他排程引數
  • 記憶體管理資訊:根據記憶體系統,這類資訊包括基址和界限暫存器的值,頁表或段表
  • 記賬資訊:包括CPU時間、實際使用時間、時間限制、記賬資料、作業或程序數量等
  • I/O狀態資訊:包括顯式的I/O請求、分配給程序的I/O裝置(例如磁碟驅動器)和被程序使用的檔案列表等
  • 記憶體指標:包括程式程式碼和程序相關資料的指標
  • 上下文資料:程序執行時處理器中暫存器的資料
  • ……

3.2 程序排程