1、Windows操作系统实验二实验报告总结计划Windows操作系统C/C+程序实验姓名:_王晨璐_学号:_46_班级:_1班_院系:_信息工程学院_2015_年_10_月_26_日实验二 Windows2000/xp 进度控制一、背景知识二、实验目的三、工具/准备工作四、实验内容与步骤请回答:Windows所创立的每个进度都是以调用 CreateProcess() API 函数开始和以调用TerminateProcess() 或ExitProcess() API函数停止。创立进度步骤5:编译达成后,单击“ Build”菜单中的“ Build ”命令,成立可履行文件。操作可否正常进行假如不可以,
2、则可能的原由是什么能够正常运转。清单2-1展现的是一个简单的使用 CreateProcess()API 函数的例子。第一形成简单的命令行,供给目前的 EXE文件的指定文件名和代表生成克隆进度的号码。大部分参数都可取缺省值,可是创立标记参数使用了:CREATE_NEW_CONSOLE标记,指示新进度分派它自己的控制台,这使得运转示例程序时,在任务栏上产生很多活动标记。而后该克隆进度的创立方法封闭传达过来的句柄并返回 main() 函数。在封闭程序以前,每一进度的履行主线程暂停一下,以便让用户看到此中的起码一个窗口。CreateProcess() 函数有10个中心参数本实验程序中设置的各个参数的值
3、是:a.LPCSTRlpApplivetionName szFllenameb.LPCSTRlpCommandLine szCmdLinec.LPSECURITY_ATTRIBUTESlpProcessAttributes NULLd.LPSECURITY_ATTRIBUTESlpThreadAttributes NULLbInherithandle Falsef.DWORDdwCreationFlage CREATE_NEW_CONSOLEg.LPVOIDipEnvironment NULLh.LPCTSTRlpCurrentDirectoryNULLI.STARTUPINFOlpstart
4、upinfo&siJ.LPPROCESS_INFORMATIONlpProcessInformation&pi程序运转时屏幕显示的信息是:提示:部分程序在 Visual C+环境达成编译、链接以后,还能够在 Windows2000/xp的“命令提示符”状态下试试履行该程序,看看与在可视化界面下运转的结果有没有不同为何界面是同样的正在运转的进度步骤10:编译达成后,单击“ Build”菜单中的“ Build ”命令,成立可履行文件。操作可否正常进行假如不可以,则可能的原由是什么 能够正常运转步骤11:在工具栏单击“ ExecuteProgram”(履行程序)按钮,履行程序。运转结果:目前PID信
5、息:3692目前操作系统版本:系统提示信息: task managershouldnownowindicate this process ishigh priority.清单2-2中的程序向读者表示了怎样获取目前的 PID和所需的进度版本信息。为了运转这一程序,系统办理了全部的版本不兼容问题。接着,程序演示了怎样使用 GetVersionEx() API函数来提取 OSVERSIONINFOEX构造。这一数据块中包含了操作系统的版本信息。此中, “OS: ”表示目前运转的操作系统是:windowsXp5清单2-2的最后一段程序利用了操作系统的版本信息, 以确认运转的是 Windows2000/
6、xp。代码接着将目行进度的优先级提高到比正常级别高。步骤12:单击Ctrl+Alt+Del 键,进入“Windows任务管理器”,在“应用程序”选项卡中右键单击“ 2-2”任务,在快捷菜单中选择“转到进度”命令。在“Windows任务管理器”的“进度”选项卡中,与“2-2”任务对应的进度映像名称是 (为什么):右键单击该进度名,在快捷菜单中选择“设置优先级”命令,能够调整该进度的优先级,如设置为“高”后从头运转程序,屏幕显示有变化吗为何除了PID有变化,其余的没有变化除了改变进度的优先级之外,还能够对正在运转的进度履行几项其余的操作,只需获取其进度句柄即可。SetProcessAffinity
7、Mask()API函数同意开发人员将线程映照到办理器上;SetProcessPriorityBoost()API可关闭前台应用程序优先级的提高;而SetProcessWorkingSet()API可调理进度可用的非页面RAM的容量;还有一个只对目行进度可用的API函数,即SetProcessShutdownParameters(),可告诉系统怎样停止该进度。3. 停止进度步骤15:编译达成后,单击“ Build”菜单中的“ Build ”命令,成立可履行文件。操作可否正常进行假如不可以,则可能的原由是什么能够正常运转步骤16:在工具栏单击“ ExecuteProgram”按钮,履行程序。运转结
8、果:1)creatingthechildprocess表示:创立一个子进度2)childwaitingforsuicideinstruction表示:子进度等候父进度给一个自杀命令3)tellingchildprocesstoquit表示:子进度自杀步骤17:在熟习清单2-3源代码的基础上, 利用本实验介绍的API函数来试试改良本程序(比如使用GetProcessTimes()API函数)并运转。请描绘你所做的工作:2-3源代码中std:cout Creatingthechildprocess. std:endl;: StartClone()为创立子进度代码。应将其用CreateProcess()API 函数创立。std : cout Childquiting. std:endl;CloseHandle(hMutexSuicide)为结束子进度代码,应将其改为 ExitProcess() 或TerminateProcess()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1