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

发布时间 : 星期五 文章操作系统实验3-进程控制更新完毕开始阅读f30fb88732d4b14e852458fb770bf78a65293a8d

《操作系统 》实验报告

实验序号: 3 实验项目名称:进程控制 学 号 姓 名 指导教师 专业、班 实验时间 实验地点 一、实验目的及要求 (1) 通过对WindowsXP进行编程,来熟悉和了解系统。 (2) 通过分析程序,来了解进程的创建、终止。 二、实验设备(环境)及要求 (1) 一台WindowsXP操作系统的计算机。 (2) 计算机装有Microsoft Visual Studio C++6.0专业版或企业版。 三、实验内容与步骤 (1)编程一 利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下: #include \# include < stdio.h > # include < windows.h > int main(VOID){ STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); if(!CreateProcess(NULL,\,FALSE,0,NULL,NULL,&si,&pi)) { fprintf(stderr,\ return -1; } WaitForSingleObject(pi.hProcess,INFINITE); printf(\CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }; 四、程序调试(结果及分析) 编程一: (1)利用CreateProcess()函数创建一个子进程并且装入画图程序(mspaint.exe)。阅读该程序,完成实验任务。源程序如下:

(2)、编程二 下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。 #include \#include #include //利用进程和操作系统的版本信息的简单示例 void main() { //提取这个进程的ID号 DWORD dwIdThis=::GetCurrentProcessId(); //获得这一进程和报告所需的版本,也可以发送0以便指明这一进程 DWORD dwVerReq=::GetProcessVersion(dwIdThis); WORD wMajorReq=(WORD)(dwVerReq>16); WORD wMinorReq=(WORD)(dwVerReq&0xffff); ::cout<<\//设置版本信息的数据结构,以便保存操作系统的版本信息 OSVERSIONINFOEX osvix; ::ZeroMemory(&osvix,sizeof(osvix)); osvix.dwOSVersionInfoSize=sizeof(osvix); //提取版本信息和报告 ::GetVersionEx(reinterpret_cast(&osvix)); ::cout<<\//如果是NTS(Windows2000)系统,则提高其优先权 if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&osvix.dwMajorVersion>=5) { //改变优先级 ::SetPriorityClass( ::GetCurrentProcess(), //利用这一进程 HIGH_PRIORITY_CLASS); //改变为high //报告给用户 ::cout<<\ \ } }