系统以并发方式运行的各个进程,不可避免地要共同使用一些共享资源以及相互之间的通信。因此,对于一个完善的多进程操作系统来说,系统必须具有完各的同步和通信机制。 为了实现各进程之间的合作和无冲突的运行,在各进程之间必须建立一些制约关系,其中 一种制约关系叫做直接制约关系,另一种制约关系则叫做间接制约关系。 直接制约关系源于进程之间的合作。例如,有进程A和进程B两个进程,它们需要通过访问同一个数据缓冲区合作完成一项工作,进程A负责向缓冲区写入数据,进程B负责从缓 冲区读取该数据。显然,当进程A还未向缓冲区写入数据时(缓冲区为空时),进程B因不能从缓冲区得到有效数据而应处于等待状态;只有等