Lol*_*a_B 0 android operating-system ipc shared-memory
我想了解操作系统中的这些IPC机制概念 - 共享内存,消息系统,套接字,RPC,RMI
不同的操作系统如何实现这些.特别是Android操作系统?
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)都是通过传递一个名为Intents的数据结构来完成的.这些是具有一些预期属性的信息集合,如果开发人员不明确,系统可以使用这些属性来帮助确定发送Intent的位置.Action属性表示Intent的用途(Intent.ACTION_VIEW操作表示数据将显示给用户).data属性是可选的URI,可以指向文件,联系人,网页,电话号码等.Intent还可能具有一组称为extras的键/值对,以及标志,组件和其他更高级的功能.
这些IPC机制中的每一个都以某种身份使用Intent,并且可能对大多数Android开发人员来说都是熟悉的.但是,因为安全使用这些是Android安全的关键,
1)Intents组件可以发送和接收的消息.它是在进程之间传递数据的通用机制.在意图的帮助下,人们可以启动服务或活动,调用广播接收器等.
2)Bundles是数据传递的实体.它类似于对象的序列化,但在android上要快得多.Bundle可以通过getExtras()方法从intent获得.
3)Binders是允许活动和服务获得对其他服务的引用的实体.它不仅可以简单地向服务发送消息,而且可以直接调用它们上的方法.
欲了解更多信息,请查看: