发布网友 发布时间:2022-11-18 16:49
共1个回答
热心网友 时间:2024-12-04 16:11
IPC(Inter-Process Communication,进程间通信)。
IPC ( Instruction Per Clock, 即 CPU 每一时钟周期内所执行的指令多少) IPC代表了一款处理器的设计架构,一旦该处理器设计完成之后,IPC值就不会再改变了。在这里,IPC值的高低起到了决定性的作用,而频率似乎不再高于一切。
IPC是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。这使得一个程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。
IPC接口就提供了这种可能性。每个IPC方法均有它自己的优点和局限性,一般,对于单个程序而言使用所有的IPC方法是不常见的。
扩展资料:
实现IPC的方式有:
1、通过文件实现:硬盘上或者文件服务器上的文件,允许多个进程可以获取。
2、通过信号实现:一个进程通过发送系统消息向另一个伙伴进程传递信号,但不是用来传递数据的。
3、通过套接字实现:一个进程通过向套接字发送数据流,基于网络接口,向同一电脑上的不同进程或者另一个电脑上的进程传递面向字节的数据。因为套接字通常不会保护消息范围,如果需要确定进程的传递数据的受众范围,需要对数据格式作出协商,即不同进程协商数据传递格式。
4、通过Unix本地套接字实现:和网络套接字类似,但是所有的通信发生在同一内核中。本地套接字使用文件系统作为通信的地址空间。进程们通过引用本地套接字作为inode,多个进程可以同一个套接字交流。
5、通过消息队列实现:消息队列的数据流类似套接字,但通常消息队列需要保护消息范围。消息队列允许多个进程不需要直接连接就能实现消息交流,包括读取消息。
6、通过管道实现:管道是一个单向性数据通道,操作系统会缓存由管道写数据端写入的数据,直到该数据被数据读端读出之后。利用标准输入输出来创建两条管道可以实现两种方式的数据流。(读入和写出)。
7、通过命名管道实现:通过文件系统中的文件来代替标准输入和输出,多个进程可以读和写这个文件(以buffer形式存在)来作为IPC数据。
8、通过共享来实现:创建共享buffer(一块内存内容)来实现相互交流。
9、通过消息传递来实现:多个程序可以使用消息队列或者非操作系统管理的通道来进行相互交流,通常用于构建并发模型。
10、通过文件内存映射来实现:即用RAM映射一个文件,文件的修改可以通过改变文件映射内存的地址来实现,而不是通过输出流实现。
参考资料:百度百科-ipc