操作系统原理实验报告03.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《操作系统原理》实验报告

实验序号:3实验项目名称:线程的同步

学号

姓名

专业、班

实验地点

指导教师

实验时间

一、实验目的及要求

1.进一步掌握Windows系统环境下线程的创建与撤销。

熟悉Windows系统提供的线程同步API。

使用Windows系统提供的线程同步API解决实际问题。

二、实验设备(环境)及要求

Windows操作系统与VisualC++开发环境

三、实验内容与步骤

完成主、子两个线程之间的同步,要求子线程先执行。在主线程中使用系统调用CreateThread()创建一个子线程。主线程创建子线程后进入阻塞状态,直到子线程运行完毕后唤醒主线程。

参考程序?

#includestdafx.h

#includestdio.h

#includewindows.h

staticHANDLEh1;//线程句柄

staticHANDLEhHandle1=NULL;//信号量句柄

voidfunc();

intmain(intargc,char*argv[])

{

intnRetCode=0;

DWORD dwThreadID1;

DWORDdRes,err;

hHandle1=代码1//创建一个信号量

if (hHandle1==NULL)printf(SemaphoreCreateFail!\n);

elseprintf(SemaphoreCreateSuccess!\n);

hHandle1=代码2//打开信号量

if (hHandle1==NULL)printf(SemaphoreOpenFail!\n);

elseprintf(SemaphoreOpenSuccess!\n);

h1=CreateThread((LPSECURITY_ATTRIBUTES)NULL,0,

(LPTHREAD_START_ROUTINE)func,

(LPVOID)NULL,

0,dwThreadID1);//创建子线程

if(h1==NULL)printf(Thread1createFail!\n);

elseprintf(Thread1createSuccess!\n);

dRes=代码3//主线程等待子线程结束

err=GetLastError();

printf(WaitForSingleObjecterr=%d\n,err);

if(dRes==WAIT_TIMEOUT) printf(TIMEOUT!dRes=%d\n,dRes);

elseif (dRes==WAIT_OBJECT_0)printf(WAIT_OBJECT!dRes=%d\n,dRes);

elseif (dRes==WAIT_ABANDONED)printf(WAIT_ABANDONED!dRes=%d\n,dRes);

else printf(dRes=%d\n,dRes);

CloseHandle(h1);

CloseHandle(hHandle1);

ExitThread(0);

returnnRetCode;

}

voidfunc()

{

BOOLrc;

DWORDerr;

printf(NowInThread!\n);

rc=代码4//子线程唤醒主线程

err=GetLastError();

printf(ReleaseSemaphoreerr=%d\n,err);

if(rc==0)printf(SemaphoreReleaseFail!\n);

elseprintf(SemaphoreReleaseSuccess!rc=%d\n,rc);

}

以上程序完成了主、子两个线程执行先后顺序的同步关系,填充代码并思考以下问题:

如何实现多个线程的同步?

若允许子线程执行多次后主线程再执行,又如何设置信号量的初值。

四、实验结果与数据处理

五、分析与讨论

对上机实践结果进行分析,上机的心得体会。

六、教师评语

签名:

日期:

成绩

文档评论(0)

134****4822 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档