资源简介
第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。
第二题:用先进先出(FIFO)页面调度算法处理缺页中断。
代码片段和文件信息
#include
#include “list“
using namespace std;
#define N 11
#define M 12
#define MEMORYBLOK 10
#define LENGTH 128
struct page {
int number;
int flag;
int frame;
int location;
int change;
};
struct action {
char operate;
int pageNum;
int offset;
};
struct page pageTable[N];
list actionForm;
void init() {
page page0 = {005110};
pageTable[0] = page0;
page page1 = {118120};
pageTable[1] = page1;
page page2 = {219130};
pageTable[2] = page2;
page page3 = {311210};
pageTable[3] = page3;
page page4 = {40-1220};
pageTable[4] = page4;
page page5 = {50-1230};
pageTable[5] = page5;
page page6 = {60-11210};
pageTable[6] = page6;
//
pageTable[7] = page6;
pageTable[8] = page6;
pageTable[9] = page6;
pageTable[10] = page6;
//对PQ的初始化
/*for(int i=0; i Q[i] = -1;
}
for(i=0; i P[i] = -1;
}
for(i=0;i if(pageTable[i].flag == 1){
P[K]=i;
K = (K+1)%MEMORYBLOK;
}
}
for(i=0; i if(pageTable[i].flag == 1) {
int frame = pageTable[i].frame;
Q[frame] = pageTable[i].number;
}
}*/
action a1={‘+‘170};
action a2={‘+‘150};
action a3={‘*‘215};
action a4={‘s‘321};
action a5={‘g‘056};
action a6={‘-‘640};
action a7={‘y‘4.53};
action a8={‘+‘523};
action a9={‘s‘137};
action a10={‘g‘278};
action a11={‘+‘41};
action a12={‘s‘684};
actionForm.push_back(a1);
actionForm.push_back(a2);
actionForm.push_back(a3);
actionForm.push_back(a4);
actionForm.push_back(a5);
actionForm.push_back(a6);
actionForm.push_back(a7);
actionForm.push_back(a8);
actionForm.push_back(a9);
actionForm.push_back(a10);
actionForm.push_back(a11);
actionForm.push_back(a12);
}
void run() {
while( !actionForm.empty() ) {
action a = actionForm.front();
cout<<“*****************************************************“< if(a.operate==‘s‘)
cout<<“操作:存“<<“ 页号:“< else if(a.operate==‘g‘)
cout<<“操作:取“<<“ 页号:“< else if(a.operate==‘y‘)
cout<<“操作:移位“<<“ 页号:“< else
cout<<“操作:“<
int pageNum = a.pageNum;
//如果不在主存中
if (pageTable[pageNum].flag == 0) {
cout<<“*“< }
//计算绝对地址
else{
int result;
result = pageTable[pageNum].frame*LENGTH + a.offset;
cout<<“绝对地址为:“<ame<<“*“<
pageTable[pageNum].change = 1;
}
actionForm.pop_front();
}
}
main() {
init();
run();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2858 2009-12-24 19:33 1.cpp
文件 4280 2009-12-24 19:33 2.cpp
----------- --------- ---------- ----- ----
7138 2
- 上一篇:操作系统第五版第一章到第五章答案
- 下一篇:西门子tc35资料包含引脚
相关资源
- 操作系统第五版第一章到第五章答案
- 操作系统—精髓与设计原理myshell项目
- QShareMemory.zip
- S3C44b0上移植vxworks操作系统的bsp
- 山东大学操作系统实验代码
- CoordinateTransformationDlg.rar
- 多尺度的KCF算法代码
- SIFT算法实现及代码详解
- 分时操作系统在单片机中的实现
- rocky凝思操作系统ISO镜像刻录到U盘里
- 中小公司工资管理系统
- VS2010~2017免注册调用大漠插件
- 外弹道学课程设计代码.zip
- 内存管理选择题.txt
- 苏州大学操作系统实验报告四可变分
- 点云关键点提取1
- json.hpp头文件
- 矩阵乘法及两种求逆方法
- 操作系统-吃水果问题
- 山东大学操作系统2017-2018复习提纲
- 华中科技大学操作系统实验
- Camshift 全自动跟踪算法/opencv
- 北京科技大学操作系统实验
- 信号量同步实验报告哲学家进餐问题
- 大连理工大学操作系统上机进程调度
- 模拟unix系统成组链接法
- 局域网广播
- IBMAIX操作系统基础共10集.txt
- 雨滴传感器的详细介绍
- Microsoft Communications Control组件.zip
评论
共有 条评论