实验结果报告级分析
1, 2,
程序完成了实验所有的基本要求;
本程序还存在一些技术上的问题,使得程序不能尽善尽美;如,PCB信息添加框没有“随机置入就绪队列”功能,添加PCB信息仍显得繁琐;就绪队列的挂起功能在程序自动运行时,存在反应异常(反应延迟或直接无反映);可分分区表只显示了当前可分的内存,没有显示已分的PCB及其对应内存使用情况,且没有利用图形和丰富的颜色来更好的展示;时间片设计还需要改进,使用效率不高;系统重置功能存在响应延迟的问题;另外,界面不够美观;还需要不断改进; 实验感想
通过这次实验,我对操作系统的进程调度和内存分配管理有了更加深入的了解,对操作系统内部的工作原理有了进一步的认识;
通过编程,也巩固了我的程序设计和代码编写的能力,实验过程中遇到的各种问题以及解决问题的过程与方法,都是我获益匪浅;
同时,程序的不完善,也将促使我在课程之后,继续学习、理解课程内容,并尽一切努力不断完善程序,做到尽善尽美;
程序代码
完整版(初学java,菜鸟级别,当然是将所学的全部照办照抄,实为臃肿,可为初学者引以为戒,注意代码质量!)
这里谨贴出十分臃肿的代码,仅供初学者交流经验,重在开发的思想,了解开发的流程,而01版(精简版)代码在后面; ProcessPCB.java
package src;
public class ProcessPCB {
// backupBAK 后备 ready 就绪 suspend 挂起 memory内存 private String PID; private int RequiredTime; // private String Priority; private int Priority; private String Status;
private int MwmoryBase = 0000; private int MemoryLimit;
// private String PCBPointer;
public ProcessPCB(String initpID, int initRTime, int initpriority, String status, int initBase, int initLimit) {
this.PID = initpID;
this.RequiredTime = initRTime; this.Priority = initpriority; this.Status = status; this.MwmoryBase = initBase; this.MemoryLimit = initLimit;
}
public String getPID() { if(this.PID == null)
return \ else
return this.PID;
}
public void setPID(String pid) { if(pid == null)
this.PID = \ else
this.PID = pid;
}
public int getRequiredTime() { return this.RequiredTime; }
public void setRequiredTime(int time) { this.RequiredTime = time; }
public int getPriority() { return this.Priority; }
public void setPriority(int priority) { this.Priority = priority; }
public String getStatus() { }
public void setStatues(String statues) { }
public int getMemoryBase() { }
public void setMemoryBase(int base) { }
public int getMemoryLimit() { }
public void setMemoryLimit(int limit) { }
public boolean equals(ProcessPCB pcb) { }
public String toString() {
return this.getPID() + \ + this.getRequiredTime() + \ + this.getPriority() + \ + this.getStatus() + \ + this.getMemoryBase() + \ + this.getMemoryLimit()
if(pcb.getPID() == this.getPID()) { }
else return false;
return true;
this.MemoryLimit = limit; return this.MemoryLimit; this.MwmoryBase = base; return this.MwmoryBase; if(statues == null)
this.Status = \; if(this.Status == null)
return \;
else
return this.Status;
else
this.Status = statues;
+ \; }
public void run() { } }
this.RequiredTime = this.RequiredTime-1; this.Priority = this.Priority-1;
MemoryItem.java
package src;
public class MemoryItem { private int memoryBase=0; private int memoryLimit=0; private int availableStatus=0;
public MemoryItem(int initMemoryBase, int initMemoryLimit) { }
public int getMemoryBase() { }
public void setMemoryBase(int base) { }
public int getMemoryLimit() { }
public void setMemoryLimit(int limit) { }
public int getStatus() { }
public void setStatus(int status) { }
public String toString() {
return this.getMemoryBase() + \ + this.getMemoryLimit() + \; this.memoryBase = status; return this.availableStatus; this.memoryLimit = limit; return this.memoryLimit; this.memoryBase = base; return this.memoryBase;
this.memoryBase = initMemoryBase; this.memoryLimit = initMemoryLimit;
} }
PCBRecords.java package src;
import java.util.ArrayList; import java.util.Iterator;
public class PCBRecords implements Iterable
private ArrayList
public ArrayList
public PCBRecords() { this.PCBItems = new ArrayList
public void addItem(ProcessPCB PcbItem) { this.PCBItems.add(PcbItem); }
public void removeItem(ProcessPCB PCbItem) { this.PCBItems.remove(PCbItem); }
public ProcessPCB getItem(ProcessPCB processPCB) { for (ProcessPCB pCbItem : this.PCBItems) { if (pCbItem.equals(processPCB)) { return pCbItem; } } return null; }
public ProcessPCB getItem(String pid) { for (ProcessPCB pcBItem : this.PCBItems) { if (pcBItem.getPID().equals(pid)) { return pcBItem; } } return null; }
public int getNumberOfItems() { return this.PCBItems.size(); }
public String[] getItemsProperties() { String itemsProperties[] = new String[getNumberOfItems()]; int i = 0;
for(Iterator iterator1 = PCBItems.iterator(); iterator1.hasNext();)
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科操作系统实验-CPU进程调度和内存分配 - java版 (2)全文阅读和word下载服务。
相关推荐: