作業系統之原子操作

2021-10-11 17:44:39 字數 885 閱讀 3966

原子操作是指不會被執行緒排程機制打斷的操作;原子操作(atomic operation)是不需要同步(synchronized)

這種操作一旦開始,就一直執行到結束,中間不會有任何執行緒切換。

如果這個操作所處的層(layer)的更高層不能發現其內部實現與結構,那麼這個操作是乙個原子(atomic)操作。

原子操作可以是乙個步驟,也可以是多個操作步驟,但是其順序不可以被打亂,也不可以被切割而只執行其中的一部分。將整個操作視作乙個整體是原子性的核心特徵。

在多程序(執行緒)訪問共享資源時,能夠確保所有其他的程序(執行緒)都不在同一時間內訪問相同的資源。

首先處理器會自動保證基本的記憶體操作的原子性。處理器保證從系統記憶體當中讀取或者寫入乙個位元組是原子的,意思是當乙個處理器讀取乙個位元組時,其他處理器不能訪問這個位元組的記憶體位址。

原子性不可能由軟體單獨保證--必須需要硬體的支援,因此是和架構相關的。

在x86 平台上,cpu提供了在指令執行期間對匯流排加鎖的手段。cpu晶元上有一條引線#hlock pin,如果組合語言的程式中在一條指令前面加上字首"lock",經過彙編以後的機器**就使cpu在執行這條指令的時候把#hlock pin的電位拉低,持續到這條指令結束時放開,從而把匯流排鎖住,這樣同一匯流排上別的cpu就暫時不能通過匯流排訪問記憶體了,保證了這條指令在多處理器環境中的原子性。

原子操作大部分使用組合語言實現,因為c語言並不能實現這樣的操作。

例題:

以下多執行緒對int型變數x的操作,哪幾個需要進行同步:(abc)

a. x=y; b. x++; c. ++x; d. x=1;

作業系統之作業系統引論

掌握作業系統的概念 特徵 功能和提供的服務,作業系統的發展與分類 作業系統是計算機硬體與使用者的橋梁,是計算機硬體上的的第一層軟體,是對硬體系統的首次擴充.作業系統是一組控制和管理計算機硬體和軟體資源.合理地對各類作業 job 進行排程,以及方便使用者的程式的集合.無作業系統 單批道作業系統 多批道...

作業系統之PV操作

在計算機作業系統中,pv操作是程序管理中的難點。首先應弄清pv操作的含義 pv操作由p操作原語和v操作原語組成 原語是不可中斷的過程 對訊號量進行操作,具體定義如下 p s 將訊號量s的值減1,即s s 1 如果s 0,則該程序繼續執行 否則該程序置為等待狀態,排入等待佇列。v s 將訊號量s的值加...

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...