臨界資料 臨界區和原子操作

2022-09-17 16:27:23 字數 463 閱讀 4493

1、首先給出這三個名詞的定義。

臨界資料指多個程序(或執行緒)會競爭修改的資料。

臨界區指修改臨界資料的**區域。

原子操作指臨界區的**不會被這個臨界資料的其他臨界區的**打斷。

2、通過乙個例項來理解這些概念。

在這個例項中臨界資料是標準輸出,臨界資料對應的其中乙個臨界區就是圖中紅框部分,紅框中的臨界區**不應該被其他臨界區打斷,否則就有可能出現標準輸出被打亂。通過訊號量使得臨界資料同一時間只能被乙個臨界區訪問。

也就是說如果現在乙個臨界區在訪問這個臨界資料,那麼當程序進行排程時,絕對不會切換到另乙個臨界區,只可能切換到其他**。這也就是上面「同一時間」的含義。

修改stdout的這一系列操作因為不會被其他臨界區打亂,所以變成了原子操作。

參考:

臨界資源和臨界區

臨界資源 臨界資源是一次僅允許乙個程序使用的共享資源,各程序採取互斥的方式實現共享的資源。屬於臨界資源的硬體有,印表機,磁帶機等 軟體有訊息佇列,變數,陣列,緩衝區等。諸程序間採取互斥方式,實現對這種資源的共享。臨界區 每個程序中訪問臨界資源的那段 稱為臨界區 criticalsection 每次只...

臨界資源和臨界區

個人部落格 the blog of waiterxiaoyy 歡迎來互相交流學習。屬於臨界資源的 硬體 印表機 磁帶機 軟體 訊息佇列 變數 陣列 緩衝區。每個程序訪問臨界資源的那段 稱為臨界區。不論是硬體臨界資源還是軟體臨界資源,多個程序必須互斥地對它進行訪問。保證諸程序互斥地進入臨界區,便可實現...

臨界區,臨界資源

什麼是臨界區?答 每個程序中訪問臨界資源 比如全域性變數等公用資源 的那段程式 稱為臨界區 臨界資源是一次僅允許乙個程序使用的共享資源,如全域性變數等 也稱為臨界段。也就說是每個程序 ucos中是任務 都可以有訪問這個全域性變數的 比如某個程序想用該變數做加法,另外乙個程序想用這個變數做其它用途等,...