电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统实验3-进程控制VIP免费

操作系统实验3-进程控制_第1页
1/10
操作系统实验3-进程控制_第2页
2/10
操作系统实验3-进程控制_第3页
3/10
《操作系统》实验报告学号姓名专业、班实验地点指导教师实验时间一、实验目的及要求(1)通过对WindowsXP进行编程,来熟悉和了解系统。(2)通过分析程序,来了解进程的创建、终止。二、实验设备(环境)及要求(1)一台WindowsXP操作系统的计算机。(2)计算机装有MicrosoftVisualStudioC++6.0专业版或企业版。三、实验内容与步骤(1)编程一利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下:实验序号:实验项目名称:进程控制fprintf(stderr,"CreatProcessFailed");returnT;}WaitForSingleObject(pi.hProcess,INFINITE);printf("childComplete");CloseHandle(pi.hProcess);CloseHandle(pi.hThread);};四、程序调试(结果及分析)编程一:(1)利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下:(2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。#include"stdafx.h"#includevwindows.h>#includeviostream.h>〃利用进程和操作系统的版本信息的简单示例voidmain()〃提取这个进程的ID号DWORDdwIdThis=::GetCurrentProcessId();〃获得这一进程和报告所需的版本,也可以发送0以便指明这一进程DWORDdwVerReq=::GetProcessVersion(dwIdThis);WORDwMajorReq=(WORD)(dwVerReq>16);WORDwMinorReq=(WORD)(dwVerReq&0xffff);::coutvv"ProcessID:"vvdwIdThisvv",requiresOS:"vvwMajorReqvvwMinorReqvv::endl;〃设置版本信息的数据结构,以便保存操作系统的版本信息OSVERSIONINFOEXosvix;::ZeroMemory(&osvix,sizeof(osvix));osvix.dwOSVersionInfoSize=sizeof(osvix);〃提取版本信息和报告::GetVersionEx(reinterpret_castvLPOSVERSIONINFO>(&osvix));::coutvv"RunningonOS:"vvosvix.dwMajorVersionvv"."vvosvix.dwMinorVersionvv::endl;〃如果是NTS(Windows2000)系统,则提高其优先权if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&osvix.dwMajorVersion>=5){〃改变优先级::SetPriorityClass(::GetCurrentProcess(),〃利用这一进程HIGH_PRIORITY_CLASS);〃改变为high〃报告给用户::coutvv"TaskManagershouldindicatethis""processishighpriority."<<::endl;}}・'DAProgramFiles(Jc86)\Micro5oftVisualStudio\MyProjects\1\Debug\1.e^e'ProcessID:5196,requiresOS:10RunningonOS:6.2TaskManagershouldindicatethisprocessishighpriority.Pressanykeytucontinue^实验任务:写出程序运行后的以下几项结果。当前PID信息5092,requiresOS:10。当前操作系统版本6.2。系统提示信息TaskManagershouldindicatethisprocessishighpriority.。(3)编程三下面给出了一个终止进程的应用程序(文件名为4-3.cpp),它先创建一个子进程,然后命令它发出“自杀弹”互斥体去终止自身的运行。阅读该程序并完成实验任务。#includevwindows.h>#include#includestaticLPCTSTRg_szMutexName="w2kdg.ProcTerm.mutex.Suicide";〃创建当前进程的克隆进程的简单方法voidStartClone(){〃提取当前可执行文件的文件名TCHARszFilename[MAX_PATH];::GetModuleFileName(NULL,szFilename,MAX_PATH);〃格式化用于子进程的命令行,指明它是一个EXE文件和子进程TCHARszCmdLine[MAX_PATH];::sprintf(szCmdLine,"\"%s\"child",szFilename);〃子进程的启动信息结构STARTUPINFOsi;::ZeroMemory(reinterpret_castvvoid*>(&si),sizeof(si));si.cb=sizeof(si);〃应当是此结构的大〃返回的用于子进程的进程信息PROCESS_INFORMATIONpi;〃用同样的可执行文件名和命令行创建进程,并指明它是一个子进程BOOLbCreateOK=::CreateProcess(szFilename,〃产生的应用程序名称(本EXE文件)szCmdLine,〃告诉人们这是一个子进程的标志NULL,〃用于进程的默认的安全性NULL,〃用于线程的默认安全性FALSE,〃不继承句柄CREATE_NEW_CONSOLE,〃创建新窗口,使输...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统实验3-进程控制

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部