付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 基本信息实践题目:事件对象实现P、V操作并解决读写者问题完成人:班级:07062301姓名:陈杨学号:0706230101报告日期:20RR年1月5日2. 实践内容简要描述实践目标1掌握事件对象的使用方法2理解P、V操作的内部机制及读者-写者问题的实现方法。 实践内容-写者问题用Win32提供的同步对象实现P、V操作,并使用它们解决读者利用事件机制模拟多值信号量。算法如下:bin arR-semaphoreS1,S2;/i ni tializtio n:S1=1,S2=0in tC;/i nitializtio n: theco un tofrecourcewait():Wait(S1)
2、;C_;if(C0)sig nal(S1); wait(S2);sig nal(S2);sig nal():wait(S1);C+;if(C=0)sig nal(S2);elsesig nal(S1);读者-写者问题算法如下:Writer:wait(WmuteR);/dowriti ngsig nal(WmuteR);Reader: wait(RmuteR); if(Rcou nt=0) wait(WmuteR);Rcoun t+;sig nal(RmuteR);/doreadi ngwait(RmuteR);Rcoun t-;if(Rcou nt=0)sig nal(WmuteR);sig
3、nal(RmuteR);设计思路利用事件对象实现P、V操作主要数据结构in treadco un t=0;in twriteco un t=0;structMRSemaphoreHANDLEs1,s2;intc;MRSemaphoreReaderS;MRSemaphoreWriterS;structThreadI nfoint serial;char en titR;double delaR;double persist;主要代码结构及分析/ReaderPrioritRfuctio n/file:file name/voidReaderPrioritR(charRfile)DWORD n_th
4、read=0;DWORDthreadD;DWORDwait_for_all;ini tMRSem aphore(&ReaderS,1);ini tMRSe map hore( &WriterS,1);readco un t=0;/in itreaderco unt/TreadObjectArraRHANDLEh_ThreadMAR_THREAD_NUM;ThreadI nfothreadn foMAR_THREAD_NUM;ifstreami nFile;inF ile.ope n( file);/ope nfileprin tf(ReaderPrioritR:nn);while(i nFil
5、e)/readeverRreader/writeri nfoin Filethread _in fon_thread.serial;in Filethread _in fon_thread.e ntitR;in Filethread _in fon_thread.delaR;in Filethread _in fon_thread+.persist;in File.get();/en dwhilein File.close();for(i nti=O;is1,INFINITE);mRS-c-;if(mRS-cs1);WaitForSi ngleObject(mRS-s2,INFINITE);S
6、etEve nt(mRS-s1);voidsig nal(MRSem aphoreRmRS)WaitForSi ngleObject(mRS-s1,INFINITE);mRS_c+;if(mRS-cs2);elseSetEve nt(mRS-s1);/readerprioritR-readerthread/p:readerthreadi nfo/DWORDWINAPIRP_ReaderThread(voidRp)DWORDm_delaR;DWORDm_persist;in tm_serial;/geti nfofroamparam_serial=(ThreadI nfoR)(p)-serial
7、;m_delaR=(DWORD)(ThreadI nfoR)(p)-delaRRINTE_PER_SEC); m_persist=(DWORD)(ThreadI nfoR)(p)-persistRINTE_PER_SEC); Sleep(m_delaR);prin tf(Readerthread%dse ntsthereadi ngrequire.n,m_serial);wait(&ReaderS);if(readco un t=0)wait (&WriterS);readco un t+;sig nal(&ReaderS);/readfileprin tf(Readerthread%dbeg
8、i nstoreadfile.in ,m_serial);Sleep(m_persist);/eRitthreadprin tf(Readerthread%dfi ni shedreadi ngfile.n ,m_serial); wait(&ReaderS);readco un t-;if(readco un t=0)sig nal(&WriterS);sig nal(&ReaderS);return0;/ReaderprioritR-writerthread/p:writerthreadi nfo/DWORDWINAPIRP_WriterThread(voidRp)DWORDm_delaR
9、;DWORDm_persist;in tm_serial;/geti nfofroamparam_serial=(ThreadI nfoR)(p)-serial; m_delaR=(DWORD)(ThreadI nfoR)(p)-delaRRINTE_PER_SEC); m_persist=(DWORD)(ThreadI nfoR)(p)-persistRINTE_PER_SEC);Sleep(m_delaR);prin tf(Writerthread%dse ntsthewriti ngrequire.n,m_serial); /waitresourcewait (&WriterS);/wr
10、itetothefileprin tf(Writerthread%dbegi nstowritetothefile.n,m_serial); Sleep(m_persist);/eRitthreadprin tf(Writerthread%dfi ni shedWriti ngtothefile.n,m_serial); /releaseresourcesig nal(&WriterS);return0;3. 实践结果基本数据:源程序代码行数:256完成实践投入的时间(小时数):5资料查阅时间:1.5编程调试时间:3.5测试数据设计eR5.dat”中测试数据为:1R352W453R524R65
11、5W53测试结果分析待所有读进程执行完毕后写进程才开始一一执行,结果正确。4. 实践体会实践过程中遇到的问题及解决过程 在调试时,一开始总会出现某个进程sentsrequire的信息重复出现两次,但该线程只执行过一次的现象,调整显示代码的位置得不到正确的结果。后将读写进程函数由voidRP_ReaderThread(voidRp);voidRP_WriterThread(voidRp);改为DWORDWINAPIRP_ReaderThread(voidRp);DWORDWINAPIRP_WriterThread(voidRp);并在函数体最后加上return。语句。该问题顺利解决。实践体会和收获通过此次实验,我学会了事件对象的使用方法,并深入了解了P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大型活动场地拥挤人群疏散安保人员预案
- 企业员工培训考核标准化操作流程手册
- 提升安全意识护航健康成长小学主题班会课件
- 研发部关于项目进度调整的商洽4篇范文
- 房地产经纪业务流程规范化操作手册
- 外贸合同纠纷反馈函(8篇)范文
- 关于服务变更通知的公函(8篇范文)
- 坚持不懈磨砺意志成就美好未来,小学主题班会课件
- 传统文化传扬美,小学主题班会课件
- 警惕网络陷阱,筑牢安全防线几年级主题班会课件
- 护理不良事件预防与风险管理
- 社保待遇追缴工作方案
- 雨课堂学堂在线学堂云《兽医外科学与手术学(扬州)》单元测试考核答案
- GB/T 47157-2026芹菜等级规格
- 2026黑龙江省机场管理集团招聘笔试参考题库及答案解析
- 2026年党委(党组)理论学习中心组试题及答案
- 物理 第九章 浮力课件2025-2026学年沪科版八年级物理全册
- 2025至2030中国洗碗机行业市场调研及增长潜力预测与投资可行性研究报告
- 军用关键软硬件自主可控产品名录(2025年v1版)
- 山东省济南市实验中学2026届高一生物第二学期期末达标检测试题含解析
- 药物不良反应的实时监测与预警:临床用药安全
评论
0/150
提交评论