网站开发过程会遇到的问题,小程序怎么添加手机桌面,微信做单子的网站源码,设计产品目录
前言
进程通信#xff08;IPC#xff09;
进程通信的方法
共享存储
消息传递
直接通信方式
间接通信方式#xff08;信箱通信方式#xff09;
管道通信
本节思维导图 前言
#xff01;#xff01;#xff01;回归#xff01;#xff01;#xff01;
…目录
前言
进程通信IPC
进程通信的方法
共享存储
消息传递
直接通信方式
间接通信方式信箱通信方式
管道通信
本节思维导图 前言
回归
进程通信IPC
概念进程间通信Inter-Process CommunicationIPC是指两个进程之间产生数据交互 进程间通信需要依赖于操作系统内核的支持为什么 1、进程是分配资源的单位包括内存地址空间因此各进程拥有的内存地址空间相互独立 2、出于安全性考虑一个进程不能直接访问另一个进程的地址空间
你只能登你的QQ但是不能登我的QQ
进程通信的方法
共享存储
概念某个进程申请共享存储区在该区中写入数据其它进程就可以从中读取存放的数据
注意事项
1、为避免出错各个进程对共享空间的访问应该是互斥的即一个进程在访问共享存储区时其它的进程不能访问
2、共享存储还可以细分为基于数据结构的共享和基于存储区的共享
基于数据结构的共享共享内存空间放什么数据、怎么放都是操作系统规定好的比如共享空间里只能放一个长度为10的数组这种共享方式速度慢限制多是一种低级通信方式基于存储区共享操作系统在内存中划出一片共享内存区在这里放什么数据怎么放都是由通信进程控制拥有高度自治权这种共享方式速度很快是一种高级通信方式
消息传递
概念进程间的数据交换以格式化的信息为单位进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换格式化的消息由消息头和消息尾组成消息头中包含发送进程ID【谁发】、接受进程ID【谁收】、消息长度等格式化信息消息尾中包含要传递的具体数据 直接通信方式
概念消息发送进程要指明接受进程的ID 间接通信方式信箱通信方式
概念通过“信箱”间接地通信
特点 操作系统允许多个进程往同一个信箱send消息也可以多个进程从一个信箱中receive消息 管道通信
概念“管道”是一个特殊的共享文件(pipe文件)本质就是在内存中开辟一个大小固定的内存缓冲区 特点
1、管道中数据的流动是单向的且先进先出(FIFO相当于一个队列只能先读取队头元素这也是它区别于共享存储的原因在实际情况下管道其实是一个循环队列即如果读数据速度小于写数据速度当后面的空间被填满时由于前面的数据已经被读取了所以再写入数据时可以在前面的空出来的地方写数据需要注意的是此时仍然遵循先进先出的性质循环队列的队头是在不断变化的)
夹带私货时间设计循环队列http://t.csdnimg.cn/9weVt
2、管道只能采用半双工通信单向传递某一段时间内只能实现单向的传输如果要实现全双工通信则需要设置两个管道
3、各进程要互斥的访问管道由操作系统实现
4、管道中的数据可以边读边写
只要管道未空读进程就可以从管道读取数据只要管道未满写进程就可以往管道写数据
5、 管道中的数据一旦被读出就彻底消失因此多个进程读同一个管道时可能会错乱对此通常有两种解决方案
规定一个管道允许多个写进程一个读进程2014年408真题高教社官方答案规定一个管道可以有多个写进程多个读进程但系统会让各个读进程轮流从管道中读取数据Linux操作系统的方案在实际应用过程中第二种方案更适用
本节思维导图 ~over~