167

问答题 167 /170

有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果。 (1)试说明A、B两进程之间存在什么样的制约关系? (2)为保证这两个进程能正确地打印出各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。要求给出信号量的含义和初值。

参考答案

AB两进程之间存在互斥的制约关系。因为打印机属于临界资源,必须一个进程使用完之后另一个进程才能使用。

mutex:用于互斥的信号量,因为只有一台打印机,所以初值为1
            进程A                               进程B
            ...                                   ...
         P(mutex);                             P(mutex);
        申请打印机;                           申请打印机;
        使用打印机;                           使用打印机;
         V(mutex);                              V(mutex);