欢迎来到天天文库
浏览记录
ID:31737383
大小:79.03 KB
页数:6页
时间:2019-01-17
《实验三进程撤销模拟实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机操作系统综合设计实验三实验名称:进程撤销模拟实现实验类型:设计型实验实验环境:VisualC++6.0指导老师:范太华专业班级:姓名:学号:联系电话:实验地点:东六E座4-06实验日期:2014年12刀4日实验报告日期:2014年12月4日成绩:一、实验目的1)理解进程撤销相关理论;2)掌握进程撤销流程。二、实验平台windows7VisualC++6.0三、实验步骤1、实验内容1)采用动态或静态方法生成一颗进程树(进程数目220);2)设计进程撤销算法;3)实现进程撤销函数,采用级联方式撤销;4)可动态撤销进程;5)可动态观察进程树的情况;6)测试程序并得到正确结果。
2、2、实验步骤1)输入给定的实验指导书中提供的代码A、打开VisualC++6.0;B、新建C++文件,创建basic.h头文件,并且创建deletepc.cpp;2)进行功能测试并得出正确结果A、编译、运行deletepc.cpp:输入createpc命令创建进程,再输入showdetail显示每个进程及其子进程的信息。end:showdetail03、rio0>:1>:1>:1>:1>:1>:1>:1>:1>:1>:1>1>1>1>1>1>1>1>l1>1>23467910llCprio1>121314151617cnd:createpccnd:createpc<2^0,1>cnd:createpc<3^0,1>cnd:createpc<4J.0J.l>cnd:createpc<5..1,.14、>cnd:createpc<6..1,.1>cndzcreatepcC?,!^1>cnd:createpc<8..2,.1>cnd:createpc<9..2,.1>cndzcreatepcClQ^S,1>cnd:createpccnd:createpc<12,4,1>cnd:createpc<13,4,1>cnd:createpc<14J.5^1>cnd:createpc<15j.5^1>cnd:createpc<16^14,1>cnd:createpc<17J.14J.l>息。如果输入是两个参数,则会提示。cnd:deletepc<4J.12>只输入1个5、参数?end:如果输入一个参数,则正常运行,并且相关进程以及其子进程均被删除了。C、输入deletepc命令删除进程,再输入showdetail显示删除后的每个进程及子进程信cnd:deletepc<4>cnd:showdetail0:Kprio1>23Kprio1>:5672:893:10ll5:14156:7:8:96、o1>:10■■lKprio1>■■14:1617151617D、解决了内存泄露问题:用delete(),将当前节点删除。tempperent->next=tempperent->next->next;delete(currect);break;而不是仅仅跳过当前满足条件的节点。E、输入exit命令退出程序:cnd:exitPressanykeytocontinue3)deletepc函数程序流程图分析deletepc函数的代码,画出如下流程图:四、实验总结在这次实验中,输入cr7、eatepc(进程,父进程,优先级)指令来创建进程,因为默认有个父进程0,所以第一次输入时可以输入c「eatepc(1,0,1),在多次输入createpc指令后,可以通iSshowdetail指令來查看己经创建好进程。进程撤销的核心内容是:进入函数后,判断当前节点的左子树是不是为空。当不为空的时候,递归调用以当前节点左子树为参数的deletepc函数以及当前节点为参数deletepc函数。如果为空,则说明当前节点没有子节点,判断父节点的左子树是不是当前节点,如果是,将当前节点的兄弟节点赋给父节点的左子
3、rio0>:1>:1>:1>:1>:1>:1>:1>:1>:1>:1>1>1>1>1>1>1>1>l1>1>23467910llCprio1>121314151617cnd:createpccnd:createpc<2^0,1>cnd:createpc<3^0,1>cnd:createpc<4J.0J.l>cnd:createpc<5..1,.1
4、>cnd:createpc<6..1,.1>cndzcreatepcC?,!^1>cnd:createpc<8..2,.1>cnd:createpc<9..2,.1>cndzcreatepcClQ^S,1>cnd:createpccnd:createpc<12,4,1>cnd:createpc<13,4,1>cnd:createpc<14J.5^1>cnd:createpc<15j.5^1>cnd:createpc<16^14,1>cnd:createpc<17J.14J.l>息。如果输入是两个参数,则会提示。cnd:deletepc<4J.12>只输入1个
5、参数?end:如果输入一个参数,则正常运行,并且相关进程以及其子进程均被删除了。C、输入deletepc命令删除进程,再输入showdetail显示删除后的每个进程及子进程信cnd:deletepc<4>cnd:showdetail0:Kprio1>23Kprio1>:5672:893:10ll5:14156:7:8:96、o1>:10■■lKprio1>■■14:1617151617D、解决了内存泄露问题:用delete(),将当前节点删除。tempperent->next=tempperent->next->next;delete(currect);break;而不是仅仅跳过当前满足条件的节点。E、输入exit命令退出程序:cnd:exitPressanykeytocontinue3)deletepc函数程序流程图分析deletepc函数的代码,画出如下流程图:四、实验总结在这次实验中,输入cr7、eatepc(进程,父进程,优先级)指令来创建进程,因为默认有个父进程0,所以第一次输入时可以输入c「eatepc(1,0,1),在多次输入createpc指令后,可以通iSshowdetail指令來查看己经创建好进程。进程撤销的核心内容是:进入函数后,判断当前节点的左子树是不是为空。当不为空的时候,递归调用以当前节点左子树为参数的deletepc函数以及当前节点为参数deletepc函数。如果为空,则说明当前节点没有子节点,判断父节点的左子树是不是当前节点,如果是,将当前节点的兄弟节点赋给父节点的左子
6、o1>:10■■lKprio1>■■14:1617151617D、解决了内存泄露问题:用delete(),将当前节点删除。tempperent->next=tempperent->next->next;delete(currect);break;而不是仅仅跳过当前满足条件的节点。E、输入exit命令退出程序:cnd:exitPressanykeytocontinue3)deletepc函数程序流程图分析deletepc函数的代码,画出如下流程图:四、实验总结在这次实验中,输入cr
7、eatepc(进程,父进程,优先级)指令来创建进程,因为默认有个父进程0,所以第一次输入时可以输入c「eatepc(1,0,1),在多次输入createpc指令后,可以通iSshowdetail指令來查看己经创建好进程。进程撤销的核心内容是:进入函数后,判断当前节点的左子树是不是为空。当不为空的时候,递归调用以当前节点左子树为参数的deletepc函数以及当前节点为参数deletepc函数。如果为空,则说明当前节点没有子节点,判断父节点的左子树是不是当前节点,如果是,将当前节点的兄弟节点赋给父节点的左子
此文档下载收益归作者所有