实验 进程的描述与控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2:进程的描述与控制2.4 实验内容与步骤

Windows所创建的每个进程都是以调用CreateProcess()API函数开始和以调用ExitProcess()或TerminateProcess()函数终止。

1、创建进程

本实验学习创建进程的基本框架。该程序要求启动自身,显示它的系统进程ID和它在进程列表中的位置。

步骤1:登录进入Windows 2000 Professional。

步骤2:在“开始”菜单中单击“程序”、“Microsoft Visual Studio 6.0”“Microsoft Visual C++ 6.0”,进入Visual C++窗口。

步骤3:在工具栏单击“新建”按钮,编写代码保存为2-1.cpp。

参考类和函数:windows.h、iostream、stdio.h、GetModuleFileName()、ZeroMemory()、CreateProcess()、GetCurrentProcess()。

步骤4:单击“Build”菜单中的“Compile 2-1.cpp”命令,对2-1.cpp 进行编译。

步骤5:编译完成后,单击“Build”菜单中的“Build 2-1.exe”命令,建立2-1.exe可执行文件。

操作能否正常进行,如果不行,原因是什么?

答: 操作能正常运行

步骤6:在工具栏单击“Execute program”按钮,或者按Ctrl+F5键,或者单击“Build”菜单中的“Execute 2-1.exe”命令,执行2-1.exe 程序。

步骤7:按Ctrl+S键可暂停程序的执行,按Ctrl+Pause(Break)键可终止程序的执行。

程序运行时结果如下:

创建了26个Clone ID为0-26的进程,最终结束后只留下第一个

2. 正在运行的进程

本实验用进程信息查询的API函数GetProcessVersion()与GetVersionEx(),确定运行进程的操作系统的版本号。

步骤1:在工具栏单击“新建”按钮,编写代码保存为2-2.cpp。

步骤2:单击“Build”菜单中的“Compile 2-2.cpp”命令,系统

对2-2.cpp进行编译。

步骤3:编译完成后,单击“Build”菜单中的“Build 2-2.exe”命令,建立2-2.exe可执行文件。

操作能否正常进行,如果不行,原因是什么?

答:操作能正常运行

步骤4:在工具栏单击“Execute program”按钮,执行2-2.exe程序。

程序运行时结果如下:

当前PID信息:1884,requires OS:00

当前操作系统版本:5.1

系统提示信息:Task Manager should now now indicate thisprocess is high priority.

除了改变进程的优先级以外,还可以对正在运行的进程执行几项

其他的操作,只要获得其进程句柄即可,SetProcessAffinityMask() API

函数允许开发人员将线程映射到处理器上;SetProcessAffinityBoost()

API可关闭前台应用程序优先级的提升;而SetProcessWorkingSet() API 可调节进程可用的非页面RAM的容量;还有一个只对当前进程可用的API函数,即SetProcessShutdownParameters(),可告诉系统如何终止该进程。

3. 终止进程

步骤1:在工具栏单击“新建”按钮,编写代码保存为2-3.cpp。

步骤2:单击“Build”菜单中的“Compile 2-3.cpp”命令,再单击“是”按钮确认,系统对2-3.cpp进行编译。

步骤3:编译完成后,单击“Build”菜单中的“Build 2-3.exe”命令,建立2-3.exe可执行文件。

操作能否正常进行,如果不行,原因是什么?

答:操作能正常运行

步骤4:在工具栏单击“Execute program”按钮,执行2-3.exe程序。

程序运行时结果如下:

2.5 实验总结

1.由于刚刚接触C++,对它不是很熟悉,使得实验进展很慢。

2. 编译程序时出错,Linking...

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main

Debug/2-1.exe : fatal error LNK1120: 1 unresolved externals

执行link.exe时出错。经过检查发现,工程的存储路径与运行路径不一致,导致该错误。

2.6 实验评价(教师)

相关文档
最新文档