1. 程式人生 > >臨界區、相關臨界區

臨界區、相關臨界區

1.概念

臨界區:每個程序中訪問臨界資源的那段程式碼稱為臨界區(Critical Section)

臨界資源:臨界資源是一次僅允許一個程序使用的共享資源

每次只准許一個程序進入臨界區,進入後不允許其他程序進入。不論是硬體臨界資源,還是軟體臨界資源,多個進

程必須互斥地對它進行訪問。

相關臨界區多個程序中涉及到同一個臨界資源的臨界區稱為相關臨界區

百度百科上對臨界區的定義是:

臨界區指的是一個訪問共用資源(例如:共用裝置或是共用儲存器)的程式片段,而這些共用資源又無法同時被

執行緒訪問的特性。當有執行緒進入臨界區段時,其他線程或是程序必須等待(例如:bounded waiting 等待法),

有一些同步的機制必須在臨界區段的進入點與離開點實現,以確保這些共用資源是被互斥獲得使用,例如:

能被單一執行緒訪問的裝置,例如:印表機

2.程式排程法則

程序進入臨界區的排程原則是: 1、如果有若干程序要求進入空閒的臨界區,一次僅允許一個程序進入。 2、任何時候,處於臨界區內的程序不可多於一個。如已有程序進入自己的臨界區,則其它所有試圖進入臨界區的 程序必須等待。 3、進入臨界區的程序要在有限時間內退出,以便其它程序能及時進入自己的臨界區。 4、如果程序不能進入自己的臨界區,則應讓出CPU,避免程序出現“忙等”現象。 3.執行緒同步問題

有多個執行緒試圖同時訪問臨界區,那麼在有一個執行緒進入後其他所有試圖訪問此臨界區的執行緒將被掛起,並一直

持續到進入臨界區的執行緒離開。臨界區在被釋放後,其他執行緒可以繼續搶佔,並以此達到用原子方式操作共享資源的

目的。

例題:

若系統中有五個併發程序涉及某個相同的變數A,則變數A的相關臨界區是由(   )臨界區構成。

   2個
   3個
   4個
   5個
解答:D

這裡的變數A就是上面說的臨界資源(共享資源),而臨界資源一次只允許一個程序使用。相關臨界區的定義是:

相關臨界區多個程序中涉及到同一個臨界資源的臨界區稱為相關臨界區。這裡一共有5個程序涉及到同一個臨

界資源,所以相關臨界區一共包括5個臨界區。

相關推薦

臨界相關臨界

1.概念 臨界區:每個程序中訪問臨界資源的那段程式碼稱為臨界區(Critical Section) 臨界資源:臨界資源是一次僅允許一個程序使用的共享資源 每次只准許一個程序進入臨界區,進入後不允許其

Linux下進行硬盤掛載刪除分,格式化,掛載,卸載方法

硬盤 訪問 9.png dir 輸入 str 創建 指定 命令 本文簡單介紹了下文件系統及其操作(df命令),磁盤分區、格式化,還有最主要是掛載操作。 在這裏對“掛載”做個說明,我們都知道文件系統是創建在磁盤上面的,每個文件系統都有獨立的inode、block等信息,而這

磁盤設備的發現原理普通分swap分設備加密及加密的刪除

分區 磁盤設備 加密 1.設備的發現1.設備的發現fdisk -l ##掃瞄磁盤上的分區信息cat /proc/partitions ##系

Linux 硬盤分刪除分格式化掛載卸載

還需要 硬盤分區 當前 類型 選項 用戶 同時 image ble 1.創建分區 先查看下是否有磁盤沒有分區 fdisk -l 其中第一個框和第二個框,是已經分好區的不同磁盤。 開始分區 #輸入要進行分區的磁盤名稱fdisk /dev/

磁盤分——主分擴展分邏輯分

本地 分區類型 windows ini 軟件 激活 都是 數據 .com 一個硬盤的主分區也就是包含操作系統啟動所必需的文件和數據的硬盤分區,要在硬盤上安裝操作系統,則該硬盤必須得有一個主分區。主分區,也稱為主磁盤分區,和擴展分區、邏輯分區一樣,是一種分區類型。主分區中不能

Git 工作暫存和版本庫

git基本概念我們先來理解下Git 工作區、暫存區和版本庫概念工作區:就是你在電腦裏能看到的目錄。暫存區:英文叫stage, 或index。一般存放在 ".git目錄下" 下的index文件(.git/index)中,所以我們把暫存區有時也叫作索引(index)。版本庫:工作區有一個隱藏目

【Git】(1)---工作暫存版本庫遠程倉庫

size 一個 工作區 本地 -s 新建 這樣的 cache 通過 工作區、暫存區、版本庫、遠程倉庫 一、概念 1、四個工作區域 Git本地有四個工作區域:工作目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repos

對堆全域性靜態的理解

1、棧區: #include<stdio.h> int main(void) { int x = 2;    //在棧上面申請一個int型別長度的空間 int y[] = {1,2,3};    //在棧上面申請一個int型別

Git的學習與使用(四)——Git 工作暫存和版本庫

基本概念 我們先來理解下Git 工作區、暫存區和版本庫概念 工作區:就是你在電腦裡能看到的目錄。 暫存區:英文叫stage, 或index。一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。 版本庫:工作區有一個隱

Git 的工作暫存版本庫—— Git 學習筆記 15

Git 的工作區、暫存區、版本庫 大家都知道,在 Git 系統中有 “三棵樹” 的概念。 注意:“樹” 在這裡的意思是 “檔案集合”,而不是指特定的資料結構。 基本概念 樹 用途 HEAD(版本庫) 上一次提交的快照,下一次提交的父結點

【Git】工作暫存與版本庫

本篇博文旨在介紹git的工作區,暫存區和版本庫的概念;並說明使用git add、git commit 等指令時,對工作區,暫存區以及版本庫分別造成的結果; 對於會使用git的人,git add,gi

2.Git的工作暫存和版本庫(慕課網)

先來理解下Git工作區、暫存區和版本庫概念 工作區:就是你在電腦裡能看到的目錄。 暫存區:英文叫stage, 或index。一般存放在".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引index。 版本庫:工作區

Git使用手冊/Git教程:Git的使用:工作暫存本地倉庫遠端倉庫

相關文章:工作區、暫存區、本地倉庫、遠端倉庫1.   概念工作區:工作區就是你克隆專案到本地後,專案所在的資料夾目錄。暫存區:用於儲存工作區中新增上來的變更(新增、修改、刪除)的檔案的地方。操作時,使用

全域性靜態文字常量程式程式碼

一、記憶體結構圖: 二、程式碼示範區: 三:案例分析: char* 和 char[] 有什麼區別? char ch[]="abc"; 表示ch 是一個足以存放字串初值和空字元'/

關於JVM中EdenSurvivor from和Survivor to的理解

本文主要根據《深入理解JVM》中記憶體回收策略,主要關注如下五個方面: 1:Eden區分配 2:大物件直接進入老年代 3:長期存活的物件直接進入老年代 4:動態物件年齡判定 5:空間分配擔保 首先明確新生代都是分配於Eden區的,所以Eden區是最重要也是記憶

程式靜態資料字元常量的介紹與區別

自己總結一下關於記憶體分割槽的基礎知識:         先上圖:     在VS測試中發現,字元常量區(只讀資料區)在編譯時候與靜態資料區放在了一起。因此在靜態資料區的幾種型別沒有獨立的地址區域,都是按照定義的時間順序進行分配。而動態記憶體區不同,堆和棧有獨立的地址區域

git -- 工作暫存版本庫

工作區、暫存區 工作區:就是你在電腦裡能看到的目錄。 暫存區:英文叫stage, 或index。一般存放在 “.git目錄下” 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。 版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

Git工作流程 工作暫存和版本庫

Git 工作流程 本章節我們將為大家介紹 Git 的工作流程。 一般工作流程如下: 克隆 Git 資源作為工作目錄。 在克隆的資源上新增或修改檔案。 如果其他人修改了,你可以更新資源。 在提交前檢視修改。 提交修改。 在修改完成後,如果發現錯誤,可以撤回提交併

git圖形化工具GitKraken的使用——工作暫存本地倉庫

工作區、暫存區、本地倉庫 先來看下面這張圖: Workspace:工作區 Index / Stage:暫存區 Repository:倉庫區(或本地倉庫) Remote:遠端倉庫 從工作區到暫存區再到提交本地倉

工作暫存倉庫三者關係

區分三者關係       Git最讓你迷惑的無非是它裡面的各種概念了,如果是剛開始接觸Git希望看完本篇介紹之後有一個清晰的認識,筆者認識也有限這裡只說說個人對使用Git的感受,說一下它裡面的幾個最常用