您当前的位置:《操作系统原理》听课笔记:23
《操作系统原理》听课笔记:23

读者/写者问题

为多个进程访问一个共享数据区建立一个通用模型,若干进程只能读数据,若干进程只能写数据。

允许多个读者进程同时读数据。

不能允许多个写者进程同时写数据,即只能互斥写数据。

若有写者进程正在写数据,则不允许读者进程读数据。

读者优先的方法:当一个读者在读数据时,另外的读者也可以进入读数据。只有所有读者都退出才允许写者进入写数据。

写者优先:为了防止读者优先可能导致饥饿,当数据区被读者占用时 ,后续紧邻到达的读者可以继续进入,若这是有一个写者到来且阻塞等待,则写者后面到来的读者必须阻塞等待写者。

管程

管程是一种在程序设计级控制进程互斥与同步的机制,具有信号量的功能。

管程是由过程、变量及数据结构等组成的集合。典型的管程包括三个部分:

1、对局部于冠城的共享数据结构的说明

2、对该数据结构进行操作的一组过程。

3、对该数据结构初始化的语句。

管程的使用:管程本省被作为一种临界区,进程可以再任何地方调用管程中的过程,但不能在管程外直接访问管程内的数据结构。

当一个进程调用管程中的过程时,首先检查管程中是否有其他的活跃进程,如果有则阻塞调用进程。

 

收藏状态
收藏本课程的同学
相关课程