好文档 - 专业文书写作范文服务资料分享网站

Windows操作系统实验二实验报告 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

Windows 操作系统 C/C++ 程序实验

: ____ 王晨璐 ___ 学号: __ 1131000046 ___ 班级: _ 1 班 _____ 院系: ___信息工程学院 ___

2015__年_10_月_26_日

实验二Win dows 2000/xp进程控制

、背景知识

、实验目的 三、工具/准备工作 四、实验容与步骤

请回答:

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

创建进程

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

操作能否正常进行?如果不行,则可能的原因是什么? 可以正常运行。

清单2-1展示的是一个简单的使用 CreateProcess() API函数的例子。首先形成简单的命令

行,提供当前的EXE文件的指定文件名和代表生成克隆进程的。 是创建标志参数使用了:

大多数参数都可取缺省值, 但

CREATE NEW CONSOLE

标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标 记。然后该克隆进程的创建方法关闭传递过来的句柄并返回 一进程的主线程暂停一下,以便让用户看到其中的至少一个窗口。

main()函数。在关闭程序之前,每 执行

CreateProcess()函数有10个核心参数?本实验程序中设置的各个参数的值是: a. LPCSTR IpApplivetio nN ame

szFlle name szCmdL ine

NULL NULL

b. LPCSTR lpComma ndLine

c. LPSECURITY_A TTRIBUTES IpProcessAttributes

d. LPSECURITY_ATTRIBUTES lpThreadAttributes e.BOOL bI nheritha ndle f. DWORD dwCreatio nFlage g. LPVOID ipE nvironment h. LPCTSTR lpCurre ntDirectory I. STARTUPINFO lp startup info J. LPPROCESS INFORMA TION

程序运行时屏幕显示的信息是:

False

CREATE NEW CONSOLE NULL NULL &si

lpProcess In formati on &pi

提示:部分程序在 Visual C++环境完成编译、之后,还可以在 Windows 2000/xp的

“命令提示符”状态下尝试执行该程序,看看与在可视化界面下运行的结果有没有不 同?为什么?界面是一样的

2. 正在运行的进程

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

操作能否正常进行?如果不行,则可能的原因是什么? 步骤11:在工具栏单击“ Execute Program”

可以正常运行

(执行程序)按钮,执行2- 2.exe程序。

运行结果:

当前PID信息:3692 当前操作系统版本:5.1

系统提示信息: task manager should now now indicate this process is high priority. 清单2-2中的程序向读者表明了如何获得当前的 一程序,系统处理了所有的版本不兼容问题。

接着,程序演示了如何使用 GetVersionEx() API函数来提取OSVERSIONINFOEX 结构。这 一数据块中包括了操作系统的版本信息。其中,

“OS : 5.0 ”表示当前运行的操作系统是:

PID和所需的进程版本信息。为了运行这

wi ndowsXp 5.0

5清单2-2的最后一段程序利用了操作系统的版本信息,

代码接着将当前进程的优先级提高到比正常级别高。

步骤12:单击Ctrl + Alt + Del键,进入“ Windows任务管理器”,在“应用程序”选项卡 中右键单击“ 2-2”任务,在快捷菜单中选择“转到进程”命令。

在“Windows任务管理器”的“进程”选项卡中,与“2-2”任务对应的进程映像名称是 什么? ) : VCSPAWN.EXE

以确认运行的是 Windows 2000/xp。

(为

^4 TinduTir任舞菅理器

型弊逬〕地顶功 查看妁 灵机畑|帮助地J 应用程序进程 性能 脆网

用厂

CPU

crux MSDEV EKE

?k% Acr^R^Z.

&vclio st? exe wps- exe SYSTEM

ClklL mspiistt.. omo

GAU.

QLSJ

内存備用

Z-JV KK K KK.K.KK KKKKKKKKKK^ 1 皐込

常G. T 53 3 ^TSrAWN EXE taskmcr, exe

AciroRd32. ei-ce

GILU UDU cnu.

二-aifis. 出■■wmiprvse. exe cfud e?re

VP1W 0 40 i hdi QKQ vmnet dhcp. ei^ploTeT exe

OEM on i i.oi-dt. ciace ccinimft.色乳电

髦可目h泊喜电 awa

匚h*工七.cx = Is as s = eice

HETWORK 5ER.YI 匚

cnu

£VSTEH SYS TEIfl cnn

盟益出關岂 4, SYSTEM

cnu

NETWORK SBRVirK

SYSTEM

5T5TEM

”二起鵝麗b — □显彌有用戶的逍程Q>

踣束进程电〕

提交更改,<53M /妁4列

进程数:14 CFU 用,□*

右键单击该进程名,在快捷菜单中选择“设置优先级”命令,可以调整该进程的优先级, 如设置为“高”后重新运行

2-2.exe程序,屏幕显示有变化吗?为什么?

除了 PID有变化,其他的没有变化

-^1 Tin.d?vs任务官理蛊

文件⑥ 选顶? 查看迪 关机逆)帮助如

诺程数;44

应用程序空程 性能 联阳 用戶

CFU使用-X

映像名称

WSPE1T EXE AcjrpRdSS, e3ce svchosiL- exe wps. esce mspaint_ exe

1用户名

1 cru

口口

内存愷用

2, 8^ K

11, 1&4 K 4, 532 K 65, 196 K 26, 62S K &0 Kl

T

■crw

SYSTEM 00 00

cnu. cnu.

CDAL

00 00

00

=

.vrsr-OH EXE

t askm gr. ex? AcraRd32. ?xa wuniprvs?. end, exe

■wmw&i\ su^thd.勒诜皂 喑mruat dlicp . e□{:pLorer. exe

0JMOILI t or Cl t. eae e orki m 4. q覽 e

cnu. 00 3, 3 <1-4

cnu.

KETWBK SERVICE

CDiU

皿 0口

00 OD 00 00 00 00 00 0口 00

STSTEM

SYSTEM cun

SYSTEM

sveh&st- cx? svchostH ?xe 1 sass ?x?

BETWORK SERVICE

SISTEM

SYSTBM

4, 156 7t 200 T貶 7, 404 2f 316 13,012 3, 900 4, 308 4, 792 5, 516

?日加

口显于所有用户的进程尊

结:S3S程

除了改变进程的优先级以外,还可以对正在运行的进程执行几项其他的操作,只要获得其

进程句柄即可。 SetProcessAffi nityMask() API函数允许开发人员将线程映射到处理器上;

而 SetProcessWorkingSet() API

SetProcessPriorityBoost() API 可关闭前台应用程序优先级的提升;

可调节进程可用的非页面

RAM 的容量;还有一个只对当前进程可用的 API函数,即

SetProcessShutdow nParameters(),可告诉系统如何终止该进程。 3.

终止进程

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

操作能否正常进行?如果不行,则可能的原因是什么? 可以正常运行

步骤16:在工具栏单击\Execute Program”按钮,执行 2-3.exe程序。 运行结果:

1) creati ng the child process

表示:创建一个子进程

2) child wait ing for suicide in struct ion

表示:子进程等待父进程给一个自杀命令

3) tell ing child process to quit

表示:子进程自杀

步骤 17:在熟悉清单 2-3 源代码的基础上,利用本实验介绍的 API 函数来尝试改进本程序

( 例如使用 GetProcessTimes() API 函数 ) 并运行。请描述你所做的工作:

2-3 源代码中 std :: cout << \

:: StartClone() 为创建子进程代码。应将其用 CreateProcess()API 函数创建。 std :: cout << \:: CloseHandle(hMutexSuicide)

为结束子进程代码,应将其改为

ExitProcess() 或 TerminateProcess()

Windows操作系统实验二实验报告 - 图文

Windows操作系统C/C++程序实验:____王晨璐___学号:__1131000046___班级:_1班_____院系:___信息工程学院___2015__年_10_月_26_日实验二Windows2000/xp进程控制、背景
推荐度:
点击下载文档文档为doc格式
2b97l75c533z01x0bvw21wxgu8k84a00neb
领取福利

微信扫码领取福利

微信扫码分享