2011-12-06 62 views
0

我想了解在OS這些IPC機制的概念 - 共享內存,消息系統,套接字,RPC,RMIIPC機制概念

如何不同的操作系統實現這些。具體Android操作系統?

回答

9

IPC是進程間通信機制OS是大討論的概念的話,我想我們在這裏不能覆蓋所有這一切,

一些低層的東西:

的IPC機制這裏討論的是最底層的 - 所有其他CPU間IPC機制都以此爲基礎。例如,通過ARM11處理器到另一個處理器的TCP/IP連接最終將通過這個IPC機制。診斷消息是依賴於這個低級IPC的消息的另一個例子。

IPC機制實現了兩個方面 - 一個面向內核並提供基於回調的接口風格的「客戶端」和一個向其他CPU提供接口的「CPU端」。

  • 的CPU側被實現爲共享存儲器接口,具有 中斷和一個「門鈴」機制。在最高級別,要將來自ARM11的消息 發送到另一個CPU,消息內容將被放置在共享內存中的緩衝區中,並且硬件端口會被調整爲 向另一個CPU指示數據可用。

  • 在反方向上,數據被放置在共享內存中 另一個CPU和硬件中斷在ARM11上被觸發。 此硬件中斷會導致ARM11檢查共享的內存緩衝區,檢索消息並將其路由到客戶端。

但更具體到Android:

IPC在Android中,它描述的機制是如何不同類型的Android組件的連通。

Android實現了一些用於安全地與程序進行通信或進行協調的關鍵工具。這些機制使Android應用程序能夠在後臺運行進程,提供其他應用程序使用的服務,安全地共享關係數據,啓動其他程序以及安全地重用其他應用程序的組件。

  • 大部分進程間通信在Android 發生(IPC)的通過圍繞稱爲 意圖一個數據結構的通過來完成。這些信息的集合有幾個 期望的屬性系統可以用來幫助找出 發送一個意圖,如果開發人員不明確。 Action屬性 表示Intent的用途(例如,Intent.ACTION_VIEW動作 表示數據將顯示給用戶)。 data屬性是一個可選的URI,可以指向一個文件, 聯繫人,網頁,電話號碼等等。intents也可能有 有一組稱爲extras的鍵/值對,以及標誌,組件和其他更高級的功能。

  • 這些IPC機制中的每一個都在某些容量中使用Intents,並且對於大多數Android開發人員來說可能有些熟悉。然而,由於 安全使用這些的關鍵是Android安全,

1)Intents有哪些組件可以發送和接收消息。它是在進程之間傳遞數據的通用機制。在意圖的幫助下,人們可以開始服務或活動,調用廣播接收器等等。

2)Bundles是數據通過的實體。它類似於對象的序列化,但在android上更快。 Bundle可以通過getExtras()方法從意圖獲得。

3)Binders是允許活動和服務獲得對其他服務的引用的實體。它不允許簡單地將消息發送到服務,而是直接調用它們上的方法。

欲瞭解更多信息看:

  1. Grasping Android's IPC mechanism

  2. Android’s Securable IPC Mechanisms