以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 计算机考研交流 』   (http://bbs.xml.org.cn/list.asp?boardid=67)
----  读写者问题-写优先 与 单信号量的区别??  (http://bbs.xml.org.cn/dispbbs.asp?boardid=67&rootid=&id=83537)


--  作者:laos052
--  发布时间:2/16/2010 6:22:00 PM

--  读写者问题-写优先 与 单信号量的区别??
http://www.ieee.org.cn/dispbbs.asp?boardID=67&ID=38901
中是一个写优先的算法

现在问题来了:

只用单信号量
var rwmutex : semaphore :1 ;

假设 P V 操作各耗时: 2 时钟周期
读写操作耗时     : 1 时钟周期

//实际中会存在这种情况,只对内存块的某个字节,修改,读取。 而 PV 操作会涉及,中断,等待队列

操作

如下代码:

reader  i begin  // i=1,2,….  
    P(rwmutex);
    读操作;
    V(rwmutex);
End

Writer  j begin // j = 1,2,….
    P(rwmutex);
    写操作;
    V(rwmutex);
End


设:
读者 : R1、R2、R3
写者 : W1


出现序列 : R1、R2、W1、R3

单信号量,会实现 先来先到的服务-后面来的加入到队列尾部(不考虑有优先级的进程调度问题)

这时,W1 会等待  R1、R2 完成, 然后才到 R3
R1 、R2 都进行了P(rwmutex),V(rwmutex) 一次,

而领一个帖子中的写优先算法,实现的序列都一样,但耗时太多了。

我的分析是不是出现了问题?


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms