《计算机操作系统》 实验报告 班 级 : 姓 名 : 学 号 : 实验一 进程控制与描述 一、实验目的 通过对Window s 2000编程,进一步熟悉操作系统的基本概念,较好地理解Window s 2000的结构。通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解Window s 2000 中进程的“一生”。 二、实验环境 硬件环境:计算机一台,局域网环境; 软件环境:Windows 2000 Professional、Visual C++ 6.0 企业版。 三、实验内容和步骤 第一部分: 程序 1-1Windows 2000 的 GUI 应用程序 Windows 2000 Professional 下的 GUI 应用程序,使用 Visual C++编译器创建一个 GUI应用程序,代码中包括了 WinMain()方法,该方法 GUI 类型的应用程序的标准入口点。 # include # pragma comment(lib, “user32.lib” ) int APIENTRY WinMain(HINSTANCE /* hInstance */ , HINSTANCE /* hPrevInstance */, LPSTR /* lpCmdLine */, int /* nCmdShow */ ) { :: MessageBox( NULL, “hello, Windows 2000” , “Greetings”, MB_OK) ; return(0) ; } 在程序 1-1 的 GUI 应用程序中,首先需要 Windows.h 头文件,以便获得传送给 WinMain() 和 MessageBox() API 函数的数据类型定义。 接着的 pragma 指令指示编译器/连接器找到 User32.LIB 库文件并将其与产生的 EXE 文件连接起来。这样就可以运行简单的命令行命令 CL MsgBox.CPP 来创建这一应用程序,如果没有 pragma 指令,则 MessageBox() API 函数就成为未定义的了。这一指令是 Visual Studio C++ 编译器特有的。 接下来是 WinMain() 方法。其中有四个由实际的低级入口点传递来的参数。hInstance参数用来装入与代码相连的图标或位图一类的资源,无论何时,都可用 GetModuleHandle() API 函数将这些资源提取出来。系统利用实例句柄来指明代码和初始的数据装在内存的何处。句柄的数值实际上是 EXE 文件映像的基地址,通常为 0x00400000。下一个参数hPrevInstance 是为向后兼容而设的,现在系统将其设为 NULL。应用程序的命令行 (不包括程序的名称) 是 lpCmdLine 参数。另外,系统利用 nCmdShow 参数告诉应用程序如何显示它 的主 窗 口 (选 项 包括最 小 化 、最 大 化 和正 常) 。 最 后,程序调 用 M...