(29)--4.7 进程间通信--信号量、消息队列、共享内存.ppt
《(29)--4.7 进程间通信--信号量、消息队列、共享内存.ppt》由会员分享,可在线阅读,更多相关《(29)--4.7 进程间通信--信号量、消息队列、共享内存.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.7 进程间通信进程间通信-信号量、消息队列、共享内存信号量、消息队列、共享内存l信号量的本质是一种数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信。l信号量本身只是一种外部资源的标识。它在此过程中负责数据操作的互斥、同步等功能。l当请求一个使用信号量来表示的资源时,进程需要先读取信号量的值来判断资源是否可用。l对信号量的值进行的增减操作均为原子操作。l信号量是用来解决进程之间的同步与互斥问题的一种进程间通信机制。-2-(一)信号量是什么?-3-(二)为什么要使用信号量?l多个进程可能为了完成同一个任务会相互协作,形成进程间的同步关系l不同
2、进程之间为争夺有限系统资源会进入竞争状态,形成进程间的互斥关系进程间的互斥与同步:临界资源:l临界资源是在同一个时刻只允许有限个(通常只有一个)进程可以访问(读)或修改(写)的资源。l访问临界资源的代码叫做临界区,临界区本身也会成为临界资源。-4-(三)信号量工作原理P 操作:有可用资源(信号量值0),则占用一个资源(给信号量值减1);没有可用资源(信号量值等于0),则被阻塞到,直到系统将资源分配给该进程。V 操作:在该信号量的等待队列中有进程在等待资源,则唤醒一个阻塞进程。如果没有进程等待它,则释放一个资源(给信号量值加1)。信号量包括一个称为信号量的变量和在该信号量下等待资源的进程等待队列
3、,以及对信号量进行的两个原子操作(PV 操作)。信号量对应于某一种资源,取一个非负的整型值。信号量值指的是当前可用的该资源的数量,若它等于0 则意味着目前没有可用的资源。PV 原子操作的具体定义:-5-(四)信号量常用APILinux提供了一组信号量接口来对信号量进行操作,它们声明在头文件sys/sem.h中lsemget函数-创建一个新信号量或取得一个已有信号量lsemop函数-改变信号量的值lsemctl函数-用来直接控制信号量信息可通过man手册查看相关函数的具体使用方法-6-(五)信号量编程创建信号量或获得在系统已存在的信号量,此时需要调用semget()函数。不同进程通过使用同一个信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 29-4.7 进程间通信-信号量、消息队列、共享内存 29 4.7 进程 通信 信号量 消息 队列 共享 内存
限制150内