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