一、写者优先的原则
- 【读者】与【写者】都等待的时候,【写者】优先访问【缓冲区】
二、进程优先级互斥的实现
- 【互斥信号量】——
rw_sem
用于读者写者之间的互斥,rw_sem
的初值为1 - 【读者】对
rw_sem
的操作——读者申请到rw_sem
后,在读操作前立即释放 - 【写者】对
rw_sem
的操作——写者申请到rw_sem
后,占用rw_sem
直到阻塞在【等待队列】的写者都完成工作
三、共享数据(临界资源)的互斥
- 【信号量
file_src_sem
】
四、读者写者等待进程数量
- rc——当前在读的读者进程数
- wc——当前阻塞排队的写者进程数
rc, wc也是多个读者/写者访问的临界资源,所以也需要【信号量】进行保护——
rc_sem
(多个读者之间互斥),wc_sem
(多个写者之间互斥)