国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

這篇具有很好參考價值的文章主要介紹了操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、同步互斥

?二、互斥的實現(xiàn)方法

2.1軟件實現(xiàn)

2.1.1單標(biāo)志法

2.1.2雙標(biāo)志先檢查

2.1.3雙標(biāo)志后檢查

2.1.4Petersons算法

2.2硬件實現(xiàn)

2.2.1 TestAndSet指令

2.2.2 Swap指令?

?三、信號量機制

3.1整形變量

?3.2 記錄型變量

?3.3用信號量實現(xiàn)進(jìn)程互斥、同步、前驅(qū)關(guān)系

3.3.1互斥

?3.3.2同步

3.3.3前驅(qū)關(guān)系

四、同步和互斥經(jīng)典問題

4.1 生產(chǎn)者-消費者問題

?4.2多生產(chǎn)多消費問題

?4.3 吸煙者問題

?4.4 讀寫者問題

?4.5 哲學(xué)家進(jìn)餐問題

?五、管程

?六、死鎖

6.1死鎖產(chǎn)生得必要條件

6.2發(fā)生死鎖的時候

七、死鎖的處理策略

?7.1預(yù)防死鎖 靜態(tài)策略

7.2 避免死鎖(銀行家算法)動態(tài)策略

7.3 死鎖得檢測和解除

死鎖得檢測

死鎖得解除


一、同步互斥

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?二、互斥的實現(xiàn)方法

2.1軟件實現(xiàn)

2.1.1單標(biāo)志法

兩個進(jìn)程在訪問完臨界區(qū)后會使用臨界區(qū)的權(quán)限轉(zhuǎn)交給另一個進(jìn)程,也就是說每個進(jìn)程進(jìn)入臨界區(qū)的權(quán)限只能被另一個進(jìn)程賦予

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

只能輪流使用?

2.1.2雙標(biāo)志先檢查

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

2.1.3雙標(biāo)志后檢查

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

2.1.4Petersons算法

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

2.2硬件實現(xiàn)

中斷屏蔽方法:利用“開/關(guān)中斷指令”實現(xiàn)

關(guān)中斷-》臨界區(qū)-》開中斷

2.2.1 TestAndSet指令

簡稱TS或TSL

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

2.2.2 Swap指令?

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?三、信號量機制

信號量其實就是一個變量(可以是一個整數(shù),也可以是復(fù)制的記錄型變量),可以用一個信號量表示系統(tǒng)中某種資源數(shù)量

一對原語:wait(s)和signal(s),簡稱P(s),V(s)

3.1整形變量

表示系統(tǒng)中某種資源的數(shù)量

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?3.2 記錄型變量

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?3.3用信號量實現(xiàn)進(jìn)程互斥、同步、前驅(qū)關(guān)系

3.3.1互斥

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?3.3.2同步

?并發(fā)進(jìn)程要求有序的推進(jìn)

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

3.3.3前驅(qū)關(guān)系

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

四、同步和互斥經(jīng)典問題

實現(xiàn)互斥P操作一定要早實現(xiàn)同步P操作后

4.1 生產(chǎn)者-消費者問題

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?4.2多生產(chǎn)多消費問題

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?4.3 吸煙者問題

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?4.4 讀寫者問題

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?4.5 哲學(xué)家進(jìn)餐問題

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?五、管程

管程是一種特殊的軟件模塊,有這些部分組成:

1.局部于管程的共享數(shù)據(jù)結(jié)構(gòu)說明

2.對該數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的一組過程

3.對局部于管程的共享數(shù)據(jù)結(jié)構(gòu)設(shè)置初始值語句

4.管程有一個名字

基本特征:
1.局部于管程的數(shù)據(jù)只能被局部于管程的過程訪問

2.一個進(jìn)程只有通過調(diào)用管程內(nèi)的過程才能進(jìn)入管程訪問共享數(shù)據(jù)

3.每次僅允許一個進(jìn)程在管程內(nèi)執(zhí)行某個內(nèi)部過程

?用管程解決生產(chǎn)者消費者問題操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?六、死鎖

死鎖:多個進(jìn)程競爭資源造成的一種僵局(相互等待),若無外力作用,這些進(jìn)程是無法向前推進(jìn)的

饑餓:由于長期得不到想要資源,某進(jìn)程無法向前推進(jìn)現(xiàn)象。

死循環(huán):某進(jìn)程執(zhí)行過程中一直跳不出某個循環(huán)得現(xiàn)象。

6.1死鎖產(chǎn)生得必要條件

1.互斥條件:只有對必須互斥使用得資源的爭搶才會導(dǎo)致死鎖

2.不剝奪條件:進(jìn)程所獲得的資源在未完成之前,不能由其他進(jìn)程強行奪走,只能主動釋放

3.請求和保存條件:進(jìn)程已經(jīng)保持了至少一個資源,但又提出新資源請求,而該資源又被其他進(jìn)程占有,此時進(jìn)程阻塞又對已有資源保持不放

4.循環(huán)等待條件:存在一種進(jìn)程資源的循環(huán)等待鏈,鏈中的每一個進(jìn)程已獲得的資源同時被下一個資源請求

6.2發(fā)生死鎖的時候

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

七、死鎖的處理策略

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

?7.1預(yù)防死鎖 靜態(tài)策略

破壞互斥條件:SPOOLing技術(shù)、

破壞不剝奪條件:1.得不到資源,就釋放全部資源,以后要就重新請求? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.系統(tǒng)協(xié)助,直接剝奪其他資源自己使用

破壞請求和保持條件:靜態(tài)分配法:進(jìn)程運行前一次申請完所需得全部資源,資源未滿足前不讓它投入使用,一旦投入使用就一直歸它所有? ? ?資源利用率低,可能饑餓

破壞循環(huán)等待條件:順序資源分配法:操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

7.2 避免死鎖(銀行家算法)動態(tài)策略

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

7.3 死鎖得檢測和解除

死鎖得檢測

操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖

死鎖得解除

1.資源剝奪法:掛起某些死鎖進(jìn)程,并搶占它得資源,將這些資源分配給其他死鎖進(jìn)程,但防止給i去得長期得不到資源而饑餓

2.撤銷進(jìn)程法:強制撤銷部分、甚至全部死鎖進(jìn)程,并剝奪這些進(jìn)程得資源,簡單但代價大,有些進(jìn)程運行很長時間接近結(jié)束,被終止就功虧一簣,還得從頭再來

3.進(jìn)程回退法:讓一個或多個死鎖進(jìn)程回退到足以避免死鎖的地步,操作系統(tǒng)就要記錄信息設(shè)置還原點?文章來源地址http://www.zghlxwxcb.cn/news/detail-473830.html

到了這里,關(guān)于操作系統(tǒng)-進(jìn)程和線程-同步、互斥、死鎖的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【操作系統(tǒng)】同步和互斥詳細(xì)講解(算法+源碼)

    【操作系統(tǒng)】同步和互斥詳細(xì)講解(算法+源碼)

    博主介紹:?全網(wǎng)粉絲喜愛+、前后端領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、本質(zhì)互聯(lián)網(wǎng)精神、堅持優(yōu)質(zhì)作品共享、掘金/騰訊云/阿里云等平臺優(yōu)質(zhì)作者、擅長前后端項目開發(fā)和畢業(yè)項目實戰(zhàn)?有需要可以聯(lián)系作者我哦! ??附上相關(guān)C語言版源碼講解?? ???? 精彩專欄推薦訂閱???? 不然下次找

    2024年01月23日
    瀏覽(19)
  • 操作系統(tǒng)——進(jìn)程互斥的軟件實現(xiàn)算法(王道視頻p27、課本ch6)

    操作系統(tǒng)——進(jìn)程互斥的軟件實現(xiàn)算法(王道視頻p27、課本ch6)

    1.總結(jié)概覽: 2.單標(biāo)志[turn]法——算法代碼: 可能違反“空閑讓進(jìn)” 3.雙標(biāo)志[flag[2]]先檢查法——算法代碼: 如果不能利用硬件的原語的話,就可能出現(xiàn)違反“忙則等待”的問題: 4.雙標(biāo)志[flag[2]]后檢查法——算法代碼: 可能會出現(xiàn) 資源死鎖(違反“空閑讓進(jìn)”) 5.PeterSon算

    2024年02月07日
    瀏覽(22)
  • 【Linux操作系統(tǒng)】多線程搶票邏輯——學(xué)習(xí)互斥量(鎖)函數(shù)接口

    【Linux操作系統(tǒng)】多線程搶票邏輯——學(xué)習(xí)互斥量(鎖)函數(shù)接口

    臨界資源 : 多線程執(zhí)行流共享的資源就叫做臨界資源 。 臨界區(qū) :每個線程內(nèi)部, 訪問臨界資源的代碼,就叫做臨界區(qū) 。 互斥 :任何時刻, 互斥保證有且只有一個執(zhí)行流進(jìn)入臨界區(qū),訪問臨界資源,通常對臨界資源起保護作用 。 原子性 :不會被任何調(diào)度機制打斷的操作

    2024年02月16日
    瀏覽(28)
  • 第三章 Linux多線程開發(fā) 線程取消 屬性 同步 互斥鎖 死鎖 讀寫鎖 生產(chǎn)者消費者 信號量
  • 操作系統(tǒng):4、進(jìn)程管理之進(jìn)程同步

    操作系統(tǒng):4、進(jìn)程管理之進(jìn)程同步

    上述過程,若并發(fā)執(zhí)行就會出現(xiàn)緩沖區(qū)數(shù)據(jù)出錯 “哲學(xué)家進(jìn)餐問題中會發(fā)生極端情況,所有哲學(xué)家都餓死,也就是所有進(jìn)程都陷入等待狀態(tài)” “生產(chǎn)者消費者問題”以及“哲學(xué)家進(jìn)程問題”的根源問題是:彼此相互之間沒有通信。 若生產(chǎn)者通知消費者我已經(jīng)完成一件產(chǎn)品生

    2023年04月26日
    瀏覽(27)
  • 操作系統(tǒng)實驗:進(jìn)程同步控制

    操作系統(tǒng)實驗:進(jìn)程同步控制

    前言 一、開發(fā)語言及實驗平臺或?qū)嶒灜h(huán)境 二、實驗?zāi)康?三、實驗要求 四、實驗原理 五、實驗過程 六、代碼詳解 七、diy一下 總結(jié) 計算機操作系統(tǒng)是一門研究計算機系統(tǒng)的基本原理和設(shè)計方法的課程,它涉及到計算機系統(tǒng)的結(jié)構(gòu)、功能、性能和管理等方面。操作系統(tǒng)實驗是

    2024年02月05日
    瀏覽(23)
  • 操作系統(tǒng)進(jìn)程線程(一)—進(jìn)程線程協(xié)程區(qū)別、多進(jìn)程多線程、進(jìn)程調(diào)度算法、進(jìn)程線程通信

    操作系統(tǒng)進(jìn)程線程(一)—進(jìn)程線程協(xié)程區(qū)別、多進(jìn)程多線程、進(jìn)程調(diào)度算法、進(jìn)程線程通信

    定義上 進(jìn)程: 資源分配和擁有 的基本單位,是調(diào)度的基本單位。 運行一個可執(zhí)行程序會創(chuàng)建一個或者多個進(jìn)程;進(jìn)程就是運行起來的程序 線程:程序 執(zhí)行 基本單位,輕量級進(jìn)程。 每個進(jìn)程中都有唯一的主線程 ,主線程和進(jìn)程是相互依賴的關(guān)系。 協(xié)程: 用戶態(tài) 的輕量級

    2024年02月01日
    瀏覽(96)
  • 【操作系統(tǒng)——進(jìn)程與線程(一)】

    2.1.1 進(jìn)程的概念和特征 進(jìn)程是指正在執(zhí)行中的程序的實例。它是計算機系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。每個進(jìn)程都有自己的地址空間、堆棧和數(shù)據(jù)區(qū)域,以及與其他進(jìn)程通信和同步所需要的操作系統(tǒng)資源。 進(jìn)程具有以下特點: 獨立性:進(jìn)程是獨立的執(zhí)行實體,擁有自

    2024年02月11日
    瀏覽(89)
  • 操作系統(tǒng)-進(jìn)程同步:生產(chǎn)者-消費者問題

    操作系統(tǒng)-進(jìn)程同步:生產(chǎn)者-消費者問題

    ? 以生產(chǎn)者-消費者模型為基礎(chǔ),在Windows環(huán)境下創(chuàng)建一個控制臺進(jìn)程(或者界面進(jìn)程),在該進(jìn)程中創(chuàng)建讀者寫者線程模擬生產(chǎn)者和消費者。寫者線程寫入數(shù)據(jù),然后將數(shù)據(jù)放置在一個空緩沖區(qū)中供讀者線程讀取。讀者線程從緩沖區(qū)中獲得數(shù)據(jù),然后釋放緩沖區(qū)。當(dāng)寫者線程

    2023年04月20日
    瀏覽(46)
  • Linux pthread線程操作 和 線程同步與互斥操作

    Linux pthread線程操作 和 線程同步與互斥操作

    在Linux系統(tǒng)中玩線程,使用pthread,這篇博客記錄如何 創(chuàng)建線程 和 使用線程 和線程的 同步 與 互斥 。 還有一份nginx線程池的代碼供大家閱讀學(xué)習(xí)! 目錄 一、簡介 什么是線程 線程的優(yōu)點、缺點 線程的應(yīng)用場合 二、線程的使用 1.? 創(chuàng)建線程 - pthread_create 2.? 線程的終止 - pt

    2024年02月02日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包