ImageVerifierCode 换一换
格式:DOC , 页数:3 ,大小:72KB ,
资源ID:13093765      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13093765.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(任务3--同步对象解决临界问题Word格式文档下载.doc)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

任务3--同步对象解决临界问题Word格式文档下载.doc

1、2011年1月5日2. 实践内容简要描述 实践目标 1.理解临界区问题2.学会使用Win32所提供的同步对象(事件对象、互斥对象、信号量对象、临界区对象等)以解决临界区问题 实践内容 协作线程兄弟问题设置竞争条件:定义两个全局变量:accnt1和accnt2,初值都为零;创建两个线程acc1和acc2;(1)获得一个随机数(2)从accnt1减去这个随机数;(3)将这个随机数加到accnt2中;(4)正确的话,accnt1+accnt2=0;(5)但在未实现线程互斥的情况下,accnt1+accnt2可能不为0。用临界区对象实现协作线程,以解决以上临界区问题兄弟问题。 设计思路 利用临界区对象

2、(CRITICAL_SECTION型),实现线程间的互斥。 主要数据结构 typedef struct BrotherInfo int miSerial;DWORD mdwDelay; BROTHERINFO,*PBROTHERINFO;volatile int giAccnt1 = 0; /* Ensure variable in the memory */volatile int giAccnt2 = 0;CRITICAL_SECTION my_section; 主要代码结构及分析/threadDWORD WINAPI Brother(LPVOID lpParam) int iLoan,

3、iAccnt,iCounter = 0;PBROTHERINFO pThreadInfo;/get info from parampThreadInfo = (PBROTHERINFO)lpParam;srand( (unsigned)pThreadInfo - mdwDelay );do fprintf(stdout,I am thread %d , I am doing %05dth stepn,pThreadInfo - miSerial,iCounter);iLoan = rand();/* fprintf(stdout,rand_num = %05d n,iLoan); */Slee

4、p(pThreadInfo- mdwDelay*INTE_PER_SEC);EnterCriticalSection(&my_section); /等待进入临界区的授权/start of critical_sectiongiAccnt1 = giAccnt1 - iLoan;Sleep(pThreadInfo-giAccnt2 = giAccnt2 + iLoan;iAccnt = giAccnt1 + giAccnt2;/end of critical_sectionLeaveCriticalSection(&/释放对临界区的使用权iCounter+; while ( (iAccnt = 0

5、) & (iCounterSettingsC/C+标签页Category:Code GenertionUse run-time library:”,此处一开始我选的是“Multithreaded”,而选择“Debug Multithreaded”则可避免上述问题 实践体会和收获 通过此次实验,我了解了临界区变量的使用方法及作用,并且相较而言,使用临界区变量比用软件方法解决兄弟问题要简单。在第二个任务的基础上,此次任务并没有花费太多的时间就得以完成。5. 参考文献 1汤子灜著.计算机操作系统 (修订版) M. 西安:西安电子科技大学出版社. 2000 2Abraham Silberschatz ,Peter Baer Galvin and Greg Gagne. 郑扣根等译.操作系统概念 第六版,翻译版. M.北京:高等教育出版社. 2004

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1