操作系统原理实验三(2)

2019-03-10 14:39

其行为对于子进程来说,如同一个“自杀弹”。当创建子进程时,就打开了互斥体并在其他线程中进行别的处理工作,同时等待着父进程使用ReleaseMutex()API发出“死亡”信号。然后用Sleep()API调用来模拟父进程处理其他工作,等完成时,指令子进程终止。 当调用ExitProcess()时要小心,进程中的所有线程都被立刻通知停止。在设计应用程序时,必须让主线程在正常的C++运由期关闭(这是由编译器提供默认行为)之后来调用这一函数。当它转向受信状态时,通常可创建一个每个活动线程都可等待和停止的终止事件。 在正常的终止操作中,进程的每个工作线程都要终止,由主线程序员调用ExitProcess()。接着,管理层对进程增加的所有对象释放引用,并将用GetExitChodeProcess()建立的退出代码从STILL ACTIVE改变为ExitProcess()调用中返回的值。最后,主线程对象也如同进程对象一样转变为受信状态。

等到所有打开的句柄都关闭之后,管理层的对象管理器才销毁进程对象本身。还没有一种函数可取得终止后的进程对象为其参数,从而使具其“复活”。当进程对象引用一个终止了的对象时,有好几个API函数仍然是有用的。进程可使用退出代码将终止方式通知给调用GetExitCodeProcess ()的其他进程。同时,GetProcessTimes()API函数可向主调者显示 进程的终止时间。

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

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

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

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


操作系统原理实验三(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:阅胸片

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: