![](https://cos-cdn.shuashuati.com/pipixue-web/2020-1231-2005-12/ti_inject-812ce.png)
某数据库有 3 写进程 writer , 10 个读进程 reader ,它们之间读写操作的互斥要求是: ( 1 )写进程正在写该数据库时,不能有其他进程读写该数据库; ( 2 )读进程之间不互斥,可以同时读该数据库; ( 3 )如果有若干进程正在读该数据库,一个写进程正等待写,则随后欲读的进程也不能读该数据库,需等待写进程先写。 试使用记录型信号量控制上述功能的正确协作,在下面伪代码框架中补全缺少的代码。每个空白计 1 分。 信号量 rw_mutex= 空白 1 ; / 读写数据库访问互斥 信号量 mutex= 空白 2 ; / 共享变量访问互斥 int read_count=0; / 同时读的计数 void writer() { while( true ) { P( 空白 3); 数据库写操作 V(rw_mutex ) } } void reader() { while( true ) { P( 空白 4); read_count++ ; if (read_count==1) P( 空白 5); V( 空白 6 ) 数据库读操作 P( 空白 7); read_count- - ; if (read_count==0) V( 空白 8); V(mutex ) } } void main() { 创建 3 个 writer 进程 创建 10 个 reader 进程 其他处理 }