在某些情况下,我们需要一个进程(可视为应用程序)调用另外一个进程,两个进程之间能够传递一些参数信息;
提高信号通信的效率,传递大量数据,减轻程序编制的复杂度。
提供三种方式:
1.共享内存模式
2.消息传递模式
3.共享文件模式
最为快捷有效的方式之一,UNIX系统中常被使用。内存共享区的互斥要通过其它机制实现;数据的发送方不关心数据由谁接收,数据的接收方也不关心数据是由谁发送的,存在安全隐患。
消息传递
message-passing:通过操作系统的相应系统调用进行消息传递通讯。分为直接和间接两种:
直接通信方式:点到点的发送
Send (DestProcessName, Message);
Receive (SourceProcessName, Message);
基本思想:进程在发送和接收消息时直接指明接收者或发送者进程ID。
缺点:必须指定接收进程ID。(UNIX的信号机制类似这种形式)
间接通信方式:以信箱为媒介进行传递,可以广播
Send (MailBox, Message);
Receive (MailBox, Message);
间接通信方式(信箱命名法)
基本思想:系统为每个信箱设一个消息队列,消息发送和接收都指向该消息队列。
缺点:必须有一个通讯双方共享的一个逻辑消息队列( UNIX的PIPE,FIFO及IPC消息传递机制都属于这种形式),使用时消息发送者约定写方式打开信箱,消息接受者约定读方式打开信箱或同时读写打开。
优点:很容易建立双向通讯链(只要对信箱说明为读写打开)。
这里通过消息传递方式实现的一种进程间通讯方式
从主进程点击子进程,启动
点击信息回传后