《计算机操作系统》(第四版)----第四章存储器管理

存储器的层次结构

在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。但是,在现有技术条件下,任何一种存储装置,都无法同时从速度与容量两方面,满足用户的需求。实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。

从上向下,存取速度逐渐变慢,容量逐渐变大,价格逐渐降低。

主存储器

  • 主存储器简称内存或主存,用于保存进程运行时的程序和数据。
  • 处理机从主存储器中取出指令和数据,取得的指令放在指令寄存器中,取得数据放入数据寄存器中。
  • 近些年主存容量不断扩充。主存储器访问速度远低于CPU执行指令的速度,为缓和此矛盾,计算机系统中引入了寄存器和高速缓存。

寄存器

  • 寄存器具有与处理机相同的速度,对寄存器的访问速度最快,但价格昂贵容量小
  • 使用寄存器可以存放操作数,或用作地址寄存器加快地址转换速度等。

高速缓存

  • 介于寄存器和主存之间的存储器,主要用于备份主存中较常用的数据
  • 减少处理机对主存储器的访问次数,大幅提高程序执行速度
  • 容量远大于寄存器访问速度快于主存
  • 由于高速缓存的速度越高价格越贵,有些计算机系统中设置多级高速缓存。

磁盘缓存

  • 磁盘的I/O速度远低于对主存的访问速度,磁盘缓存可有效缓和两者速度上的不匹配。
  • 暂存频繁使用的部分磁盘信息
  • 磁盘缓存并不是一种实际存在的存储器,而是利用主存中部分存储空间存放从磁盘中读出(或写入)的信息

程序的装入和链接

用户程序的主要处理阶段

将用户程序变为一个可执行的程序,通常要经过以下几步:

  1. 编译,由编译程序(Compiler)对用户源程序进行编译,形成若干个目标模块(ObjectModule);
  2. 链接,由链接程序(Linker)将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的装入模块(Load Mudule);
  3. 装入,由装入程序(Loader)将装入块装入内存.

也可以这样理解:

编译:生成目标文件(*.obj)

链接:生成可执行文件(*.exe)

装入:装入内存(进程)

程序的装入

(1)绝对装入方式 (Absolute Loading Mode)  

  • 由装入程序根据装入模块中的地址,将程序和数据装入内存。装入模块的地址是编译时由编译程序产生的,是绝对地址装入程序按装入模块装入内存时,不需修改地址
  • 这种方式要求事先已知程序将装入内存的位置。一般只在单道程序的环境才有可能实现。
  • 优点:装入过程简单无需进行地址变换。  
  • 缺点:只能将目标模块装入内存中事先指定的位置,只适用于单道程序环境。

(2)可重定位方式 (Relocatable  Loading Mode)  

  • 由装入程序根据内存当时的实际使用情况,将装入模块装入到内存的适当地方。目标模块中的地址为相对地址(逻辑地址) 。
  • 装入模块中的逻辑地址与实际装入内存的物理地址不同。装入内存时,要进行重定位
  • 程序开始运行前完成重定位,即完成逻辑地址到物理地址映射。地址变换通常是在装入时一次性完成的,以后不再改变。故称静态重定位
  • 其地址变换方式为:物理地址=逻辑地址+内存起始地址
  • 优点:不需硬件支持,可以装入有限多道程序。  
  • 缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动

(3)动态运行时装入方式(dynamic Run-Time Loading)

  • 装入模块为相对地址,在装入内存时,并不立即变为物理地址(绝对地址),即装入后仍为相对地址。只有在程序真正要执行时才对它进行地址转换(动态重定位
  • 为使地址转换不影响指令的执行速度,这种方式需要硬件支持,程序被执行时,通过重定位寄存器内的起始物理地址和指令或数据的逻辑地址计算其物理地址。
  • 物理地址==(BR)+逻辑地址
  • 优点:程序装入内存后可以移动,有利用实现共享。  
  • 缺点:该方式需要一定特殊硬件的支持,OS实现较复杂。

程序的链接

根据链接时间的不同,可把链接分成如下三种:

(1)静态链接方式

  • 在装入内存之前进行,链接后形成一固定的装入模块(也称为可执行文件),不再拆开。
  • 在将几个目标模块装配成一个装入模块时,需解决以下两个问题:

        1.对相对地址进行修改

        2.变换外部调用符号

(2)装入时动态链接      

  • 目标模块在装入内存时边装入边链接。  
  • 优点:1)便于修改和更新;2)便于实现目标模块的共享
  • 缺点:每次都要链接装入所有的模块,不论是否用到
<
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值