- 1、本文档共44页,可阅读全部内容。
- 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系
您可能关注的文档
- 北京市密云二中011-2012学年高二历史上学期期中考试试题 理.doc
- 北京市密云二中011-2012学年高二语文上学期期中考试试题.doc
- 北京市密云区214-2015学年度第一学期九年级数学期末试卷及答案.doc
- 北京市密云县212届九年级化学上学期期末考试试题.doc
- 北京市密云县212届九年级上学期期末考试数学试卷.doc
- 北京市密云县214届九年级(上)期末数学试题(含答案).doc
- 北京市密云县214届九年级上学期期末考试英语试卷.doc
- 北京市密云县215届九年级上学期期末考试语文试题.doc
- 北京市石景山区014—2015学年第一学期期末考试高三地理试题(含答案).doc
- 北京市顺义区212届九年级上学期期末考试数学试卷.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)