第二講(二)詳細介紹進程的狀態、控制、通信、同步與互斥

進程的狀態

在這裏插入圖片描述
在這裏插入圖片描述

狀態的切換(五狀態模型)

在這裏插入圖片描述

狀態的切換(七狀態模型)

在這裏插入圖片描述
如果處於就緒態的進程,內存不夠用,就把他暫時調到外存中,便有了就緒掛起狀態,激活後又能重新調用內存。處於阻塞態的進程也能被掛起。
在這裏插入圖片描述

進程控制

概念

進程控制就是要實現進程狀態的切換
在這裏插入圖片描述
在這裏插入圖片描述
如果進程狀態的切換並沒有修改PCB的狀態標誌,會導致系統錯誤,因爲PCB所處的隊列與狀態標誌要一樣。

原語操作

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

進程通信

概念

在這裏插入圖片描述

共享存儲

在這裏插入圖片描述

管道通信

在這裏插入圖片描述

消息傳遞

在這裏插入圖片描述

進程同步和互斥

同步的概念

進程的異步性是指各併發執行的進程以各自獨立的、不可預知的速度向前推進。
在這裏插入圖片描述

互斥的概念

程序的併發需要共享。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

進程互斥的實現方法

軟件實現方法

單標誌法

在這裏插入圖片描述
如果turn的值一直保持爲0,卻不進入臨界區呢?p1永遠不能進入臨界區
在這裏插入圖片描述

雙標誌先檢查法

在這裏插入圖片描述
在這裏插入圖片描述

雙標誌後檢查法

在這裏插入圖片描述

peterson算法

在這裏插入圖片描述

123678……執行。
執行123.假設p0想進入臨界區,但是turn=1,p0謙讓給p1,下一步while循環(如果對方想進入臨界區並且你已經謙讓了),就一直循環下去,直到時間片用完,切換到p1進程。
執行678。p1想進入臨界區,turn=0謙讓給p0,p1進入循環直到時間片用完切換到p0,這時p0循環的條件變了while(flag[1]&&turn==0),p0終於跳出循環,進入了臨界區。
在這裏插入圖片描述

總結

在這裏插入圖片描述

硬件實現方法

中斷屏蔽方法

在這裏插入圖片描述

TS指令

在這裏插入圖片描述

Swap指令

在這裏插入圖片描述

小結

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章