当前位置:首页 > 操作系统原理实验报告
《操作系统原理》
实验报告
班级: : 学号: 指导老师:
目录:
实验题目:实验一 线程创建与撤销................................................................... 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:定义控制进程创建的附加标志。若定义了CREATE_SUSPENDED标志,线程创建时处于挂起状态,并且直到ResumeThread函数调用时d能运行。若该值为0,则该线程在创建后立即执行。 lpThreadId:指向一个32位值,它接收该线程的标识符。 2.
源程序代码行数 31
3、 测试结果分析
完成该实验投入的时间(小时数) 与其他同学讨论次数 1 1
四、实验体会 1、实验体会和收获
深入理解了线程与进程的概念,熟悉了在Windows环境下何时使用进程,何时使用线程,怎么创建和撤销线程。
五、源代码
#include
DWORD WINAPI ta(LPVOID argv) {
共分享92篇相关文档