ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:63.41KB ,
资源ID:11970616      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11970616.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模拟实现页面地址重定位实习报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

模拟实现页面地址重定位实习报告.docx

1、模拟实现页面地址重定位实习报告编号: 实验一二三四五六七八九十总评教师签名成绩大学计算机学院课程实验(设计)报告专业(班): 计算机科学与技术 计科6班 学 号: 2013301500217 姓 名: 伟 课程名称: 操作系统设计 任课教师: 宋伟 2015年12 月22日模拟实现页面地址重定位实习报告一、 实习容1、 编写和调试模拟实现页式地址重定位。2、 加深理解页式地址重定位技术在多道程序设计中的作用和意义。二、 实习题目当进程在CPU上运行时,如指令中涉及逻辑地址时,操作系统自动根据页长得到页号和页偏移,把页偏移拷贝到物理地址寄存器,再根据页号,查页表,得到该页在存中的块号,把块号左移

2、页长的位数,写到物理地址寄存器。三、实验容:1、设计页表结构;2、 设计地址重定位算法3、 有良好的人机对话界面三、 设计思想数据结构int Page_length; /页长int Page_Num;/页数int process;/进程大小int Logical_Address;/逻辑地址class PageTable /定义一个页表项public: int page_num; /页的编号 int pic_num; /对应的物理存块号public: PageTable(int thepage_num, int thepic_num) page_num = thepage_num; pic_nu

3、m = thepic_num; PageTable() page_num = 0; pic_num = 0; ;class LogicalAdd /定义逻辑地址 public: int page_num; /逻辑地址对应的页号 int page_add; /对应的页地址 public: LogicalAdd(int a, int b) page_num = a; page_add = b; LogicalAdd() page_num = 0; page_add = 0; ; PageTable PTN; /定义一个页表LogicalAdd LogAdd; /logical address 主要

4、函数(1)void input() /输入函数(2)int init() /初始化函数(3)int translate() /转换函数,逻辑地址转换为物理地址(4)void output( int res) /输出结果的函数Main函数int main() int choice; cout -模拟页面地址重定位- endl; for (;) cout 1:输入信息n2:查看页表n3:查看物理地址n4: 退出 choice; switch (choice) case 1:input(); if (init() = -1) return -1; break; case 2: output(0);

5、break; case 3: output(translate(); break; case 4: cout 已经退出n; exit(0); break; return 1;初始化部分1. 由键盘输入进程大小,页面大小,所要查询的虚拟地址2.利用随机函数将页面号与物理块号一一对应转换算法部分1根据相应转换算法把逻辑地址转换为物理地址。 2.自动构造页表 结果显示部分 根据相应提示输出页表或者输入的逻辑地址对应的物理地址四、 源代码 /*C+ Source File*/*开发环境为Microsoft Visual Studio 2015*/#include#include#include#inc

6、ludeusing namespace std;#define N 50 /最大值为50int Page_length; /页长int Page_Num;/页数int process;/进程大小int Logical_Address;/逻辑地址class PageTable /定义一个页表项public: int page_num; /页的编号 int pic_num; /对应的物理存块号public: PageTable(int thepage_num, int thepic_num) page_num = thepage_num; pic_num = thepic_num; PageTab

7、le() page_num = 0; pic_num = 0; ;class LogicalAdd /定义逻辑地址 public: int page_num; /逻辑地址对应的页号 int page_add; /对应的页地址 public: LogicalAdd(int a, int b) page_num = a; page_add = b; LogicalAdd() page_num = 0; page_add = 0; ; PageTable PTN; /定义一个页表LogicalAdd LogAdd; /logical address void input() cout 请输入进程大小

8、 process; cout Page_length; cout Logical_Address;int init() /初始化函数 srand(time(0); /伪随机函数,实现存随机装配 int i, temp; int sum = 1; Page_Num = process / Page_length + 1; /计算总页数 /*coutnum=Page_Numendl;*/ PT0.pic_num = 1; for (i = 0; i Page_Num; i+) PTi.page_num = i; temp = rand() % 3 + 1; sum = sum + temp; PT

9、i.pic_num += sum; /所对应的物理存块号 /*coutPTi.pic_num= Page_Num) cout 所查询的逻辑地址不在该页,初始化失败 endl; return -1; int translate() /转换函数,逻辑地址转换为物理地址 int i = 0; int res; while (i N) return -1; return res*Page_length + LogAdd.page_add;void output( int res) if (res = 0) cout 构造的页表如下: endl; cout 页号t 块号 endl; for (int i

10、 = 0; i Page_Num; i+) cout PTi.page_num t; cout PTi.pic_num endl; else cout 物理地址为: res endl;int main() int choice; cout -模拟页面地址重定位- endl; for (;) cout 1:输入信息n2:查看页表n3:查看物理地址n4: 退出 choice; switch (choice) case 1:input(); if (init() = -1) return -1; break; case 2: output(0); break; case 3: output(translate(); break; case 4: cout 已经退出n; exit(0); break; return 1;五、 运行实例用户提示界面(如图1 ) 图1首先输入1,进行手动初始化 图2 再输入2,查看页表信息 图3 输入3,查看物理地址 图4六、 心得与体会 通过本次实验,我对页面地址重定位有了较为浅显的认知,对于虚拟页面和物理块之间的联系有了更深的理解,从而也再次学习了存装入与重定向的相关知识,受益匪浅,希望在以后的学习中再接再厉。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1