主存储器分配和回收参考_第1页
主存储器分配和回收参考_第2页
主存储器分配和回收参考_第3页
主存储器分配和回收参考_第4页
主存储器分配和回收参考_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

实验四 主存储器空间的分配和回收 网络工程 林剑锋一、实验内容主存储器空间的分配和回收。二、实验目的一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实习帮助学生理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。三、实验题目在分页式管理方式下采用位示图来表示主存分配情况,实现主存空间的分配和回收。(1) 分页式存储器把主存分成大小相等的若干块,作业的信息也按块的大小分页,作业装入主存时可把作业的信息按页分散存放在主存的空闲块中,为了说明主存中哪些块已经被占用,哪些块是尚未分配的空闲块,可用一张位示图来指出。位示图可由若干存储单元来构成,其中每一位与一个物理块对应,用0/1表示对应块为空闲/已占用。(2) 假设某系统的主存被分成大小相等的64块,则位示图可用8个字节来构成,另用一单元记录当前空闲块数。如果已有第0,1,4,5,6,9,11,13,24,31,共10个主存块被占用了,那么位示图情况如下:字 节 位数号01234567 011001110 101010100 200000000 310000001 400000000 500000000 600000000 700000000(3) 当要装入一个作业时,根据作业对主存的需要量,先查当前空闲块数是否能满足作业要求,若不能满足则输出分配不成功。若能满足,则查位示图,找出为“0”的一些位,置上占用标志“1”,从“当前空闲块数”中减去本次占用块数。按找到的计算出对应的块号,其计算公式为: 块号= j8+i其中,j表示找到的是第n个字节,I表示对应的是第n位。根据分配给作业的块号,为作业建立一张页表,页表格式:页 号块 号012MM(4) 当一个作业执行结束,归还主存时,根据该作业的页表可以知道应归还的块号,由块号可计算出在位示图中的对应位置,把对应位的占用标志清成0,表示对应的块已成为空闲块。归还的块数加入到当前空闲块数中。由块号计算在位示图中的位置的公式如下:字节号 j=块号/8 ( 表示取整)位数 i=块号/8 ( 表示取余)(5) 设计实现主存分配和回收的程序。假定位示图的初始状态如(2)所述,现有一信息量为5页的作业要装入,运行你所设计的分配程序,为作业分配主存且建立页表(格式如(3)所述)。然后假定有另一作业执行结束,它占用的块号为第4,5,6和31块,运行你所设计的回收程序,收回作业归还的主存块。要求能显示和打印分配或回收前后的位示图和当前空闲块数,对完成一次分配后还要显示或打印为作业建立的页表。四、程序清单(JAVA2SE 1.4.2)/* *主存储器的空间分配和回收 * author (,网络工程,林剑锋) */import java.util.*;import java.io.*;class Node /定义节点 int page=new int100; /定义页面int pages; public class OSint os=new int88;int rom=64;LinkedList opp=new LinkedList();public OS()/初始化内存 os00=0;os01=0;os02=0;os03=0;os04=0;os05=0;os06=0;os07=0; os10=0;os11=0;os12=0;os13=0;os14=0;os15=0;os16=0;os17=0; os20=0;os21=0;os22=0;os23=0;os24=0;os25=0;os26=0;os27=0; os30=0;os31=0;os32=0;os33=0;os34=0;os35=0;os36=0;os37=0; os40=0;os41=0;os42=0;os43=0;os44=0;os45=0;os46=0;os47=0; os50=0;os51=0;os52=0;os53=0;os54=0;os55=0;os56=0;os57=0; os60=0;os61=0;os62=0;os63=0;os64=0;os65=0;os66=0;os67=0; os70=0;os71=0;os72=0;os73=0;os74=0;os75=0;os76=0;os77=0;/*public void showstate()/显示内存状态 int i,j; System.out.println(内存状态:); for(i=0;i=7;i+) for(j=0;jrom) System.out.println(内存不足,不能装入!); return 0; else System.out.println(装入+r+个页面的作业); rom=rom-r; node.pages=r; for(i=0;i=7;i+) for(j=0;j=7;j+) if(osij=0)&(r!=0) osij=1; r-; node.pagek=i*8+j; /System.out.println(node.pagek); k+; /showstate(); opp.add(node); showWork(node); return 0; /* public void showWork(Node node)/显示作业页表 int i=0; while(inode.pages) System.out.println(页号+i+存放在块:+node.pagei); i+; System.out.println(); /* public void delete(Node node)/撤除作业释放内存 int i,j; int k; /System.out.println(一4页面作业运行结束.); System.out.println(页表如下:); showWork(node); System.out.println(释放该作业所占内存.); for(k=0;knode.pages;k+) i=(node.pagek)/8; j=(node.pagek)%8; osij=0; rom=rom+node.pages; /showstate(); /* int read() int n=0; try /DataInputStream n=new DataInputStream(n);n=System.in.read();/System.out.println(n); catch(IOException e) System.out.println(错误); return n; */*/程序入口public static void main(String args ) int n=0; char x=y; OS os1=new OS(); BufferedReader input=new BufferedReader(new InputStreamReader(System.in); String inputString; L:while(x=y)|(x=Y) /System.out.println(n);System.out.println(请选择操作:);System.out.println(1:显示当前内存状态);System.out.println(2:装入作业);System.out.println(3:结束作业);System.out.println(4:结束程序);tryinputString=input.readLine(); n=Integer.parseInt(inputString); catch(IOException e) if(n=1) os1.showstate(); System.out.println(任务执行完毕); /continue l1; if(n=2) int y=(int)(Math.random()*9)+1); Node os=new Node(); os1.inrom(y,os); System.out.println(任务执行完毕); if(n=3) int len=os1.opp.size(); if(len=0) System.out.println(目前没有作业运行.); continue L; int z=0; System.out.println(当前运行作业数:+len); System.out.print(请选择要结束的作业:); try inputString=input.readLine(); z=Integer.parseInt(inputString); catch(IOException e) Node dp=(Node)(os1.opp.get(z-1); os1.delete(dp); os1.opp.remove(dp); System.out.println(任务执行完毕); if(n=4) break; System.out.print(是否要继续运行程序(Y/N

温馨提示

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

评论

0/150

提交评论