问答题
设有一缓冲池P,P中含有10个可用缓冲区,一个输入进程将外部数据读入P,另有一个输出进程将P中数据取出并输出。若进程每次操作均以一个缓冲区为单位,试用记录型信号量写出两个进程的同步算法,要求写出信号量的设置。
【正确答案】(1)设置信号量mutex,empty,full
初值,mutex=1,empty=10,full=0
(2)设置wait,signal操作如下。
| 输入进程 | 输出进程 |
| L:读入数据 | L:wait(full) |
| wait(empty) | wait(mutex) |
wait(mutex) 将数据写入一空缓冲区 | 从一满缓冲区中取出数据 signal(mutex) |
| signal(mutex) | signal(empty) |
| signal(full) | 将数据输出 |
| …… | …… |
【答案解析】