IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)
上次看到一個(gè)網(wǎng)頁,知道牛人們都在作什么時(shí),
我明顯感覺到我的世界和這些世界的差異。
慢慢往前走吧。。
1.有不同的手機(jī)終端,如iphone,安卓,Symbian,不同的終端處理不一樣,設(shè)計(jì)一種服務(wù)器和算法實(shí)現(xiàn)對(duì)不同的終端的處理。
2.設(shè)計(jì)一種內(nèi)存管理算法。?
3.A向B發(fā)郵件,B收到后讀取并發(fā)送收到,但是中間可能丟失了該郵件,怎么設(shè)計(jì)一種最節(jié)省的方法,來處理丟失問題。?
4.設(shè)計(jì)一種算法求出算法復(fù)雜度。
~~~~~~~~~~~~~
所以,了解一下IPC和LPC,RPC,算是IT的份內(nèi)之事吧。
遠(yuǎn)程過程調(diào)用原理
進(jìn)程間通信(IPC):是在多任務(wù)操作系統(tǒng)或聯(lián)網(wǎng)的計(jì)算機(jī)之間運(yùn)行的程序和進(jìn)程所用的通信技術(shù)。有兩種類型的進(jìn)程間通信(IPC)。
1 本地過程調(diào)用(LPC):LPC用在多任務(wù)操作系統(tǒng)中,使得同時(shí)運(yùn)行的任務(wù)能互相會(huì)話。這些任務(wù)共享內(nèi)存空間使任務(wù)同步和互相發(fā)送信息。
2 遠(yuǎn)程過程調(diào)用(RPC):RPC類似于LPC,只是在網(wǎng)上工作RPC開始是出現(xiàn)在Sun微系統(tǒng)公司和HP公司的運(yùn)行UNIX操作系統(tǒng)的計(jì)算機(jī)中。
通過IPC和RPC,程序能利用其它程序或計(jì)算機(jī)處理的進(jìn)程。客戶機(jī)/服務(wù)器模式計(jì)算把遠(yuǎn)程過程調(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ù)訪問部分,因?yàn)樗x數(shù)據(jù)最近,客戶機(jī)能運(yùn)行數(shù)據(jù)表示和與用戶交互的前端部分。這樣,遠(yuǎn)程過程調(diào)用可看作是把分割的程序通過網(wǎng)絡(luò)重組的部件。LPC有時(shí)也稱耦合(Coupling)機(jī)制。
用這種方式分割程序,當(dāng)用戶要訪問數(shù)據(jù)時(shí)就無需每次拷貝整個(gè)數(shù)據(jù)庫或它的大部分程序到用戶系統(tǒng)。其實(shí),服務(wù)器只處理請(qǐng)求,甚至只執(zhí)行一些數(shù)據(jù)計(jì)算,把得出的結(jié)果再發(fā)送給用戶。因?yàn)楫?dāng)數(shù)據(jù)存放在一個(gè)地方時(shí),數(shù)據(jù)庫同步很容易實(shí)現(xiàn),所以多個(gè)用戶可同時(shí)訪問相同的數(shù)據(jù)。
分布式計(jì)算環(huán)境是由一個(gè)通信系統(tǒng)——網(wǎng)絡(luò)連接的計(jì)算機(jī)集群。很容易把這個(gè)網(wǎng)絡(luò)看成一個(gè)計(jì)算平臺(tái),若是對(duì)等方式,其中任何一臺(tái)計(jì)算機(jī)都能成為客戶機(jī)或服務(wù)器。一些處理任務(wù)可被分成獨(dú)立運(yùn)行程序在不同的網(wǎng)絡(luò)計(jì)算機(jī)上并行處理,而獨(dú)立的程序被交給最適合這個(gè)任務(wù)的計(jì)算機(jī)處理。這種策略可利用計(jì)算機(jī)空閑資源,提高網(wǎng)絡(luò)的效益。一個(gè)典型的企業(yè)網(wǎng)包括許多運(yùn)行著不同操作系統(tǒng)的異構(gòu)計(jì)算機(jī)系統(tǒng)。
遠(yuǎn)程過程調(diào)用中間件技術(shù)
隨著企業(yè)網(wǎng)的產(chǎn)生,開發(fā)商必須編制可在各種計(jì)算機(jī)和網(wǎng)絡(luò)通信協(xié)議中都能運(yùn)行的程序。現(xiàn)在人們正努力使得遠(yuǎn)程過程調(diào)用獨(dú)立,這意味著開發(fā)商就不用考慮底層的網(wǎng)絡(luò)和網(wǎng)絡(luò)上數(shù)據(jù)傳輸所用的協(xié)議,下面介紹RPC在開放式軟件基金(OSF)的分布式計(jì)算環(huán)境(DCC)中實(shí)現(xiàn)的相關(guān)方法。RPC工作于多種分布式計(jì)算環(huán)境。
SunSoft的開放網(wǎng)絡(luò)計(jì)算(ONC)的遠(yuǎn)過程調(diào)用/外部數(shù)據(jù)表示(RPC/XDR)協(xié)議被廣泛采用。在三百一十萬個(gè)運(yùn)行網(wǎng)絡(luò)文件系統(tǒng)(NFS)的系統(tǒng)中,有二百八十萬個(gè)使用ONCRPC庫,并在分布式應(yīng)用中作為客戶機(jī)或服務(wù)器。ONCRPC被IBM的所有操作系統(tǒng)所支持(除了OS/400)。UNIX系統(tǒng)實(shí)驗(yàn)室把RPC/XDR當(dāng)作是UNIX System V Release 4的一個(gè)標(biāo)準(zhǔn)部分。Novell支持下一代ONC+傳輸自立遠(yuǎn)程過程調(diào)用(TI-RPC)技術(shù).TI-RPC 使用運(yùn)輸層接口(TLI)實(shí)現(xiàn)傳輸自立。TLI提供了一種訪問面向連接或非連接傳輸服務(wù)的通用方法(這在“STERAMS環(huán)境”中有所敘述)。
Open Software Foundation(OSF)RPC 開放軟件基金會(huì)(OSF)的RPC
RPC工具提供了一種編程語言和編譯器,它們使用可看作是本地過程的可運(yùn)行于客戶機(jī)和服務(wù)器上的模塊開發(fā)分布式應(yīng)用程序。運(yùn)行時(shí)設(shè)施(run-timefacility)使得分布式應(yīng)用程序能在多機(jī)種異構(gòu)系統(tǒng)上運(yùn)行,這樣使得底層體系結(jié)構(gòu)和運(yùn)輸協(xié)議對(duì)于應(yīng)用程序是透明的。
程序員用接口定義語言(IDL)建立接口定義(interface definition)。IDL是程序員用來設(shè)計(jì)遠(yuǎn)程運(yùn)行的過程的工具。IDL編譯器把IDL接口定義轉(zhuǎn)換成與客戶機(jī)和服務(wù)器相連的占位程序(stub)。客戶機(jī)上的占位程序可加入到服務(wù)器的過程,而服務(wù)器上的占位程序也可加入到客戶機(jī)過程。位于客戶機(jī)服務(wù)器的RPC運(yùn)行時(shí)設(shè)施與占位程序合作,來提供RPC操作。
異構(gòu)環(huán)境中使用RPC的一個(gè)問題在于,不同的機(jī)器有不同的數(shù)據(jù)表示,OSFRPC通過具有調(diào)用機(jī)器的基本數(shù)據(jù)表示的特征調(diào)用來解決這個(gè)問題。當(dāng)收到調(diào)用時(shí),若根據(jù)特征知道兩臺(tái)機(jī)器數(shù)據(jù)表示不同的話,接收器就進(jìn)行數(shù)據(jù)轉(zhuǎn)換。
RPC運(yùn)行時(shí)設(shè)施提供把客戶機(jī)請(qǐng)求傳送給服務(wù)器和在網(wǎng)上發(fā)送和接收響應(yīng)的功能。DCERPC運(yùn)行時(shí)設(shè)施也和網(wǎng)絡(luò)上其它DCE服務(wù)相互作用,這些DCE服務(wù)有命名、安全和定時(shí)服務(wù)。運(yùn)行時(shí)設(shè)施有下列特征:
1 可在多種網(wǎng)絡(luò)上運(yùn)行。開發(fā)者無需為每個(gè)網(wǎng)絡(luò)編寫特定的應(yīng)用程序。
2 提供客戶機(jī)或服務(wù)器或網(wǎng)絡(luò)上的故障恢復(fù)。它支持文件系統(tǒng)、數(shù)據(jù)庫和其它傳輸可變長數(shù)據(jù)的服務(wù)。
3 提供獨(dú)立于任何一個(gè)目錄服務(wù)的基于名字定位服務(wù)器的方法。
4 提供安全工具的接口,以防RPC通信遭受破壞。安全服務(wù)保證機(jī)密信息的保密性和提供鑒別來保護(hù)通信完備性。
5 支持網(wǎng)上并發(fā)或并行處理的多線程調(diào)度,于是一個(gè)應(yīng)用程序就能同時(shí)執(zhí)行多個(gè)操作
6 提供多供應(yīng)商提供的系統(tǒng)環(huán)境的可移植性和相互操作性。
?
轉(zhuǎn)載于:https://www.cnblogs.com/aguncn/archive/2013/04/30/3052214.html
總結(jié)
以上是生活随笔為你收集整理的IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 3333 Turing Tree
- 下一篇: eclipse +python 修改 各