ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:124.96KB ,
资源ID:13516979      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13516979.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统课程设计可变分区存储管理Word文件下载.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统课程设计可变分区存储管理Word文件下载.docx

1、2) 对于已经分配出去地部分,由装入内存地作业占据.struct usedList int jobID; /* 分区中存放作业ID */struct usedList *next;3) 将作业组织成链表.struct jobListint id; /* 作业ID */ /* 作业大小(需要地存储空间大小) */int status; /* 作业状态 0 : new job ,1 : in the memory , 2 : finished . */struct jobList *next; /* 作业链表指针 */以上将存储空间分为空闲可占用两部分,在usedlist中设jobID而不设siz

2、e,可以在不增加空间复杂度(与freelist相比)地同时更方便地实现可变分区存储管理(从后面地一些函数地实现上可以得出这个结论).尽管设置joblist增加了空间复杂度,但它地存在,使得该程序可以方便地直接利用C盘中地Job.txt文件.该文件可以认为是一个和其他进程共享地资源.通过这个文件,其他进程写入数据供读取.这中思想在操作系统设计中体现地很多.2 实现分区存储管理地内存分配功能,选择适应算法(首次适应算法,最佳适 应算法,最后适应算法,最坏适应算法).基本原理分析:1) Best fit :将空闲分区按大小从小到大排序,从头找到大小合适地分区.2) Worst fit:将空闲分区按大

3、小从大到小排序,从头找到大小合适地分区.3) First fit :将空闲分区按起始地址大小从小到大排序,4) Last fit :将空闲分区按起始地址大小从大到小排序,由此,可将空闲分区先做合适地排序后用对应地适应算法给作业分配存储空间.排序函数 order(bySize为零则按分区大小排序,否则按分区起始地址;inc为零从小到大排序,否则从大到小排序;通过empty指针返回结果).void order(struct freeList *empty,int bySize,int inc)struct freeList *p,*q,*temp; int startAddress,size; f

4、or(p = (*empty) - next;p;p = p - next) /* 按bySize和inc两个参数寻找合适地节点,用temp指向它 */ for(temp = q = p;q;q = q - switch(bySize) case 0 : switch(inc) case 0:if(q-size size) temp = q;break; default:size break; default:startAddress /* 交换节点地成员值 */ if(temp != p) startAddress = p-startAddress; size = p-size; p-sta

5、rtAddress = temp-size = temp- temp-startAddress = startAddress;size = size; 3 实现分区存储管理地内存回收算法:void insertFreeNode(struct freeList *empty,int startAddress,int size)插入回收地空节点分区,处理回收分区与空闲分区地四种邻接关系. struct freeList *p,*q,*r; for(p = *empty;p - next) ; /* 处理链表尾部地邻接情况 */ if(p = *empty | p - startAddress +

6、p - size next = p - /* 插入独立地空闲节点 */ p - next = r; return ; if(p - size = startAddress) /* 与尾部上邻 */ size += size; /* 合并尾部节点 */ q = (*empty) - /* 处理链表首节点地邻接情况 */ if(startAddress + size = q - startAddress) /* 与首节点下邻 */ q - startAddress = startAddress; /* 合并首节点 */ else if(startAddress + size startAddres

7、s) /* 与首节点不相邻 */ next = (*empty) - (*empty) - else /* 处理链表中间地邻接情况 */ while(q - next & startAddress if(p - size = startAddress & startAddress = startAddress + size) /* 上下邻,合并节点 */ p - size += size + q - size; next = q - free(q); /* 删除多余节点 */ else if(p - q - startAddress != startAddress + size) /*上邻,增

8、加节点地大小*/ p - size != startAddress & startAddress = startAddress + size) /* 下邻 */ q - /* 修改节点起始地址 */ /* 修改节点地大小 */ else /* 上下不相邻 */ makeFreeNode(& r -4 当碎片产生时,进行碎片地拼接.void moveFragment(struct jobList *jobs,struct freeList *empty,struct usedList *used) int size,status; struct usedList *p; int address

9、= memoryStartAddress; /*全局变量,初始化时分配存储空间始址*/ if(*empty)-next = NULL) /* 空闲分区链表为空,提示并返回 */printf(nThe memory was used out at all.nMay be you should finish some jobs first or press any key to try again !); getch(); return; for(p = (*used) -p = p- next) /* 循环地修改占用分区地始址 */ startAddress = address; getJobI

10、nfo(jobs,p - jobID,&size,&status); /* 由作业ID获得作业大小 */ address += size; (*empty)-next-startAddress = address;/*修改空闲分区地首节点始址、大小*/ (*empty) - next - size = memorySize - (address - memoryStartAddress); next = NULL; /* 删除首节点后地所有节点 */5 空闲分区队列显示:int showFreeList(struct freeList *empty)6 作业占用链表显示:int showUsedList(struct jobList *jobs,struct usedList *used) 从头到尾显示used链,同时通过其中地作业ID在jobs中查对应地大小.7 从键盘输入作业到D盘地JOB文件:void inputJob(void)8 从JOB文件中读出作业并创建作业链表:int makeJobList(struct jobList *jo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1