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