操作系统实验(模拟内存分配与回收java实现).doc
操作系统实验(模拟内存分配与回收java实现)一实验目的1深刻理解内存的分配与回收的概念。2掌握内存分配与回收问题,首次适应算法。二实验设备PC机三实验内容在Java开发平台内存的分配与回收问题,首次适应算法。四程序的主要代码importjava.awt.*;importjavax.swing.*;importjavax.swing.border.*;importjava.awt.event.*;publicclassMemoryextendsJFrame{protectedJTextFieldblank0,blank1,blank2,blank3,blank4,blank5,blank6,blank7,blank8,blank9,blank10,blank11;protectedJTextAreablank12;protectedJButtonbutton1,button2,button3;int[]wh=newint[10];int[]wh1=newint[10];int[]wh2=newint[10];publicMemory(){JPanelp1=newJPanel(newGridLayout(3,2,5,2));p1.add(button1=newJButton(“申请(大小)“));p1.add(blank10=newJTextField(3));p1.add(button2=newJButton(“释放(块号)“));p1.add(blank11=newJTextField(3));p1.add(newJLabel(“\t内存分配情况“));JPanelp2=newJPanel(newGridLayout(2,1,2,2));p2.add(p1);p2.add(blank12=newJTextArea());JPanelp3=newJPanel(newGridLayout(11,1,20,0));p3.add(newJLabel(“内存容量为10“));p3.add(blank0=newJTextField(3));p3.add(blank1=newJTextField(3));p3.add(blank2=newJTextField(3));p3.add(blank3=newJTextField(3));p3.add(blank4=newJTextField(3));p3.add(blank5=newJTextField(3));p3.add(blank6=newJTextField(3));p3.add(blank7=newJTextField(3));p3.add(blank8=newJTextField(3));p3.add(blank9=newJTextField(3));JPanelp4=newJPanel(newBorderLayout(3,3));p4.add(p2,BorderLayout.WEST);p4.add(p3,BorderLayout.CENTER);JPanelp5=newJPanel(newFlowLayout());p5.add(p4);p5.add(button3=newJButton(“清空内存“),BorderLayout.EAST);setLayout(newFlowLayout(FlowLayout.CENTER,10,20));this.getContentPane().add(p5);Fontfont1=newFont(“SansSerif“,Font.BOLD,16);blank10.setFont(font1);blank11.setFont(font1);blank12.setFont(font1);button1.addActionListener(newActionListener(){publicvoidactionPered(ActionEvente){intn=Integer.parseInt(blank10.getText());//进程块的大小if(n>10||n<0)JOptionPane.showMessageDialog(null,“进程大小违规,请从新输入!“);outer://向内存中添加进程!!!for(inti=0;i<10;i++){if(wh[i]==0//存储起始地址wh2[i]=n;//存储进程长度for(intss=i;ss