Java模拟操作系统实现存储管理

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java模拟操作系统实现存储管理.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219