進(jìn)程間通信(IPC限番,Inter-Process Communication)舱污,指至少兩個(gè)進(jìn)程或線程間傳送數(shù)據(jù)或信號(hào)的一些技術(shù)或方法。進(jìn)程是計(jì)算機(jī)系統(tǒng)分配資源的最小單位弥虐。每個(gè)進(jìn)程都有自己的一部分獨(dú)立的系統(tǒng)資源扩灯,彼此是隔離的。為了能使不同的進(jìn)程互相訪問(wèn)資源并進(jìn)行協(xié)調(diào)工作霜瘪,才有了進(jìn)程間通信珠插。這些進(jìn)程可以運(yùn)行在同一計(jì)算機(jī)上或網(wǎng)絡(luò)連接的不同計(jì)算機(jī)上。 進(jìn)程間通信技術(shù)包括消息傳遞颖对、同步捻撑、共享內(nèi)存和遠(yuǎn)程過(guò)程調(diào)用。 IPC是一種標(biāo)準(zhǔn)的Unix通信機(jī)制。
**有兩種類(lèi)型的進(jìn)程間通信(IPC)顾患。
**
本地過(guò)程調(diào)用(LPC)LPC用在多任務(wù)操作系統(tǒng)中琳拭,使得同時(shí)運(yùn)行的任務(wù)能互相會(huì)話。這些任務(wù)共享內(nèi)存空間使任務(wù)同步和互相發(fā)送信息描验。
遠(yuǎn)程過(guò)程調(diào)用(RPC)RPC類(lèi)似于LPC,只是在網(wǎng)上工作坑鱼。RPC開(kāi)始是出現(xiàn)在Sun微系統(tǒng)公司和HP公司的運(yùn)行UNIX操作系統(tǒng)的計(jì)算機(jī)中膘流。
通過(guò)IPC和RPC,程序能利用其它程序或計(jì)算機(jī)處理的進(jìn)程鲁沥『艄桑客戶機(jī)/服務(wù)器模式計(jì)算把遠(yuǎn)程過(guò) 程調(diào)用與其它技術(shù)如消息傳遞一道,作為系統(tǒng)間通信的一種機(jī)制画恰∨硭客戶機(jī)執(zhí)行自己的任務(wù),但靠服務(wù)器提供后端文件服務(wù)允扇。RPC為客戶機(jī)提供向后端服務(wù)器申請(qǐng)服 務(wù)的通信機(jī)制缠局,如圖R-4所示。如果你把客戶機(jī)/服務(wù)器應(yīng)用程序想作是一個(gè)分離的程序考润,服務(wù)器能運(yùn)行數(shù)據(jù)訪問(wèn)部分狭园,因?yàn)樗x數(shù)據(jù)最近,客戶機(jī)能運(yùn)行數(shù)據(jù)表 示和與用戶交互的前端部分糊治。這樣唱矛,遠(yuǎn)程過(guò)程調(diào)用可看作是把分割的程序通過(guò)網(wǎng)絡(luò)重組的部件。LPC有時(shí)也稱耦合(Coupling)機(jī)制井辜。
用這種方式分割程序绎谦,當(dāng)用戶要訪問(wèn)數(shù)據(jù)時(shí)就無(wú)需每次拷貝整個(gè)數(shù)據(jù)庫(kù)或它的大部分程序到用戶系統(tǒng)。其實(shí)粥脚,服務(wù)器只處理請(qǐng)求窃肠,甚至只執(zhí)行一些數(shù)據(jù)計(jì)算,把得出的結(jié)果再發(fā)送給用戶阿逃。因?yàn)楫?dāng)數(shù)據(jù)存放在一個(gè)地方時(shí)铭拧,數(shù)據(jù)庫(kù)同步很容易實(shí)現(xiàn),所以多個(gè)用戶可同時(shí)訪問(wèn)相同的數(shù)據(jù)恃锉。