第一范文网 - 专业文章范例文档资料分享平台

操作系统实验-CPU进程调度和内存分配 - java版 (2)

来源:用户分享 时间:2020-06-16 本文由劫难与你 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验结果报告级分析

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 PCBItems;

public ArrayList getPCBItems() { return this.PCBItems; }

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下载服务。

操作系统实验-CPU进程调度和内存分配 - java版 (2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1080369.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top