进程的同步与通信
进程间的联系
- 资源共享关系
- 相互合作关系
临界资源的含义
采取互斥的方式,实现共享的资源 ,一次只能供一个进程使用
临界资源典型案例
临界区的含义
每个进程中访问临界资源那段程序称为临界区
同步机制遵循原则
为了实现进程互斥,设置同步机制来协调诸进程,但进程必须遵循下述4条准则:
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
信号量机制
记录型信号量机制
信号量除初始化外,仅能通过两个标准的原子操作
wait(s)
和signal(s)
来访问,也称为P、V
操作,这是两个原子操作
P、V操作
——执行时不可中断的,同时也是互斥的
P–wait(s)
V–signal(s)
相应的,wait(s)和signal(s)操作可描述如下:
void wait(static semaphore s)//申请资源
{
s.value--;//表示资源数目
if(s.value<0)
block(s,L)