《操作系統——精髓與設計原理》學習筆記 第三章


系列文章目錄

《操作系統——精髓與設計原理》學習筆記 第一章
《操作系統——精髓與設計原理》學習筆記 第二章
《操作系統——精髓與設計原理》學習筆記 第三章


寫在前面

多道程序操作系統都是圍繞進程這一概念創建的,因此操作系統需要滿足的多數需求都涉及進程:

  • 操作系統與普通計算機軟件相同,也是有處理器執行的一段或一組程序
  • 操作系統必須交替執行多個進程,使處理器的利用率最大
  • 操作系統必須按照特定的策略給進程分配資源,同時避免死鎖
  • 操作系統須爲有助於構建應用的進程間通信和用戶進程創建提供支持

本章主要介紹了

  1. 操作系統表示和控制進程的方式
  2. 進程的狀態如何描述進程的行爲特徵
  3. 表示進程狀態所需的數據結構和其他特徵
  4. 使用這些數據結構控制進程執行的方式
  5. UNIX SVR4中的進程管理

3.1 什麼是進程

3.1.1 背景

3.1.2 進程和進程控制塊

進程定義:

  • 一個正在執行的程序
  • 一個正在計算機上執行的程序實例
  • 能分配給處理器並由處理去執行的實體
  • 由一組執行的指令、一個當前狀態和一組相關的系統資源表徵的活動單元

進程的兩個基本元素是程序代碼和與代碼關聯的數據集
處理器執行程序代碼的執行實體稱爲進程,任意時刻可由如下元素表示

  • 標識符
  • 狀態
  • 優先級
  • 程序計數器
  • 內存指針
  • 上下文數據
  • I/O狀態信息
  • 記賬信息

上述信息都放在進程控制塊中,由操作系統創建和管理,它在中斷和進程切換中起到了很大的作用

3.2 進程狀態

列出進程執行的指令序列,可描述單個進程的行爲,這種序列稱爲軌跡
給出各個軌跡的交替方式,可描述處理器的行爲

栗子(待更新

3.2.1 兩狀態進程模型

由於在任何時刻,進程要麼正在執行,要麼未執行,因此可以構建簡單的模型。
進程可處於一下兩種狀態:運行態和未運行態,由操作系統中的分派器簡單調度。在這裏插入圖片描述 從這個簡單的模型中我們可以意識到操作系統的一些設計元素:必須要表示每個進程使得操作系統可以跟蹤到它,即必須有一些進程相關的信息,包括進程的狀態和位置,即進程控制塊。