什么是进程的互斥?为什么会有进程的互斥要求?

1个回答

  • 两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥.在多道程序环境下,存在着临界资源,它是指多进程存在时必须互斥访问的资源.也就是某一时刻不允许多个进程同时访问,只能单个进程的访问.我们把这些程序的片段称作临界区或临界段,它存在的目的是有效的防止竞争条件又能保证最大化使用共享数据.而这些并发进程必须有好的解决方案,才能防止出现以下情况:多个进程同时处于临界区,临界区外的进程阻塞其他的进程,有些进程在临界区外无休止的等待.除此以外,这些方案还不能对CPU的速度和数目做出任何的假设.只有满足了这些条件,才是一个好的解决方案.访问临界资源的循环进程可以这样来描述:Repeat entry section Critical sections; exit section Remainder sectioni; Until false 编辑本段实现进程互斥 为实现进程互斥,可以利用软件的方法,也可以在系统中设置专门的同步机制来协调多个进程,但是所有的同步机制应该遵循四大准则:1.空闲让进 当临界资源处于空闲状态,允许一个请求进入临界区的进程立即进入临界区,从 而有效的利用资源.2.忙则等待 已经有进程进入临界区时,意味着相应的临界资源正在被访问,所以其他准备进 入临界区的进程必须等待,来保证多进程互斥.3.有限等待 对要求访问临界资源的进程,应该保证该进程能在有效的时间内进入临界区,防 止死等状态.4.让权等待 当进程不能进入临界区,应该立即释放处理机,防止进程忙等待.早期解决进程互斥问题有软件的方法和硬件的方法,如:严格轮换法,Peterson的解决方案,TSL指令,Swap指令都可以实现进程的互斥,不过它们都有一定的缺陷,这里就不一一详细说明,而后来Dijkstra提出的信号量机制则更好的解决了互斥问题.解决进程互斥还有管程,进程消息通信等方式.希望可以解决你的疑惑!