操作系统实验报告实验二

操作系统实验报告实验二

ID:14944689

大小:146.50 KB

页数:8页

时间:2018-07-31

操作系统实验报告实验二_第1页
操作系统实验报告实验二_第2页
操作系统实验报告实验二_第3页
操作系统实验报告实验二_第4页
操作系统实验报告实验二_第5页
资源描述:

《操作系统实验报告实验二》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进程死锁模拟实验一、实验题目进程死锁模拟实验二、实验目的1)进一步理解线程的概念2)进一步熟悉进程,线程同步的概念3)深刻理解死锁的概念4)深刻理解操作系统对多线程跳读的管理5)深刻理解临界区和互斥的概念三、实验内容本次试验模拟的两个线程完成销售车票的过程。一方面,利用关键代码(临界区)实现线程同步;另一方面,模拟实现线程死锁。通过本次的实验,进一步理解VC下关键代码段(即临界区)和相关API函数(在参考代码中的黑体字)。分析线程同步的参考代码,分析运行结果,理解线程同步的概念。一、设计思路和算法启动售票

2、系统启动售票线程1启动售票系统2Tickets>0?tickets>0?NNYYNN能进入临界区A?Y能否进入临界区A?Y进入临界区A进入临界区ANNtickets>0?tickets>0?YY售出一张票,tickets减1售出一张票,tickets减1离开临界区A离开临界区A线程2终止线程1终止二、主要数据结构及其说明1.CloseHandle()函数Closehandle函数的一般形式如下;BOOLClosehandle(HANDLEhObject);函数功能:关闭一个内核对象。其中包括文件、文件映射

3、、进程、线程、安全和同步对象等。在CreateThread成功之后会返回一个hThreadle的handle,且内核的计数加1,CloseHandle之后,引用计数减1,当变为0,系统删除内核对象。参数说明:hObject代表一个已打开对象handle。返回值:TRUE执行成功FAlSE执行失败若在线程执行完之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内核泄漏,这势必会对系统的效率带来一定程度上的负面影响。但当进程结束退出后,系统会自动清理这些资源

4、。2.Sleep()函数Sleep()函数的一般的形式如下;Sleep(unisgnedlong);Sleep()函数是C++中头文件下的函数,其作用是延时,即程序暂停若干时间。时间就是它的参数,单位是毫秒。其中,Sleep()里面的单位是以毫秒为单位的,如果想让函数滞留1秒的话,应该是Sleep(1000)。一、测试数据及其测试结果分析7.实验体会通过这次实验使我体会到仅靠学习理论知识是远远不够的,要与实际动手操作相结合才能更好的理解和分析问题。8.源程序文件#include

5、ndows.h>#includeDWORDWINAPIFun1Proc(LPVOIDlpParameter);DWORDWINAPIFun2Proc(LPVOIDlpParameter);inttickets=100;CRITICAL_SECTIONg_csA;voidmain(){HANDLEhThread1;HANDLEhThread2;hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);//创建进程hThread2=Creat

6、eThread(NULL,0,Fun2Proc,NULL,0,NULL);CloseHandle(hThread1);CloseHandle(hThread2);InitializeCriticalSection(&g_csA);//创建临界区对象Sleep(4000);DeleteCriticalSection(&g_csA);//程序退出前释放临界区对象资源}DWORDWINAPIFun1Proc(LPVOIDlpParameter)//THREADDATA{while(TRUE){EnterCrit

7、icalSection(&g_csA);//判断能否进入临界区Sleep(1);if(tickets>0){Sleep(1);cout<<"thread1sellticket:"<

8、e(TRUE){EnterCriticalSection(&g_csA);Sleep(1);if(tickets>0){Sleep(1);cout<<"thread2sellticket:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。