- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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。
您可能关注的文档
- flash与结合妙招.ppt
- 12万自助软件操控指引(2014版).doc
- FNS概念与产品机会探索.ppt
- 13款道奇酷威原车屏幕升级导航加装手写导航改装超高清导航.doc
- 第六课印制电路板建立与绘制第二节.ppt
- 2013年度杭州市中考英语真题与答案.doc
- Foxmail邮件客户端通过技巧培训.ppt
- 第六课印制电路板建立与绘制第三节.ppt
- 第1课集散控制系统概览.ppt
- F与H和H3系列差别.ppt
- 品质管理品质知识质量技术监督基础知识.pdf
- 品质管理品质知识质量技术监督基础.pdf
- 品质管理品质知识质量守恒ppt.pdf
- 品质管理品质知识质量在转变经济发展方式中的作用PPT48页.pdf
- 2022年防城港市林业局招聘考试试题及答案.docx
- 2022年浙江国企招聘衢州悠选物业管理服务有限公司招聘考试试题及答案.docx
- 2022年莆田市秀屿区市场监督管理局招聘食品安全协管员考试试题及答案.docx
- 2022年福州市应急管理局应急指挥中心应急调度专员招聘考试试题及答案.docx
- 2022年百色市平果市市场监督管理局招聘考试试题及答案.docx
- 2022年韶关市曲江区人民武装部现招聘新闻宣传人员招聘考试试题及答案.docx
文档评论(0)