<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>學習電腦>操作系統>操作系統基礎知識>

        操作系統臨界資源

        時間: 佳洲1085 分享

          操作系統臨界資源是指一次只能被一個進程所占用的資源,下面由學習啦小編為大家整理了操作系統臨界資源的相關知識,希望對大家有幫助。

          1.操作系統臨界資源

          簡介

          在操作系統中,進程是占有資源的最小單位(線程可以訪問其所在進程內的所有資源,但線程本身并不占有資源或僅僅占有一點必須資源)。但對于某些資源來說,其在同一時間只能被一個進程所占用。這些一次只能被一個進程所占用的資源就是所謂的臨界資源。典型的臨界資源比如物理上的打印機,或是存在硬盤或內存中被多個進程所共享的一些變量和數據等(如果這類資源不被看成臨界資源加以保護,那么很有可能造成丟數據的問題)。

          對于臨界資源的訪問,必須是互訴進行。也就是當臨界資源被占用時,另一個申請臨界資源的進程會被阻塞,直到其所申請的臨界資源被釋放。而進程內訪問臨界資源的代碼被成為臨界區。

          對于臨界區的訪問過程分為四個部分:

          1.進入區:查看臨界區是否可訪問,如果可以訪問,則轉到步驟二,否則進程會被阻塞

          2.臨界區:在臨界區做操作

          3.退出區:清除臨界區被占用的標志

          4.剩余區:進程與臨界區不相關部分的代碼

          互斥的要求:

          必須強制實施互斥,即一次只允許一個進程進入臨界區。一個在非臨界區停止的程序不能干涉其他程序。有限等待,即決不允許需要訪問臨界區的進程被無限延遲的情況,即死鎖或餓死,有空讓進,臨界區空閑時,請求程序可進,對相關進程的執行速度和處理器的速度沒有任何要求和限制。一個進程駐留在臨界區的時間必須是有限的。

          互斥的實現:

          軟件的方法:由并發執行進程擔任這個責任

          機器指令:減少開銷,但不能通用

          2.補充資料:操作系統實現臨界區互斥的基本方法

          硬件實現方法

          中斷禁用

          單處理器中并發進程不能重疊只能交替,一個進程一直運行到調用系統服務或被中斷。保證互斥只需保證一個進程不被中斷

          缺點:一長時間中斷禁止,中斷效率會降低。二不能用于多處理結構中

          專用機器指令

          用于保證訪問的原子性。1、比較和交換指令(compare and swap)、2、Exchange指令

          機器指令方法的特點:

          1、適合在單處理器或共享內存的多處理器上的任何數目的進程

          2、非常簡單且易于證明

          3、可用于支持多個臨界區,可用自己的變量定義

          缺點

          1、忙等待,進程等待進入臨界區,仍然會繼續消耗CPU的時間

          2、可能饑餓,當需要等待程序進入時,某些可能被無限拒絕

          3、可能死鎖,低優先級的進程占用高優先級的進程所需的資源

          信號量實現方法

          解決并發問題基本原理

          兩個或多個進程可以通過簡單的信號進行合作,一個進程可以被迫在某一個位置停止,直到它接到某一個特定的信號。復雜的合作需求都可以通過適當的信號結構完成。只需要一個特殊的變量(整數型):稱為信號量

          信號量的三個操作

          1、信號量s可以初始化成非負數

          用于互斥:s=1

          用于同步:s>=0

          2、semWait(s)進程請求分配一個資源,操作使信號量減1,若為負。進程阻塞。否則繼續執行

          3、semSignal(s)進程釋放一個資源,操作使信號量加1,若小于或等于0.則阻塞的進程被解除阻塞

          信號量的使用規則

          1、semWait和seSignal必須成對出現

          互斥時,位于同一進程,臨界區的前后

          同步時,交錯出現在兩個合作進程內

          2、多個seWait次序不能顛倒,否則可能導致死鎖

          3、用于同步的semWait應出現在用于互斥的semSignal之前

          4、多個semSigal次序可以任意

          5、在進程對信號量減1之前無法提前知道該信號量是否會被阻塞

          6、當進程對一個信號量加1后。另一個進程會被喚醒,兩個進程繼續并發運行

          7、在向信號量發出信號后,不需要知道是否有另一個進程在正在等待,被解除阻塞的進程數量或者沒有或者是1

          管程實現方法

          信號量為實施互斥和進程間合作提供了強大靈活的工具,但存在難點。即semWait和semSignal操作可能分布在整個程序中,很難看出整體效果,因此提出管程(Monitor),一個程序設計語言結構,可以鎖定任何對象,提供與信號量相同的功能,更易于控制

          使用信號的管程

          定義:管程由一個或多個進程、一個初始化序列和局部數據組成的軟件模塊

          特點:

          1、局部數據變量只能被管程的過程訪問,任何外部過程都不能訪問

          2、一個進程通過調用管程的一個過程進入管程

          3、在任何時候、只能有一個進程在管程中執行,調用管程的其他任何程序都被阻塞

          管程的幾個要素

          1、管程中的共享變量在外部不可見,只能通過管程內所說明的過程間接訪問

          2管程必須互斥進入:管程中的數據變量每次只能被一個進程訪問,保證數據完整性

          3、管程通常用來管理資源,應當沒有進程等待隊伍、相應的等待及喚醒

          4、Q進去管程等待時,釋放管程互斥權,P進入管程,喚醒Q

          P等待Q繼續,直到Q退出或等待

          P等待Q繼續,直到P退出或等待

          規定喚醒為進程中最后一個操作

          利

        3593033 主站蜘蛛池模板: 幻女free性俄罗斯毛片| 久草热大美女黄色片免费看| 亚洲日本va午夜中文字幕久久 | 在线观看潮喷失禁大喷水无码| 在线看国产精品自拍内射 | 久久av无码精品人妻出轨| 亚洲一区二区三区18禁| 国产一区二区一卡二卡| 亚洲高清日韩专区精品| 九色精品国产亚洲av麻豆一| 久久综合色一综合色88欧美| 无码人妻丰满熟妇啪啪| 欧美精品一产区二产区| 熟女熟妇乱女乱妇综合网| 久久久久香蕉国产线看观看伊 | 欧美日韩精品一区二区视频| 久久精品一区二区三区综合| 人妻熟女一区| 亚洲av永久中文在线| 精品一区二区三区女性色| 东京热人妻无码一区二区av| 亚洲乱熟女一区二区三区| 精选国产av精选一区二区三区| WWW夜插内射视频网站| 亚洲性日韩精品一区二区 | 国产精品不卡一区二区三区| 亚洲熟女少妇乱色一区二区| 国内少妇偷人精品免费| 国产在线精品第一区二区| 欧美大胆老熟妇乱子伦视频| 亚洲国产日韩a在线播放| 国产精品一区二区av交换| 午夜福利看片在线观看| 国产jizzjizz视频| 无码国内精品久久人妻蜜桃| 依依成人精品视频在线观看 | 99国产午夜福利在线观看| 开心五月婷婷综合网站| 中文字幕色av一区二区三区| 精品无人区卡一卡二卡三乱码| 制服丝袜国产精品|