日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

笑对 死锁

發布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 笑对 死锁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一次聽到這個詞是在今年九期師哥李社河講的,大概是關于我們學校的考試系統,因為死鎖引起了一些列的問題,最終被社河師哥解決,當時,聽到死鎖這個詞,可謂是一頭霧水,什么都不知道,什么都不明了,事后也查過死鎖這個詞,但是,還是不明所以

?

沒有想到,在我們學習自考的操作系統中,就有一小章節來專門講了這個死鎖,頓時,又懵了,看書,上網,總算是有了點體悟:(個人學習理解,不一定對,日后定有更新)

要說死鎖的形成,就要講一下什么是并發進程,因為,死鎖是當一組進程(至少有兩個),它們中的每一個進程都占用了某種資源,而又都在等待其他進程所占用的資源,造成組進程一直處于等待不能結束的狀態如圖:

?

下面給大家解釋一下,如圖所示,進程T1占用了資源R1,進程T2占用了資源R2,可是,大家知道,處理器一次只能執行一個進程,所以要想進程T1或者T2結束進程并釋放資源的話,就要等著對方先把資源釋放出來給自己,但是要命的是雙方都是這么想,所以就一直僵持,等著對方把資源釋放,可是由于進程進行所需要申請的資源被對方占用并且不能釋放,所以,造成一種死等待,就是死鎖。不知道這么說大家能理解不能

其實在我們的社會中,也有不少類似死鎖的問題,其中最形象的是交通:

?

就像這幅交通圖,四個方向的車就好比一組四個并發進程,他們只需要直行,中心路就就是他們所欲要的資源(共享),可是,這個資源被其他方向的車占用,導致自己的車想通過路口就要讓其他所有停在路口的車讓開,可每個司機都是這么想,所以就一直等待啊等待,等待啊等待,一直也沒有結果,為了解決這個問題(交通死鎖),我們裝上了交通紅綠燈(我們的PV操作)

?

同樣,針對我們電腦編程上的死鎖,我們也有解決辦法:

通過總結,我們得出,系統出現死鎖必須同時保持四個必要條件:

1、互斥的使用資源(一個資源每次只能給一個進程使用)

2、占有等待資源(當一個進程申請資源得不到滿足的時候,會處于等待狀態且由于沒 有之行結束,不會 釋放所占有的資源)

3、非搶奪是分配資源(不能搶奪對方已占用的資源)

4、循環等待資源

?

有了這四條,我們就可以見縫插針,對癥下藥了

一、死鎖的防治:

1、靜態分配資源(通俗點講,就是在進程開始執行之前,就將其所需要的資源全都備 齊,不需要再額外 申請資源,可是,這大大的降低了資源的利用率啊)

2、按序分配資源(給資源編上大小號,規定所有申請兩個以上資源的進程都要先申請 小號資源,逐漸加 大,這樣就避免了所有進程都處于等待別人的占用資源的現象)

3、剝奪式分配資源(這就不用多說了吧)(目前只適用于處理器和主存資源的分配)

舉個例子:

??????

就拿課本上的例子來說,五個哲學家,五根筷子,一盤面,每兩個人之間放一根筷子

如果這些哲學家懂得謙讓還好,一個人吃完另一個人在吃,就都能吃到,可是,誰又想餓著呢?如果每個人都拿起自己身邊的一根筷子,就沒個人就只有一根筷子,結果還得到別人給自己一根讓自己吃,怕就怕每個人都這么想

解決辦法:

1、P1分兩根筷子,P5分兩根筷子,等自己吃飽后,就把自己手中的兩個筷子一起傳給 下一個人(還沒吃 飯的)——靜態分配法

2、給筷子編上號,1,2,3,4,5,規定,每個人拿自己身邊筷子的時候必須從小號開始,有 ????了小號才能拿 大號,否則亂棍打死,這樣,不管怎么樣,肯定有至少一個人能吃到 面,當他吃飽后把筷子放回 去,別人也就能吃飯了——按序分配法

3、看誰壯誰就能吃飯,打架奪筷子——剝奪式分配資源



小結,吃個飯,真不容易


轉載于:https://www.cnblogs.com/DoubleEggs/p/5747202.html

總結

以上是生活随笔為你收集整理的笑对 死锁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。