第四章 存储器管理

4-1存储器的层次结构
各种存储部件:寄存器、高速缓存、内存、磁盘缓存、磁盘。
主存:保存进程运行时的程序和数据
寄存器:速度最快,价格昂贵容量不大,一般以字为单位,只要存放指令一次操作的数据就够了 。
高速缓存:一种速度比内存快的存储设备,一般同寄存器一样集成在CPU中。速度快、存放部分内存数据、硬件自动处理。
磁盘缓存:内存的一部分,将频繁使用的一部分磁盘数据信息预读入在磁盘缓存,减少磁盘读写时间。
4-2程序的装入和链接
程序进内存的一般过程:1编译程序。
2 链接程序。
3由装入程序将装入模块装入内存。
逻辑地址(相对地址,虚地址)
物理地址(绝对地址,实地址)
地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的内存物理地址的过程。
逻辑地址由:1编译或汇编程序给出 2由程序员赋予。
优点:装入过程简单。不需任何地址变换,程序中的逻辑地址与实际内存物理地址完全相同。
缺点:过于依赖硬件结构, 只适用早期针对硬件直接编程、单道环境下。
重定位:把目标程序中的指令和数据的逻辑地址变成内存中的物理地址的地址变换过程。
静态可重定位装入方式:
优点:不需硬件支持,可以装入有限的多道程序
缺点:软件装入一次完成,一个程序通常需要占用连续的内存空间,程序装入内存后不能移动。也不易实现共享。
程序作为整体连续装在一块内存的,记录下基地址即可。
程序离散装入在不同内存位置的,需记录下多个偏移用的基地址(后面内存分配里详细讨论);
动态重定位的,这些被记录的基地址不一定固定不变,可能会根据内存使用情况变化更新。
不同的程序链接方式:根据链接时间的不同,分成三种:静态链接,装入时动态链接,运作时动态链接。
4-3连续分配存储管理方式
分类:单一连续分配
固定分区分配
动态分区分配
动态重定位分区分配
内存分为系统区和用户区两部分:
系统区:仅提供给OS使用,通常放在内存低址部分
用户区:除系统区以外的全部内存空间,提供给用户使用。
单一连续分配优点:易于管理。
缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。
固定分区分配:把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个分区。
固定分配的不足:
内碎片(一个分区内的剩余空间)造成浪费
分区总数固定,限制并发执行的程序数目。
动态分区分配:具体实现:
1)分区分配中的数据结构
2)分区分配算法
3)分区分配操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值