欢迎来到天天文库
浏览记录
ID:9997329
大小:3.06 MB
页数:44页
时间:2018-05-20
《操作系统实验教案(打印版)1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《操作系统原理》实验教案(基于Windows2000/XP平台)讲授人:谢士春安排授课时间:2011-2012(一)授课对象:09计算机科学与技术第II页实验项目列表实验一多线程的创建与撤销实验二线程的同步实验三线程的互斥实验四生产者-消费者问题实验五进程通信实验六动态链接库的建立和调试实验七页面置换算法模拟实验八文件的三种传输模式及性能比较实验九磁盘的读写附录部分(可扩充)附录1读者-写者问题附录2梨子苹果之PV操作附录3命名管道编程规范附录4DLL编程规范第II页实验一线程的创建与撤销一、实验目的通过本实验熟悉Windows系统提供的线程创建与撤销等API系统调用,掌握Wind
2、ows系统环境下线程的创建与撤销方法。二、实验内容1.熟悉开发环境VisualC++6.0;2.Windows系统环境下线程的创建与撤销方法;3.编程:在主线程中调用CreateThread()创建1个子线程,并在子线程中显示类似“Threadisrunning!”等字样。三、实验准备知识相关的API函数的函数原型:1.线程创建函数HANDLECreateThread();HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,//pointertosecurityattributesDWORDdwStackSize,/
3、/initialthreadstacksizeLPTHREAD_START_ROUTINElpStartAddress,//pointertothreadfunctionLPVOIDlpParameter,//argumentfornewthreadDWORDdwCreationFlags,//creationflagsLPDWORDlpThreadId//pointertoreceivethreadID);线程函数原型DWORDWINAPIThread1Proc(LPVOIDlpParameter)2.线程撤销函数VOIDExitThread(DWORDdwExitCode//e
4、xitcodeforthisthread);功能:撤销一个线程。该函数将终止线程的运行,并导致操作系统清除该线程使用的所有操作系统资源。但是,C++资源(如C++类对象)将不被撤消。说明:如果在主线程函数(main函数)中调用ExitThread,那么应用程序的主线程将停止运行。但是,如果进程中至少有一个线程还在运行,该进程将不会终止运行。3.线程终止函数TerminateThread();4.线程挂起函数Sleep();进程主动放弃剩余的时间片。5.关闭句柄函数CloseHandle()。说明:关闭一个对象句柄,只是将相应对象的引用数减一,并不意味着终结该对象,除非引用数减至零。
5、四、程序源代码及注释【主要源代码参考】#include#includestaticHANDLEhThread1=NULL;//存放创建的子进程的句柄DWORDdwThreadID1;//存放创建的子进程的IDDWORDWINAPIThread1Proc(LPVOID);//子线程函数的声明第42页intmain()//主线程{//创建子线程hThread1=CreateThread(NULL,0,Thread1Proc,NULL,0,&dwThreadID1);Sleep(5000);CloseHandle(hThread1);//关闭
6、句柄ExitThread(0);//撤销本线程return0;}//子线程的实现DWORDWINAPIThread1Proc(LPVOIDlpParameter){cout<<"Threadisrunning!"<7、dows系统提供的线程同步API解决实际问题。三、实验准备知识1.Wait函数等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为受信(signaled)状态或超时为止。函数原型:DWORDWaitForSingleObject(HANDLEhHandle,//handletoobjecttowaitforDWORDdwMilliseconds//time-outintervalinmilliseconds);功能:在指定的时间内等待一个对象。举例:WaitF
7、dows系统提供的线程同步API解决实际问题。三、实验准备知识1.Wait函数等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为受信(signaled)状态或超时为止。函数原型:DWORDWaitForSingleObject(HANDLEhHandle,//handletoobjecttowaitforDWORDdwMilliseconds//time-outintervalinmilliseconds);功能:在指定的时间内等待一个对象。举例:WaitF
此文档下载收益归作者所有