操控系统试验教案1(打印版).doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《操作系统原理》 实 验 教 案 (基于Windows2000/XP平台) 讲授人: 谢士春 安排授课时间:2011-2012(一) 授课对象:09计算机科学与技术 实验项目列表 实验一 多线程的创建与撤销 实验二 线程的同步 实验三 线程的互斥 实验四 生产者-消费者问题 实验五 进程通信 实验六 动态链接库的建立和调试 实验七 页面置换算法模拟 实验八 文件的三种传输模式及性能比较 实验九 磁盘的读写 附录部分(可扩充) 附录1 读者-写者问题 附录2 梨子苹果之PV操作 附录3 命名管道编程规范 附录4 DLL编程规范 实验一 线程的创建与撤销 一、实验目的 通过本实验熟悉Windows系统提供的线程创建与撤销等API系统调用,掌握Windows系统环境下线程的创建与撤销方法。 二、实验内容 1. 熟悉开发环境Visual C++ 6.0; 2. Windows系统环境下线程的创建与撤销方法; 3.编程:在主线程中调用CreateThread( )创建1个子线程,并在子线程中显示类似“Thread is running !”等字样。 三、实验准备知识1. 线程创建函数 HANDLE CreateThread();HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to security attributes DWORD dwStackSize, // initial thread stack size LPTHREAD_START_ROUTINE lpStartAddress, // pointer to thread function LPVOID lpParameter, // argument for new thread DWORD dwCreationFlags, // creation flags LPDWORD lpThreadId // pointer to receive thread ID ); 线程函数原型 DWORD WINAPI Thread1Proc(LPVOID lpParameter ) 2. 线程撤销函数VOID ExitThread( DWORD dwExitCode // exit code for this thread ); 功能:撤销一个线程。该函数将终止线程的运行,并导致操作系统清除该线程使用的所有操作系统资源。但是,C + +资源(如C + +类对象)将不被撤消。说明:如果在主线程函数(main函数)中调用ExitThread,那么应用程序的主线程将停止运行但是,如果进程中至少有一个线程还在运行,该进程将不会终止运行。 3. 线程终止函数TerminateThread(); 4. 线程挂起函数Sleep(); 5. 关闭句柄函数CloseHandle( )。四、程序源代码及注释 【主要源代码参考】 #include windows.h #include iostream.h static HANDLE hThread1=NULL; //存放创建的子进程的句柄 DWORD dwThreadID1; //存放创建的子进程的ID DWORD WINAPI Thread1Proc( LPVOID ); //子线程函数的声明 int main() // 主线程 {//创建子线程 hThread1 = CreateThread(NULL,0, Thread1Proc, NULL, 0, dwThreadID1); Sleep(5000); CloseHandle(hThread1); // 关闭句柄 ExitThread(0); // 撤销本线程 return 0; } //子线程的实现 DWORD WINAPI Thread1Proc(LPVOID lpParameter ) { coutThread is running!endl; return 0; } 五、实验结果输出 排版说明(小、小、) 实验二 线程的同步 一、实验任务 该实验完成Windows中多线程同步运行的验证。首先在主线程中创建一个子线程,成功创建后进入阻塞状态,直到子线程运行完毕后唤醒主线程。 二、实验目的 1.进一步掌握Windows系统环境下线程的创建与撤消。 2.熟悉Windows系统提供的线程同步API。

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档