电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

操作系统动态分区存储管理实验报告

9页
  • 卖家[上传人]:大米
  • 文档编号:473485511
  • 上传时间:2023-07-06
  • 文档格式:DOC
  • 文档大小:262KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、【实验目的】目的:1.熟悉主存的分配与回收。2.理解在不同的存储管理方式下,如何实现主存空间的分配与回收。3.掌握动态分区分配方式中的数据结构和分配算法及动态分区存储管理方式及其实现过程。【实验原理】建立两张表,空闲表和已分配表,分别将未分配的作业和已分配好的作业放入其中。当要装入一个作业时,从空闲区表中查找标志为“未分配”的空闲区,从中找出一个能容纳该作业的空闲区。如果找到的空闲区正好等于该作业的长度,则把该分区全部分配给作业。这时应该把该空闲区登记栏中的标志改为“空”,同时在已分配区表中找到一个标志为“空”的栏目登记新装入作业所占用分区的起始地址、长度和作业名。如果找到的空闲区大于作业长度,则把空闲区分成两部分,一部分用来装入作业,另外一部分仍为空闲区。实验采用的是“最优适应”算法。最优适应算法是按作业要求挑选一个能满足作业要求的最小空闲区,这样保证可以不去分割一个大的区域,使装入大作业时比较容易得到满足。此实验为解决假如找到的一个分区可能只比作业所要求的长度略大一点的情况,这时,空闲区分割后剩下的空闲区就很小,这种很小的空闲区往往无法使用,影响了主存的使用。为了一定程度上解决这个

      2、问题,如果空闲区的大小比作业要求的长度略大一点,不再将空闲区分成已分分区和空闲区两部分,而是将整个空闲区分配给作业。【实验器材和资料】电脑、Microsoft Visual C+ 6.0软件、操作系统资料书【实验内容和要求】1.主存的分配和回收的实现是与主存储器的管理方式有关的。所谓分配,就是解决多进程如何共享主存空间的问题。所谓回收,就是当进程运行完成时将进程所占的主存空间归还给系统。 2.实验要求使用可变分区存储管理方式,分区分配中所用的数据结构采用空闲分区说明表和空闲分区链表来进行,分区分配中所用的算法采用首次适应算法、循环首次适应算法、最佳适应算法三种算法来实现主存的分配与回收。3.同时,要求设计一个实用友好的可视化用户界面,并显示分配与回收的过程。【实验方法与步骤】1.实验题目:假设初始状态下,可用的内存空间为640KB,并有下列的请求序列: (1)进程1申请130KB(2)进程2申请60K (3)进程3申请100KB(4)进程2释放60KB (5)进程4申请200KB(6)进程3释放100KB (7)进程1释放130KB(8)进程5申请140KB(9)进程6申请60KB (

      3、10)进程7申请50KB(11)进程8申请60KB2.实验方法: (1)设计一个空闲分区表,空闲分区表通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。(2)设计一个内存分区表,可用链表管理,用以表示当前内存使用情况。(3)设计一个进程申请队列以及进程完成后的释放顺序,实现主存的分配和回收。(4)要求每次分配和回收后把空闲分区的变化情况以及各进程的申请、释放情况以图形方式显示、打印出来。3.实验过程(1)内存分配:动态输入构造空闲区表,并显打印示构造好的空闲分区表。键盘接收内存申请。根据申请,实施内存分配,并返回分配所得内存首址。分配完后,调整空闲分区表(即扣除分配部分),并显示调整后的空闲分区表。若分配失败,返回分配失败信息。(2)内存回收:显示当前的空闲分区表和内存分区表。从键盘接收回收分区的首址与大小,按内存回收的四种情况进行内存回收。 显示回收后已调整好的的空闲分区表。【程序流程图】输入内存最大范围执行操作添加进程并为之分配内存回收进程并回收被进程占用的内存判断是否可以分配退出YES NO发出内存不足的消息【相关数据结构及说明】typedef struct

      4、 None /已分配内存分区链表char name100; /进程名int begin; /开始地址int end; /结束地址int length; /长度大小None *next; /指向下一个内存分区表;typedef struct NeiCun /空闲分区链表int begin1; /空闲分区首地址int end1; /空闲分区尾地址int length1; /空闲分区大小NeiCun *next1; /指向下一个空闲分区表;None *head; /内存分区表头NeiCun *head1; /空闲分区表头int MAXNUMBER; /存储内存空间的最大范围int flag,flog; /标志位【程序代码】 由于我用的是MFC可视化编程编写,所以在这里不能完全复制源代码,只复制几个比较重要的模块的代码。1. 初始化链表 NeiCun *q;MAXNUMBER=m_Max_Edit;head1 = (NeiCun *)malloc(sizeof(NeiCun);head1-next1=NULL;q=(NeiCun *)malloc(sizeof(NeiCun);q-begin1

      5、=1;q-end1=m_Max_Edit;q-length1=m_Max_Edit;q-next1=NULL;head1-next1=q;2. 分配内存 None *p1,*p;p1=head;while(p1-next!=NULL)p1=p1-next;p=(None *)malloc(sizeof(None);p-next=NULL;NeiCun *q1,*q2;q1=head1;while(q1-next1!=NULL)if(m_Num_Editnext1-length1)flag=1;q1-next1-begin1+=m_Num_Edit;q1-next1-length1-=m_Num_Edit;p-begin=q1-next1-begin1-m_Num_Edit;p-end=p-begin+m_Num_Edit-1;p-length=m_Num_Edit;strcpy(p-name,m_Name1_Edit);p1-next=p; m_ComBo.AddString(p-name);break;else if(m_Num_Edit=q1-next1-length1)flag=

      6、1;p-begin=q1-next1-begin1;p-end=q1-next1-end1;p-length=m_Num_Edit;strcpy(p-name,m_Name1_Edit);p1-next=p;q2=q1-next1;q2-next1=q2-next1; m_ComBo.AddString(p-name);break;elseq1=q1-next1;if(flag=0)AfxMessageBox(内存不足!n不好意思,NULL,MB_OK);3. 回收内存 int k=0;None *p2,*p3;p2=head;while(p2-next!=NULL)if(!strcmp(p2-next-name,m_Name2_Edit)p3=p2-next;p2-next=p3-next;m_ComBo.DeleteString(k);break;k+;p2=p2-next;NeiCun *q1;q1=head1;while(q1-next1!=NULL)if(q1-next1-begin1-1=p3-end)q1-next1-begin1-=p3-length;q1-next1-

      7、length1+=p3-length;break;if(q1-next1-begin1-1p3-end)NeiCun *NewProc;NewProc=(NeiCun *)malloc(sizeof(NeiCun);NewProc-begin1=p3-begin;NewProc-end1=p3-end;NewProc-length1=p3-length;NewProc-next1=q1-next1;q1-next1=NewProc;break;if(q1-next1-end1+1=p3-begin)if(q1-next1-next1=NULL)q1-next1-end1+=p3-length;q1-next1-length1+=p3-length; break;elseif(q1-next1-next1-begin1-1=p3-end)q1-next1-length1+=p3-length;q1-next1-length1+=q1-next1-next1-length1;q1-next1-end1+=p3-length;q1-next1-end1+=q1-next1-next1-length1;NeiCun *pia;pia=q1-next1-next1;q1-next1-next1=pia-next1; break; elseq1-next1-end1+=p3-length;q1-next1-length1+=p3-length; break;q1=q1-next1;AfxMessageBox(该进程已经删除!);4. 描绘内存分区表 HDC hdc;HPEN hp;HBRUSH hbr;hdc=:GetDC(m_hWnd);hp=CreatePen(PS_SOLID,2,RGB(

      《操作系统动态分区存储管理实验报告》由会员大米分享,可在线阅读,更多相关《操作系统动态分区存储管理实验报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.