进程通信

简介:   进程间通信就是在不同进程之间传播或交换信息,进程间控制信息的交换称为低级通信,进程间大批量数据的交换称为高级通信。 进程通信分为3种: 1.共享存储器系统:为了传送大量数据,在存储器中划出一块共享存储区,诸进程可通过对共享存储区进行读数据或写数据以实现通信。

  进程间通信就是在不同进程之间传播或交换信息,进程间控制信息的交换称为低级通信,进程间大批量数据的交换称为高级通信。

进程通信分为3种:

1.共享存储器系统:为了传送大量数据,在存储器中划出一块共享存储区,诸进程可通过对共享存储区进行读数据或写数据以实现通信。

2.消息传递系统:又分为直接通信方式、间接通信方式.

3.管道通信系统:向管道提供输入的发送进程,以字符流方式将大量的数据送入管道,而接收进程从管道中接收数据

 

消息缓冲队列通信机制:

  由于消息缓冲机制中所使用的缓冲区为公用缓冲区,因此使用消息缓冲机制传送数据时,两通信进程必须满足如下条件:

第一,在发送进程把写入消息的缓冲区挂入消息队列时,应禁止其他进程对该消息队列的访问,否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息时,也应禁止其他进程对该队列的访问。

第二,当缓冲区中无消息存在时,接收进程不能接收到任何消息;而发送进程是否可以发送消息,则只由发送进程是否能够申请到缓冲区决定。

 

缓冲队列通信机制中的数据结构:

(1)消息缓冲区

    typedefstruct message buffer

    {

       sender;  //发送者进程标识符

       size;  //消息长度

       text;  //消息正文

       next;  //指向下一个消息缓冲区的指针

    }

(2)PCB中有关进程通信的数据项

    typedefstruct message block

    {

      …

      mq;  //消息队列队首指针

      mutex;//消息队列互斥信号量,初值为1

      sm;  //消息队列资源信号量,用于消息队列中的消息计数,初值为0

      …

    }

相关文章
|
1月前
|
存储 Unix Linux
进程间通信方式-----管道通信
【10月更文挑战第29天】管道通信是一种重要的进程间通信机制,它为进程间的数据传输和同步提供了一种简单有效的方法。通过合理地使用管道通信,可以实现不同进程之间的协作,提高系统的整体性能和效率。
|
1月前
|
消息中间件 存储 供应链
进程间通信方式-----消息队列通信
【10月更文挑战第29天】消息队列通信是一种强大而灵活的进程间通信机制,它通过异步通信、解耦和缓冲等特性,为分布式系统和多进程应用提供了高效的通信方式。在实际应用中,需要根据具体的需求和场景,合理地选择和使用消息队列,以充分发挥其优势,同时注意其可能带来的复杂性和性能开销等问题。
|
2月前
|
存储 Python
Python中的多进程通信实践指南
Python中的多进程通信实践指南
25 0
|
7月前
|
安全
【进程通信】信号的捕捉原理&&用户态与内核态的区别
【进程通信】信号的捕捉原理&&用户态与内核态的区别
|
7月前
|
Shell
【进程通信】利用管道创建进程池(结合代码)
【进程通信】利用管道创建进程池(结合代码)
|
3月前
|
Java Android开发 数据安全/隐私保护
Android中多进程通信有几种方式?需要注意哪些问题?
本文介绍了Android中的多进程通信(IPC),探讨了IPC的重要性及其实现方式,如Intent、Binder、AIDL等,并通过一个使用Binder机制的示例详细说明了其实现过程。
374 4
|
4月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
4月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
4月前
|
消息中间件 存储 安全
python多进程并发编程之互斥锁与进程间的通信
python多进程并发编程之互斥锁与进程间的通信
|
4月前
|
Python
Python IPC深度探索:解锁跨进程通信的无限可能,以管道与队列为翼,让你的应用跨越边界,无缝协作,震撼登场
【8月更文挑战第3天】Python IPC大揭秘:解锁进程间通信新姿势,让你的应用无界连接
28 0

相关实验场景

更多