两种:直接制约和间接制约。
引起制约的原因:这种制约可分为直接制约和间接制约,进程间的直接制约是被制约进程和制约进程之间,存在着使用对方资源的需求。
同步是因合作进程之间协调彼此的工作而控制自己的执行速度,即因相互合作,相互等待而产生的制约关系,而互斥是进程之间竞争临界资源而禁止两个以上的进程同时进入临界区所发生的制约关系。
扩展资料:
是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。
比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程A因为读取不到信息而被阻塞。而当进程B产生信息放入缓冲区时,进程A才会被唤醒。
参考资料来源:百度百科-并发性
.有一个充分大的池子,两个人分别向池中扔球,甲扔红球,乙扔蓝球,一次扔一个,开始
时池中有红、蓝球各一个,要求池中球满足条件
红球数
1
≤
———
≤
2
蓝球数
用
P
、
V
操作描述两个进程。
Semaphore red =1
Semaphore blue =0
Void p1 ( )
{
While(true)
{
Semwait (red )
扔入一个红球;
Semsignal(blue)
}
}
Void p2( )
{
While(true)
{
Semwait(blue)
扔入一个蓝球;
Semsignal(red)
Semsignal(red)
}
}
Void main()
{parbegin(p1(),p2())}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)