作業系統層面上的「原語」(比如 write 之類的系統呼叫)是不可中斷的一組機器指令,對程式設計師來講的確是不可分割的最小單位。
但是這寫系統呼叫本身還是用好幾句彙編語句組成的(對於 linux 來說是 c 語言),因此定義「原語」的前提是觀察者所處的位置。
比如就在作業系統的這層上,read,wirte,wait這些個系統呼叫自然就是最「原始」的詞彙;
2.1:為什麼程序間需要通訊?
1).資料傳輸
乙個程序需要將它的資料傳送給另乙個程序;
2).資源共享
多個程序之間共享同樣的資源;
3).通知事件
乙個程序需要向另乙個或一組程序傳送訊息,通知它們發生了某種事件;
4).程序控制
有些程序希望完全控制另乙個程序的執行(如debug程序),該控制程序希望能夠攔截另乙個程序的所有操作,並能夠及時知道它的狀態改變。
基於以上幾個原因,所以就有了程序間通訊的概念。
2.2:程序間通訊的原理
每個程序各自有不同的使用者位址空間,任何乙個程序的全域性變數在另乙個程序中都看不到,所以程序之間要交換資料必須通過核心,在核心中開闢一塊緩衝區,程序1把資料從使用者空間拷到核心緩衝區,程序2再從核心緩衝區把資料讀走,核心提供的這種機制稱為程序間通訊機制。
主要的過程如下圖所示:
計算機 計算機基礎整理
大學四年浪費的代價。半夜整理東西 cpu 其功能主要是解釋計算機指令以及處理計算機軟體中的資料。cpu由運算器 控制器和暫存器及實現它們之間聯絡的資料 控制及狀態的匯流排構成。差不多所有的cpu的運作原理可分為四個階段 提取 fetch 解碼 decode 執行 execute 和寫回 writeb...
計算機基礎
1 32位作業系統的記憶體分配 1 32位作業系統 windows linux 支援4g 2 32 記憶體的連續訪問 2 32位作業系統,通常把記憶體分為兩個2g的空間,每個程式執行時,就是每個程序,最大可以使用2g的私有記憶體 0x00000000 0x80000000 即理論支援如下的陣列 ch...
計算機基礎
1 完整的計算機系統 完整的計算機系統應該是由以下幾個部分組成 1.計算機硬體。2.作業系統。3.應用程式。2 計算機硬體介紹 1.控制器 計算機的控制指揮系統,通過產生操作控制訊號作用於計算機其他部件。2.運算器 實現算術運算和邏輯運算的部件。3.儲存器 用來存放各類資料檔案以及程式的部件。4.輸...