进程同步与通信
进程同步与通信 操作系统教程: http://c.biancheng.net/cpp/html/2592.html 进程的同步与互斥是指进程在推进时的相互制约关系。 # 进程同步 :它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。如生产者-消费者问题,哲学家进餐问题。 # 进程互斥 :它主要源于资源共享,是进程之间的间接制约关系。在多道系统中,每次只允许一个进程访问的资源称为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。如访问控制台、打印机。 为禁止两个进程同时进入临界区,同步机制应遵循以下准则: 空闲让进:临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区。 忙则等待:当已有进程进入临界区时,其他试图进入临界区的进程必须等待。 有限等待:对请求访问的进程,应保证能在有限时间内进入临界区。 让权等待:当进程不能进入临界区时, 应立即释放处理器,防止进程忙等待 。 进程同步和互斥在不同的系统中有不同的实现。 Windows中的进程同步方法有信号量、事件,互斥方法有临界区、互斥锁。 Linux中的进程同步方法有?? 互斥方法有?? 信号量是一种功能较强的机制, 可用来解决互斥与同步 的问题,它只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作”和“V操作”。 Wait 原语的实现 void