计算机操作系统原理课程设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机操作系统原理课程设计.doc》由会员分享,可在线阅读,更多相关《计算机操作系统原理课程设计.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、优质文本上海电力学院课程设计报告课程名称: 操作系统原理 题目名称:采用可变分区存储管理,模拟主存空间的分配和回收 姓 名: xxx 学 号: xxx 班 级: 2013054 同组姓名: xxx 课程设计时间: 2015.7.62015.7.10 评 语: 成 绩: 课程设计题目一、 设计内容及要求可变分区存储管理模拟 设计内容: 编写程序模拟实现可变分区存储管理。具体要求:编写程序模拟实现可变分区存储管理,实现存储管理的根本功能,包括内存的分配、内存的回收、地址变换等。输入:1、输入新进程名称及使用内存的大小可创立多个进程;2、撤销某个指定的进程;3、某个进程的逻辑地址;输出:显示每次创立
2、进程或者撤销进程后内存使用的状况,包括每一个进程占据的内存的位置和大小; 计算并输出给定逻辑地址对应的物理地址。必须分别使用以下分配算法完成模拟:1、首次适应算法;2、最正确适应算法;3、最差适应算法;小组分工:程序设计讨论: 程序主体设计: 程序调试及修改: 实验报告设计: 总结: 要求注明小组分工情况二、 详细设计1) 原理概述 对于可变分区存储管理的内存分配与回收,主要为设计以下几个局部: 1、设计动态输入空闲分区表的程序 2、设计内存分配的程序 3、设计内存回收的程序首次适应算法:FF算法要求空闲分区表或空闲分区链以地址递增的次序链接。在分配内时,从链首开始查找,直至找到一个大小能满足
3、要求分区为止;然后再按照作业大小,从该分区中划一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。如从链首直至链尾都不能找到一个能满足要求的分区,那么此次分配失败,返回最正确适应算法: BF算法是指每次为作业分配内存,总是把满足要求、又是最小的空闲分区分配给作业,防止“大材小用。为了加速寻找,该算法要求所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。这样,第一次找到能满足要求的空闲区,必然是最正确的。最差适应算法: WF算法要扫描整个空闲分区表或链表,总是挑一个最大的空闲区分割给作业使用,其优点是可使剩下的空闲区不至于太小,产生碎片的几率最小,对中、小作业有利,同时最坏适应分配算法
4、查找出效率很高。该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。2) 主要数据结构1、 空闲分区表的定义 public class fenqu public int fenquno,fenqusize,fenqustart;public String procname;public static int cofenqusize=0;/创立起始分区基址public fenqu(int fenquno,int fenqusize)this.fenquno=fenquno;thi
5、s.fenqusize=fenqusize;this.fenqustart=cofenqusize;cofenqusize+=fenqusize;procname=null;public fenqu(int fenquno,int fenqusize,int fenqustart)this.fenquno=fenquno;this.fenqusize=fenqusize;this.fenqustart=fenqustart;procname=null;已分配分区表的定义public static void createfenqu()int intRe=new int5;/fenquno的随机数
6、int intREE=new int5;/fenqusize的随机数产生;int intRd;/存放随机数int intRDD;int count=0,count1=0;/产生的随机数的个数,count是fenquno,count1是fenqusizeint flag=0;/是否产生过随机数Random rdm=new Random();while (countintRe.length)intRd=Math.abs(rdm.nextInt()%5;for(int i=0;icount;i+)if(intRei=intRd)flag=1;break;elseflag=0;if(flag=0)in
7、tRecount=intRd;count+;while(count1intREE.length)intRDD=(int)(Math.random()*(60+1-30)+30;for(int i=0;icount1;i+)if(intREEi=intRDD)flag=1;break;elseflag=0;if(flag=0)intREEcount1=intRDD;count1+;for(int i=0;i5;i+)alist.add(new fenqu(intRei,intREEi);ll.add(new doubleNode(null,null,intRei,intREEi,0);Syste
8、m.out.println(区号+ 内存+ 地址+ 原分区+ 原大小+ 分配);for(int i=0;ialist.size();i+)System.out.println(alist.get(i).fenquno+ +alist.get(i).fenqusize+ +alist.get(i).fenqustart+ +ll.get(i).fenquno+ +ll.get(i).fenqusize+ +ll.get(i).re);内存分配public static void fenpeineicun(process p)boolean re=true;for(int k=0;kalist.s
9、ize();k+)if(p.JCname=alist.get(k).procname)re=false;if(re)int i=0,j;ll parefenqusize(p.JCsize, maxfenquno);if(alist.size()ll.theSize)for(i=0;ialist.size();i+)for(j=0;jll.theSize;j+)if(alist.get(i).fenquno=ll.get(j).fenquno&alist.get(i).fenqusize!=ll.get(j).fenqusize)alist.get(i).fenqusize=ll.get(j).
10、fenqusize;fenqu fe=new fenqu(ll.get(i+1).fenquno,ll.get(i+1).fenqusize,alist.get(i).fenqustart+alist.get(i).fenqusize);alist.add(fe);alist.get(i).procname=p.JCname;maxfenquno+;elsefor(i=0;ialist.size();i+)for(j=0;jll.theSize;j+)if(alist.get(i).fenquno=ll.get(j).fenquno&alist.get(i).fenqusize=p.JCsiz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 原理 课程设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内