文档详情

实验一 Windows进程初识.doc

发布:2017-11-13约4.3千字共13页下载文档
文本预览下载声明
XX师范学院计算机系 实验报告 (2013—2014学年 第 2 学期) 课程名称 操作系统 实验名称 实验一 Windows进程初识 专 业 计算机科学与技术 年 级 2011级 学号 姓名 指导教师 实验日期 2014.03.06 实验目的与要求: (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 实验设备(环境): 微机、C语言编程环境(VC++)。 实验内容: (1)编写基本的Win32 Consol Application。 (2)计算进程在核心态运行和用户态运行的时间。 实验步骤、实验结果及分析: (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location” 处输入工程目录。创建一个新的控制台应用程序工程。工程名为os11 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File” 处输入C/C++源程序的文件名。 文件名hello 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: 路径C:\Program Files\Microsoft Visual Studio\MyProjects\os11\Debug E:\课程\os课\os实验\程序\os11\debughello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 程序清单如下: 清单1-1 // hello项目 # include iostream void main() { std::cout “Hello, Win32 Consol Application” std :: endl ; } 运行结果如图1所示: 图 1 运行成功的结果如图2所示: 图 2 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。文件名Test2 步骤2: 在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。文件名Test3 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 路径C:\Program Files\Microsoft Visual Studio\MyProjects\os12\debugtest2(test3).exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) 程序清单如下: 清单1-2 核心态运行和用户态运行时间比计算 // proclist项目 # include windows.h # include tlhelp32.h # include iostream.h // 当在用户模式机内核模式下都提供所耗时间时,在内核模式下进行所耗时间的64位计算的帮助方法 DWORD GetKernelModePercentage(const FILETIME ftKernel, const FILETIME ftUser) { // 将FILETIME结构转化为64位整数 ULONGLONG qwKernel=(((ULONGLONG)ftKernel.dwHighDateTime) 32)+ftKernel.dwLowDateTime; ULONGLONG qwUser=(((ULONGLONG)ftUser.dwHighDateTime) 32)+ftUser.dwLowDateTime; // 将消耗时间相加,然后计算消耗在内核模式下的时间百分比
显示全部
相似文档