操作系统存储器的分配与回收算法实现Word文件下载.doc
- 文档编号:13168673
- 上传时间:2022-10-07
- 格式:DOC
- 页数:20
- 大小:287.50KB
操作系统存储器的分配与回收算法实现Word文件下载.doc
《操作系统存储器的分配与回收算法实现Word文件下载.doc》由会员分享,可在线阅读,更多相关《操作系统存储器的分配与回收算法实现Word文件下载.doc(20页珍藏版)》请在冰豆网上搜索。
1本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。
2采用最先适应法、最佳适应法、最坏适应法分配主存空间。
3当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足够大的空闲区。
若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,加一部分又成为一个空闲区。
4当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。
5运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。
三、实验程序
#include<
iostream.h>
malloc.h>
stdlib.h>
typedefstructFreeLink{//定义自由链
structFreeLink*prior;
charname;
intstart;
intsize;
boolflag;
structFreeLink*next;
}*ptr,*head;
headtop;
ptrp;
voidprint(){//将内存分配情况打印到屏幕上
p=top;
cout<
<
"
************************内存分配情况表************************"
endl;
区号\t\t"
起始位置\t"
区间长度\t"
区间状态\t"
do{
cout<
p->
name<
\t\t"
start<
size<
;
if(p->
flag==false){cout<
空闲"
}
else{cout<
已占用"
p=p->
next;
}
while(p!
=NULL);
voidclear(){//结束操作时清空“内存”以备其他操作
p=top;
top=top->
free(p);
while(top!
voidasc(ptr&
p){//最佳适应法的内存分配函数
intmin;
ptrop;
FreeLink*fl=(FreeLink*)malloc(sizeof(FreeLink));
请输入要分配内存的进程名"
cin>
>
fl->
name;
请输入要分配内存的大小"
size;
min=256;
fl->
flag=true;
flag==false&
&
=min&
size>
=fl->
size){
min=p->
op=p;
}
if(op->
fl->
start=op->
start;
op->
start=fl->
start+fl->
size=op->
size-fl->
next=op;
prior=op->
prior;
prior->
next=fl;
op->
prior=fl;
gotoflag1;
size==fl->
flag=fl->
flag;
name=fl->
free(fl);
内存过小,分配失败!
gotoflag2;
flag1:
cout<
分配成功!
flag2:
;
voiddec(ptr&
p){//最坏适应法的内存分配函数
intmax;
max=fl->
=max){
max=p->
gotoflag3;
gotoflag4;
flag3:
flag4:
voidsplice(ptr&
p){//若被操作的内存有相邻空闲区则将空闲区拼接合并
intx;
if(p->
next->
flag==false)x=1;
if((p->
flag==true)||(p->
next==NULL))x=2;
flag==true&
flag==false)||(p->
prior==NULL&
flag==false))x=3;
next==NULL))x=4;
switch(x){
case1:
prior=p->
p->
next=p->
size=p->
size+p->
if(p->
next!
=NULL)p->
free(p->
next);
free(p);
break;
case2:
if(p->
next==NULL){
p->
}else{
}
case3:
prior==NULL){
top=p->
prior=NULL;
start=p->
p->
p->
p->
p->
case4:
name='
@'
flag=false;
voidallocate(ptr&
p){//最先适应法的内存分配函数
fl->
next=p;
p->
gotoa;
free(fl);
gotob;
a:
b:
voidrecover(ptr&
p){//内存回收函数
charn='
'
请
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 存储器 分配 回收 算法 实现