进程同步:网络
在多道程序系统中,因为资源共享或进程合做,使进程间造成间接相互制约或直接相互制约,这须要用进程互斥与同步机制来协调两种制约关系数据结构
在多道程序系统中,诸多进程能够共享各种资源,临界资源一次只能供一个进程使用,因此进程对临界资源必须是互斥使用,每一个进程在进入临界区前,必须先申请,经容许后方能进入工具
同步机制应遵循的准则:.net
空闲让进计算机网络
忙则等待指针
有限等待blog
让权等待进程
解决互斥的锁机制:资源
进程进入临界区前,经过锁变量来判断临界资源是否被占用get
锁机制只能判断临界资源是否被占用,因此它解决了互斥问题,但它不能肯定前面的进程是否完成,所以不能用在进程同步问题中
信号量机制是一种卓有成效的进程同步工具,被普遍应用与单处理机和多处理机中,以及计算机网络中
信号量机制是指用PV操做来对信号量进行处理
什么是信号量
信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程,信号量的值与相应资源的使用状况有关
当信号量的值大于0时,表示当前可用资源的数量
当信号量的值小于0时,其绝对值表示等待使用该资源的进程个数
信号量的值只能由PV操做来改变
用S表示资源的数量,执行一次P操做,意味着请求分配一个单位的资源,所以S的值减一,当S<0时,表示没有资源可供分配,请求者必须等待别的进程释放该类资源,它才能运行下去
执行一个V操做,意味着释放一个单位的资源,所以S的值加一,当S<0时,表示有某些进程正在等待该资源,所以要唤醒一个等待状态的进程使之运行下去