分页存储管理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分页存储管理实验报告
篇一:分页存储管理的模拟实验上机报告
分页存储管理的模拟实验上机报告
页面管理的基本原理及方法:
各进程的虚拟空间被划分成若干个长度相等的页(page)。页长的划分和内存外存之间的数据传输速度以及内存大小等有关。页式管理还把内存空间也按也的大小划分为页面(page frame)。然后把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。
在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面中,并通过页表(page mapping table)和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。 1. 内存页面分配
静态页面管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表,请求表及页表来完成内存的分配工作。 a. 页表
页表由页号与页面号组成。如右图所示
页表的大小由进程或作业的长度决定。例如,对于一个
每页长1k,大小为20k的进程来说,如果一个内存单元存放一个页表项,则只要分配给该页表20个存储单元即可。页式管理是每个进程至少拥有一个页表。实验中对页表的定义如下(采用数组形式,数组下标表示页号,数组单元存放与数组下标(页号)相应的页面号):int pagetable[100] b.请求表(作业申请表)
请求表用来确定作业或进程的虚拟空间的各页在内存中的对应位置。为了完成这个认为,系统必须知道每个作业或进程的页表起始地址(本实验中假定为0)和长度,以进行内存分配和地址变换。另外请求表中还包括每个作业或进程所要求的页面数。请求表整个系统一张,
实验中对请求表的定义如下(采用结构体数组形式,并将页表也作为其中一个成员(即域)):# define u 5 struct application_table
{
char name[8];/*作业名*/
int size; /*作业大小――即将上表中的请求页面数改用字节表示*/int paddress; /*页表起始地址*/ int length;/*页表长度――以页面数表示*/
int state; /*内存的分配状态,以分配的用1表示,未分配的用0表示*/
int pagetable[100];/*页表,放在这里是为了方便虚地址转换及作业撤销的操作*/ }application[u];
c.存储页面表(本实验中采用位示图法)
位示图也是整个系统一张,它指出内存各页面是否已被分配出去,以及未分配页面的总数。在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置为1,否则为0。本实验中采用二维数组(16*16)形式存储:
int graphic[16][16]={{0,0,0,1,1},{0,1,1,0,0},{0,0,0,0,1 }} d. 分配算法
首先,将位示图初始化,可任选几个单元,
可全部初始化为0.
接着,键盘输入作业名(name)和作业大小(size),大小为1k, 所以将作业大小除以页面大小(1k),页面数(即页表长度),搜索空闲页面表看是否有n返回”无法分配”,若有则开始设置页表,将作业名,址页表长度,状态置入请求表,起始地址为页表的第0
然后根据页表,搜索空闲页面表,填入页表中.
2. 地址变换
由地址分配方式得知,在一个作业或进程的页表中,连续的页号对应于不连续的页面号.做地址转换时,必须知道所要转换的虚地址(x)以及该虚地址所属作业名(由键盘输入,如有重名的作业,则顺序输出虚地址在各项作业中所对应的物理地址),查页表,对应页号y=x/1024,所求物理地址:
3.作业撤销
键盘输入所要撤销的作业名(如有重名,则都撤销),搜索作业申请表,每遇到作业名相同的,则将作业大小及状态改为0(表示撤销),搜索页表,当作业名相同时,根据页表修改位示图中相应
4.功能模块的选择
实验中采用多分支选择语句(switch)来实现多种功能模块的选择,写在主程序中.
篇二:分页管理实验报告
XX-XX学年第二学期
操作系统课程实验设计报告
班级网络2班学号 XX14620207姓名韩金铖成
绩指导教师于复兴
1、实验题目:
(1)模拟请求分页存储管理中的硬件地址转换和产生却页中断的过程。(2)采用先进先出(或LRU)算法实现分页管理的缺页调度。
2、实验目的:
(1)通过实验模拟请求分页存储管理中的硬件地址转换和产生却页中断帮助理解在分页式存储管理中怎样虚拟存储器。
(2)通过采用先进先出(或LRU)算法实现分页管理的缺页调度帮助理解和掌握模拟分页式虚拟存储管理的缺页中断,帮助自己对请求分页管理的概念有一个清楚的理解。
3、程序设计及实现过程:
(1)请求分页储存管理是把作业的全部信息存在磁盘上,当作业被选中时,可把作业的开始几页先装入主存并启动运行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表格式为:
其中,标志表示对应页是否已经装入主存,“标志 = 0”表示该页尚未装入主存,“标志 = 1”表示该页已在主存。
主存块号表示已装入主存的页所占用的块号。外存地址表示该页在外存的地址。
(2)作业执行完时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元号,硬件地址转换机构按页号查页表,若该页对应的标志为“1”,则表示该页已在主存。根据关系式:绝对地址=块号*块长+单元号。
计算出欲访问的主存单元地址,将块长设成2的整次幂,可把块号作为地址寄存器的高位部分,单元号作为低位部分。两个拼接形成绝对地址。按计算出的绝对地址取操作数,完成一条指令的执行。
若访问的页对应标志为“0”,则表示不在主存,这时硬件发缺页中断信号,由操作系统按页表中的该页对应的外存地址把该页装入主存后,执行该指令。
(3)设计一个“地址变换”程序来模拟硬件的地址转换工作。当访问的页不在主存时,则形成绝对地址后不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行,当访问的页不在主存时,则输出“*”,表示产生了一次缺页中断。
该算法框图如下:
地址变换算法:假定主存的每块长度为126个字节;现