1 / 110
文档名称:

操作系统原理实验报告.doc

格式:doc   大小:1,294KB   页数:110页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统原理实验报告.doc

上传人:799474576 2020/6/24 文件大小:1.26 MB

下载得到文件列表

操作系统原理实验报告.doc

文档介绍

文档介绍:《操作系统原理》实验报告班级::学号:指导老师:目录:实验题目:实验一线程创建与撤销 2实验题目:实验二线程同步 6实验题目:实验三线程互斥 11实验题目:实验四进程通信 17实验题目:实验五读者-写者问题 21实验题目:实验六进程调度 37实验题目:实验七存储管理之动态库 52实验题目:实验八存储管理之存分配 56实验题目:实验九存储管理之页面置换算法 69实验题目:实验十设备管理 84实验题目:实验十一文件管理之文件读写 98实验题目:实验一线程创建与撤销完***:XXX报告日期:2018年3月31日实验容简要描述(1)熟悉VC++、VisualStudio开发环境。(2)使用相关函数创建和撤销线程。(3)在一个进程中创建3个线程,名字分别为threada、threadb、threadc。threada输出“helloworld!”。threadb输出“Mynameis…”。threadc输出“Pleasewait…”,然后sleep5秒钟,接着输出“Iwakeup”。程序设计设计思路该函数创建一个在调用进程的地址空间中执行的线程。主要数据结构HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,DWORDdwStackSize,LPTHREAD_START_ROUTINElpStartAddress,LPVOIDlpParameter,DWORDdwCreationFlags,LPDWORDlpThreadId);VOIDExitThread(DWORDdwExitCode);VOIDSleep(DWORDdwMilliseconds);VOIDSleep(DWORDdwMilliseconds);三、实验结果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位值,它接收该线程的标识符。(小时数)与其他同学讨论次数3111测试结果分析四、实验体会1、实验体会和收获 深入理解了线程与进程的概念,熟悉了在Windows环境下何时使用进程,何时使用线程,怎么创建和撤销线程。五、源代码#include<>#include<iostream>usingnamespacestd;DWORDWINAPIta(LPVOIDargv){cout<<"HelloWorld!\n";}DWORDWINAPItb(LPVOIDargv){cout<<"我的名字:婷\n";cout<<"我的学号:141340209\n";}DWORDWINAPItc(LPVOIDargv){cout<<"Pleasewait...\n";Sleep(5000);cout<<"Iwakeup.\n";}intmain(){HANDLEthreada,threadb,threadc;DWORDTEST;threada=CreateThread(NULL,0,ta,NULL,0,0);threadb=CreateThread(0,0,tb,0,0,0);threadc=CreateThread(0,0,tc,0,0,0);ExitThread(TEST);ExitThread(TEST);ExitThread(TEST);return0;}实验题目:实验二线程同步完***:XXX报告日期:2018年4月7日实验容简要描述在程序中使用CreateSemaphore(NULL,0,1,”SemaphoreName1”)创建一