程序通訊是指程序之間的資訊交換。交換的資訊量包括乙個狀態或數值(訊號量,低階通訊)或上千個位元組(高階通訊)
低階通訊:程序的互斥和同步(交換的資訊量(即訊號量)較少)
高階通訊:指使用者可直接利用os提供的一組通訊命令(不需要自己編寫命令),高效地傳送大量資料的一種通訊方式。對使用者透明。(使用者不需要考慮通訊的具體過程,直接呼叫系統提供的原語)
高階通訊分類:共享儲存器(根據實現機制不同)、訊息傳遞系統、管道通訊
共享儲存器:(1)共享資料結構的通訊方式。程序之間通過某種資料結構,如緩衝池進行通訊屬於低階通訊方式(如生產者-消費者)。(2)共享儲存區通訊方式,為了傳送大量資訊,在儲存區中劃出一塊共享儲存區,程序可通過對共享儲存區進行讀或寫來實現通訊,屬於高階通訊方式。
(共享儲存器系統:在系統當中開闢一塊儲存區,該儲存區供兩個程序使用,乙個是接收程序,乙個是傳送程序。傳遞訊息時都可以把訊息放在公用儲存區。傳送訊息的程序可以把訊息存入儲存區,接收訊息的程序從儲存區讀取。
訊息傳遞系統:資訊交換的單位是訊息或報文,分成兩種:
1、直接通訊方式;2間接通訊方式
計算機網路中將訊息稱為報文。
直接通訊方式:傳送程序直接(中間不通過任何資源)把訊息傳送給目標程序。傳送程序和接收程序都以顯式方式分別提供對方的識別符號。 系統提供的兩種通訊原語:send(receiver, message);//傳送程序呼叫,receiver為接收程序(程序的識別符號(在pcb上)
receive(sender,message);
解決生產者-消費者問題:
repeat ...
produce an item in nextp;
send(consumer,nextp);
until false;
repeat
receive(producer,nextp);
consumer the item in nextc;
until false;
間接通訊方式:程序之間的通訊需要通過某種中間實體(緩衝區、共享區等),該實體用來暫存傳送程序傳送給目標程序的訊息;接收程序則從該實體中取出對方傳送給自己的訊息。這種中間實體稱為信箱。訊息在信箱中可以安全地儲存。只允許核准的目標使用者隨時讀取,故可實現非實時通訊(優點,可以等待)
信箱的建立和撤銷: 程序用信箱建立原語來建立乙個新信箱,建立者程序應給出信箱名字、信箱屬性(公用、私用、或共享);對於共享信箱,還應給出共享者名字。用信箱撤銷原語來撤銷。
訊息的傳送和接收:
send(mailbox,message);//將乙個訊息傳送到指定信箱
receive(mailbox,message);//從指定信箱中接收乙個訊息
信箱分類:
私用信箱:使用者程序建立,作為該程序的一部分(採用單向通訊鏈路。程序結束時信箱也消失,只能由傳送這傳到接收者)。擁有者有權讀訊息,其他使用者只能傳送。
公用信箱。它由os建立(系統執行期間,一直存在)。提供給系統中的所有核准程序使用。程序即可傳送也可接收。採用雙向通訊鏈路的信箱來實現。
共享信箱:由某程序建立,建立時提供共享程序(使用者)的名字。信箱的擁有者和共享者,都有權從信箱中取走傳送給自己的訊息。
信箱通訊時傳送程序和接收程序的關係:一對一關係:建立一條專用的通訊鏈路。多對一關係:服務程序與多個使用者程序之間進行互動,又稱為客戶/伺服器關係。一對多關係:乙個傳送程序與多個接收程序進行互動,使傳送程序可用廣播形式,向接受者傳送訊息。多對多關係:建立乙個公用信箱,多個程序投遞並取走自己的訊息。
管道通訊是共享檔案,連線乙個讀程序和乙個寫程序。 管道通訊方式建立在檔案系統(放在外存,結束記憶體資源)的基礎上,利用共享檔案來連線兩個相互通訊的程序,此共享檔案稱為管道(pipe)。
管道是指用於連線乙個讀程序和乙個寫程序,以實現它們之間通訊的共享檔案。
管道通訊必需的協調能力:
(1)互斥。當乙個程序正在對管道進行讀/寫操作時,另乙個程序必須等待。
(2)同步(制約關係)。當寫(輸入)程序把一定量的資料(如4k)寫入管道後,便去睡眠等待(放棄cpu),直到讀(輸出)程序取走資料後再 把它喚醒。當讀程序發現管道空時也應睡眠等待,直到寫程序將訊息寫入管道後,才將它喚醒。
(3)判斷對方是否存在。只有確定了對方存在時,方能進行通訊。
作業系統學習筆記(三) 程序
一 程序環境 c程式儲存空間布局 正文段 唯讀 存放cpu執行的機器指令,可共享 資料段 也叫初始化資料段。包含程式中需要明確賦值的變數,如 int max 99 bss段 也叫未初始化的資料段,在程式開始執行前,核心將此段中資料初始化為0或空指標,如long sum 100 棧 存放自動變數 即區...
作業系統學習筆記 程序控制
三 程序控制 1.兩種執行模式 l 系統模式 系統態,控制模式,核心模式 n 具有較高的特權。n 執行系統特定的指令,包括讀 寫控制暫存器的指令,基本i o指令以及與儲存器管理有關的指令,及一些特定的記憶體區。n 核心模式下的處理機及其指令 暫存器和記憶體收受到完全控制和保護 l 使用者模式 或使用...
作業系統學習筆記
這裡專門摘錄作業系統相關筆試題和面試題!也當作自己的乙個複習!乙個很全的作業系統常考知識集合 1.分段式儲存和分頁式儲存,以及段頁式儲存的區別 分頁是一維儲存,分段是二維的 因為分頁給出虛擬位址後,作業系統會自動劃分頁號和偏移量 而分段給出位址後,需要知道段號和偏移量,段的長度是可變的!故是二維的 ...