操作系统实验报告4

  • 格式:doc
  • 大小:214.00 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《操作系统》实验报告

实验序号: 4 实验项目名称:进程控制

Printf(“child Complete”);

CloseHandle(pi.hProcess);

CloseHandle(pi hThread);

修改后:

#include

#include

int main(VOID)

{

STARTUPINFO si;

PROCESS_INFORMA TION pi;

ZeroMemory(&si,sizeof(si));

si.cb=sizeof(si);

ZeroMemory(&pi,sizeof(pi));

if(!CreateProcess(NULL,

"c:\\WINDOWS\\system32\\mspaint.exe",

NULL,

NULL,

FALSE,

0,

NULL,

NULL,

&si,&pi))

{

fprintf(stderr,"Creat Process Failed");

return -1;

}

WaitForSingleObject(pi.hProcess,INFINITE);

printf("child Complete");

CloseHandle(pi.hProcess);

CloseHandle(pi.hThread);

}

在“命令提示符”窗口运行CL命令产生可执行程序4-1.exe:C:\ >CL 4-1.cpp

实验任务:写出程序的运行结果。

4.正在运行的进程

(2)、编程二下面给出了一个使用进程和操作系统版本信息应用程序(文件名为4-5.cpp)。它利用进程信息查询的API函数GetProcessVersion()与GetVersionEx()的共同作用。确定运行进程的操作系统版本号。阅读该程序并完成实验任务。

#include

#include

修改后:

#include

#include

//利用进程和操作系统的版本信息的简单示例

void main()

{

//提取这个进程的ID号

DWORD dwIdThis=::GetCurrentProcessId();

//获得这一进程和报告所需的版本,也可以发送0以便指明这一进程DWORD dwVerReq=::GetProcessVersion(dwIdThis);

WORD wMajorReq=((WORD)dwVerReq>16);

WORD wMinorReq=((WORD)dwVerReq&0xffff);

std::cout<<"Process ID:"<

<<",requires OS:"<

//设置版本信息的数据结构,以便保存操作系统的版本信息OSVERSIONINFOEX osvix;

::ZeroMemory(&osvix,sizeof(osvix));

osvix.dwOSVersionInfoSize=sizeof(osvix);

//提取版本信息和报告

::GetVersionEx(reinterpret_cast(&osvix)); std::cout<<"Running on OS:"<

<

//如果是NTS(Windows2000)系统,则提高其优先权

if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT&&

osvix.dwMajorVersion>=5)

{

//改变优先级

::SetPriorityClass(

::GetCurrentProcess(), //利用这一进程

HIGH_PRIORITY_CLASS); //改变为high //报告给用户

std::cout<<"Task Manager should now now indicate this"

"process is high priority."<

}

}

实验参考:①在Visual C++窗口的工具栏中单击“打开”按钮,在“打开“对话框

中找到并打开4-2.cpp源程序。

②单击Build菜单中的Compile 4-2.cpp命令,再单击“是”按钮确认。系统对4-2.cpp 源程序进行编译。

③编译完成后,单击Build菜单中的Build 4-2.exe命令,建立4-2.exe可执行文件。

④在工具栏单击Execute Program(执行程序)按钮,执行4-2.exe程序。

实验任务:写出程序运行后的以下几项结果。

当前PID信息1628 。

当前操作系统版本Running on OS:5.1 。

系统提示信息Task Manager should now now indicate thisprocess is high priority 。

5、终止进程

(3)编程三下面给出了一个终止进程的应用程序(文件名为4-3.cpp),它先创建一个子进程,然后命令它发出“自杀弹”互斥体去终止自身的运行。阅读该程序并完成