Java模拟操作系统实现存储管理
时间:2025-07-11
时间:2025-07-11
java模拟操作系统实现存储管理源代码
存储器管理
1.实验内容:模拟请求页式存储管理中硬件的地址转换和缺页中断,并用先进先出调度算法(FIFO)处理缺页中断;
2.要求:
①指令序列的设定可以执行拟定,格式如表3;
②在完成了FIFO换页策略后,可以选做LRU的换页策略,并进行比较;
③作业允许的页架数m在不同情况下的缺页中断率;
④程序运行时显示地址转变和页面调入调出过程。
3.实验控制流图:
4.数据结构核心代码:
java模拟操作系统实现存储管理源代码
package xiao.zhang.bean;
publicclass Instruction {
public Instruction(String op, int pageId, int pageInAddress) { this.op = op; } public Instruction() { /** * 指令操作符号 */ private String op; /** * 页号 */ privateintpageId; /** * 页内地址 */ privateintpageInAddress;
java模拟操作系统实现存储管理源代码
} this.pageInAddress = pageInAddress; public String getOp() { } publicvoid setOp(String op) { } publicint getPageId() { } publicvoid setPageId(int pageId) { } publicint getPageInAddress() { } publicvoid setPageInAddress(int pageInAddress) { } this.pageInAddress = pageInAddress; returnpageInAddress; this.pageId = pageId; returnpageId; this.op = op; returnop;
java模拟操作系统实现存储管理源代码
/* * (non-Javadoc) * * @see http://www.77cn.com.cnng.Object#toString() */ @Override public String toString() { return"Instruction [op=" + this.op + ", pageId=" + this.pageId + ", pageInAddress=" + this.pageInAddress + ", getOp()="
+ this.getOp() + ", getPageId()=" + this.getPageId() + ", getPageInAddress()=" + this.getPageInAddress() + ", getClass()=" + this.getClass() + ", hashCode()=" + this.hashCode() + ", toString()=" + super.toString() + "]";
}
}
package xiao.zhang.bean;
import java.util.LinkedList;
java模拟操作系统实现存储管理源代码
publicclass ExecuteFiFo {
/** * 默认设置页架为4个 */ public ExecuteFiFo() { this.isUseablePageFrame = 4; publicstaticintpoint = 0; /** * 指令队列 */ public LinkedList<Instruction>is; /** * 页面存储 */ public LinkedList<Page>pages; /** * 是否还有存储页架 */ privatefinalintisUseablePageFrame;
java模拟操作系统实现存储管理源代码
public ExecuteFiFo(int isUseablePageFrame) { } is = new LinkedList<Instruction>(); pages = new LinkedList<Page>(); this.isUseablePageFrame = isUseablePageFrame;
public ExecuteFiFo(LinkedList<Instruction> is, LinkedList<Page> pages,
/** * 一次性调度完成,装载所有的可用的页 */ publicvoid initalExecute() { for (int i = 0; i <isUseablePageFrame; i++) { /** } int isUseablePageFrame) { this.is = is; this.pages = pages; this.isUseablePageFrame = isUseablePageFrame;
java模拟操作系统实现存储管理源代码
} } */ Instruction ins = is.poll(); /** * 访问指定页号的主存 */ Page p = pages.get(i); p.setPageId(ins.getPageId()); p.setInMen(true); p.setModifyFlag(isModify(ins.getOp())); printINInformation(ins); /** * 执行指令 */ publicvoid executeInstruction() { /** * 先判断执行的页是否住存指令序列中将其删除 */ while (!is.isEmpty()) {
java模拟操作系统实现存储管理源代码
if (isExistMemeroy(ins)) { System.out.println("[页号为:\t" + ins.getPageId() + "\t存在]");
Page p = pages.get(ins.getPageId()); printOUTInformation(p); printINInformation(ins); } else { System.out.println("[页号为:\t" + ins.getPageId() + "\t不存在]");
Page p = pages.get(ins.getPageId()); p.setInMen(true); Page outP = pages.get(point %
isUseablePageFrame);
} } } p.setPageFrameId(outP.getPageFrameId()); p.setModifyFlag(isModify(ins.getOp())); printOUTInformation(outP); printINInformation(ins); point++;
java模拟操作系统实现存储管理源代码
/** * 打印装载信息 * * @param ins */ publicvoid printINInformation(Instruction ins) { /** * 判断指定序列是否住存 * * @return */ publicboolean isExistMemeroy(Instruction ins) { } for (int i = 0; i <this.pages.size(); i++) { } returnfalse; if (this.pages.get(i).getPageId() == ins.getPageId() } &&this.pages.get(i).isInMen()) { returntrue;
java模拟操作系统实现存储管理源代码
System.out.println("[页号:" + ins.getPageId() + "\tIN\t" + "执行:"
+ ins.getOp() + "操作\t" + "物理地址:" + (1024 * ins.getPageId() + ins.getPageInAddress()) + "]");
/** * 打印调出信息 * * @param p */ publicvoid printOUTInformation(Page p) { if (p.isModifyFlag()) { System.out.println("[页号:" + p.getPageId() + "\tOUT\t" + } "页架号:"
+ p.getPageFrameId() + "\t修改\t" + "写回磁盘:" + p.getLocationInDisk() + "]"); } else { System.out.println("[页号:" + p.getPageId() + "\tOUT\t" + "页架号:"
java模拟操作系统实现存储管理源代码
+ p.getPageFrameId() + "\t未修改\t" + "不用写回磁盘]");
/** * @return the isUseablePageFrame */ publicint getIsUseablePageFrame() { /** * 判断指令是否修改主存内容 * * @param o …… 此处隐藏:3600字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:发烧食疗 治疗感冒的天然食疗方法
下一篇:技术创新的理论与方法