您好,登錄后才能下訂單哦!
本篇內容介紹了“linux中rpc指的是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在linux中,rpc是遠程過程調用的意思,是Reomote Procedure Call的縮寫,特指一種隱藏了過程調用時實際通信細節的IPC方法;linux中通過RPC可以充分利用非共享內存的多處理器環境,提高系統資源的利用率。
本教程操作環境:linux7.3系統、Dell G3電腦。
RPC:(Reomote Procedure Call) 遠程過程調用
RPC(Remote Procedure Call)中文全稱遠程過程調用,在Linux里有個rpcbind軟件,是rpc的一個簡單應用例子,是和網絡存儲NFS相關的軟件,用戶要想找到NFS存儲,必須通過先訪問RPCBIND才行。
特指一種隱藏了過程調用時實際通信細節的IPC方法。客戶端將調用一個本地方法,而這個本地方法則是負責透明的與遠程服務端進行過程間通信。這個本地方法會講相關參數順序打包到一個消息中,然后把這個消息發送給服務端提供的方法,服務端的方法會從消息中解出序列化發出來的參數,然后執行,最后仍以同樣的方式將方法的返回值發送給客戶端。
通過RPC我們可以充分利用非共享內存的多處理器環境(例如通過局域網連接的多臺工作站),這樣可以簡便地將你的應用分布在多臺工作站上,應用程序就像運行在一個多處理器的計算機上一樣。你可以方便的實現過程代碼共享,提高系統資源的利用率,也可以將以大量數值處理的操作放在處理能力較強的系統上運行,從而減輕前端機的負擔。
擴展知識:
IPC:(Inter Process Communication )跨進程通信
這個概念泛指進程之間任何形式的通信行為,是個可以拿來到處套的術語。它不僅包括各種形式的消息傳遞,還可以指共享資源,以及同步對象[mutex 或者其他類似的東西,即確保安全的并發訪問共享資源(也就是防止兩個或兩個以上的對象同事對同一個數據成員進行修改,從而導致數據被破壞,或者競爭條件下同事讀/寫數據而導致錯誤的情況發生)]的東西。
LPC(Local Procedure Call)
LPC是“本地過程調用(Local Procedure Call)”的縮寫。所謂“本地過程調用”是與“遠程過程調用”即RPC相對而言的。RPC是廣義的,RPC可以發生在不同的主機之間,也可以發生在同一臺主機上,發生在同一臺主機上就是LPC。所以在Unix語境下就沒有LPC這一說,即使發生在同一臺主機上也稱為RPC。
在歷史上,RPC是“開放軟件基金會(OSF)”設計和提出的一種用以實現“Unix分布計算環境(Unix DCE)”的標準。實際上,微軟的DCOM技術,就是建立在RPC基礎上的。Win2000的RPC可以采用TCP/IP、SPX、NetBIOS、命名管道、以及“本地”作為底層的通信手段,這“本地”就是LPC。
另一方面,Windows是一個帶有許多微內核系統特征的操作系統(盡管它的內核不是微內核),系統中有不少“系統級”的服務進程,例如大家已經熟知的csrss、管理用戶登錄的“本地安全認證服務”進程LSASS等等,用戶進程以及微軟提供的系統工具軟件經常需要調用由這些服務進程提供的服務,這里LPC就起著重要的作用。
LPC的基礎是一種稱為“端口(Port)”的進程間通信機制,類似于本地的(Unix域的)Socket。這種Port機制提供了面向報文傳遞(message passing)的進程間通信,而LPC則是建立在這個基礎上的高層機制,目的是提供跨進程的過程調用。注意這里所謂“跨進程的過程調用”不同于以前所說的“跨進程操作”。前者是雙方有約定、遵循一定規程的、有控制的服務提供,被調用者在向外提供一些什么服務、即提供哪些函數調用方面是自主的,而后者則可以是在不知不覺之間的被利用、被操縱。前者是良性的,而后者可以是惡性的。
“linux中rpc指的是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。