作業系統 程序管理 程序的控制與同步

2021-09-22 10:15:40 字數 1295 閱讀 6790

目錄

1.程序控制的概念

2.程序的建立

3.程序間互斥與同步的概念

4.臨界資源和臨界區

5.同步機制應遵循的原則

6.訊號量與p/v操作

7.生產者與消費者問題

程序由建立產生,由排程執行,由撤銷消亡。

申請pcb空間,為新程序分配資源,把有關資訊填入pcb,將pcb插入就緒佇列中。

因直接制約關係(各個程式段要求共享資訊)而需要相互等待,相互合作,以達到各程序相互協調而執行的過程稱為同步。

因間接制約關係(各個程式競爭使用同乙個資源)而導致程序交替執行的過程稱為互斥。

把某段時間只允許乙個程式使用的資源稱為臨界資源。

把訪問臨界資源的**段稱為臨界區。

空閒讓進 忙則等待 有限等待 讓權等待

訊號量:表示臨界資源可用的數目。

p/v操作:在訊號量上定義了兩個操作p原語和v原語。該訊號量的值只能被p/v修改且不可被中斷。

訊號量(semaphore)是乙個整型變數,可以對其執行 down 和 up 操作,也就是常見的 p 和 v 操作。

down 和 up 操作需要被設計成原語,不可分割,通常的做法是在執行這些操作的時候遮蔽中斷。

如果訊號量的取值只能為 0 或者 1,那麼就成為了互斥量(mutex),0 表示臨界區已經加鎖,1 表示臨界區解鎖。

問題分析:

同步關係:直接制約關係。

當生產者速度大於消費者時,生產者會阻塞,等消費者消費後才能繼續生產產品。

互斥關係:直接制約關係。

緩衝池中只能由消費者或生產者其中之一使用。

設變數:

設 mutex 公有訊號量 初值為1 用於實現臨界區互斥 

設 empty 生產者私有訊號量 初值為n 表示空緩衝區數目

設 full 生產者私有訊號量 初值為0 表示滿緩衝區數目

設 整型 i , j 分別為空緩衝區的頭指標和滿緩衝區的頭指標

注:p操作順序不可顛倒。

**:

semaphore mutex = 1;

semaphore empty = n;

semaphore full = 0;

int i = 0;

int j = 0;

void p()

}void c()

}int main()

作業系統(七)程序管理 程序控制

程序控制的主要任務 程序控制是對系統中所有程序從建立 執行到撤銷的全過程實行有效的管理和控制。程序控制一般是由作業系統核心的相應程式 原語 來實現。通常,作業系統核心執行在系統態。原語是由若干條指令組成的,用於完成特定功能的,具有原子性 不可分割 的子程式。它與一般過程的區別 它們是原子操作 act...

作業系統 程序的控制

程序控制 建立新的程序,撤銷已有程序,實現程序狀態轉換 建立完成,提交 就緒佇列 排程,切換 cpu 完成 異常結束 用原語實現程序控制,原語的特點是執行期間不允許中斷,只能一氣呵成,這種不可中斷操作就是原子操作原語採用 關中斷指令 和 開中斷指令 1.程序的建立 從無 建立態 就緒態 1 建立原語...

作業系統 程序管理

程序 申請資源和排程資源的基本單位,乙個程序就是乙個程式的乙個執行過程。是乙個動態的概念,在不同的作業系統中,會有不同的程序出現。程式 靜態概念,是指令和資料的集合,可長期儲存。程序與程式對應關係 乙個程式可以對應乙個程序或者多個程序 乙個程序可以對應乙個程式,或者一段程式 程序由程式,資料集合,程...