天天看點

第二章 程序管理

程序的描述

  1. 程式的順序執行

    先進入記憶體的程式先執行,在一個程式執行完畢之前,不能執行其他程式。具有的特點如下:

    (1)順序性;(2) 封閉性;(3)可再現性程;

  2. 程式的并發執行

    程式的并發執行是指在同一時間間隔内運作多個程式。具有的特點如下:

    (1) 間斷性;

    (2) 失去封閉性。

  3. 程序的定義

    定義 1:程序是允許并發執行程式在某個資料集合上的運作過程。

    定義 2:程序是由正文段、使用者資料段及程序控制塊共同組成的執行環境。

  4. 程序的特征

    (1) 并發性。

    (2) 動态性。

    (3) 獨立性。

    (4) 異步性。

    (5) 結構特征

  5. 程序和程式的比較

    (1)程序是動态的,程式是靜态的;

    (2)程序是有生命期的,而程式沒有生命期,可以做文檔資料,長期儲存。

    程序與程式的聯系:

    (1) 程序總是對應至少一個特定的程式。

    (2) 一個程式可以對應多個程序。

  6. 程序控制塊的定義

    程序控制塊是程序實體的一部分,是作業系統中最重要的資料結構

  7. 程序控制塊中的資訊

    (1) 程序辨別符資訊:程序辨別符用于唯一辨別一個程序。

    (2) 處理機狀态資訊:程序控制塊中保留的處理機狀态資訊通常包括通用寄存器、指令計數器、程式狀态字 PSW 和使用者棧指針。

    (3)程序排程資訊:程序狀态資訊、程序優先級和程序排程所需的其他資訊。

    (4)程序控制資訊:程式和資料的位址、程序同步和通信機制、資源清單,以及連結指針

  8. 程序的三種狀态

    程序有三種基本狀态: 就緒态、執行态、 阻塞态

  9. 程序的組織

    (1) 連結方式:具有相同狀态的程序的程序控制塊用其中的連結字連結成一個隊列。

    (2) 索引方式:根據所有程序的狀态,建立幾張索引表,索引表的每一個表項指向一個 PCB 的實體塊。

    (3) 程序隊列:當系統中有很多程序時,可以把程序控制塊用隊列組織起來,形成程序隊列。

程序的控制

  1. 程序的建立

    通常在下列情況下需要建立新程序:

    (1)使用者登入;

    (2)作業排程;

    (3)提供服務;

    (4)應用請求;

    建立程序的步驟:

    (1)申請空白 PCB;

    (2)為新程序配置設定資源;

    (3)初始化程序控制塊;

    (4)将新程序插入就緒隊列;

  2. 程序的阻塞

    通常在下列情況下需要進行程序的阻塞和喚醒操作:

    (1)請求系統服務;

    (2)啟動某種操作;

    (3)新資料尚未到達;

    (4)無新工作可做。

    完成程序阻塞的簡化過程:

    (1)将程序的狀态改為阻塞态;

    (2)将程序插入相應的阻塞隊列;

    (3)轉程序排程程式,從就緒程序中選擇程序為其配置設定 CPU。

  3. 程序的喚醒

    ( 1) 将程序從阻塞隊列中移出;

    ( 2) 将程序狀态由阻塞态改為就緒态;

    ( 3) 将程序插入就緒隊列。

  4. 程序的終止

    通常在下列情況下,程序會被終止:

    ( 1)當程序正常執行完畢,調用終止程序的系統調用,請求作業系統删除該程序;

    ( 2)一個程序調用适當的系統調用,終止另外一個程序;父程序終止其子程序的原因可能有以下幾個:

    ( 1)子程序使用了超過它所配置設定到的一些資源;

    ( 2) 配置設定給子程序的任務已不再需要;

    ( 3) 父程序退出,如果父程序終止,那麼作業系統不允許子程序繼續。

    完成程序終止的一般過程:

    ( 1)從程序 PCB 中讀程序狀态;

    ( 2)若程序正在執行,則終止程序的執行;

    ( 3)若程序有子孫程序,在大多數情況下需要終止子孫程序。

    ( 4)釋放資源。

    ( 5)将終止程序的PCB 移出。

繼續閱讀