进程制约的两种关系
1、间接相互制约关系。同处于一个系统中的进程,访问共享系统资源,只能有一个进程访问
2、直接相互制约关系。进程A通过单缓冲想进程B提供数据,缓冲满时,B取出数据后唤醒A,
临界资源
临界资源,采取互斥方式,实现对这种资源进行共享
生产者-消费者问题
array表示缓冲池
in 表示下一个投放产品的缓冲区
out 表示下一个可从中获取产品的缓冲区
in = out 表示缓冲池空
counter 表示产品的数量,放入+1 ,取走-1
临界区:多个进程必须互斥的对它访问,每个进程中访问临界资源的那段代码成为临界区。
entry section 进入区,检查临界资源访问标志是否被访问
critical section 临界区,访问临界资源的代码
exit section 退出区,将访问标志恢复
同步机制遵循的规则
1、空闲让进
2、忙则等待
3、有限等待
4、让权等待
整型信号量
定义为一个用于表示资源数目的整型量S
仅能通过两个标准的原子操作wait(S)和signal(S)来访问
成为P、V操作
描述为
wait(S): while S <= 0 do no-op;
S:=S-1 ;
signal(S): S:S+1 ;
两个原子操作,执行时不可中断,该机制未遵循让权等待的准则
记录型信号量
出现多个进程等待访问同一临界资源的情况
处理需要一个用于代表资源数目的整型变量value,还应增加一个进程链表指针L,链接所有等待进程
采用的记录型的数据结构