由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
CS版 - 一个reader-writer的算法问题
相关主题
请教各位大牛这个问题该怎么解决?谢谢!!Help for C language
请教OS里面monitor 和conditional valuable的区别(linux,unix(转载)借问,我这样仿真的思路对不对,关于事件驱动模拟。 (转载)
请教这段Code到底是哪错了?{help} How can I recover the password of Administrator?
google interview, text mining (转载)问一个简单的C的问题
[转载] 请教关于submit paper.贴一个review给你们看看吧
[合集] How to write a good paper?(C / C++) 关于指针的引用,求助 (转载)
[合集] How to write a good paper?C++奇怪的问踢
问一问题[请教]:关于马达控制器
相关话题的讨论汇总
话题: reader话题: thread话题: write话题: writer话题: unlock
进入CS版参与讨论
1 (共1页)
s**9
发帖数: 207
1
问题:一个writer线程向一个queue写数据,另一个reader线程从中读数据.读的时候如果
为空, reader应当block.
Solution:
In the main thread, initialize a semapore S to 0, initialize a mutex M.
In the write thread, for each write, lock M, write, unlock M, post S.
In the reader thread, for each read: wait S, lock M, read, unlock M.
上面的解法有没有问题? 其它有更好的算法么?
n**x
发帖数: 30
2
是不是写满了就会出问题?如果一直是write的话会满的,但程序里会溢出。
可以这样改:
main thread: S=0,E=N,init M
write thread: wait(E), lock(M), write,unlock(M),post(S)
read thread: wait(S), lock(M), read, unlock(M),pose(E)
ref:Operating System Concepts(7th) 6.6.1
1 (共1页)
进入CS版参与讨论
相关主题
[请教]:关于马达控制器[转载] 请教关于submit paper.
问一个读写锁的问题[合集] How to write a good paper?
VMware onsite[合集] How to write a good paper?
pthread_create inside a constructor问一问题
请教各位大牛这个问题该怎么解决?谢谢!!Help for C language
请教OS里面monitor 和conditional valuable的区别(linux,unix(转载)借问,我这样仿真的思路对不对,关于事件驱动模拟。 (转载)
请教这段Code到底是哪错了?{help} How can I recover the password of Administrator?
google interview, text mining (转载)问一个简单的C的问题
相关话题的讨论汇总
话题: reader话题: thread话题: write话题: writer话题: unlock