下载此文档

第四章进程间通信-管道和信号.pptx


文档分类:通信/电子 | 页数:约71页 举报非法文档有奖
1/71
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/71 下载此文档
文档列表 文档介绍
第四章 进程间通信-管道和信号
1
2
进程间通信-PIPE
进程间通信―FIFO
3
信号中断处理
进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间; B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到; C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(们)发生了某种事件(如进程终止时要通知父进程); D、资源共享:多个进程之间共享同样的资源。为了做到这一点,需要内核提供锁和同步机制; E、进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。
2021/3/4 星期四
2
进程间通信的方式
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了下来,
其中,最初Unix IPC包括:管道、FIFO、信号;System V IPC包括:System V消息队列、System V信号量、System V共享内存区;Posix IPC包括: Posix消息队列、Posix信号量、Posix共享内存区。
2021/3/4 星期四
3
Linux进程通信方式
linux下进程间通信的几种主要手段简介:
1、管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
2、信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数signal外,。
2021/3/4 星期四
4
Linux进程通信方式
3、报文(Message)队列(消息队列):消息队列是消息的链接表。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
4、共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
5、信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
2021/3/4 星期四
5
管道
管道的实质是一个内核缓冲区,进程以先进先出的方式从缓冲区中存取数据:管道一端的进程顺序地将数据写入缓冲区,另一端的进程则顺序地读出数据。
该缓冲区可以看作是一个循环队列,读和写的位置都是自动增加的,不能随意改变,一个数据只能被读一次,读出以后在缓冲区中就不复存在了。
当缓冲区读空或写满时,有一定的规则控制相应的读进程或写进程是否进入等待队列;当空的缓冲区有新数据写入或满的缓冲区有数据读出时,就唤醒等待队列中的进程继续读写。
2021/3/4 星期四
7
管道
管道实际上以类似文件的方式与进程交互,但它并不与磁盘打交道,所以效率要比文件操作高很多。它有两个局限性:
(1)支持半双工;
(2)只有具有亲缘关系的进程之间才能使用这种无名管道;
使用管道的注意事项:
,在所有数据被读取之后,read函数返回值为0,以指示到了文件结束处;
,则产生SIGPIPE信号。如果忽略该信号或者捕捉该信号并处理程序返回,则write返回-1,errno设置为EPIPE
2021/3/4 星期四
8
管道示例
例如$ ls | more
功能是将ls命令的输出作为more命令的输入,并显示more的最终输出。这里ls与more要由两个进程来完成。这两个进程的通信就通过父进程shell创建管道。ls向管道输入数据,more从管道读出数据。
2021/3/4 星期四
9
stdin
stdin
stdout
stdout
stderr
stderr
ls
more
管 道 连 接

第四章进程间通信-管道和信号 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数71
  • 收藏数0 收藏
  • 顶次数0
  • 上传人无需盛会
  • 文件大小664 KB
  • 时间2021-06-29