程序之間涉及共享記憶體,共享檔案以及共享任何資源的情況都會引發競爭。
臨界區(critical region):對共享記憶體進行訪問的程式片段成為臨界區。
避免競爭:使兩個程序不可能同時處於臨界區中。
cpu只有在發生中斷時才會進行程序切換。
在每個程序剛剛進入臨界區後立即遮蔽所有中斷,在離開臨界區之前開啟中斷,這樣cpu就不會切換程序,因此可以修改共享記憶體,不必擔心其他程序進入。
將遮蔽中斷權力交給使用者程序可能會對整個系統造成意想不到的影響。
遮蔽中斷只會對當前占用的cpu有效,其他cpu會繼續執行,因此不適合多處理器系統。
程序間通訊(IPC)之軟中斷
緊張的考研生活隨著網路遊戲的gameover拉開了序幕,同時也進入了全面的複習階段。每天看了什麼,掌握了什麼必須有個小小的總結,或者說是讀書心得。所有的心得都分門別類,今天就談談作業系統中的程序間通訊。細想下,程序間通訊的方式還真有點多有點雜,還是一點點的來吧,畢竟我是在給自己理思路哈。第一種就是利...
程序間通訊(一)
為什麼程序間要通訊?1 資料傳輸 2 資源共享 3 通知事件 4 程序控制 程序間通訊方式 管道通訊 共享記憶體 訊息佇列 訊號通訊 一 管道通訊 管道是單向的 先進先出的,它把乙個程序的輸出和另乙個程序的輸入連線在一起。乙個程序 寫程序 在管道尾部寫入資料,另乙個程序 讀程序 從管道的頭部讀出資料...
程序間通訊(一)
半雙工管道 fifo 全雙工管道 命名全雙工管道 訊息佇列 訊號量 共享記憶體 套接字 多機其它為單機 管道 包括無名管道 命名管道 訊息佇列 訊號量共享儲存 scoket streams 等。其中,scoket和stream支援不同主機上的兩個程序ipc。一 管道 管道,通常指無名管道,是unix...