实验二 进程撤销模拟实现

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

计算机操作系统综合设计
实验二
实验名称:进程撤销模拟实现
学号:
学生姓名:
班级:
指导教师:
实验地点:
实验日期:
评分:
一、实验目的
1)理解进程撤销相关理论;
2)掌握进程撤销流程。

二、实验平台
windows 10Visual C++ 6.0
三、实验步骤
1、实验内容
1)采用动态或静态方法生成一颗进程树(进程数目≥20);
2)设计进程撤销算法;
3)实现进程撤销函数,采用级联方式撤销;
4)可动态撤销进程;
5)可动态观察进程树的情况;
6)测试程序并得到正确结果。

2、实验步骤
1)输入给定的实验指导书中提供的代码
A、打开Visual C++ 6.0;
B、新建c++文件,创建basic.h头文件,并且创建deletepc.cpp;
2)进行功能测试并得出正确结果
A、编译、运行deletepc.cpp:
B、输入createpc命令创建进程,再输入showdetail显示每个进程及其子进程的信息。

C 、输入deletepc 命令删除进程,再输入showdetail 显示删除后的每个进程及子进程信息。

1.如果输入是两个参数,则会提示参数输入错误。

1
2
3
5 4
6
7
8
9 112
11
19
18
17
16
15
14
13
20
2.如果输入一个参数,则正常运行,并且相关进程以及其子进程均被删除了。

D、输入exit命令退出程序:
四、实验总结
在这次实验中,输入createpc(进程,父进程,优先级)指令来创建进程,因为默认有个父进程0,所以第一次输入时可以输入createpc(1,0,1),在多次输入createpc指令后,可以通过showdetail指令来查看已经创建好进程。

进程撤销的核心内容是:进入函数后,判断当前节点的左子树是不是为空。

当不为空的时候,递归调用以当前节点左子树为参数的deletepc 函数以及当前节点为参数deletepc函数。

如果为空,则说明当前节点没有子节点,判断父节点的左子树是不是当前节点,如果是,将当前节点的兄弟节点赋给父节点的左子树;如果不是,遍历父节点的子节点,找到临时节点的兄弟节点为当前节点,然后将当前节点的兄弟节点赋给临时节点的兄弟节点。

最后遍历所有节点找到当前节点的位置,并把它删除。

通过本
次的实验,让我对进程的撤销有了更加深刻的理解,尤其是在撤消某个进程后,怎样重新组织进程之间的关系,有了更加清楚的理解。

希望以后能够多进行这方面的练习,让自己对书上的知识有更加清楚的认识。

相关文档
最新文档