并发进程间的制约有哪2种。引起制约的原因是什么?
两种:直接制约和间接制约。
引起制约的原因:这种制约可分为直接制约和间接制约,进程间的直接制约是被制约进程和制约进程之间,存在着使用对方资源的需求。
同步是因合作进程之间协调彼此的工作而控制自己的执行速度,即因相互合作,相互等待而产生的制约关系,而互斥是进程之间竞争临界资源而禁止两个以上的进程同时进入临界区所发生的制约关系。
扩展资料:
是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。
比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程A因为读取不到信息而被阻塞。而当进程B产生信息放入缓冲区时,进程A才会被唤醒。
参考资料来源:百度百科-并发性
直接制约和间接制约。直接制约是由并发进程互相共享对方的私有资源所引起的。间接制约是由竞争共有资源而引起的。
并发进程因为共享资源而产生相互之间的制约关系,可以分为两类:
1,互斥关系,指进程之间因相互竞争使用独占型资源(互斥资源)所产生的制约关系。
2,同步关系,指进程之间为协同工作需要交换信息、相互等待而产生的制约关系。本题中两个进程之间的制约关系是同步关系,进程B必须在进程A将数据放入缓冲区后才能从缓冲区中读出数据。此外,共享的缓冲区一定是互斥访问的,所以它们也具有互斥关系。
扩展资料:
实现方法:
do{extrysection;//进入区
criticalsection;//临界区
exitsection;//退出区
remaindersection;//剩余区
}while(true)。
并发进程是指在同一个操作系统上并发执行的进程。这些进程处于从创建到终止之间的生存周期中的某个状态,如执行状态或等待状态。
参考资料来源:百度百科-并发进程
1、直接的制约关系
原因:为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。
2、间接制约关系
原因:当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。
扩展资料
解决并发问题基本原理
两个或多个进程可以通过简单的信号进行合作,一个进程可以被迫在某一个位置停止,直到它接到某一个特定的信号。复杂的合作需求都可以通过适当的信号结构完成。只需要一个特殊的变量(整数型):称为信号量
信号量的三个操作:
1、信号量s可以初始化成非负数
用于互斥:s=1
用于同步:s>=0
2、semWait(s)进程请求分配一个资源,操作使信号量减1,若为负。进程阻塞。否则继续执行。
3、semSignal(s)进程释放一个资源,操作使信号量加1,若小于或等于0。则阻塞的进程被解除阻塞。
参考资料来源:百度百科——并发性
2013-06-09
直接制约是由并发进程互相共享对方的私有资源所引起的。
间接制约是由竞争共有资源而引起的。