第二章.程序管理
阿新 • • 發佈:2018-12-09
程序前趨圖是有向無迴圈圖
程式順序執行的特徵:順序性、封閉性、可再現性
程式併發執行要符合前趨關係,併發不是隨意的
併發程式執行時的特徵:間斷性、失去封閉性、結果不可再現性
多道併發應是“有控制的併發” 1.要“能控制”,2. 要“合理控制”
程序是程序實體的執行過程,是系統進行資源分配和排程的一個獨立單位
程序的特徵:
- 結構性特徵,程序的根本–PCB
- 動態性( 程序實質上是程序實體的一次有生命期的執行過程。程式只是靜態的一組有序指令。程序最基本特徵 )
- 併發性( 多個程序實體同存於記憶體中,在一段時間內同時執行。有PCB的程式才能併發 )
- 獨立性
- 非同步性
程序的三種狀態:就緒、執行、阻塞
- 單處理機系統,執行態的程序只有一個;
- 就緒態、阻塞態的程序可有多個。一般講它們分別排稱一個佇列,稱就緒佇列、阻塞佇列。
- 阻塞佇列有的會根據不同原因再排成多個佇列。
程序實體:程式碼段+資料段+PCB
存放程序的管理和控制資訊的資料結構稱為程序控制塊
OS對程序進行控制和管理圍繞PCB進行(分析OS排程某程序的過程)
- 查該程序的PCB,獲取其狀態、優先順序
- 根據PCB儲存的處理機狀態資訊,恢復現場
- 根據PCB中程式和資料的記憶體始址,找到其程式和資料
- 執行中的同步訊號等也要查閱PCB,暫停時程序執行的處理機環境儲存回PCB
程序控制塊是程序存在的唯一標誌:程序建立時,PCB建立並伴隨程序執行的全過程,直到程序撤消而撤消
程序控制快中的資訊:
- 程序識別符號資訊
- 每一個程序都必須有一個唯一的識別符號
- 內部標示符:唯一的數字序號,方便系統使用
- 外部標示符:方便使用者使用,使用者程序訪問某程序時使用
- 每一個程序都必須有一個唯一的識別符號
- 處理機狀態資訊
- 程序排程資訊
- 程序狀態
- 程序優先順序
- 程序排程所需的其他資訊:排程演算法相關資訊
- 事件:狀態轉換有關的事件 - 程序控制資訊
- 程式和資料的地址(單個程序)
- 資料所在的內外存地址 - 程序同步和通訊機制(多程序間)
- 同步和通訊機制的訊號量、訊息佇列指標等 - 資源清單
- 連結指標(PCB的組織)
- 本PCB所在佇列的下一個程序PCB首地址
- 程式和資料的地址(單個程序)