文档详情

计算机操作系统综合设计实验报告实验三.pdf

发布:2024-08-02约1.83千字共5页下载文档
文本预览下载声明

计算机操作系统综合设计

实验三

实验名称:进程撤销模拟实现

实验类型:验证型

实验环境:win7vc++6.0

实验日期:2017年10月24日

实验报告日期:2017年10月24日

实验成绩:

一、实验目的

1)理解进程撤销相关理论;

2)掌握进程撤销流程。

二、实验平台

windows7VisualC++6.0

三、实验步骤

1、实验内容

1)采用动态或静态方法生成一颗进程树(进程数目≥20);

2)设计进程撤销算法;

3)实现进程撤销函数,采用级联方式撤销;

4)可动态撤销进程;

5)可动态观察进程树的情况;

6)测试程序并得到正确结果。

2、实验步骤

1)输入代码

A、打开VisualC++6.0;

B、新建c++文件,创建basic.h头文件,并且创建main.cpp

2)进行功能测试并得出正确结果

A、编译、运行main.cpp

B、输入createpc命令创建进程,

再输入showdetail显示每个进程及其子进程的信息。

C、输入deletepc命令删除进程,再输入showdetail显示删除后的

每个进程及子进程信息。

(1)删除单个进程

(2)删除父进程和子进程

D、输入exit命令退出程序

3、撤销函数流程图

四、实验总结

1、实验思考

1)进程撤销的核心内容是什么?

答:根据标识符,检索出该进程的PCB,读出状态;若正处于执行状态,应立即终止,

置调度标志为真;若该进程还有子孙进程,终止其所有子孙进程;归还全部资源给其父

进程或者系统;将被终止进程(它的PCB)从所在队列(或链表)中移出

2)可否采用其它的撤销方法?

答:

2、个人总结

在这次实验中,输入createpc(进程,父进程,优先级)指令来创建进程,因为默认有

个父进程0,所以第一次输入时可以输入createpc(1,0,1),在多次输入createpc指令

后,可以通过showdetail指令来查看已经创建好进程。进程撤销的核心内容是:进入函

数后,判断当前节点的左子树是不是为空。当不为空的时候,递归调用以当前节点左子

树为参数的deletepc函数以及当前节点为参数deletepc函数。如果为空,则说明当前

节点没有子节点,判断父节点的左子树是不是当前节点,如果是,将当前节点的兄弟节

点赋给父节点的左子树;如果不是,遍历父节点的子节点,找到临时节点的兄弟节点为

当前节点,然后将当前节点的兄弟节点赋给临时节点的兄弟节点。最后遍历所有节点找

到当前节点的位置,并把它删除

显示全部
相似文档