linux实现读写者问题算法,Linux读者与写者的问题实现.doc Linux读者与写者的问题实现
《⽹络操作系统》
课程设计报告
题 ⽬ Linux下读者与写者的问题实现
姓 名 钱兵 学 号
同 组 者 张⽟洁 专 业 ⽹络⼯程2班
指导教师 陈卫 成 绩
⽹络⼯程系
2013年 1 ⽉1⽇
⽬录
1. 设计⽬的与要求 .......................................P3
2. 设计思想 ............................................ P3
3. 设计分析 .............................................P3
4. 程序实现 ............................................ P5
5、 设计原理.............................................. P6
6.程序调试 ................................................P7
7.源程序代码...............................................P8
8. 程序测试结果 ........................................P12
9.⼼得与体会 ....................................... ....P13
10.参考⽂献 .............................................P13
⼀、设计⽬的与要求
l. ⽤信号量来实现读者写者问题。
2.理解和运⽤信号量、PV原语、进程间的同步互斥关系等基本知识。
读者写者问题的定义如下:有⼀个许多进程共享的数据区,这个数据区可以是⼀个⽂件或者主存的⼀块空间;有⼀些只读取这个数据区的进程(Reader)和⼀些只往数据区写数据的进程(Writer),此外还需要满⾜以下条件:
(1)任意多个读进程可以同时读这个⽂件;
(2)⼀次只有⼀个写进程可以往⽂件中写;
(3)如果⼀个写进程正在进⾏操作,禁⽌任何读进程度⽂件。
我们需要分两种情况实现该问题:
读优先:要求指⼀个读者试图进⾏读操作时,如果这时正有其他读者在进⾏操作,他可直接开始读操作,⽽不需要等待。
写优先:⼀个读者试图进⾏读操作时,如果有其他写者在等待进⾏写操作或正在进⾏写操作,他要等待该写者完成写操作后才开始读操作。读者写者问题可以这样的描述, 有⼀写者和⼀读者, 写者在写同⼀本书, 读者也在读这本书, 多个读者可以同时读这本书但是,只能有⼀个写者在写书 并且读者写者优先,
也就是说读者和写者同时提出请求时,读者优先当读者提出请求时需要有⼀个互斥操作, 另外, 需要有⼀个信号量来当前是否可操作本设计⽅案就是通过利⽤记录型信号量对读者写者问题的解决过程进⾏模 拟演⽰形象地阐述记录型信号量机制的⼯作原理
每个线程按相应测试数据⽂件的要求,进⾏读写操作。请⽤信号量机制分别实现读者优先和写者优先的读者-写者问题。
-写者问题的读写操作限制:
1)写-写互斥,即不能有两个写者同时进⾏写操作
(2)读-写互斥,即不能同时有⼀个读者在读,同时却有⼀个写者在写
linux怎么读文件内容(3)读-读允许,即可以有⼆个以上的读者同时读
将所有的读者和所有的写者分别放进两个等待队列中,当读允许时就让读者队列释放⼀个或多个读者,当写允许时,释放第⼀个写者操作。读者写者问题的定义如下:有⼀个许多进程共享的数据区,这个数据区可以是⼀个⽂件或者主存的⼀块空间;有⼀些只读取这个数据区的进程(Reader)和⼀些只往数据区写数据的进程(Writer),此外还需要满⾜以下条件:1)任意多个读进程可以同时读这个⽂件;2) ⼀次只有⼀个写进程可以往⽂件中写;3)如果⼀个写进程正在进⾏操作,禁⽌任何读进程度⽂件。我们需要分两
种情况实现该问题:
读优先:要求指⼀个读者试图进⾏读操作时,如果这时正有其他读者在进⾏操作,他可直接开始读操作,⽽不需要等待。写优先:⼀个读者试图进⾏读操作时,如果有其他写者在等待进⾏写操作或正在进⾏写操作,他要等待该写者完成写操作后才开始读操作。
读者优先的附加限制:如果⼀个读者申请进⾏读操作时已有另⼀读者正在进⾏读操作,则该读者可直接开始读操作。
写者优先的附加限制:如果⼀个读者申请进⾏读操作时已有另⼀写者在等待访问共享资源,则该读者必
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论