模拟分页式存储管理中硬件的地址转换和产生缺页中断

更新时间:2023-10-21 19:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三

课程名称:操作系统 课程类型:必修

实验项目名称:存储器管理

实验题目:模拟分页式存储管理中硬件的地址转换和产生缺页中断。

一、实验目的

在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验帮助同学理解在分页式存储管理中怎样实现虚拟存储器。

二、实验要求

模拟分页式存储管理中硬件的地址转换。需要为作业建立页表,应说明哪些页已在主存,哪些页尚未装入主存。作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式“绝对地址=块号×块长+单元号”计算出欲访问的主存单元地址。

若产生缺页中断,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用FIFO 页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。调出和装入后都要修改页表页表中对应页的标志。

三、设计思想

1、物理设计

全局变量定义如下: struct info//页表 {

int block;//物理页架号

int disk;//在磁盘上的物理块号 int flag; //内外标志 }pagelist[10]; int po;//队列标记 int t[4];

2、程序流程图

(见下图)

开始 输出菜单 选择菜单的选项choice 1 页表初始化init( ); 地址重定位 work( ); 0 退 出 结束 图1-1主程序的流程图

开始 i=0 否 i<=9? 是 pagelist[i].flag=0; 读入所在外存的块号; i++ 结束 图1-2 init( )的流程图

开始 依次读入四个逻辑页到内存中,并输入对应的物理页架; 读入逻辑页号及页内地址 逻辑页号>=10? 是 否 该页在内存中么? 否 按FIFO 置换出一个页,并将缺的页调入内存,调整页表。 计算物理地址。 是 计算物理地址 输出地址越界 逻辑页号是-1么? 否 结束 图1-3 work( )的流程图

本文来源:https://www.bwwdw.com/article/0tgf.html

Top