进程同步定义为:把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步。也就是说进程之间是异步执行的,同步即是使各进程按一定的制约顺序和速度执行
同步协调准则
空闲让进。无进程处于临界区时,若有进程要求进入临界区则立即允许其进入
忙则等待。当已有进程进入其临界区时,其他试图进入各自临界区的进程必须等待,以保证诸进程互斥地进入临界区
有限等待。有若干进程要求进入临界区时,应在有限时间内使一进程进入临界区,即它们不应相互等待而谁也不进入临界区
让权等待。对于等待进入临界区的进程必须释放其占有的 CPU
信号量
P 操作和 V 操作
P(sem)操作的过程是将信号量 sem 值减 l,若 sem 的值成负数,则调用 P 操作的进程暂停执行,直到另一个进程对同一信号量做 V 操作。V(sem)操作的过程是将信号量sem 值加 1,若 sem 的值小于等于 0,从相应队列(与 sem 有关的队列)中选一个进程,唤醒它