信号量
1、信号量的基本概念
- 信号量:类似于一个计数器,当信号量的值大于0时,记录临界资源的个数,当信号量等于0时,对此信号量执行P操作(-1)进程访问临界资源时必须阻塞,当计数器减到0的时候,其他进程想要访问资源,就需要挂起等待,直到该进程执行完操作, 信号量的值大于0,或者有其他进程在此信号量上执行了V操作(+1)。
(ipcs -s //查看信号量 ipcrm -s semid //删除信号量)
- 临界资源 :同一时刻只能被一个进程访问的资源
- 临界区 :访问临界资源的代码区域
- 原子操作:不能被中断的操作,一旦开始,必须执行完成,中间不能被暂停
- P,V操作 :(都是原子操作)P操作(-1) 占据资源之前
V操作(+1)释放资源时