操作系统之存储器管理

存储器的层次结构

存储器的层次如下图:

这里写图片描述

上图中,寄存器和主存储器称为可执行存储器。高速缓存的作用是缓和CPU与内存之间的速度差异,主要由硬件实现。磁盘缓存的出现是由于内存容量不够,需要引入磁盘,然而磁盘的I/O速度远低于主存的访问速度,为了缓和两者之间在速度上的差异,设置了磁盘缓存。磁盘缓存与高速缓存不同,它本身并不是实际存在的存储器,是利用主存中的部分空间暂时存放从磁盘中读出写入的信息。

程序的装入与链接

用户程序需要运行,必须先将它装入内存,然后再将其转变为一个可以执行的程序,通常要经历一下几个步骤:

  • 编译:由编译程序对用户源程序进行编译,形成若干个目标模块。
  • 链接:有链接程序将编译后形成的一组目标模块以及他们所需要的库函数链接在一起,形成一个完整的装入模块。
  • 装入:由装入程序将装入模块装入内存。具体过程如下图:
    这里写图片描述
1. 程序的装入
1) 地址空间
  • 程序编译时还没有装入主存,还不能确定它在主存中的实际位置,所以都是从0开始。
  • 相对于0位置开始的地址称为逻辑地址,也称为相对地址。地址空间是指逻辑地址的集合。
2) 存储空间
  • 一个程序在主存中的实际位置称为物理地址。物理地址的集合就是存储空间。

程序的装入有三种方式:

1) 绝对装入方式
  • 在编译时,如果知道程序将驻留在内存的什么位置,那么,编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。
  • 装入模块被装入内存后,由于程序中的逻辑地址与实际内存中的地址完全相同,故不需对程序和数据的地址进行修改。
2) 可重定位装入方式
  • 地址变换是在装入时一次完成的,以后不再改变(静态重定位)。
3) 动态运行时的装入方式
  • 把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把
【实验目的】 1. 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解; 2. 熟悉虚存管理的各种页面淘汰算法; 3. 通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 【实验准备】 1.虚拟存储器的管理方式  段式管理  页式管理  段页式管理 2.页面置换算法  先进先出置换算法  最近最久未使用置换算法  Clock置换算法  其他置换算法 【实验内容】 1. 实验题目 设计一个请求页式存储管理方案。并编写模拟程序实现之。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)生成这个序列,使得 50%的指令是顺序执行的。25%的指令均匀地散布在前地址部分,25%的地址是均匀地散布在后地址部分。为简单起见。页面淘汰算法采用 FIFO页面淘汰算法,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,也不将它写回到辅存。 2. 具体做法 产生一个需要访问的指令地址流;指令合适的页面尺寸(例如以 1K或2K为1页);指定内存页表的最大长度,并对页表进行初始化;每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况;逐个地址访问,直到所有地址访问完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值