學習記錄2

2021-08-11 18:13:03 字數 689 閱讀 8995

pv操作同步過程

對訊號燈狀態進行改變,p呼叫一次-1,v呼叫一次+1。

p操作: 

p(s)是乙個原語操作,p操作執行 s– ,若s為負數,呼叫p(s)的程序被阻塞,放到等待佇列q中。

p(s)

}v操作 

v(s)剛好與p(s)操作相反,v操作執行 s++ ,若s為大於0,繼續執行;s <=0,從訊號燈等待佇列移出乙個程序,解除等待狀態,返回本程式繼續執行。

v(s)

程序互斥的實現

上鎖原語順利通過可進入臨界區csa或者csb。

1、使用上鎖原語與開鎖原語解決併發程序互斥問題:

main()

使用訊號燈實現程序互斥:

用與互斥訊號燈初值mutex = 1 ;表示該資源未被占用。任何想要進入臨界區的程序,必須先進行p操作(mutex為1時才能通過),訪問臨界資源完成後再v操作。。。

mutex =1 : 表示沒有程序進入臨界區

mutex =0 : 表示有乙個程序進入臨界區,前方沒有其他程序。

mutex =-1 :表示乙個程序已經進入,另乙個程序的等待進入。

main()

producer()                          consumer()         

}                               }

}     

學習記錄2

1 如果電腦螢幕顯示異常 安裝360顯示卡驅動 3 win10虛擬機器未聯網,橋接模式沒有作用,勾選nta模式,用於共享主機的ip位址並重新啟動電腦 4 安裝cad如果安裝不成功,安裝路徑資料夾名稱可以修改為英文 5 虛擬機器安裝win10非常卡,將虛擬機器執行記憶體調大,由1gb調整為4gb 6 ...

學習記錄2

建立 django 子應用 新生成的檔案有 migrations 目錄用於存放資料庫遷移歷史檔案 models.py 使用者儲存資料庫模型類 tests.py 用於開發測試用例,編寫單元測試 views.py 用於編寫web應用檢視 1 直接新增 book 分界線 什麼是 orm 有點像 json ...

mysql學習記錄 MySQL學習記錄 2

in 子查詢 select from student where id in 1,2 not in 不在其中 select from student where id not in 1,2 is null 是空 select from student where age is null is not...