操作系统笔记(6)——存储器管理

多级存储器结构

  • 最高级:cpu寄存器(操作系统管理范畴。断电则信息不存在)
  • 中级:主存(操作系统管理范畴。断电则信息不存在)
    • 高速缓存(容量小、速度快、价格高)
    • 主存
    • 磁盘缓存(依托于固定磁盘,提供对主存储空间的扩充,暂存频繁使用的磁盘数据)
  • 低级:辅存(隶属于设备管理范畴,其存储信息可以被长期保存)
    • 磁盘
    • 可移动存储介质

程序的装入和链接

绝对装入方式(只适用于单道程序环境)

  • 只能将目标模块装入到内存中事先制定的位置

可重定位装入方式(静态重定位)

  • 此方式不允许程序运行时再内存中移动位置
  • 根据内存的当前情况,将装入模块装入到内存的适当位置
  • 装入后会使装入模块的所有逻辑地址与实际装入的物理地址不同

动态运行时装入方式(动态重定位)

  • 装入内存后的所有地址都仍是相对地址。此方式需要一个重定位寄存器的支持

连续分配方式

动态分区分配

根据进程的实际需要,动态的为其分配内存空间

  • 空闲分区表:存储分区的序号、始址及分区大小等数据项

  • 空闲分区链:在每个分区起始部分设置一些用于控制分区分配的信息,用于链接个分区所用的向前指针及向后指针,将所有空闲区连接成一个双向链。

分区分配算法

顺序搜索法

1.首次适应算法(first fit)
  • 原理:从链首开始顺序查找,直至找到一个大小满足要求的空闲分区,并按作业大小从该分区中划出以快满足要求的分区
  • 优点:保留了高址部份的大空闲区
  • 缺点:会留下许多难以利用的、很小的空闲分区
2.循环首次适应算法(next fit)
  • 原理:在首次适应算法(ff)的基础上,从上次找到的空闲分区的下一个空闲分区开始查找
  • 优点:使内存中的空闲区分布的更均匀
  • 缺点:后期会缺乏大的空闲分区
3.最佳适应算法(best fit)
  • 原理:将空闲分区按其容量由小到大划分形成一条空闲分区链。
  • 优点:局部最优
  • 缺点:宏观上看仍会使存储器中留下许多难以利用的小空闲区
4.最坏适应算法(worst fit)
  • 原理:将空闲分区按其容量由大到小划分形成一条空闲分区链。
  • 优点:查找效率很高
  • 缺点:会使存储器中缺乏大的空闲分区

5.快速适应算法(quick fit)[分类搜索法]

  • 原理:以空间换时间——根据容量大小进行分类。对于每一类具有相同容量的所有空闲分区,单独设计一个空闲分区链表
  • 优点:
    • 查找效率高(仅需根据进程长度寻找能容纳它的最小空闲区链表并取下第一块进行分配)
    • 不会对任何分区产生分割,故不会产生内存碎片,可以保留大的分区
  • 缺点:归还主存时算法复杂,系统开销较大

分区分配操作

分配内存

  • m.size:空闲分区的大小

  • u.size:请求的分区大小

  • size:事先规定的不可切割的生于分区大小

内存回收

进程运行完毕释放内存猴,系统根据回收区的首址,从空闲区表(链)中找到相应插入点。

  • 寻找插入点时可能会出现如下情况
    • 回收区与插入点的前一个空闲分区相邻接——与前一分区合并
    • 回收区与插入点的后一个空闲分区相邻接——与后一分区合并
    • 回收区与插入点的前后两空闲分区均相邻接——将三个分区合并
    • 回收区前后均不与分区相邻接——单独建立以一新表,填写回收区的首地址和大小并根据其首地址插入到空闲区链中的适当位置

基本分页存储管理方式

页面与页表

页面与物理块

  • 将一个进程的逻辑地址空间分成若干个大小相等的片,并加以编号。此即为页面/页
  • 把内存空间分为与页面大小相同的若干个存储块,此即为(物理)块/页框。同样为之编号。

地址结构

  • 页号P + 位移量W 组成 地址结构
  • P为页号。d为页内地址。A为逻辑地址空间的地址。L为页面大小。MOD为取余,INT为整除
    • P = INT[ A/L ]
    • d = [A] MOD L

页表

页表的作用即是实现从页号到物理块号的地址映射

两级和多级页表

由于目前操作系统大都支持非常大的逻辑地址空间(32、64位),所以此环境下页表会非常大。比如一个32位逻辑地址空间的分页系统,规定页面大小为4K,即2的12次方B。则在每个进程页表中的页表项可达1M个之多。又因每个页表占用一个字节,则每个进程仅页表项就占用1M的存储空间。故引入两级页表/多级页表

两级页表

如图,页表的每个表项中存放的是进程的某页在内存中的物理块号。而在外层页表的每个表项中则存放的是某页表分页的首地址。以此类推,实现从进程的逻辑地址到内存中的物理地址之间的变换。

多级页表

对于64位计算机,如果要求它能支持2的64次方B规模的物理存储空间

虚拟存储器的基本概念

当有些作业过大,要求的内存空间超过了内存总容量时,作业无法全部被装入内存。或是有大量作业需要运行而由于内存限制只能先运行一部分。此时除去扩充物理内存外我们还可以从逻辑上扩充内存容量,即虚拟存储技术要解决的主要问题

定义

  • 所谓虚拟存储器,是指具有请求调入功能和置换功能能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外村容量之和所决定,运行速度接近于内存速度,而每位的成本却又接近于外存。

你可能感兴趣的:(操作系统)