实验二 主存储器空间的分配和回收.doc

实验二 主存储器空间的分配和回收.doc

ID:57281848

大小:60.00 KB

页数:7页

时间:2020-08-09

实验二 主存储器空间的分配和回收.doc_第1页
实验二 主存储器空间的分配和回收.doc_第2页
实验二 主存储器空间的分配和回收.doc_第3页
实验二 主存储器空间的分配和回收.doc_第4页
实验二 主存储器空间的分配和回收.doc_第5页
资源描述:

《实验二 主存储器空间的分配和回收.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二主存储器空间的分配和回收1、实验内容主存储器空间的分配和回收。2、实验目的计算机系统不仅要有足够容量、存储速度高、稳定可靠的主存储器,而且要能合理的分配和使用者且存储空间。主存的分配和回收的实现是与主存储器的管理方式有关的。本实验有助于了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。3、实验题目在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。4、数据结构structBlock//空闲链结构体{stringname;//作业名intaddress;//分区首地址intsize;//分区大小intstate;//分区转态structBl

2、ock*next;//前向指针structBlock*front;//后向指针};——构造一个空闲链structUsed//已分配分区结构体{Block*usedArea;Used*next;};——分配分区结构体voidAllocate(stringreqName,intreqSize)//分配函数{Block*p=freeHead->front;Used*r1,*r2;while(p!=NULL){if(reqSizesize)//如果请求的分区的大小小于一个空闲分区的大小{Used*temp=newUsed;temp->usedArea=p;Block

3、*q=newBlock;*q=*p;temp->usedArea->name=reqName;temp->usedArea->size=reqSize;temp->usedArea->front=q;temp->usedArea->state=1;q->size=q->size-reqSize;q->address=q->address+reqSize;q->next->front=q;if(q->front!=NULL)q->front->next=q;r1=usedHead;r2=usedHead->next;while(r2!=NULL&&r2->usedAr

4、ea->addressusedArea->address){r1=r2;r2=r2->next;}r1->next=temp;temp->next=r2;break;}elseif(reqSize==p->size)//如果请求的分区的大小等于一个空闲分区的大小{Used*temp=newUsed;temp->usedArea=p;temp->usedArea->name=reqName;temp->usedArea->state=1;p->next->front=p->front;if(p->front!=NULL)p->front->next=p-

5、>next;r1=usedHead;r2=usedHead->next;while(r2!=NULL&&r2->usedArea->addressusedArea->address){r1=r2;r2=r2->next;}r1->next=temp;temp->next=r2;break;}p=p->front;}——构建一个链表,实现内存分配。5、源程序#include#includeusingnamespacestd;structBlock//空闲链结构体{stringname;//作业名intaddress;/

6、/分区首地址intsize;//分区大小intstate;//分区转态structBlock*next;//前向指针structBlock*front;//后向指针};structUsed//已分配分区结构体{Block*usedArea;Used*next;};Block*freeHead;//带表头附加节点的空闲链头指针Used*usedHead;//带表头附加结点的已分配分区头指针boolInitValue()//初始化函数{cout<<"本程序设立的操作功能:1-申请资源2-释放资源3-打印信息"<

7、ad->size=0;freeHead->next=NULL;freeHead->state=1;usedHead=newUsed;Block*p=newBlock;p->address=0;usedHead->usedArea=p;usedHead->next=NULL;Block*temp=newBlock;cout<<"请先输入主存大小(k):"<>temp->size;temp->address=0;temp->state=0;temp->next=freeHead;temp->front=NULL;freeHead->front=t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。