进程控制实验报告

更新时间:2023-06-05 17:24:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

测试过程: (实验中出现的问题、错误、解决方法) 1、 创建好项目和文件,对文件进行编译和运行,编译没有错误,但是运行总是提示有 2 个错误。 解决办法:在新建项目的时候“新建” 以正常的运行了。 ,然后新建文件,程序就可

实验名称 实验类型 验证性

进程控制实验时间

实验环境

Windows xp 、Microsoft Visual c++ 6.0

实验目的与要求: 1.通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操 作,进一步熟悉操作系统的进程概念,理解 Windows 2000 进程的 “一生” 。 2. 通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程 序设计方法。

实验总结:

1、课下没有对 Microsoft Visual c++ 6.0 进行深入的研究,还是好多问题 不知道怎么解决,好好钻研一下这个很有必要的啊!

实验内容: 本实验给出了三段程序:创建进程、正在运行的进程和终止进程,阅读 程序回答所提问题,分析运行结果。

评语与成绩:

教师签名: 年 月 日

实验步骤: (算法描述、源程序、操作步骤和方法) 一、 创建进程回答问题: 回答问题: 1、该程序是一个简单使用 CreateProcess()API 函数的例子。首先形成简单的命令行,提供当 前 EXE 文件的指定文件名和代表生成克隆进程的号码。大多数参数都可取默认值,但是创建标 志参数使用了 CREATE_NEW_CONSOLE 标志,指示新进程分配自己的控制台,这使得运行程 序时,在任务栏上产生许多活动标记。然后该克隆进程的创建方法关闭传递过来的句柄并返回 main()函数。在关闭程序之前,每一进程的执行主线程暂停一下,以便让用户看到其中的至 少一个窗口。 2、CreateProcess()函数有几个核心参数?本实验程序中设置的各个参数的值是什么? 答、CreateProcess()函数有 10 个核心参数 参数的值为:CreateProcess( szFilename, //产生这个 EXE 的应用程序的名称 szCmdLine, //告诉其行为像一个子进程的标志 NULL, //缺省的进程安全性 NULL, //缺省的线程安全性 FALSE, //不继承句柄 CREATE_NEW_CONSOLE, //使用新的控制台 NULL, //新的环境 NULL, //当前目录 &si, //启动信息 &pi ); 3、程序运行时屏幕显示的信息是什么? 答、

2、如何获得当前的 PID 和操作系统版本 (1) 可利用 GetCurrentProcessId()API 函数查看系统当前进程的标识符(pid) ,该 pid 在 整个系统中都可使用。 DWORD dwIdThis=::GetCurrentProcessId(); (2) 可利用 GetProcess 的 Version()查询进程运行的操作系统版本信息。 DWORD dwVerReq=::GetProcessVersion(dwIdThis); WORD wMajorReq=(WORD)(dwVerReq>16); //获得操作系统的主版本号 WORD wMinorReq=(WORD)(dwVerReq&0xffff); //获得操作系统的次版本号 3、按 Ctrl+Alt

+Del 键,进入任务管理器,在“应用程序”选项卡中右击此任务,在快捷菜单中 选择“转到进程” ,在“进程”选项卡中,与此任务对应的进程映像名称是什么(为什么)?右 击该进程名,在快捷菜单中选择“设置优先级”命令,调整该进程的优先级后重新运行,屏幕 显示有变化吗? 答:在“进程”选项卡中,与此任务对应的进程映像名称是 ,因为 02.cpp 在该程序下运行的。 调整该进程的优先级后重新运行,屏幕显示没有变化

三、 终止进程回答问题: 回答问题: 1、程序的运行结果是什么?给出你的结果分析。 答:程序的运行结果是:如图所示: 先创建一个子进程,然后命令它发出“自杀弹”互斥体去终止自身的运行,等待或周期性地测 试以指导是否该结束。

等待几秒钟,子进程被终止,显示下面的结果。

二、 运行进程回答问题: 回答问题: 1、给出运行结果(当前 PID 信息 、操作系统版本、系统提示信息) 答、运行结果为:

本文来源:https://www.bwwdw.com/article/jz41.html

Top