任务3--同步对象解决临界问题Word文件下载.doc
- 文档编号:1028563
- 上传时间:2023-04-30
- 格式:DOC
- 页数:3
- 大小:72KB
任务3--同步对象解决临界问题Word文件下载.doc
《任务3--同步对象解决临界问题Word文件下载.doc》由会员分享,可在线阅读,更多相关《任务3--同步对象解决临界问题Word文件下载.doc(3页珍藏版)》请在冰点文库上搜索。
2011年1月5日
2.实践内容简要描述
实践目标
1.理解临界区问题
2.学会使用Win32所提供的同步对象(事件对象、互斥对象、信号量对象、临界区对象等)以解决临界区问题
实践内容
协作线程——兄弟问题
设置竞争条件:
定义两个全局变量:
accnt1和accnt2,初值都为零;
创建两个线程acc1和acc2;
(1)获得一个随机数
(2)从accnt1减去这个随机数;
(3)将这个随机数加到accnt2中;
(4)正确的话,accnt1+accnt2=0;
(5)但在未实现线程互斥的情况下,accnt1+accnt2可能不为0。
用临界区对象实现协作线程,以解决以上临界区问题——兄弟问题。
设计思路
利用临界区对象(CRITICAL_SECTION型),实现线程间的互斥。
主要数据结构
typedefstructBrotherInfo{
int miSerial;
DWORDmdwDelay;
}BROTHERINFO,*PBROTHERINFO;
volatileintgiAccnt1=0;
/*Ensurevariableinthememory*/
volatileintgiAccnt2=0;
CRITICAL_SECTIONmy_section;
主要代码结构及分析
//thread
DWORDWINAPIBrother(LPVOIDlpParam){
intiLoan,iAccnt,iCounter=0;
PBROTHERINFOpThreadInfo;
//getinfofromparam
pThreadInfo=(PBROTHERINFO)lpParam;
srand((unsigned)pThreadInfo->
mdwDelay);
do{
fprintf(stdout,"
Iamthread%d,Iamdoing%05dthstep\n"
pThreadInfo->
miSerial,iCounter);
iLoan=rand();
/*fprintf(stdout,"
rand_num=%05d\n"
iLoan);
*/
//Sleep(pThreadInfo->
mdwDelay*INTE_PER_SEC);
EnterCriticalSection(&
my_section);
//等待进入临界区的授权
//startofcritical_section
giAccnt1=giAccnt1-iLoan;
Sleep(pThreadInfo->
giAccnt2=giAccnt2+iLoan;
iAccnt=giAccnt1+giAccnt2;
//endofcritical_section
LeaveCriticalSection(&
//释放对临界区的使用权
iCounter++;
}while((iAccnt==0)&
&
(iCounter<
10));
fprintf(stdout,"
NowgiAccnt1+giAccnt2=%05d\n"
iAccnt);
return0;
}//EndofBrother
3.实践结果
基本数据:
²
源程序代码行数:
166
完成实践投入的时间(小时数):
0.5
ü
资料查阅时间:
0.2
编程调试时间:
0.3
测试数据设计
“ex3.dat”中测试数据为:
11
23
测试结果分析
利用临界区变量使两线程互斥访问临界区,giAccnt1+giAccnt2的和始终为0。
等执行次数超过十次时才退出循环。
执行结果正确。
4.实践体会
实践过程中遇到的问题及解决过程
在链接过程中出现错误如下:
后发现是“Project—>
Settings—>
C/C++标签页—>
Category:
CodeGenertion—>
Userun-timelibrary:
”,此处一开始我选的是“Multithreaded”,而选择“DebugMultithreaded”则可避免上述问题
实践体会和收获
通过此次实验,我了解了临界区变量的使用方法及作用,并且相较而言,使用临界区变量比用软件方法解决兄弟问题要简单。
在第二个任务的基础上,此次任务并没有花费太多的时间就得以完成。
5.参考文献
[1]汤子灜著.《计算机操作系统》(修订版)[M].西安:
西安电子科技大学出版社.2000
[2]
AbrahamSilberschatz,PeterBaerGalvinandGregGagne.郑扣根等译.操作系统概念第六版,翻译版.[M].北京:
高等教育出版社.2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 任务 同步 对象 解决 临界 问题