- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
昆明理工大学信息工程与自动化学院学生实验报告
( 2010 —2011 学年 第 二 学期 )
课程名称:操作系统 开课实验室:444 2011 年 5 月 12 日
年级、专业、班
计科103班
学号
201010405312
姓名
成绩
实验项目名称
存储管理
指导教师
杨云飞
教师评语
教师签名:
年 月 日
一、实验目的
存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。通过本次实验,要求学生通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。
二、实验原理及基本技术路线图(方框原理图)
用C或C++语言模拟实现请求式分页管理。要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从FIFO,LRU,NRU中任选一种)。
主要变量及数据结构的定义:
(1)Free 0 //空闲状态 (2)Busy 1 //已用状态d
(3)OK 1 //完成 (4)ERROR 0 //出错
(5)int ID; //分区号d (6)long size; //分区大小
(7)long address; //分区地址
(8)int state; //状态
(9)struct DuLNode *prior; //前趋指针
(10)struct DuLNode *next; //后继指针
(11)DuLinkList block_first; //头结点
(12)DuLinkList block_last; //尾结点
函数的说明:
alloc(int);//内存分配
free(int); //内存回收
LRU(int,int);//最近最少使用算法函数
NUR(int,int); //最佳适应算法函数
void show();//查看分配
Status Initblock();//开创空间表
show() 显示函数
main()主函数
流程图及各功能图:
LRU页面置换算法
从开始查表
从开始查表
检索完否
检索完否
返回 Y
返回
继续检索下一个表项m.sizeu.size? N
继续检索下一个表项
m.sizeu.size?
m.size-u.size
m.size-u.size≦size?
Y
将该分区从链中移除从该分区中划出u.size大小的分区
将该分区从链中移除
从该分区中划出u.size大小的分区
将该分区分配给请求者修改有关数据结构
将该分区分配给请求者修改有关数据结构
返回
返回
分配主存示意图(1)
开始
开始
L:=归还区长度 S:=归还区起址
L:=归还区长度 S:=归还区起址
查空闲区说明表
查空闲区说明表
有与归还区下邻的空闲区?
有与归还区下邻的空闲区?
N Y
L:=L+下邻空闲区长度
L:=L+下邻空闲区长度
有与归还区下邻的空闲区?
有与归还区下邻的空闲区?
有与归还区下邻的空闲区?N Y Y
有与归还区下邻的空闲区?
把下邻空闲区登记栏中状态置成“空表目”找一
把下邻空闲区登记栏中状态置成“空表目”
找一“空表目”栏登记始址:=S
长度:=L
状态:=“未分配”
把下邻空闲区登记栏中始址:=S
把下邻空闲区登记栏中始址:=S
长度:=L
按地址顺序调整和紧缩空闲区说明表上邻空闲区登记栏中长度增加L
按地址顺序调整和紧缩空闲区说明表
上邻空闲区登记栏中长度增加L
结束
结束
(2)主存回收示意图
提示:可先用动态申请的方式申请一大块空间,然后假设该空间为内存
文档评论(0)