程序間通訊(ipc)是一組程式設計介面,讓程式設計師能夠協調不同的程序,使之能在乙個作業系統裡同時
執行,並相互傳遞,交換資訊。這使得乙個程式能夠在同一時間裡處理許多使用者的要求。ipc介面提供了這種可能性,每個ipc方法均有它自己的優點和侷限,對於單個程式而言使用所有的ipc方法是不常見的。
因為即使只有乙個使用者發出要求,也可能導致乙個作業系統中多個程序的進行,程序之間必須互相通話。
關於這裡所提的「同時」這個狀態表述,我感覺並不恰當。這個「同時」只是個巨集觀的概念,從原理上看,單核cpu不可能同時執行兩個程式:電腦裡多個程序看起來都掛著,但其實在某個時刻下,只有乙個程式(程序/執行緒)在執行 ,對於單核cpu來說,每個時刻只能執行乙個執行緒;對於多核cpu來說,以四核cpu為例,則可以並行4個執行緒(程序)。並且對於單核cpu來說,執行緒的串型執行的,需要排程。ipc方法包括管道(pipe)、訊息排隊、旗語、共用記憶體以及套接字(socket)。為什麼會造成巨集觀上程序在「同時」執行的錯覺?因為頻繁快速的切換程序/執行緒間的切換。
總之,單核:某時刻下只能執行乙個程序/執行緒
多核:可以同時執行多個程序/執行緒
pipe:
1)普通管道pipe:兩個特點 a. 單工,只能單向傳輸; b. 只能在父子或兄弟程序間使用.
2)流通管道s_pipe: 特點 a. 半雙工,可以雙向傳輸;b. 只能在父子或兄弟程序間使用
ipc目的
1)資料傳輸
2)共享資料
3)通知事件
4)資源共享
5)程序控制
程序與執行緒
程序 process 管理單元,管理分配應用程式的資料,的記憶體空間.執行緒 thread 執行單元,執行緒負責執行乙個預先編排好的 段,執行 棧是基於執行緒的.乙個應用程式啟動的時候,程序自動建立,並且會預設建立主線程,主線程負責執行main 方法.thread t new thread new ...
程序與執行緒
程序 是擁有資源的實體,包括 1。乙個程序有乙個虛擬位址空間,不同程序位於不同的 虛擬位址空間中。程序之間若要通訊,必須通過作業系統 的功能呼叫 ipc 2。程序擁有其他資源,例如開啟的檔案和i o裝置。程序結束時,作業系統會自動釋放該程序擁有的所有資源。例如,如果 open乙個檔案而不close它...
程序與執行緒
程序包括 1 私有的虛位址空間 2 可執行程式 與資料 3 開啟系統資源列表控制代碼 4 安全訪問標誌 5 程序id 6 至少有乙個執行執行緒 執行緒包括 1 一組cpu暫存器狀態 2 兩個堆疊 系統態與使用者態 3 tls 執行緒區域性儲存區 4 執行緒id 5 安全特性 因此程序是不活潑的,它從...