没有合适的资源?快使用搜索试试~ 我知道了~
操作系统原理实验.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 14 浏览量
2023-03-30
21:15:22
上传
评论
收藏 451KB PDF 举报
温馨提示
操作系统原理实验主要关注虚拟存储器的概念、工作原理和页面置换算法。虚拟存储器是一种通过将部分硬盘空间模拟为内存来扩展内存容量的技术,允许程序运行不受实际物理内存大小的限制。这一技术在Windows等现代操作系统中广泛应用,以解决内存不足的问题。 在页式虚拟存储系统中,程序被划分为固定大小的页,同时虚拟存储器也被分成相同大小的页。虚地址由虚页号和页内地址组成,通过页表进行地址转换。页表存放在主存中,包含虚页号、实页号和状态信息,如是否在内存中。当CPU试图访问不在主存中的页面时,会产生缺页中断,这时就需要页面置换算法来决定哪个页面应该被换出。 常见的页面置换算法包括: 1. **最佳置换算法 (OPT)**:选择未来最长时间内不会被访问的页面换出。 2. **先进先出置换算法 (FIFO)**:选择最早进入内存的页面换出。 3. **最近最久未使用置换算法 (LRU)**:选择最近最长时间未被访问的页面换出。 4. **时钟置换算法 (Clock)**:带有访问位的页面,检查访问位决定页面是否换出。 5. **最少使用置换算法 (LFU)**:选择最近使用频率最低的页面换出。 6. **随机置换算法 (S)**:随机选择一个页面进行换出。 实验步骤涉及定义页表结构、初始化页面引用序列,然后针对选定的页面置换算法编写程序,计算缺页次数和缺页率。实验代码示例中定义了内存页数、页面引用序列数以及各种置换算法的实现。 通过这样的实验,学生可以深入理解虚拟存储器的工作机制,掌握不同页面置换算法的性能差异,并能通过实践操作观察到这些算法如何影响系统的缺页率,从而提升对操作系统内存管理的理解。
资源推荐
资源详情
资源评论
佛山科学技术学院
实验报告
课程名称操作系统原理实验
实验项目虚拟存储器
专业班级姓名学号
指导教师成绩日期
一、实验目的
1、了解虚拟存储器的基本原理和实现方法。
2、掌握几种页面置换算法。
二、实验内容
设计模拟实现采用不同内外存调度算法进行页面置换,并计算缺页率。
三、实验原理
内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执 行,如
果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题, Win dow 中运
用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存 占用完时,电脑就
会自动调用硬盘来充当内存,以缓解内存的紧张。
虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以 扩充
的一种存储器系统。它是采用一定的方法将一定的外存容量模拟成内存,同 时对程序进
出内存的方式进行管理,从而得到一个比实际内存容量大得多的内存 空间,使得程序的
运行不受内存大小的限制。虚拟存储区的容量与物理主存大小 无关,而受限于计算机的
地址结构和可用磁盘容量。
虚拟内存的设置主要有两点,即内存大小和分页位置,内存大小就是设置虚 拟内
存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区 中的硬盘空
间。
(一)页式虚拟存储器
在页式虚拟存储系统中,将程序按统一的大小划分成多个页,同时也将虚拟 存储
器划分为同样大小的页,其中虚拟空间的页称为虚页(逻辑页),而主存空 间的页称为
实页(物理页),并对这些页按地址从低到高的顺序编号。
在编程时,程序的虚地址由高位字段的虚页号和低位字段的页内地址两部分 组成,
虚页号标识页。虚地址到实地址之间的变换是由页表来实现的。页表是一 张存放在主存
中的虚页号和实页号的对照表,记录着程序的虚页调入主存时被安 排在主存中的位置。
若计算机采用多道程序工作方式,则可为每个用户作业建立 一个页表,硬件中设置一个
页表基址寄存器,存放当前所运行程序的页表的起始 地址。
页表中的每一行记录了与某个虚页对应的若干信息,包括虚页号、装入位和 实页
号等。页表基址寄存器和虚页号拼接成页表索引地址。根据这个索引地址可 读到一个页
表信息字,然后检测页表信息字中装入位的状态。若装入位为 1,表示
该页面已在主存中,将对应的实页号与虚地址中的页内地址相拼接就得到了完整 的实地
址;若装入位为 0,表示该页面不在主存中,于是要启动 I/O 系统,把该页 从辅存中调
入主存后再供 CPU 使用,若主存已满,还需要使用替换算法替换页。
(二)页面置换算法
在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺 页中
断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以 便为即将调
入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算 法。几中常见的页面
置换方法如下:
1. 最佳置换算法(OPT :选择永不使用或是在最长时间内不再被访问(即 距现在
最长时间才会被访问)的页面淘汰出内存。
2. 先进先出置换算法(FIFO):选择最先进入内存即在内存驻留时间最久的 页面
换出到外存。
3. 最近最久未使用置换算法(LRU :以“最近的过去”作为“最近的将 来”的近
似,选择最近一段时间最长时间未被访问的页面淘汰出内存
4. 时钟置换算法 Clock :为进入内存的页面设置一个访问位,当内存中某页
被访问,访问位置一,算法在选择一页淘汰时,只需检查访问位,若为
换出,若为 1,置该访问位为 0,检测内存中的下一个页面的访问位。
0,则直接
5. 最少使用置换算法(LFU):在内存中为每个页面设置一个移位寄存器, 用来
记录该页面被访问的频率。选择在最近时期使用最少的页面作为淘汰页
6. 随机置换算法(S):产生一个取值范围在 0 和 N-1 之间的随机数,该随 机数即
可表示应被淘汰出内存的页面。
四、实验步骤
1.定义页表的存储结构,设置作业进程所占内存空间为 机生
成 100 个页面,用于分配页面大小的内存总空间为
640K,页面大小为 1K/2K/4K/8K,随
32K。
2. 初始化进程的页面引用序列。
3. 选择下列六种置换算法中的三种编写程序,进行页面置换,并计算缺页次数和 缺页
率。
(1) 最佳置换算法(OPT
(2) 先进先出置换算法(FIFO):
(3) 最近最久未使用算法(LRU
(4) 时钟置换算法(CLOCK
(5) 最少使用置换算法(LFU)
(6) 随机置换算法(S)
4. 使用菜单形式,选择不同的置换方法,显示换页过程、缺页次数及缺页率。
五、实验代码
#in elude
#in elude
#i nclude
#defi ne M 3 // 内存页数
#defi ne N 20 // 页面引用序列数
#defi ne Mypri ntf printf(”---+---+---+---+---+---+---+---+---+---+---+--
_ +_ + _ + _ + _+ _+
-
+ +_ \n" /*
表格控制*/
剩余17页未读,继续阅读
资源评论
คิดถึง643
- 粉丝: 4027
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享AMS1117很好的技术资料.zip
- 技术资料分享AL422B很好的技术资料.zip
- 技术资料分享001124-Patent-100590985-test很好的技术资料.zip
- 【Unity 骑乘系统插件】Horse Animset Pro (Riding System)快速实现高质量的骑乘控制系统
- DOSBox,环境挂载窗口
- 【Unity 插件】Platformer 2 Obstacles 大量低多边形风格的障碍物和环境元素,加速游戏关卡设计
- masm文件夹,包含LINK.EXE,debug.exe,edit.com,MASM.EXE文件
- 【Unity动画插件】Basic Motions 快速实现常见的角色运动和动作动画
- 最新源支付系统源码 V7版全开源 免授权 附搭建教程
- 【Unity行星资源】Space Graphics Planets 快速创建和渲染具有高质量细节的行星、卫星以及其他天体
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功