当前位置: 首页 > wzjs >正文

网站制作产品资料百度seo刷排名软件

网站制作产品资料,百度seo刷排名软件,诸城做网站的,自己做的网站如何实现下载文件一、实验目的 1、学会使用VC编写基本的Win32 Consol Application(控制台应用程序); 2、通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows 进程的“一生”&…

一、实验目的

1、学会使用VC编写基本的Win32 Consol Application(控制台应用程序);

2、通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉操作系统的进程概念,理解 Windows 进程的“一生”;

3、通过阅读和分析实验程序,学习创建进程、观察进程、终止进程以及父子进程同步的基本程序设计方法。

二、实验内容

1、 实验原理

        使用控制台应用程序;创建子进程并多次启动,打印显示它的系统进程ID和进程列表中的位置;利用互斥体来同步进程之间的工作,使其共享信息并执行任务。

2、运用的理论知识及算法

        实验代码包括但不限于CreateProcess()、CreateMutex()OpenMutex()ReleaseMutex()、WaitForSingleObject()等。

3、程序流程图

 4、步骤和方法

(1)任务一:编写基本的 Win32 Consol Application

①在Visual Studio 2019中创建一个名为“Windows进程管理”的工程并创建一个cpp源文件,按要求编写程序;

进入debug子目录,执行编译好的可执行程序,列出运行结果。

(2)任务二:创建进程

 ①在Visual Studio 2019中创建名为“Win32 Consol Application”的工程及对应cpp源文件; 

运行可执行文件,列出运行结果并开启windows的任务管理器,记录进程相关行为属性;

③修改当前实验代码,将nClone的定义和初始化方法按题目给出的修改方法进行修改,并重新编译成可执行文件,重复上一步操作并列出行结果。

(3)任务三:父子进程的简单通信及终止进程

①在Visual Studio 2019中创建一个名为“Windows进程管理”的工程并创建一个cpp源文件;

②根据题目要求完成代码编写并运行当前程序,列出输出结果;

③修改当前实验代码,根据题目给出的提示将代码中字符串child改为别的字符串,重新编译执行,列出运行结果;

④修改当前实验代码,根据题目给出的提示将WaitForSingleObject函数的参数修改,重新编译执行,列出运行结果。

 5、关键代码

(1)任务一:编写基本的 Win32 Consol Application

std::cout << "Hello, Win32 Consol Application" << std::endl;

(2)任务二:创建进程

① 修改前:

int nClone = 0;
if (argc > 1) ::sscanf(argv[1], "%d", &nClone);

② 第一次修改:

int nClone;
nClone = 0; 
if (argc > 1) ::sscanf(argv[1], "%d", &nClone);

③ 第二次修改:

int nClone; 
if (argc > 1) ::sscanf(argv[1], "%d", &nClone)
nClone = 0;

(3)任务三:父子进程的简单通信及终止进程

① 修改前:

if (argc > 1 && :: strcmp(argv[1], "child" ) == 0)Child();
elseParent();
return 0;

② 第一次修改:

TCHAR szFilename[MAX_PATH];
GetModuleFileName(NULL, szFilename, MAX_PATH);
TCHAR szCmdLine[MAX_PATH];
sprintf(szCmdLine, "\"%s\" 67X", szFilename);
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
PROCESS_INFORMATION pi;

③ 第二次修改:

if (hMutexSuicide != NULL){std :: cout <<"Child waiting for suicide instructions. " << std :: endl;WaitForSingleObject(hMutexSuicide, 0);std :: cout << "Child quiting." << std :: endl;CloseHandle(hMutexSuicide);
}

三、实验结果与分析

1、任务一:编写基本的 Win32 Consol Application

2、任务二:创建进程

(1)修改前

 

        分析:生成子进程的过程是父进程生成一个子进程,然后子进程再“克隆”自己生成一个子进程,直到到达代码中规定const int c_nCloneMax = 5为止

GetModuleFileName(NULL,szFilename,MAX_PATH) ;
TCHAR szCmdLine[MAX_PATH];
sprintf(szCmdLine,"\"%s\"%d",szFilename,nCloneID);

        当父进程生成子进程时,会给子进程传递参数,传参的内容就是szCmdLine字符串,比如主进程会向子进程传递2个参数,第一个参数是szFilename(从主进程信息中获取),第二个参数是nClone,用来控制生成的克隆数量。

(2)第一次修改

 

        分析:在if语句之前将nClone的量置为0,但在之后判断参数数量时,如果传进来的参数大于1,会把传进来的第二个参数赋值给nClone,也就说子进程的nClone最后的值是它的父进程传进来的值,第一次修改的nClone=0就会被sscanf()覆盖掉,因此结果与修改前没有区别。

(3)第二次修改

 

        分析:if判断中将父进程传进来的参数赋值给nClone,然后将nClone的量置为0,这样将会覆盖掉if中的赋值,所以nClone的最终值是0,因此nClone < c_nCloneMax恒成立,则无限生成子进程,同时子进程的nClone参数永远是1。

(4)问题解决

        说明nClone的作用。变量定义和初始化方法(位置)对程序的执行结果有影响吗?为什么?

① nClone的作用:控制ID的起始值和创建的进程数量;

② 有影响;变量初始化的位置会影响nClone的取值,从而使最后创建进程的数目也随之发生变化。

3、任务三:父子进程的简单通信及终止进程

(1)修改前

(2)第一次修改

        分析:修改字符串“child”后,传入main函数的参数将发生变化,在if判断语句中不再执行Child函数而转去执行Parent函数,而Parent函数不会进入阻塞,只指示子进程“杀”掉自身并等待键盘响应,因此程序会不断创建新的进程而无法停止。

(3)第二次修改

 

        分析:WaitForSingleObject()函数的第二个参数dwMilliseconds有两个具有特殊意义的值:0和INFINITE:若为0,则该函数立即返回;若为INFINITE,则线程一直被挂起,直到hHandle所指向的对象变为有信号状态时为止。具体表现则为子进程不出现,只有主进程。

(4)问题解决

        通过参考MSDN中的帮助文件,查找并了解CreateMutex()OpenMutex()ReleaseMutex()WaitForSingleObject()的使用方法,理解父子进程如何利用互斥体进行同步的。给出父子进程同步过程的一个大概描述。

        父进程调用CreateMutex()创建“自杀”互斥体,最后释放互斥体所有权。子进程通过OpenMutex()打开互斥体获得句柄,调用WaitForSingleObject(hMutexSuicide, INFINITE)等待对象信号,如果dwMilliseconds为INFINITE,说明要等待对象触发产生信号后,函数才会返回。最后终止时由CloseHandle(hMutexSuicide)消除句柄。

四、小结与心得体会

        通过对Windows进程管理实验的学习,首先了解了CreateProcess()函数的基本用法,同时通过演示实验也理解了控制台程序传参的过程。在第二个任务中通过对nClone进行不同的初始化,运行结果也产生了变化,进一步了解了父子进程之间传递参数的过程。最后通过第三个任务了解互斥程序体的概念和使用方法,以及如何用WaitForSingleObject()和ReleaseMutex()实现进程的互斥操作。

http://www.dtcms.com/wzjs/16199.html

相关文章:

  • 法律问题咨询哪个网站做的好网络营销模式包括哪些
  • 昆山h5网站建设青岛百度快速排名优化
  • 夹娃娃网站如何做北京seo服务行者
  • 免费建手机个人网站网店营销策划方案
  • dede网站更新如何同步腾讯微博更新大量微信群推广代发广告
  • 长沙专门做网站建设的公司网站设计制作教程
  • 怎么做网站弹幕效果怎么查搜索关键词排名
  • 政协网站建设意义重庆企业站seo
  • 山东广饶县建设局网站seo云优化软件破解版
  • 国内购物平台排行榜seo的优缺点
  • 做音乐网站的栏目太原seo
  • 宁波做公司网站seo推广培训中心
  • 湛江网站如何制作郑州seo排名工具
  • 菏泽建设企业网站网络推广一般都干啥
  • 中国建设新闻网站惠州seo计费管理
  • 政府网站怎么制作苏州优化网站公司
  • 电子商务网站建设与管理课后题答案企业新闻稿发布平台
  • wordpress 会员级别免费seo提交工具
  • 网站开发所需的知识seo报告
  • 17网站一起做网店优势与劣势深圳百度seo培训
  • 做英文网站的标准字体公司网站设计需要多少钱
  • 电子商务网站建设所需要的经费网站建设与营销经验
  • 论坛网站html模板优化设计一年级下册数学答案
  • 经典设计作品二十个优化
  • 青岛建设局网站首页如何建一个自己的网站
  • 在北京做家教的网站河南省疫情最新情况
  • 有没有做问卷还能赚钱的网站互联网电商平台有哪些
  • 厦门住房和城乡建设局网站信阳网站seo
  • 营销设计网站建设新乡网站优化公司
  • 怎么黑网站的步骤青岛seo外包服务