用位示图管理磁盘空间的分配与回收_第1页
用位示图管理磁盘空间的分配与回收_第2页
用位示图管理磁盘空间的分配与回收_第3页
用位示图管理磁盘空间的分配与回收_第4页
用位示图管理磁盘空间的分配与回收_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、华址电力*孑课程设计报告(2016-2017年度第二学期)课程名称:操作系统实验课设题目:用位示图管理磁盘空间的分配与回收 院 系:控制与计算机工程学院班级:信安1401姓名:黄竞昶指导教师:贾静平设计周数:一周成 绩:2015、需求分析要求打印或显示程序运行前和运行后的位示图,以及分配和回收磁盘的物理地址过程。(1)假定现有一个磁盘组,共40个柱面。每个柱面4个磁道,每个磁 道又划分成4个物理记录。磁盘的空间使用情况用位示图表示。位示图用若干个字构成,每一位对应一个磁盘块。1表示占用,0表示空闲。为了简单, 假定字长为16位,其位示图如图9 1所示。系统设一个变量S,记录磁盘 的空闲块个数。

2、位0123456789101112131415字011111101001111101239 .图9 1 位示图(2) 申请一个磁盘块时,由磁盘块分配程序查位示图,找出一个为0 的位,并计算磁盘的物理地址(即求出柱面号、磁道号(也即磁头号)和扇区 号)。由位示图计算磁盘的相对块号的公式如下:相对块号一字号x 16+位号之后再将相对块号转换成磁盘的物理地址:由于一个柱面包含的扇区数二每柱面的磁道数x每磁道的扇区数二4X4= 16,故柱面号=相对块号/ 16的商,即柱面号=字号磁道号=(相对块号/ 16的余数)/4的商,即(位号/ 4)的商 物理块号=(相对块号/ 16的余数)/ 4的余数,即(位号

3、/ 4)的余数(3)当释放一个相对物理块时,运行回收程序,计算该块在位示图中 的位置,再把相应位置0。计算公式如下:先由磁盘地址计算相对块号:相对块号=柱面号X 16+磁道号X 4+物理块号再计算字号和位号:字号=相对块号/ 16的商,也即字号=柱面号 位号=磁道号x物理块数/每磁道 +物理块号(4)按照用户要求,申请分配一系列磁盘块,运行分配程序,完成分 配。然后将分配的相对块号返回用户,并将相对块号转换成磁盘绝对地址, 再显示系统各表和用户已分配的情况。(5)设计一个回收算法,将上述已分配给用户的各盘块释放。并显示 系统各表。回收算法框图如图5所示。二、整体功能及设计程序整体主要有四个功能

4、模块,分别是:初始化、分配、单独回收以及全部 回收。当点击相应按钮时实现其功能。程序设计了三个方法,分别是初始化init、分配算法dist、单独回收rec、 全部回收allrec。磁盘空间分配框图如图1所示,磁盘空间回收框图如图2所示.位置示图相应位为1返回 L图2磁盘空间回收框图图1 磁盘空间分配框图三、编程实现import java.awt.*;import java.awt.eve nt.*;import javax.sw in g.*;public class bitmap exte nds JFrame impleme nts Actio nListe nerJTable table

5、;JScrollPa ne sp1,sp2;JTextArea ta;JLabel l1,l2,l3,l4,l5;JTextField tf1,tf2,tf3;JButton b1,b2,b3,b4;JPanel p1,p2,p3,p4,p5,p6,p7;String data ;String colum;int sp;/ 存放(相对)可用块int used;/ 存放(相对)已用块数int A,H;/S 为可用块数, T 为已用块数bitmap()super( “位示图管理磁盘空间的分配与回收”系统模拟 );data = new String4016;colum = new String16;

6、sp = new int640;used = new int640;A = 0;H = 0;for(int i=0; i16; i+)columi=+i;table = new JTable(data,colum);sp1 = new JScrollPane(table);tf1 = new JTextField(6);tf2 = new JTextField(6);tf3 = new JTextField(6);ta = new JTextArea(10,20);sp2 = new JScrollPane(ta);p1 = new JPanel(new BorderLayout(); p2

7、= new JPanel(new FlowLayout();p3 = new JPanel(new BorderLayout();p4 = new JPanel(new FlowLayout();p5 = new JPanel(new FlowLayout();p6 = new JPanel(new BorderLayout();p7 = new JPanel(new FlowLayout();l1 = new JLabel( 位示图如下: ); b1 = new JButton( 位示图初始化 ); b1.addActionListener(this);b2 = new JButton( 回

8、收全部磁盘块 ); b2.addActionListener(this);p2.add(b1);p2.add(b2); p1.add(l1,North);p1.add(sp1,Center);运行状况 : ); 空闲块数量: );p1.add(p2,South);l2 = new JLabel(l5 = new JLabel( p7.add(l5);p7.add(tf3); p3.add(l2,North); p3.add(p7,South); p3.add(sp2,Center);l3 = new JLabel(l4 = new JLabel(请输入需要分配的块数: );请输入要回收的盘块号

9、: );b3 = new JButton(确认分配 );b3.addActionListener(this); b4 = new JButton(确认回收 );b4.addActionListener(this);p4.add(l3);p4.add(tf1);p4.add(b3);p5.add(l4);p5.add(tf2);p5.add(b4);p6.add(p4,North);p6.add(p5,Center);this.setLayout(new BorderLayout();this.add(p1,West);this.add(p3,Center);this.add(p6,South)

10、;this.pack();this.setVisible(true);public void init()/ 功能:初始化int k;for(int i=0;i40;i+)for(int j=0;j16;j+)k = (int)(Math.random()*2);/0 与 1 两数中进行随机 dataij=+k;table.setValueAt(+k,i,j);public void getavail()/ 功能:得出可用块号与不可用块号的集合int a;int b=0,c=0;A = 0;H = 0;for(int i=0;i40;i+)for(i nt j=0;j16;j+)if(data

11、ij.equals(O)a = i*16+j;得到相对块号spb = a;写入可用块号集合A+;b+;elsea = i*16+j;得到相对块号usedc = a;H+;c+;写入不可用块号集合public void allrec()全部回收ta.setText();Stri ng str=回收结果:谱 n;for(int i=0;iH;i+)int a = usedi/16;int b = usedi%16/4;int c = usedi%16%4;位示图相应位置置零dataa4*b+c=0;table.setValueAt(0,a,4*b+c);/str+=柱面 +a+ 磁道 +b+ 扇区

12、 +c+ 盘块号:+usedi+n;usedi=0;/ 位示图相应位置置零for(int i=0;i40;i+)for(int j=0;j16;j+)table.setValueAt(0,i,j);H=0;getavail();ta.append(str);public static void main(String args) new bitmap();public void actionPerformed(ActionEvent e) if(e.getSource()=b1)init();getavail();String str6=+A;ta.append( 初始化完成 !n);tf3.

13、setText(str6);if(e.getSource()=b2)if(A=640)ta.setText();String str7=没有资源可回收”ta.appe nd(str7);elseallrec();Stri ng str8=+A;tf3.setText(str8);if(e.getSource()=b3)int n;System.out.pri ntln (tf1.getText();n=I nteger.parsel nt(tf1.getText();tf1.setText();if(A n)ta.setText();String str仁空闲块不足n;/ta.appe nd(

14、str1);空闲块不足,提示JOpti onPan e.showMessageDialog( null,JOpti onPan e.PLAIN_MESSAGE);return;elseint j,k;ta.setText();Stri ng str=分配结果n;int x=H;for(int i=0;in;i+)j = spi/16;k = spi-j*16;usedx+i=spi;/ 可用块相对地址转为已用块相对地址 datajk=1;table.setValueAt(1,j,k);/ 将位示图对应位置写 1 str+= 柱面 +spi/16+磁道 +(spi%16)/4+ 扇区+(spi%

15、16)%4+盘块号:+spi+ n;A-;H+;for(int t=0;tA;t+)spt=spt+n;/删除可用块中的已用块ta.append(str);String str2=+A;tf3.setText(str2);tf1.setText();if(e.getSource()=b4)int num;num=Integer.parseInt(tf2.getText();ta.setText();String str=;int j,k = 0;int a=num/16;/ 柱面int b=num%16/4;/ 磁道int c=num%16%4; /扇区if(dataa4*b+c.equals

16、(0)JOptionPane.showMessageDialog(null, 不可回收空 闲块,提示,JOptionPane.PLAIN_MESSAGE);/tf2.setText( );return;elsedataa4*b+c=0;table.setValueAt(0,a,4*b+c);str+=柱面+a+磁道+b+扇区+c+盘快号:+num+n;A+;H-;for(int i=0;iH;i+)if(usedi=num)k=i;break;for( j=k;j00a1000010110D1000110010010D001a11斗01011011r0111010101110000110D0D

17、111(flD1dV=101110Q111110111to-1Q0010010010111厂0斗D1000011100010Q111010001Q011Q100r00001110Q111D1000Q1000010Q01*001Q0110(J00110010100110111VQD011010111I1111101110Q00110101011011|101001101100Q1010300010110101110*100111101DV0010旷1001a100TTT01s-011100110D001100a1000O0回Xk全昭啟夸駅块鞫虫:295诰箱j入棗雾劭Rift)块樹:1EftiA付

18、阳谒输入要賊蚀块号:确 iAEWl图6回收的提示信息当空闲块不足时,会弹出提示信息,如图7所示。=EU |壮砒和下:iS埶嚳喪1)州也皿:猛行啊:乍闲块和粗=口 1府A幻散祸脱畫I呻收的怛谍料:袒卜馳Ll 2*131图7提示信息单击“全部回收”按钮,所有盘块在位示图上位置置“0”,表示已经回收,如图 8所示单击“确认回收”,若该块已经处于回收状态,则弹出对话框进行提醒,如图9所示II禹临入事冬分山的I担fi:012 | 34Fw60Aw111213ST15110001101011a1D0斗|1中11ra111111110 001100D-l1 00(1Q0010100D00斗01011100000t1101d111100a0?11占111D0兀110-1D1n0100101111a0110001i01申11D101101:0010001000厂1011000Q1i1i0aQa00I11110QQQ101DQc11111111D01101

温馨提示

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

评论

0/150

提交评论