《操作系统原理》
实验报告
班级 :
姓名 :
学号 :
指导老师:
目录:
实验题目:实验一 线程创建与撤销 2
实验题目:实验二 线程同步 6
实验题目:实验三 线程互斥 11
实验题目:实验四 进程通信 17
实验题目:实验五 读者 -写者问题 21
实验题目:实验六 进程调度 37
实验题目:实验七 存储管理之动态链接库 52
实验题目:实验八 存储管理之内存分配 56
实验题目:实验九 存储管理之页面置换算法 69
实验题目:实验十 设备管理 84
实验题目:实验十一 文件管理之文件读写 98
实验题目:实验一 线程创建与撤销
完成人: XXX
报告日期: 2018 年 3 月 31 日
一、 实验内容简要描述
(1)熟悉 VC++ 、Visual Studio 开发环境。
(2 )使用相关函数创建和撤销线程。
(3 )在一个进程中创建 3 个线程,名字分别为 threada、threadb、threadc。
threada输出“ hello world! ”。
threadb 输出“ My name is …”。
threadc 输出“ Please wait ”…,然后 sleep 5秒钟,接着输出“ I wake up”。
二、 程序设计
1、 设计思路
该函数创建一个在调用进程的地址空间中执行的线程。
2、 主要数据结构
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
DWORD dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
VOID ExitThread(DWORD dwExitCode) ;
VOID Sleep(DWORD dwMilliseconds);
VOID Sleep(DWORD dwMilliseconds);
三、实验结果
1、基本数据
lpThreadAttributes:指向一个 SECURITY_ATTRIBUTES 结构,该结构决定了返
回的句柄是否可被子进程继承。 若 lpThreadAttributes 为 NULL ,则句柄不能被继
承。
在 WindowsNT 中该结构的 lpSecurityDescriptor 成员定义了新进程的安全性描述
符。若 lpThreadAttributes 为 NULL ,则线程获得一个默认的安全性描述符。
dwStackSize:定义原始堆栈提交时的大小 (按字节计 )。系统将该值舍入为最近的
页。若该值为 0,或小于默认时提交的大小,默认情况是使用与调用线程同样的
大小。更多的信息,请看 ThreadStackSize。
lpStartAddress:指向一个 LPTHREAD_START_ROUTlNE 类型的应用定义的函
数,该线程执行此函数。 该指针还表示溃程进程中线程的起始地址。 该函数必须
存在于远程进程中。
lpParameter:定义一个传递给该迸程的 32 位值。
dwCreationFIags : 定 义 控 制 进
原创力文档

文档评论(0)