程序的描述
-
程式的順序執行
先進入記憶體的程式先執行,在一個程式執行完畢之前,不能執行其他程式。具有的特點如下:
(1)順序性;(2) 封閉性;(3)可再現性程;
-
程式的并發執行
程式的并發執行是指在同一時間間隔内運作多個程式。具有的特點如下:
(1) 間斷性;
(2) 失去封閉性。
-
程序的定義
定義 1:程序是允許并發執行程式在某個資料集合上的運作過程。
定義 2:程序是由正文段、使用者資料段及程序控制塊共同組成的執行環境。
-
程序的特征
(1) 并發性。
(2) 動态性。
(3) 獨立性。
(4) 異步性。
(5) 結構特征
-
程序和程式的比較
(1)程序是動态的,程式是靜态的;
(2)程序是有生命期的,而程式沒有生命期,可以做文檔資料,長期儲存。
程序與程式的聯系:
(1) 程序總是對應至少一個特定的程式。
(2) 一個程式可以對應多個程序。
-
程序控制塊的定義
程序控制塊是程序實體的一部分,是作業系統中最重要的資料結構
-
程序控制塊中的資訊
(1) 程序辨別符資訊:程序辨別符用于唯一辨別一個程序。
(2) 處理機狀态資訊:程序控制塊中保留的處理機狀态資訊通常包括通用寄存器、指令計數器、程式狀态字 PSW 和使用者棧指針。
(3)程序排程資訊:程序狀态資訊、程序優先級和程序排程所需的其他資訊。
(4)程序控制資訊:程式和資料的位址、程序同步和通信機制、資源清單,以及連結指針
-
程序的三種狀态
程序有三種基本狀态: 就緒态、執行态、 阻塞态
-
程序的組織
(1) 連結方式:具有相同狀态的程序的程序控制塊用其中的連結字連結成一個隊列。
(2) 索引方式:根據所有程序的狀态,建立幾張索引表,索引表的每一個表項指向一個 PCB 的實體塊。
(3) 程序隊列:當系統中有很多程序時,可以把程序控制塊用隊列組織起來,形成程序隊列。
程序的控制
-
程序的建立
通常在下列情況下需要建立新程序:
(1)使用者登入;
(2)作業排程;
(3)提供服務;
(4)應用請求;
建立程序的步驟:
(1)申請空白 PCB;
(2)為新程序配置設定資源;
(3)初始化程序控制塊;
(4)将新程序插入就緒隊列;
-
程序的阻塞
通常在下列情況下需要進行程序的阻塞和喚醒操作:
(1)請求系統服務;
(2)啟動某種操作;
(3)新資料尚未到達;
(4)無新工作可做。
完成程序阻塞的簡化過程:
(1)将程序的狀态改為阻塞态;
(2)将程序插入相應的阻塞隊列;
(3)轉程序排程程式,從就緒程序中選擇程序為其配置設定 CPU。
-
程序的喚醒
( 1) 将程序從阻塞隊列中移出;
( 2) 将程序狀态由阻塞态改為就緒态;
( 3) 将程序插入就緒隊列。
-
程序的終止
通常在下列情況下,程序會被終止:
( 1)當程序正常執行完畢,調用終止程序的系統調用,請求作業系統删除該程序;
( 2)一個程序調用适當的系統調用,終止另外一個程序;父程序終止其子程序的原因可能有以下幾個:
( 1)子程序使用了超過它所配置設定到的一些資源;
( 2) 配置設定給子程序的任務已不再需要;
( 3) 父程序退出,如果父程序終止,那麼作業系統不允許子程序繼續。
完成程序終止的一般過程:
( 1)從程序 PCB 中讀程序狀态;
( 2)若程序正在執行,則終止程序的執行;
( 3)若程序有子孫程序,在大多數情況下需要終止子孫程序。
( 4)釋放資源。
( 5)将終止程序的PCB 移出。