页式存储中的内存分配和管理.doc_第1页
页式存储中的内存分配和管理.doc_第2页
页式存储中的内存分配和管理.doc_第3页
页式存储中的内存分配和管理.doc_第4页
页式存储中的内存分配和管理.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目二:模拟页式存储管理中内存的分配和管理1 设计思想说明模拟页式存储管理,首先假定内存被分为2048块(块和页大小一致),利用位式图中该位的状态表示状况,判断它内存的块是否被占用,0表示内存块为空闲状态,新作业可申请该块;1表示内存被占用,新的作业不能占用该块。该位示图使用32字长的字表示,故需要64个这样的字。位示图存放在文件中,每行表示32字长的字,共64行。块和页的大小为512字节。程序中使用结构体node来存放作业的相关信息(加入内存的进程名,新作业的申请内存的大小(单位为字节),分配的块数,分配块在内存中的位置,最后块的碎片的大小(单位为字节);使用sum来记录当前的空闲的内存块数。该程序在显示完内存的分配之后,使用switchcase来为用户提供可供是实现的功能。用户选择不同的功能之后,程序会自动进入到不同的实现模块中,用户再依次根据程序的提示进行操作。模拟页式存储中内存的分配和管理这个程序划分为了以下几个模块:显示当前的内存分配的位示图,添加新的作业,完成作业(将原来分配给用户的内存空间回收),显示作业的内存分配的页表等功能。在添加新的作业的这个功能中,当用户申请的作业的存放空间大于当前内存拥有的最大的内存空间,则该程序不给予分配。在完成作业的功能中,程序将原来分配给作业的内存空间按照存放在结构体中的内存空间的链表回收。显示位示图的功能就是将现在的位示图显示 到屏幕上。显示作业的相关信息就是将存放该作业的节点中包括的所有内容显示出来。2 相关数据结构的说明用来保存用户作业的相关信息的结构体的定义:typedef struct node char jobname20; /申请内存空间的进程名int num; /申请空间的大小(字节数) int block;/分配的块数int numsPAGES; /保存分配的块号int slice; /保存碎片大小struct node *next; jobs;用来存放用户作业链表的头节点的结构体指针:jobs *head;用来存放当前的内存中剩余的空间数:int sum;3 各个模块的算法流程1. 从文件中读取位示图的模块:readdata()开始进入到inf.txt,string s,int iagetline(in,s)!=NULLGetline(in,s)!=NULListringstream sin(s)b.push_back(ia)a.push_back(b)是结束否是否2. 用户选择功能模块:choose()开始输入需要操作功能的代表数字添加作业模块完成作业模块显示作业信息模块显示位示图模块退出系统其他数字124303. 添加作业模块:add()开始输入要添加的作业的进程名输入该作业需要的内存空间大小numnum%PAGESIZE=0是block=num/PAGESIZE否Block=num/PAGESIZE+1blocknextp-next!=NULL否strcmp(q-jobname,name)=0是回收为作业分配的内存空间,即将原来分配的空间的对应的位示图的标志由1改为0,将原来的链表链接好sum=sum+q-block删除这个节点否结束p=p-next5. 显示位示图的模块:tableview()开始i=0iWORDNUMjWORDj=0coutaij

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论