2022年C++模拟操作系统实验内存管理 .pdf
《2022年C++模拟操作系统实验内存管理 .pdf》由会员分享,可在线阅读,更多相关《2022年C++模拟操作系统实验内存管理 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、模拟操作系统内存管理实验实验名称:模拟操作系统内存管理。班级:软件 1101班姓名:谭小兵一、实验目的:通过实验了解操作系统内存管理最先适应法的主要技术,帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。二、实验内容:设计一个按照最先适应法实现操作系统内存管理的程序,模拟主存储器空间的分配和回收。三、基本设计:采用最先适应法模拟主存中内存的分配和回收。数据结构分析:采用双向链表表示内存存储,每个节点包含的主要信息为:进程名、进程大小、存储起始地址、结束地址。头节点是操作系统本身占用的内存,依次往下是表示进程占用的内存,最后一个节点表示的进程的结束存储地址不能比主存空间大。每次加入
2、内存即是从链表表头开始往下搜索合适位置插入表示进程的节点。每次进程结束删除相应节点即可。由此便完成了整个模拟内存管理。基本流程:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -源代码:#include#include#include using namespace std;#define MAX 1048576/定义数据结构/进程所占内存class process public:string name;long int size;long int start;long int end;/bool state;process*next;process*befor;/链表
3、表头,存储进程数class Head public:long int count;process*next;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -/定义挂起队列class Out public:long int count;process*next;/从内存空间由上往下搜索合适的空间并装入内存long int add_pro(Head*head,process*p)/返回 1,表示插入成功;返回0 表示插入失败 process*p1=head-next;/搜索插入位置if(0=p1)/内存为空 head-next=p;p-start=10*1024;p-en
4、d=p-size+10240;p-befor=0;p-next=0;return 1;else/如果内存中有进程 long int temp=p1-start-10240;if(p-size next=head-next;head-next-befor=p;p-befor=0;head-next=p;p-start=10240;p-end=p-size+10240;return 1;else/在两个进程间寻找合适位置while(p1-next!=0)/当 p1 不是指向最后一个进程 temp=p1-next-start-p1-end;/以下有重复代码,可优化if(p-size next=p1-
5、next;p1-next-befor=p;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -p1-next=p;p-befor=p1;p-start=p1-end;p-end=p-start+p-size;return 1;p1=p1-next;/都没找到可插入的位置if(p1-end+p-size)next=0;p-befor=p1;p1-next=p;p-start=p1-end;p-end=p-start+p-size;return 1;else return 0;/返回 0,表示插入失败 /add 进程void in_pro(Head*head)process*
6、p=new process;/生成进程coutp-name;cout请输入进程大小:n;long int kb,bb;coutkb;coutbb;p-size=1024*kb+bb;p-next=0;p-befor=0;kb=add_pro(head,p);if(kb=0)cout 进程添加失败!n;else cout进程添加成功!n;system(pause);system(cls);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -return;/kill 进程void kill(Head*head)coutnam;process*p=head-next;while
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C+模拟操作系统实验内存管理 2022 C+ 模拟 操作系统 实验 内存 管理
限制150内