GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 郑谦益 第9章

上传人:E**** 文档编号:89400031 上传时间:2019-05-24 格式:PPT 页数:9 大小:28KB
返回 下载 相关 举报
GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  郑谦益 第9章_第1页
第1页 / 共9页
GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  郑谦益 第9章_第2页
第2页 / 共9页
GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  郑谦益 第9章_第3页
第3页 / 共9页
GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  郑谦益 第9章_第4页
第4页 / 共9页
GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目  教学课件 ppt 作者  郑谦益 第9章_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 郑谦益 第9章》由会员分享,可在线阅读,更多相关《GNU_Linux编程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 郑谦益 第9章(9页珍藏版)》请在金锄头文库上搜索。

1、第9章 进程通信,郑谦益、韩京宇,概述,管道 IPC(inter-process communication) 消息队列 信号量 共享内存 Socket接口,9.2 管道,管道是在同一台计算机上两个进程之间进行数据交换的一种机制。它具有单向、先进先出、无结构的字节流; 管道有两个端点,一端用于写入数据,而另一端用于读出数据,当数据从管道中读出后,这些数据将被移走,当进程从空管道中读取或写入已满的管道时,进程将被挂起,直到有进程向管道中写入数据或从管道中读取数据,此时,处于等待状态的进程具有重新获得CPU的机会。 根据管道提供应用接口的不同,管道可分为命名管道和无名管道。,9.2 管道,无名管道

2、 无名管道是在内核中建立一条管道,管道有两个端,一端用于写,另一端用于读,从管道写入端写入的数据可从管道的读出端读出。,9.2 管道,int pipe(int fd2) 创建无名管道 fd 包含两个文件描述符的数组,fd0用于读,fd1用于写 成功,返回0,否则,返回-1,9.2 管道,读管道 如果管道中没有数据,通常,读进程将被阻塞,直到管道中有数据为止;如果管道写端没有任何写进程,将返回0,表示文件的结束。 写管道 假设要向管道中写入n个字节,而管道缓冲区中剩余空间小于n个字节,通常,写进程被阻塞,直到管道缓冲区中有大于或等于n个字节的剩余空间,如果管道的读端被关闭,则会产生SIGPIPE

3、信号,返回-1,errno设置为EPIPE。,9.3 IPC,IPC便是通过在内核中建立IPC对象实现多个进程之间的通信。IPC的内容包括:信号量、消息队列和共享内存。,9.4 信号量,信号量与其他IPC不同,并没有在进程之间传送数据,信号量用于多进程在存取共享资源时的同步控制,就像交通路口的红绿灯一样,当信号量的值大于0时,表示绿灯,允许通过;当信号量的值等于0时,表示红灯,必须停下来等待绿灯才能通过。,9.4 信号量,int semget(key_t key, int nsems, int semflg) key IPC的对象标识 nsems 信号量的数量 semflg 存取权限或创建条件 成功,返回信号量的标识,否则,返回-1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号