操作系統(tǒng)第二章課堂記錄及心得體會

一、課堂筆記

第二章 、進(jìn)程管理


2-1 進(jìn)程與PCB

2.1進(jìn)程的基本概念

要點(diǎn)

1.分析程序執(zhí)行順序、以及并發(fā)的特征

2.進(jìn)程的概念、特征與狀態(tài)

3.進(jìn)程控制塊及其組織


程序順序執(zhí)行時的特征



進(jìn)程












經(jīng)典同步問題

1. 生產(chǎn)者—消費(fèi)者問題:

多個生產(chǎn)者和消費(fèi)者對n個緩 沖區(qū)的使用。?

1. 無論生產(chǎn)者、消費(fèi)者使用緩沖池時應(yīng)保證 互斥使用(互斥信號量mutex )

2. 生產(chǎn)者和消費(fèi)者間交叉有序:

?? 有序的控制最根源在產(chǎn)品數(shù)量上。

?? 設(shè)置兩個信號量: 分別針對生產(chǎn)者、消費(fèi)者設(shè)置不同 的信號量,empty和full分別表示緩沖 池中空緩沖池和滿緩沖池(即產(chǎn)品)的 數(shù)量。

分析:互斥信號量mutex用來保證對緩沖池的互斥使用,即在放一個產(chǎn)品的同時不能同時去拿。 empty和full用來控制 “空”和“產(chǎn)品”。初始時空為n,產(chǎn)品為0,當(dāng)生產(chǎn)者生產(chǎn)一個產(chǎn)品后空-1,產(chǎn)品+1;這就可以用記錄型信號量來控制。

buffer: array [ 0, …, n-1] of item; in, out: integer :=0, 0;

Var mutex, empty, full: semaphore :=1, n, 0;

生產(chǎn)者 :?

repeat … produce an item in nexp; …

buffer(in):=nexp; in:=(in+1) mod n;

until? false;

wait(mutex);

signal(mutex);

wait(empty);

signal(full);

消費(fèi)者 :

?repeat

nextc:=buffer(out); out:=(out+1) mod n;

consume the item in nexc;? ? ? ? ? ? ? ??

wait(mutex);

signal(mutex);

wait(full);

signal(empty);

?until? false;?

1. 每個程序中用于實(shí)現(xiàn)互斥的wait(mutex)和 signal(mutex)必須成對地出現(xiàn)。

?2. 控制順序的信號量empty和full的wait和 signal操作,成對地出現(xiàn)在不同的進(jìn)程中。

?3. 在每個程序中的多個wait操作順序不能顛倒。 且應(yīng)先執(zhí)行對資源信號量的wait操作,再執(zhí)行 對互斥信號量的wait操作,否則可能引起進(jìn)程 死鎖。

?4. 模擬交替執(zhí)行過程,檢查控制是否正確。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容