C++模拟操作系统实验内存管理.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C++模拟操作系统实验内存管理.docx》由会员分享,可在线阅读,更多相关《C++模拟操作系统实验内存管理.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、模拟操作系统内存管理实验实验名称:模拟操作系统内存管理。班级:软件1101班姓名:谭小兵一、实验目的:通过实验了解操作系统内存管理最先适应法的主要技术,帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。 二、实验内容:设计一个按照最先适应法实现操作系统内存管理的程序,模拟主存储器空间的分配和回收。三、基本设计:采用最先适应法模拟主存中内存的分配和回收。数据结构分析:采用双向链表表示内存存储,每个节点包含的主要信息为:进程名、进程大小、存储起始地址、结束地址。头节点是操作系统本身占用的内存,依次往下是表示进程占用的内存,最后一个节点表示的进程的结束存储地址不能比主存空间大。每次加入
2、内存即是从链表表头开始往下搜索合适位置插入表示进程的节点。每次进程结束删除相应节点即可。由此便完成了整个模拟内存管理。基本流程:源代码:#include#include#include using namespace std;#define MAX /定义数据结构/进程所占内存class processpublic:string name;long int size;long int start;long int end;/bool state;process *next;process *befor;/链表表头,存储进程数class Headpublic:long int count;pro
3、cess *next;/定义挂起队列class Outpublic: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-end = p-size + 10240;p-befor = 0;p-next = 0;return 1;else/如果内存中有进程long int te
4、mp = 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-next;p1-next-befor = p;p1-next=p;p-befor = p1;p-st
5、art = 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 *p = new process;/生成进程coutp-name;cout请输入进程大小:n;long int kb,bb;coutk
6、b;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); return;/kill进程void kill(Head *head)coutnam;process *p = head-next;while(p)if(p-name = nam)break;p = p-next;if(0 = p) cout未找到进程:nam!next = p)/p是第一个节点head-nex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 模拟 操作系统 实验 内存 管理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内