操作系统张霞版课后重要习题答案.pptx

操作系统张霞版课后重要习题答案

作业第三章 习题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中的数据; V(mutex [ i ] ) ; //离开临界区 V(empty);//空缓冲区数加1 End习题12所用信号量和其他变量设置如下:设互斥信号量RW_mutex,初值为1,用于实现写者与其他写者或读者互斥地访问共享的数据对象。设整型读者计算器变量RC,初值为0,用于对读者数进行计数。 设互斥信号量R_mutex,初值为1,用于实现诸读者互斥地访问读者计数器变量。习题12读者 写者P(R_mutex);P(RW_mutex);若RC=0则 P(RW

文档评论(0)

1亿VIP精品文档

相关文档