一、实验目的
通过编写和调试存储管理的模拟程序以加深对存储管理固定分区存储管理方案的理解。实现固定分区存储管理的分配、去配。
二、实验内容
设计一个固定分区存储管理方案。并编写模拟程序实现之。以下是一个固定分区的内存分配表
三、实验环境
Eclipse win10
四、实验步骤
import java.util.Scanner;
class FQ{
public String no;
public String qs;
public int cd;
public String zybz;
public FQ(String no, String qs, int cd, String zybz) {
super();
this.no = no;
this.qs = qs;
this.cd = cd;
this.zybz = zybz;
}
}
public class Mainclass {
public static void main(String[] args) {
FQ[] fq = new FQ[6];
fq[0]=new FQ("1","08k",8,"0");
fq[1]=new FQ("2","16k",16,"job1");
fq[2]=new FQ("3","32k",16,"0");
fq[3]=new FQ("4","48k",16,"0");
fq[4]=new FQ("5","64k",32,"job2");
fq[5]=new FQ("6","96k",32,"0");
System.out.println("分区号 "+"起始地址"+"长度 "+"占用标志");
for(int i=0;i<fq.length;i++){
if(fq[i].cd<=10){
System.out.println(fq[i].no+" "+fq[i].qs+" "+fq[i].cd+" "+fq[i].zybz);
}else{
System.out.println(fq[i].no+" "+fq[i].qs+" "+fq[i].cd+" "+fq[i].zybz);
}
}
System.out.println("--------------------");
System.out.println(" 1:加入工作");
System.out.println(" 2:结束工作");
System.out.println("--------------------");
while(true){
System.out.println("请输入:");
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
if(num==1){
System.out.println("请输入你想要加入的工作内存大小:");
int num1 = scan.nextInt();
System.out.println("请输入工作名字:");
scan.nextLine();
int flag=0;
int a =10;
String num2 = scan.nextLine();
for(int i=0;i<fq.length;i++){
if(fq[i].cd>=num1){
a=5;
flag=5;
if(fq[i].zybz.equals("0")) {
fq[i].zybz=num2;
flag++;
a--;
break;
}
}
}
if(a==10) {
System.out.println("内存过大");
}
if(flag==5&&a==5){
System.out.println("无可分配分区");
}
for(int i=0;i<fq.length;i++){
if(fq[i].cd<=10){
System.out.println(fq[i].no+" "+fq[i].qs+" "+fq[i].cd+" "+fq[i].zybz);
}else{
System.out.println(fq[i].no+" "+fq[i].qs+" "+fq[i].cd+" "+fq[i].zybz);
}
}
}else if(num==2){
System.out.println("请输入工作名字:");
scan.nextLine();
String num2 = scan.nextLine();
for(int i=0;i<fq.length;i++){
if(fq[i].zybz.equals(num2)){
fq[i].zybz="0";
break;
}
}
for(int i=0;i<fq.length;i++){
if(fq[i].cd<=10){
System.out.println(fq[i].no+" "+fq[i].qs+" "+fq[i].cd+" "+fq[i].zybz);
}else{
System.out.println(fq[i].no+" "+fq[i].qs+" "+fq[i].cd+" "+fq[i].zybz);
}
}
}else{
System.out.println("请输入正确序号!");
}
}
}
}
五、实验结果与讨论