操作系统张霞版课后重要习题答案剖析
作业
第三章 习题11
设信号量empty为生产者进程的私用信号量,初值为m,表示空缓冲区的数目。
信号量full为消费者进程的私用信号量,初值为0,表示已用缓冲区的数目。
设第i块缓冲区的公用信号量为mutex[i]保证生产者进程和消费者进程对同一块缓冲区操作的互斥,初值为1。
第三章 习题11
Producer(data)
Begin
P(empty); //获取空缓冲区
选择一个空缓冲区i;
P(mutex[ i ] ); //进入临界区
送数据入缓冲区i;
V(mutex [ i ] ) ; //离开临界区
V(full) ; //满缓冲区加1
End
第三章 习题11
Consumer(data)
Begin
P(full); //获取满缓冲区
选择一个满缓冲区i;
P(mutex[ i ] ); //进入临界区
取缓冲区i中的数据;
原创力文档

文档评论(0)