緊張的考研生活隨著網路遊戲的gameover拉開了序幕,同時也進入了全面的複習階段。每天看了什麼,掌握了什麼必須有個小小的總結,或者說是讀書心得。所有的心得都分門別類,今天就談談作業系統中的程序間通訊。
細想下,程序間通訊的方式還真有點多有點雜,還是一點點的來吧,畢竟我是在給自己理思路哈。第一種就是利用軟中斷的方式來達到程序之間的通訊。先打個很簡單的比方。同學a呢今天不想下樓去食堂吃飯,怎麼辦呢?不吃肯定會餓肚子啊,所以同學a就想了個招,要同學b幫忙帶飯啊。那同學a怎麼通知同學b要他帶個盒飯呢。發個簡訊撒,同學b收到這個簡訊就自然知道要做什麼事情了。好了,言歸正傳。同學a想要給同學b發簡訊,就用kill(pid_t pid,int sig)函式來把訊號量sig傳送給程序號為pid的程序。同時同學b呢用signal(sig,function)函式來接收這個訊號量sig,並且執行function函式。有人會問啊,這個function函式是幹嘛的啊?廢話,這個函式就是同學b的打飯程式啊。是不是很簡單呢,嘿嘿。
別高興太早,問題多多呢?不是所有的同學都能給別人發簡訊的,也就是說不是所有的程序都有使用kill()函式的權利。摘抄下書本上說的「只能是核心或者超級使用者程序才能用kill來向任意的其他程序傳送軟中斷訊號,而普通使用者程序只能給同組或者同使用者標識的程序傳送軟中斷訊號」。問題又來了啊,這個核心使用者程序,超級使用者程序,同組使用者程序,同使用者標識的程序又是啥子東東喲?我稍微用自己的方式解釋下,可能不全面哈。算了,還是引用下別人的說法吧,偶畢竟還是在學習。程序的種類。
今天就暫時到這裡吧,要睡覺了。
程序間通訊之 IPC
有三種稱做xsi ipc的ipc 訊息佇列 message queues 訊號量 semaphores 以及共享記憶體 shared memory 每個核心中的ipc結構 訊息佇列,訊號量和共享儲存段 都用乙個非負整數的識別符號來加以引用。要向乙個佇列中傳送訊息或讀取訊息只需要知道其佇列識別符號即可...
程序間通訊IPC
這兩天學習了 unix 的程序間通訊 ipc,這裡面有幾個很重要的基本概念,特別是訊息佇列和我的畢設很有關係,因此多說幾句。以前學習的程序間通訊方式,一般都是經由 fork 或exec 開啟檔案,或經過檔案系統。而 ipc是程序間通訊方式的統稱。下面一一道來。一 管道 管道是最老的 ipc形式。管道...
程序間通訊 IPC
part2 index1.html part2 index2.html linux至少支援如下ipc機制 同時支援posix和system v方式 streams ipc機制,linux本身不支援,有乙個單獨的安裝包 可以跨pc的程序通訊 互斥鎖或條件變數 動態初始化 不能使靜態分配 在共享記憶體中...