進程同步機制
1:進程的創建:在OS中,允許一個進程創建另一個進程(父,子,孫進程 而且子進程會繼續父進程中的所有資源),類似一個二叉樹
2,進程的創建:申請空白的PCB,申請分配資源,初始化PCB(標誌符,處理機,控制機制),插入就緒隊列(如果就緒隊列接收)
3:進程的終止:正常終止 異常終止(越界,保護機制,非法指令,特權指令,等待超時) 外界的干預(系統死鎖,強行結束進程)
4:進程同步機制:硬件同步機制,信號量機制,管程機制。
(1)進程同步機制的主要任務:使併發執行的進程能夠按照一定的規則來共享資源
(2)進程同步機制的制約關係:間接制約關係(臨界資源),直接制約關係(爲完成同一個任務)
(3)臨界資源(打印機)
生產者和消費者的問題(生產者和消費者可以同步執行,一邊生產在消費,但是他們運行也是異步的(我們無法預知生產和消費的速度),但是同時他們也要保持同步,商品飽和,和市場沒有貨物)
Void Producer ()
{
While(1) // 商品一直在生產
{
While (counter==n)
;表示當商品大於上限,等待消費
Buffer[in]=nextp;
In=(in+1)%n;循環數組
Counter++;//表示當前商品數量
}
}
(1) 臨界區(必須互斥訪問)
while(ture)
{
進入區(檢查)
臨界區
退出區
剩餘區
}
(6)同步機制的規則:空閒讓進,忙則等待,有限等待,讓權等待