资源简介
第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。
第二题:用先进先出(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资料包含引脚
相关资源
- 升腾Win终端系统升级方法新版.doc
- 周立功开发板ProASIC3实验-syn_FIFO代码
- Uninstall_Cortana_WINCLIENT.CN.rar
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- STM32基于rt_thread操作系统的SDHC卡文件
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- 模拟段页式虚拟存储管理中地址转换
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
- SIM908 SDIO FSMC STM32 FIFO
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- 操作系统实验——虚存管理实验
- c 课程设计 职工信息管理系统
评论
共有 条评论