信号量
文章目录 1 信号量简介 2 信号量结构 3 信号量接口 3.1 设计图示 3.2 示例代码(未完成...按照下面的代码,进程A和进程B始终无法产生冲突,待调试) 1 信号量简介 命名管道以及消息队列用于一个进程给另一个进程发送数据 与之相比,信号量并不是为了进程间通信,而是提供了一个多个进程间共享的计数器 计数器为正数,进程可以获取信号量(一个或者多个),这时候共享计数器减去进程拿走的数字;也可以放回信号量(一个或者多个),这时候共享计数器加上放回的数字 最重要的是:进程获取信号量时,会得到操作系统支持 [操作系统提示信号量不够减并且进程返回] 或者 [操作系统把调用进程挂起,直到信号量足够减去进程要求的数字时,调用进程返回] 2 信号量结构 IPC对象 信号量集 信号量不能单独表示,它存在于信号量集结构中:一个信号量集可能包含多个信号量 一个信号量集合对应一个IPC对象,使用一个sem_ds结构表示 3 信号量接口 3.1 设计图示 设计三个进程: 进程A负责创建信号量集/IPC 对象 并且该信号量拥有两个信号 信号量初始值设计为10 进程A对信号量1和2进行获取释放操作(一次9个),进程B01,B02分别对信号量01 02进行获取释放操作(一次2个),因为双方进行异步操作,势必发生冲突 3.2 示例代码(未完成…按照下面的代码,进程A和进程B始终无法产生冲突,待调试) 进程A