计算机操作系统学习笔记--读者-写者问题

    一个数据文件或记录可被多个进程共享。其中有些进程要求读;而另一些进程要求写或修改。

    只要求读的进程称为“Reader进程”,其它进程称为“Writer进程”。

    允许多个Reader进程同时读一个共享对象,不允许一个writer进程和其他Reader进程或writer进程同时访问共享对象。

    所谓读者-写者问题是指保证一个writer进程必须与其他进程互斥地访问共享对象(不一定是临界资源,允许多个reader进程同时访问)的同步问题。

    信号量设置:

    为解决一个writer进程和其他reader进程互斥,设互斥信号量Wmutex(初值为1),设置整型变量ReaderCount(不是信号量)表示正在读的进程数目。

    仅当ReaderCount=0表示无Reader进程在读时,Reader进程才需要执行P操作。若P操作成功,Reader进程便可去读。使ReaderCount+1,原因是:ReaderCount不等于0时,则ReaderCount大于0,说明已有Reader进程在安全的读数据。(没有写进程在写,不需要调节和写进程之间互斥使用的问题,则进程可以安全地去读,所以此时不需要P操作

    

你可能感兴趣的:(操作系统)