【发布时间】:2012-01-13 20:27:15
【问题描述】:
我想了解OS中的这些IPC机制概念——共享内存、消息系统、套接字、RPC、RMI
不同的操作系统如何实现这些。具体是安卓操作系统?
【问题讨论】:
标签: android operating-system ipc shared-memory
我想了解OS中的这些IPC机制概念——共享内存、消息系统、套接字、RPC、RMI
不同的操作系统如何实现这些。具体是安卓操作系统?
【问题讨论】:
标签: android operating-system ipc shared-memory
IPC 是进程间通信 OS 中的机制是一个大讨论的概念,所以我想这里我们不能涵盖所有这些,
一些低级的东西:
这里讨论的 IPC 机制处于最低级别——所有其他 CPU 间 IPC 机制都使用它作为基础。例如,通过 ARM11 处理器到另一个处理器的 TCP/IP 连接最终会通过这种 IPC 机制。诊断消息是另一个依赖此低级 IPC 的消息示例。
IPC 机制由两个方面实现——“客户端”面向内核并提供基于回调的接口样式,“CPU 端”提供与其他 CPU 的接口。
CPU 端实现为共享内存接口,具有 中断和“门铃”机制。在最高级别,发送 消息从 ARM11 到另一个 CPU,消息内容被放置 在共享内存的缓冲区中,硬件端口被触发 向其他 CPU 指示数据可用。
在相反的方向,数据被放入共享内存中 另一个 CPU 和硬件中断在 ARM11 上触发。 此硬件中断导致 ARM11 检查共享 内存缓冲区,检索消息并将其路由到客户端。
但更具体到 Android:
android中的IPC,描述了不同类型的android组件之间的通信机制。
Android 实现了一些用于安全地在程序之间进行通信或协调的关键工具。这些机制使 Android 应用程序能够在后台运行进程、提供其他应用程序使用的服务、安全地共享关系数据、启动其他程序以及安全地重用其他应用程序的组件。
Android 上发生的大部分进程间通信 (IPC) 是通过一个名为的数据结构的传递来完成的 意图。这些是包含一些信息的集合 系统可以用来帮助确定去哪里的预期属性 如果开发人员不明确,则发送 Intent。动作属性 表达 Intent 的用途(Intent.ACTION_VIEW 动作 表示数据要显示给用户,例如)。 data 属性是一个可选的 URI,可以指向一个文件, 联系人、网页、电话号码等。意图也可能 有一组称为附加项的键/值对以及标志, 组件和其他更高级的功能。
这些 IPC 机制中的每一个都在一定程度上使用 Intent,并且是 大多数 Android 开发人员可能有些熟悉。然而, 因为安全地使用这些是 Android 安全的关键,
1) Intents 是组件可以发送和接收的消息。它是一种在进程之间传递数据的通用机制。在意图的帮助下,我们可以启动服务或活动,调用广播接收器等等。
2) Bundles 是数据通过的实体。它类似于对象的序列化,但在 android 上要快得多。 Bundle 可以通过 getExtras() 方法从 Intent 中获取。
3) Binders 是允许活动和服务获得对另一个服务的引用的实体。它不仅允许简单地向服务发送消息,还可以直接调用它们的方法。
更多信息请看:
【讨论】: