第二章 程序通訊

2021-08-28 22:09:30 字數 1958 閱讀 2767

(1)低階通訊——程序之間的互斥和同步

訊號量機制是有效的同步工具,但作為通訊工具缺點如下:

(1)效率低(通訊量少)

(2)通訊對使用者不透明(程式設計師實現,作業系統只提供共享儲存器供**操作)

(2)高階程序通訊

使用者直接利用作業系統提供的一組通訊命令,高效地傳送大量資料的通訊方式。 作業系統隱藏了程序通訊的細節,對使用者透明,減少了通訊程式編制上的複雜性。

1,共享儲存器系統(操作儲存區方式)

相互通訊的程序共享某些資料結構或共享儲存區,程序之間能夠通過這些空間進行通訊。

(1)基於共享資料結構的通訊方式(低階)

諸程序公用某些資料結構,藉以實現諸程序間的資訊交換。

程式設計師:提供對公用資料結構的設定及對程序間同步的處理。

作業系統:提供共享儲存器。

特點:複雜、低效率,還只適合傳遞相對少量的資料。

(2)基於共享儲存區的通訊方式(高階)

在儲存器中劃出了一塊共享儲存區,諸程序可通過對共享儲存區中資料的讀或寫來實現通訊。

2,訊息傳遞系統(發--收方式)

最廣泛使用的一種,程序間的資料交換,以格式化的訊息為單位。遮蔽底層複雜操作。

(1)單機:作業系統底層程式設計中的訊息傳遞系統呼叫;

(2)計算機網路:訊息稱為報文。程式設計師直接利用系統提供的一組通訊命令(原語)進行通訊。

(3)實現方式

①直接通訊方式

傳送程序利用os所提供的傳送命令(原語),直接把訊息傳送給目標程序。此時,傳送程序和接收程序都以顯式方式提供          對方的識別符號。通常利用系統通訊命令(原語):

send(receiver, message);         receive(sender, message);

②間接通訊方式

基於共享資料結構的實體用來暫存傳送給目標程序的訊息;接收程序則從該實體中,取出對方傳送給自己的訊息。通常把            這種實體稱為信箱。 訊息在信箱中可以安全地儲存,只允許核准的目標使用者隨時讀取。既可實時通訊,又可非實時通訊。

系統為信箱通訊提供原語:

ⅰ信箱的建立和撤消

信箱名許可權屬性 :

私用信箱  只有擁有者有權讀傳送到信箱中的內容,可用單向鏈路實現。擁有者程序結束,信箱消失。

公用信箱   os建立,雙向鏈路,系統執行期間核准程序都可進行讀寫。

共享信箱   某程序建立,可指明被誰共享。擁有者和共享者均可讀信箱中發給自己的訊息。

共享者名稱

ⅱ信箱訊息的傳送和接收  

程序之間利用信箱進行通訊時,必須使用共享信箱。

send(mailbox, message);     receive(mailbox, message);

3,管道通訊(中間檔案方式)

(1)所謂「管道」,是指用於連線一讀程序和一寫程序以實現通訊的乙個共享檔案,又名pipe檔案。

(2)向共享檔案輸入的寫程序以字元流形式將大量的資料送入管道;而接收管道輸出的讀程序則從管道中接收(讀)資料。

(3)首創於unix系統。其管道機制需提供三方面的協調能力:互斥、同步、確定對方是否存在。

4,client-server system

(1)套接字(socket)

乙個套接字就是乙個通訊標識型別的資料結構,包含了通訊目的的位址,埠號,傳輸層協議、程序所在的網路位址,以及針對c\s程式提供的不同系統呼叫(api函式)等。 系統中所有的連線都持有唯一的一對套接字及埠連線,從而方便地區分來自不同應用程式程序或網路連線的通訊,確保通訊雙方間邏輯鏈路的唯一性。

第二章 程序管理(4) 程序通訊

2.5 管程機制 一種新的程序同步工具 利用共享資料結構抽象地表示系統中的共享資源 把共享的資源抽象的用共享資料結構來表示 而把對該共享資料結構實施的操作定義為一組過程,如資源的請求和釋放過程request 和release。程序對共享資源的申請 釋放和其它操作,都是通過這組過程對共享資料結構的操作...

第二章 程序管理

報考的是三系老師 不是搞硬體的 但由於自己考研時選的科目有作業系統,所以 大致看一下了解即可 1 程序通訊 第一 共享儲存 第二 訊息傳遞 分為直接通訊方式 和 信箱通訊方式 第三 管道通訊 1 排程的層次 第一 作業排程 高階排程 按一定原則從外村上處於後備狀態的作業中挑選乙個 或多個 作業,給它...

第二章 進製

各進製數之間的轉換 計算機底層通過二進位制進行運算,由0和1組成。表示各進製的符號 b 二進位制,o 八進位制,d 十進位制,x 十六進製制 bin oct hex 返回值均為字串,且分別帶有0b 0o 0x字首。通過python內建函式進行進製之間的轉換 1 十進位制轉二進位制 1 bin 10 ...