os实验指导书1 .doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《os实验指导书1 .doc》由会员分享,可在线阅读,更多相关《os实验指导书1 .doc(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、操作系统教程实验指导书目录实验一 WINDOWS进程初识31、实验目的32、实验内容和步骤33、实验结论44、程序清单4实验二 进程管理7背景知识71、实验目的102、实验内容和步骤103、实验结论124、程序清单12实验三 进程同步的经典算法17背景知识171、实验目的182、实验内容和步骤183、实验结论194、程序清单20实验四 存储管理24背景知识241、实验目的282、实验内容和步骤283、实验结论344、程序清单34实验五 文件和设备管理39背景知识391、实验目的402、实验内容与步骤413、实验结论44实验一 WINDOWS进程初识1、 实验目的(1) 学会使用VC编写基本的W
2、in32 Consol Application(控制台应用程序)。(2) 掌握WINDOWS API的使用方法。(3) 编写测试程序,理解用户态运行和核心态运行。2、 实验内容和步骤(1)编写基本的Win32 Consol Application步骤1:登录进入Windows,启动VC+ 6.0。步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location” 处输入工程目录。创建一个新的控制台应用程序工程。步骤3:在“FILE”菜单中单击“NEW”子
3、菜单,在“Files”选项卡中选择“C+ Source File”, 然后在“File” 处输入C/C+源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C+源程序中。编译成可执行文件。步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:课程os课os实验程序os11debughello.exe运行结果 (如果运行不成功,则可能的原因是什么?) :_Hello,Win32ConsolApplication _(2)计算进程在核心态运行和用户态运行的时间步骤
4、1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。步骤2: 在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。E:课程os课os实验程序os12debugtime TEST.exe步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) :_ _步骤5:分别屏蔽While循环中的两个for循环,或调整两个for
5、循环的次数,写出运行结果。屏蔽i循环:_屏蔽j循环:_调整循环变量i的循环次数:_调整循环变量j的循环次数:_3、 实验结论_4、 程序清单清单1-1 一个简单的Windows控制台应用程序/ hello项目# include void main() std:cout “Hello, Win32 Consol Application” std : endl ;清单1-2 核心态运行和用户态运行时间比计算/ proclist项目# include # include # include / 当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法DWORD Get
6、KernelModePercentage(const FILETIME& ftKernel, const FILETIME& ftUser) / 将FILETIME结构转化为64位整数 ULONGLONG qwKernel=(ULONGLONG)ftKernel.dwHighDateTime)32)+ftKernel.dwLowDateTime; ULONGLONG qwUser=(ULONGLONG)ftUser.dwHighDateTime)32)+ftUser.dwLowDateTime; / 将消耗时间相加,然后计算消耗在内核模式下的时间百分比 ULONGLONG qwTotal=qw
7、Kernel+qwUser; DWORD dwPct=(DWORD)(ULONGLONG)100*qwKernel)/qwTotal); return(dwPct);/ 以下是将当前运行过程名和消耗在内核模式下的时间百分数都显示出来的应用程序void main(int argc,char *argv) if(argc2) cout请给出你要查询的程序名endl;exit(0);/ 对当前系统中运行的过程拍取“快照”HANDLE hSnapshot=:CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS,/ 提取当前过程 0);/ 如果是当前过程,就将其忽略
8、/ 初始化过程入口 PROCESSENTRY32 pe;:ZeroMemory(&pe,sizeof(pe);pe.dwSize=sizeof(pe);BOOL bMore=:Process32First(hSnapshot,&pe);BOOL found = FALSE;while(bMore) / 打开用于读取的过程if(!strcmp(pe.szExeFile,argv1) found = TRUE;HANDLE hProcess=:OpenProcess(PROCESS_QUERY_INFORMATION,/ 指明要得到信息FALSE,/ 不必继承这一句柄pe.th32ProcessI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- os实验指导书1 os 实验 指导书
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内