没有合适的资源?快使用搜索试试~ 我知道了~
请求分页存储器管理请求分页存储器管理.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 33 浏览量
2022-07-06
16:16:31
上传
评论
收藏 359KB DOC 举报
温馨提示
试读
15页
请求分页存储器管理请求分页存储器管理
资源推荐
资源详情
资源评论
请求分页存储器管理
2.1 目的
实现分页式存储地址转换过程,在此基础上实现请求分页的地址转换。实现
请求页式地址转换中出现的缺页现象时,用到的先进先出 FIFO、最近最久未使
用 LRU。
2.2 内容
利用键盘输入本模拟系统的物理块的大小,作业的页表中的块号;完成逻
辑地址转换成相应的物理地址的过程。
1、建立一张位示图,用来模拟内存的分配情况,利用随机数产生一组 0 和 1
的数对应内存的使用情况。
2、输入块(页)的大小,通过模拟位示图为本作业分配内存空间建立相应
的页表(长度不定);
3、录入逻辑地址转换成相应的物理地址
4、扩充页表,变成请求式的二维页表(增加存在位等)完成地址转换。
5、输入分配给本作业的块数,模拟作业执行的逻辑地址转换成页面调度次
序;
6、分别采用 OPT、FIFO 置换算法,利用堆栈结构完成页面置换;记录被换
出的页面和新换入的页面。
2.3 数据结构
数据结构:
2.3.1
typedef struct node /*页表项*/
{
int yh;
int kh;
int zt;
node *next;
}linklist;
struct linklist1 /*内存块分配*/
{
int hm;
int jr;
linklist1 *next;
};
函数说明:
3.3.5 函数 exectu()
功能:查页表,并产生对 m1()函数或 m2()函数的调用。
3.3.6 函数 m1()
功能:在不缺页的情况下对各页面的最近最少使用情况变更函数。
3.3.7 函数 m2()
功能:在发生缺页中断情况下,对页面的置换及调用的函数。
2.4 算法设计及流程图
FIFO 页面调度算法是淘汰最先进入内存的页面,即在页面中驻留时间最久
的页面予以淘汰。置换图如下:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0
1
LRU 页面调度算法总是淘汰该作业中距现在最久没被访问过的那页,因此可以
用一个数组来表示该作业已在主存的页面。数组中的第一个元素总是指出当前刚
访问的页号,因此最久没被访问过的页总是由最后一个元素指出。置换图如下:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0
1
7
7
7
2
2
2
4
4
4
0
0
0
7
7
7
0
0
0
3
3
3
2
2
2
1
1
1
0
0
1
1
1
0
0
0
3
3
3
2
2
2
1
7
7
7
2
2
4
4
4
0
1
1
1
0
0
0
0
0
0
3
3
3
0
0
1
1
3
3
2
2
2
2
2
7
2.5 源代码
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<time.h>
#define null 0
typedef struct node
{
int yh;
int kh;
int zt;
node *next;
Os命令CPU从外存读缺页
启动I/O设备
从外存读页到内存
修改页表
将该也写回外存
选出一页换出
是否被修改?
内存满否?
从外存中找到缺页
保留CPU现场
页号≥页表长度?
CPU检索快表
页表项在块表中
页在内存?
访问页表
修改快表
修改访问位和修改位
形成物理地址
地址变换结束
越界中断
开始
缺页中断处
理
否
否
是
是
是
否
否
是
是
产
生
缺
页
中
断
请
求
调
页
逻辑地址/块
长
状态位
访问字段
位视图
外存地址
不一定修改Y/N
程序请求访问一页
剩余14页未读,继续阅读
资源评论
oligaga
- 粉丝: 52
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功