教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 文秘资料 >

用信号量机制实现的写者优先的算法如

来源:网络收集 时间:2025-12-27
导读: 用信号量机制实现的写者优先的算法如 : Var Mut1,Mut2,Wmutex,Fmutex:Semaphore; Rcount,Wcount:integer; Mut1:=Mut2:=WMutex:=Fmutex:=1; Rcount:=Wcount:=0; //Fmutex -- 读者写者互斥 //WMutex -- 写者互斥 //Mut1 -- access to Rcount 竞争Fmutex //Mut

用信号量机制实现的写者优先的算法如 :

Var Mut1,Mut2,Wmutex,Fmutex:Semaphore;

Rcount,Wcount:integer;

Mut1:=Mut2:=WMutex:=Fmutex:=1;

Rcount:=Wcount:=0;

//Fmutex --> 读者写者互斥

//WMutex --> 写者互斥

//Mut1 --> access to Rcount && 竞争Fmutex

//Mut2 --> access to Wcount

Writer:begin

Wait(Mut1);

Wcount:=Wcount+1;

If Wcount=1 then Wait(Fmutex); //如有读者,写者阻塞在此处 Signal(Mut1);

Wait(WMutex);

写操作;

Signal(Wmutex);

Wait(Mut1);

Wcount:=Wcount-1;

If Wcount=0 then Signal(Fmutex);

Signal(Mut1);

end

Reader:begin

Wait(Mut1); //读者需要先申请Mut1,如果有写者在等待Fmutex,则读者被阻塞,写者优先

Signal(Mut1); //立即释放Mut1,使写者可以随时申请到Mut1

Wait(Mut2);

Rcount:=Rcount+1;

If Rcount=1 then Wait(Fmutex); //第一个读者进入时,申请Fmutex;如有写者,第一个读者会阻塞在此处

Signal(Mut2);

读操作;

Wait(Mut2);

Rcount:=Rcount-1;

If Rcount=0 then Signal(Fmutex); //最后一个读者退出时,释放Fmutex Singal(Mut2);

end

用信号量机制实现的写者优先的算法如.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/2178249.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)