售前電話
135-3656-7657
售前電話 : 135-3656-7657
S1240的操作系統(tǒng)中有一個消息處理(MH)模塊,用于消息通信的控制與處理。這里將說明消息通信的處理過程,并介紹消息處理模塊中確定消息路由的程序功能。
(1)消息傳送過程
①消息傳送一內(nèi)部
當(dāng)一個消息在控制單元內(nèi)部從一個進(jìn)程發(fā)送給另一個進(jìn)程時,消息傳送過程如下:
(a)用戶發(fā)送消息
用戶可以是FMM或SSM,當(dāng)需要發(fā)送消息時,可以通過軟件中斷調(diào)用消息處理中的消息發(fā)送原語。當(dāng)然,首先要調(diào)用緩沖器管理中的GET一MSG—BUF,先分配一個消息緩沖器《MB),并將需要發(fā)送的數(shù)據(jù)寫入MB中,再將MB的地址作為參數(shù)而傳送給消息處理模塊°""
(b)消息發(fā)送原語的功能
消息發(fā)送(MSG-SEND)原語的主要操作如下:
•將本控制單元識別碼和發(fā)送消息的進(jìn)程號碼存入MB中。
•如果消息發(fā)送者是進(jìn)程,要將MB與PCB解除勾連。
•將MB中的USE比特置零。
•調(diào)用消息處理模塊中的MH_ROUTE_MSG,以確定消息路由。調(diào)用MH_ROUTE_MSG后的返回數(shù)據(jù),也就是確定路由的結(jié)果寫在.MB的“ROUTINGRESULT"中(即以前所述的MB格式中的RRRR比特)。
•消息路由確定后:
•如果消息要通過虛擬通路發(fā)送,調(diào)用網(wǎng)絡(luò)處理器中的SEND—MSG—OVER_VP;
•如果消息要通過用戶控制通路或數(shù)據(jù)鏈路發(fā)送,調(diào)用網(wǎng)絡(luò)處理器中的SEND-MSG_OVER-HELD-UP-PATH(消息通過保持通路發(fā)送)&如果消息目的地在內(nèi)部,就置入對應(yīng)的就緒隊列,隊列計數(shù)器加1,作業(yè)狀態(tài)字(JSW)的相應(yīng)比特置位?,F(xiàn)在假定目的地是在內(nèi)部。
(c)發(fā)送消息的進(jìn)程進(jìn)入等待狀態(tài)
調(diào)用了MSG—SEND原語后,仍要返回到發(fā)送消息的進(jìn)程,繼續(xù)執(zhí)行到MSG—WAIT時,將進(jìn)入進(jìn)程管理。于是進(jìn)程管理將這個進(jìn)程置成等待狀態(tài),轉(zhuǎn)去調(diào)度下一個作業(yè)。
(d)消息傳送給接收進(jìn)程
•進(jìn)程管理中的SNJ按其調(diào)度策略進(jìn)行調(diào)度,當(dāng)輪到該消息的調(diào)度時,就將消息發(fā)送給接收進(jìn)程,激活該進(jìn)程的繼續(xù)執(zhí)行。調(diào)度的有關(guān)情況已在SNJ中介紹。
•消息傳送一外部當(dāng)一個消息要從一個控制單元發(fā)送到另一個控制單元時,消息傳送的過程如下:
(a)用戶發(fā)送消息
用戶也是使用原語MSG-SEND,通過軟件中斷進(jìn)入消息處理模塊,要發(fā)送的MB的指針作為參數(shù)而調(diào)用原語。消息處理中的MHC_ROUTE_MSG確定消息的目的地為另一個控制單元,要調(diào)用網(wǎng)絡(luò)處理中的相應(yīng)程序,要求發(fā)送這一消息。網(wǎng)絡(luò)處理將消息排隊后返回到消息處理,再由消息處理返回到發(fā)送消息的進(jìn)程。
(b)調(diào)度網(wǎng)絡(luò)處理程序而發(fā)送消息
為了將消息發(fā)送到另一個控制單元,必須由進(jìn)程管理在適當(dāng)時刻調(diào)度網(wǎng)絡(luò)處理中的相應(yīng)程序,以執(zhí)行消息的發(fā)送。
(c)另一控制單元接收消息
在某個時刻;在另一個控制單元中的進(jìn)程管理的調(diào)度下,其網(wǎng)絡(luò)處理器中的事件處理程序在運(yùn)行,會檢測到“已收到外部發(fā)來的消息”這一事件,并進(jìn)行處理。要通過緩沖器管理分配一個MB,將所收到的消息復(fù)制到MB中,并將MB傳送給消息處理。消息處理確定消息目的地在內(nèi)部,將消息編入就緒隊列。