<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                在多道程序環境下,進程是并發執行的,不同進程之間存在著不同的相互制約關系。為了協調進程之間的相互制約關系,引入了進程同步的概念。 ### 臨界資源 雖然多個進程可以共享系統中的各種資源,但其中許多資源一次只能為一個進程所使用,我們把一次僅允許一個進程使用的資源稱為臨界資源。許多物理設備都屬于臨界資源,如打印機等。此外,還有許多變量、數據等都可以被若干進程共享,也屬于臨界資源。 對臨界資源的訪問,必須互斥地進行,在每個進程中,訪問臨界資源的那段代碼稱為臨界區。為了保證臨界資源的正確使用,可以把臨界資源的訪問過程分成四個部分: * 進入區。為了進入臨界區使用臨界資源,在進入區要檢查可否進入臨界區,如果可以進入臨界區,則應設置正在訪問臨界區的標志,以阻止其他進程同時進入臨界區。 * 臨界區。進程中訪問臨界資源的那段代碼,又稱臨界段。 * 退出區。將正在訪問臨界區的標志清除。 * 剩余區。代碼中的其余部分。 ~~~ do { entry section; //進入區 critical section; //臨界區 exit section; //退出區 remainder section; //剩余區 } while (true) ~~~ ### 同步 同步亦稱直接制約關系,它是指為完成某種任務而建立的兩個或多個進程,這些進程因為需要在某些位置上協調它們的工作次序而等待、傳遞信息所產生的制約關系。進程間的直接制約關系就是源于它們之間的相互合作。 例如,輸入進程A通過單緩沖向進程B提供數據。當該緩沖區空時,進程B不能獲得所需數據而阻塞,一旦進程A將數據送入緩沖區,進程B被喚醒。反之,當緩沖區滿時,進程A被阻塞,僅當進程B取走緩沖數據時,才喚醒進程A。 ### 互斥 互斥亦稱間接制約關系。當一個進程進入臨界區使用臨界資源時,另一個進程必須等待, 當占用臨界資源的進程退出臨界區后,另一進程才允許去訪問此臨界資源。 例如,在僅有一臺打印機的系統中,有兩個進程A和進程B,如果進程A需要打印時, 系統已將打印機分配給進程B,則進程A必須阻塞。一旦進程B將打印機釋放,系統便將進程A喚醒,并將其由阻塞狀態變為就緒狀態。 為禁止兩個進程同時進入臨界區,同步機制應遵循以下準則: * 空閑讓進。臨界區空閑時,可以允許一個請求進入臨界區的進程立即進入臨界區。 * 忙則等待。當已有進程進入臨界區時,其他試圖進入臨界區的進程必須等待。 * 有限等待。對請求訪問的進程,應保證能在有限時間內進入臨界區。 * 讓權等待。當進程不能進入臨界區時,應立即釋放處理器,防止進程忙等待。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看