-
操作系统课程设计报告
资源介绍
打瞌睡的理发师问题是一种同步问题的抽象描述。计算机系统中的每个进程都可以消费或生产某类资源,当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为
消费者。而当某个进程释放资源时,则它就相当一个生产者。因此此题可看作是n个生产者和1个消费者问题。顾客作为生产者,每到来一个就使计数器count增加1,以便让理发师理发(相当于消费)至最后一个顾客(相当于产品)。并且,第1个到来的顾客应负责唤醒理发师;如果不是第1个到达的顾客,则在有空椅子的情况下坐下等待,否则离开理发店(该消息可由计数器count获得)。所以可以通过一个有界缓冲区把理发师和顾客联系起来。而其中的信号也具有两种功能:一是跟踪资源的理发师和顾客的计数器;二是协调资源的理发师和顾客之间的同步器。通过对信号进行P、V操作来实现有关问题和相关描述。