作業系統程序管理

2022-09-15 14:39:06 字數 5323 閱讀 8334

處理機管理的主要任務是對處理機的分配和執行實時有效的管理,從傳統意義上將,程序是處理機和資源分配的基本單位,因此對處理機的管理可以歸納為對程序的管理。

1、 程序的概述

2、 程序的定義及特徵

3、 程序的狀態及描述

4、 程序控制

5、 程序同步

6、 程序通訊

7、 程序排程

8、 執行緒

9、 死鎖

零測試在計算機作業系統中,程序是資源分配的基本單位,也是獨立執行的基本單位。

1、 引入程序的原因

a) 在現代計算機作業系統中,記憶體中通常存放多道程式,這些程式併發執行,為了描述併發程式執行時的特徵,引入了程序這個概念。

2、 前趨圖的定義

a) 前趨圖是乙個有向無迴圈圖,用於描述程式、程式段或語句執行的先後次序,每個結點可以表示乙個語句、乙個程式段或乙個程序,結點間的有向邊表示兩個結點之間存在的前趨關係;

b) 直接前驅:如果pi->pj,則稱pi是pj的直接前驅;

c) 直接後繼:如果pi->pj,則稱pj是pi的直接後繼;

d) 前驅:如果pi->pj…->pk->pm,則稱pi是pk的前驅;

e) 後繼:如果pi->pj…->pk->pm,則稱pk是pi的後繼;

f) 初始結點:沒有前驅的結點稱為初始結點(pi);

g) 終止結點:沒有後繼的結點稱為終止結點(pm)。

3、 程式的順序執行

a) 定義:乙個程式通常由若干個操作組成,這些操作必須按照某種先後次序執行,僅當前乙個操作執行完成後才能執行後繼操作,這類計算過程就是程式的順序執行過程。

b) 特徵:

i. 順序性:處理機的操作嚴格按照程式所規定的順序執行,只有當上乙個操作完成後,下乙個操作才能開始執行;

ii. 封閉性:程式一旦開始執行,其執行結果不受外界因素影響;

iii. 可再現性:只要程式執行時的初始條件和執行環境相同,當程式重複執行時,都將獲得相同的結果。

4、 程式的併發執行

a) 定義:程式的併發執行是指若干個程式或程式段同時在系統中執行,這些程式或程式段的執行在時間上是重疊的,乙個程式或程式段的執行尚未結束,另乙個程式或程式段的執行已經開始。

b) 特徵:

i. 間斷性:程式在併發執行時,由於它們共享資源或為完成同一項任務而相互合作,致使併發程式之間形成了相互制約關係。

這種相互制約關係將導致併發程式具有「執行-暫停-執行」這種間斷性的活動規律;

ii. 失去封閉性:程式在併發執行時,多個程式共享系統中的各種資源,因而這些資源的狀態將由多個程式來改變,致使程式的執行失去封閉性;

iii. 不可再現性:程式併發執行時,由於失去了封閉性,也將導致失去其執行結果的可再現性。

5、 程式併發執行的條件

a) 定義的表示法:

i. r(pi)=表示程式段pi在執行期間要引用的所有變數的集合,稱為讀集;

ii. w(pi)=表示程式段pi在執行期間要改變的所有變數的集合,稱為寫集。

b) 併發執行的條件

i. r(p1)與w(p2)的交集為空;

ii. r(p2)與w(p1)的交集為空;

iii. w(p1)與w(p2)的交集為空。

零測試在多道程式環境下,程式的併發執行出現了許多新的特徵,程式這個靜態概念已經不能如實地反映程式活動的這些特徵,為此引入了描述併發程式執行時的特徵的概念----程序。

1、 程序的定義

a) 程序是程式在處理機上的一次執行過程;

b) 程序是可以和別的計算並行執行的計算;

c) 程序是程式在乙個資料集合上的執行過程,是系統程序資源分配和排程的乙個獨立單位;

d) 程序是乙個具有一定功能的程式關於某個資料集合的一次執行活動。

e) 程序是由程式段、資料段和乙個程序控制塊組成。

2、 程序的特徵

a) 動態性:程序是程式在處理機上的一次執行過程,因而是動態的;

b) 併發性:多個程序實體同時存在於記憶體中,在一段時間內併發執行;

c) 獨立性:程序是能獨立執行的基本單位,也是系統程序資源分配和排程的獨立單位;

d) 非同步性:系統中的各程序以獨立的、不可預知的速度向前推進;

e) 結構性:從結構上看,程序由程式段、資料段和乙個程序控制塊組成。

3、 程序與程式的區別

a) 程序是動態的,程式是靜態的:程序是程式的一次執行過程,程式是一組**的集合;

b) 程序是暫時的,程式是永久的:程序是乙個狀態變化的過程,程式可以長久儲存;

c) 程序與程式的組成不同:程序的組成包括程式、資料和程序控制塊;

d) 程序與程式是密切相關:通過多次執行,乙個程式可以對應多個程序,通過呼叫關係,乙個程序可以包括多個程式,是多對多的關係。

零測試為了刻畫程序的動態特徵,可以將程序的生命期劃分為一組狀態,用這些狀態來描述程序的活動過程。

1、 程序的狀態

a) 建立狀態:程序剛被建立尚未放入就緒佇列;

b) 執行狀態:程序獲得必要的資源並正在處理機上執行(處於執行狀態的程序數目不能大於處理機數目);

c) 就緒狀態:程序已獲得除處理機外的所有資源,一旦獲得處理機就可以立即執行,又稱活動就緒扎un改天;

d) 阻塞狀態:程序因等待某事件的發生(io輸入輸出)而暫時無法執行下去,又稱活動阻塞狀態;

e) 掛起就緒:如果乙個程序原來處於執行狀態或活動就緒狀態,此時可因掛起命令而由原來狀態變為掛起就緒狀態,直到啟用命令才能把它重新變為活動就緒狀態

f) 掛起阻塞:如果乙個程序原來處於活動阻塞狀態,它可因掛起命令而變為掛起阻塞狀態,直到啟用命令才能把它重新變為活動阻塞狀態;

g) 終止狀態:程序已結束執行,釋放了除程序控制塊之外的其他資源,此時程序所處的狀態為終止狀態。處於終止狀態的程序不能再被排程執行,當系統收回其程序控制塊後,該程序將從系統中消失。

又稱為退出狀態。

2、 狀態的轉換

a) 就緒狀態->執行狀態:程序排程;

b) 執行狀態->活動就緒狀態:cpu時間片用完;

c) 執行狀態->活動阻塞狀態:等待時間(輸入輸出等操作);

d) 活動阻塞狀態->活動就緒狀態:時間發生(輸入輸出等操作完成);

e) 建立狀態->活動就緒狀態:建立之後接納該程序;

f) 執行狀態->終止狀態:完成了該程序;

g) 活動阻塞狀態->掛起阻塞狀態:掛起命令;

h) 掛起阻塞狀態->活動阻塞狀態:啟用命令;

i) 活動就緒狀態->掛起就緒狀態:掛起命令;

j) 掛起就緒狀態->活動就緒狀態:啟用命令;

k) 執行狀態->掛起就緒:掛起命令。

3、 程序控制塊

a) 程序控制塊的定義:

i. 程式和資料都是靜態的文字,無法反映程序執行過程的動態特徵,因此還需要乙個資料結構來描述程序的當前狀態、對資源的占用以及排程資訊等,這就是程序控制塊;

ii. 程序控制塊(process control block,pcb)是程序實體的一部分,為了描述程序並對程序進行有效的控制和管理,系統為每個程序設定了pcb,pcb是系統中程序存在的唯一標誌。

b) 程序控制塊的結構:

i. 程序識別符號:唯一標識程序的乙個識別符號或整數,由系統為程序分配;

ii. 程序當前狀態:說明程序當前的狀態,作為程序排程程式分配處理機的依據;

iii. 程序佇列指標:用於記錄pcb佇列中下乙個pcb的位址,系統中的pcb可以組織成多個佇列,如就緒佇列、阻塞佇列等;

iv. 程式和資料位址:指出程序的程式和資料在記憶體或外存中的存放位址;

v. 程序優先順序:反映程序獲得cpu的優先順序,優先順序高的程序可以優先獲得處理機;

vi. cpu現場保護區:當程序因某種原因釋放處理機時,cpu現場保護資訊被儲存在pcb的該區域中,以便在程序重新獲得處理機後能恢復執行;

vii. 通訊資訊:記錄程序在執行過程中與其他程序所發生的資訊交換情況;

viii. 家族關係:程序與子程序形成的程序家族樹;

ix. 資源清單:列出程序所需資源以及當前已分配的資源。

c) 程序控制塊的組織方式:為了方便程序的排程和管理,需要將各程序的pcb用適當的方法組織起來,目前常用的有如下:

i. 鏈結方式:是將同一狀態的pcb通過指標鏈結成乙個佇列,不同狀態對應多個不同的佇列,如就緒佇列、阻塞佇列等,在單cpu的系統中執行狀態的程序只有乙個;

ii. 索引方式:是將同一狀態的程序組織在乙個索引表中,索引表的表象指向響應的程序控制塊,不同狀態對應不同的索引表,如就緒索引表、阻塞索引表等。

零測試程序是系統中活動的實體,程序控制包括程序的建立、撤銷以及程序狀態的轉換。

1、 程序控制概述

a) 作業系統核心的定義:在現代作業系統設計中,,並使它們常駐記憶體,以提高作業系統的執行效率,這就是作業系統核心。

b) 程序控制的職責:是對系統中所有程序實施有效的管理,其功能包括程序建立、程序撤銷、程序阻塞與喚醒等。

c) 程序控制的原語:程序控制功能是通過執行各種原語實現的,原語是由若干條機器指令構成的一段程式,用以完成特定功能,這段程式在執行期間不可分割。

i. 程序建立原語:主要功能是建立乙個新程序;

ii. 程序撤銷原語:主要功能是撤銷乙個程序;

iii. 程序阻塞原語:主要功能是將程序由執行狀態轉變為阻塞狀態;

iv. 程序喚醒原語:主要功能是將程序由阻塞狀態轉變為就緒狀態;

v. 程序掛起原語:主要功能是將就緒、阻塞以及執行狀態的程序掛起;

vi. 程序啟用原語:主要功能是將掛起的程序啟用

d) 程序圖的定義:程序圖又稱為程序樹或程序家族樹,是描述程序家族關係的一顆有向樹。結點就代表程序,通過乙個結點可以生成多個結點,就是說乙個程序可以建立多個子程序或者子子程序,樹的根結點稱為程序家族的祖先。

e) 程序的執行狀態

i. 核心態:又稱管態、系統態,是作業系統管理程式執行時機器所處的狀態,這種狀態具有較高的特權,能執行一切指令,訪問所有的暫存器和儲存區。

ii. 使用者態:又稱目態、是使用者程式執行時機器所處的狀態,這種狀態具有較低的特權,只能執行規定的指令,訪問指定的暫存器和儲存區。

2、 程序建立原語

a) 引起程序建立的事件:

i. 排程新作業:作業一般儲存在磁帶或磁碟上,當作業排程程式選中某個作業時,便為該作業建立程序,分配必要的資源,然後將新建立的程序加入到就緒佇列中;

ii. 使用者登入:在互動式系統中,當使用者登入進入系統時,作業系統要建立新程序,負責接收並解釋使用者輸入的命令;

iii. 作業系統提供服務:當執行中的使用者程式向系統提出某種請求時,作業系統會建立程序來完成使用者程式所需要的服務功能;

iv. 應用請求:應用程式可以根據需要在本程序的基礎上,建立子程序使其與父程序併發執行,以完成特定的任務。

b) 建立程序的過程:

i. 向系統申請乙個空閒pcb(process control block,程序控制塊);

ii. 為新程序分配資源;

iii. 初始化新程序的pcb;

作業系統程序分配

5.1 實驗目的 熟悉sql的資料控制功能,能夠使用sql語句來向使用者授予和收回許可權。5.2 實驗內容 1 使用grant語句來對使用者授權,對單個使用者或多個使用者授權,或使用保留字public對所有使用者授權。對不同的操作物件包括資料庫 檢視 基本表等進行不同許可權的授權。2 使用with ...

電腦大全 XP系統 作業系統程序描述

電腦資料大全 xp系統 作業系統程序描述.txt25愛是一盞燈,黑暗中照亮前行的遠方 愛是一首詩,冰冷中溫暖渴求的心房 愛是夏日的風,是冬日的陽,是春日的雨,是秋日的果。電腦資料大全 xp系統 作業系統程序描述 system process 程序檔案 system process or system...

作業系統程序排程實驗報告

實驗一程序排程實驗 專業 xx 學號 xx 姓名 實驗日期 20xx年xx月xx日 一 實驗目的 通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。二 實驗要求 編寫程式實現對5個程序的排程模擬,要求至少採用兩種不同的排程演算法分別進行模擬排程。三 實驗方法內容 1.演算法設計思路 將...