欢迎来到天天文库
浏览记录
ID:45614886
大小:367.29 KB
页数:42页
时间:2019-11-15
《计算机系统与系统软件实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机系统与系统软件实验指导书1、熟悉windows操作系统2、经典进程同步问题的实现3、windows内存管理4、Windows应用程序与动态链接库(附加)二、实验说明:本课程的实验主要目的是熟悉操作系统中的关键理论的基本原理。所有实验都是基于实际Windows操作系统而设计安排的,主要通过WindowsAPI的系统调用对操作系统中的一些简单原理进行设计验证。具体实验内容说明如下:1、熟悉windows操作系统实验目的:了解Windows操作系统中进程的结构,熟悉通过Win32API函数的调用来获取系统中的进程信息。实验内容:
2、了解Widows操作系统中的进程结构熟悉与Windows操作系统进程相关的主要API函数使用VC++编程环境进行Windows的系统编程,完成木次实验实验要求:根据后面给出的示例程序,编写一个Win32程序,可以是窗口应用程序或控制台程序,能够获得当前系统中的进程的主要信息(包括进程名,进程ID,优先级,线程数以及镜像文件路径等);并完成本次实验的实验报告。由于实验室实验环境的问题,可能第二种方法会存在一些问题,所以推荐使用第一种方式完成实验要求。第二种方法留待个人根据兴趣课外完成。实验学时:4学时实验相关函数说明:进程通常被定
3、义为一个正在运行的程序的实例,它由两部分组成:①操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。②地址空间。它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间,如线程的堆栈和堆分配空间。MS提供了多种获取系统屮当前运行进程的方法,最常见的是以下两种PSAPI和ToolHelp32API—、ToolHelp32API:PSAPI函数只能枚举NT系统的进程,在Windows9x环境下我们可以通过调用ToolHelp32API函数来达到枚举系统进程的目的。ToolHelp32共有
4、12个函数,通过调用这些函数可以方面的取得本地系统进程的详细信息。1、CreateToolhelp32SnapshotHANDLEWINAPICreateToolhelp32Snapshot(DWORDdwFlags,DWORDth32ProcessID功能:对进程和进程使用的内存堆、模块和线程创建一个快照。参数说明:DWORDdwFla^:指明要包含在快照中的系统信息。(详见附录b)【in】DWORD山32Pm(e®D:进程标识(该参数为0则是对当前进程;当第一个参数特别指明了TH32CS_SNAPHEAPLIST或TH32C
5、S_SNAPMODULE时才有效,否贝0可以忽略)【泊】返回值:成功返回一个特定快照的句柄;失败返回INVALID_HANDLE_VALUEo函数使用说明:>快照返回的是当前系统状态的一个拷贝。A要关闭一个快照,需要调用CloseToolhelD32SnaDshot函数。>不要使用CloseHandle函数来关闭快照的调用。这样会导致内存泄漏。>访问快照是只读的2、Process32FirstBOOLWINAPIProcess32First(HANDLEhSnapshot、LPPROCESSENTRY32泌功能:该函数将获取在系
6、统快照中第一个碰到的进程信息。参数说明:HANDLEhSnapshof:是111CreateToolhelD32SnaDshot函数返回的句柄LPPROCESSENTRY32泌:指向PROCESSENTRY32(详见附录C)结构体的指针。返回值:成功返回TRUE表示进程列表第一个进程记录入口已经成功拷贝到缓冲中;失败返冋FALSEo函数使用说明:>调用该函数,必须设置PROCESSENTRY32中的成员dwSize的值表明该结构体需要内存的大小,以字节为单位。>Process32First函数将使用实际写入结构体中的字节数修改d
7、wSize成员的值。>dwSize值决不会大于其初始值,但是可以比原来的小。>获取在同一快照屮的其他进程的信息,使用Process32Next函数完成。3、Process32NextBOOLWINAPIProcess32Next(HANDLEhSnyhotqLPPROCESSENTRY32泌);功能:该函数将获取在系统快照中下一个进程记录的信息。参数说明:HANDLEhSnapshot:是山CreateToolhelD32Snapshot函数返冋的句柄LPPROCESSENTRY32血:扌旨向PROCESSENTRY32结构体的
8、指针。返回值:成功返回TRUE表示进程列表下一个进程记录的入口地址己经成功拷贝到缓冲中;失败返回FALSEo函数使用说明:无特殊说明程序编译链接时应注意的问题:使用ToolHelpAPT函数,需在源文件头部加上头文件包含说明:Jtincludc
此文档下载收益归作者所有