中级数据库工程师笔记(九)------ 存储管理

存储管理主要是指对内存的管理,负责内存分配和回收,内存的保护和扩充。

1. 连续的分配方式:用户的程序分配到一个连续的内存空间。

(1)单一连续分配

(2)固定分区分配

(3)动态分区分配:按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。

  • 首次适应算法(从低地址开始,只要能放下该作业,就分配该位置)
  • 循环首次适应算法(从当前位置往下寻找)
  • 最佳适应算法(从小到大排序。找到比该作业大,但是最小的分区)
  • 最坏适应算法(找最大的分区)

(4)可重定位分区分配(将空闲分区向小地址拼接)

2. 离散的分配方式

2.1 分页存储管理:离散分配的基本单位是页

(1)页面与页表

将一个进程的逻辑地址空间氛围若干个大小相等的片称为页面或页,并为各页加以编号,从0开始。同时把内存空间分成与页面相同大小的若干个存储块,称为块或页框。

在为进程分配内存时,以块为单位将进程的若干个页分别装入到多个可以不相邻的物理块中。进程的最后一页经常装不满一块而形成“页内碎片”。

(2)地址变换机构

若给定一个逻辑地址空间中的地址A,页面大小为L,则

            页号 P = INT [ A / L ]

            页内地址 d = [ A ] MOD L

(3)基本分页式存储管理的实现

进程的每一页离散地存储在内存的任一存储块中,为方便查找,系统为每一进程建立一张页面映像表,简称页表。

页表实现了从页号到物理块号的地址映射。

地址变换机构实现从逻辑地址到物理地址的转换。

(4)具有快表的地址变换机构

在地址变换机构中,增设一个具有并行查询能力的特殊高速缓冲寄存器,称为“联想存储器”或“快表”,解决CPU在每存取一个数据时 ,需要两次访问内存问题。

2.2 分段存储管理:离散分配的基本单位是段

(1)段表

为使程序正常运行,须在系统中为每个进程建立一张段映射表,简称“段表”。每个段在表中占有一个表项。

段表结构:短号;段在内存中的起始地址(基址);段长。

(2)地址变换机构

在系统中设置段表寄存器,用于存放段表起始地址和段表长度,以实现从进程的逻辑地址到物理地址的变换。

当段表存放在内存中,没访问一个数据看,都需要访问两次内存,降低了计算机的速率。

解决办法:设置联想寄存器,用于保存最近常用的段表项。

2.3 分页和分段的主要区别

(1)相似点:采用离散分配方式,通过地址映射机构实现地址变换。

(2)不同点:

  • 页是信息的物理单位,分页是为了满足系统的需要;段是信息的逻辑单位,含有意义相对完整的信息,是为了满足用户的需要。
  • 页的大小固定且由系统确定,由系统把逻辑地址分为页号和页内地址,由机器硬件实现;段的长度不固定,取决于用户程序,编译程序对源程序编译时根据信息的性质划分。
  • 分页的作业地址空间是一维的;分段的作业地址空间是二维的。

2.4 段页式存储管理

分段和分页存储管理方式各有优缺点,把两者结合成一种新的存储管理方式就是段页式存储管理方式。

(1)基本原理

先将用户程序分成若干段,再把每个段分成若干页,并为每个段赋予一个段名。

  • 基本段页式存储管理:把作业的所有段装入内存方可运行。
  • 请求段页式存储管理:没必要把整个作业装入内存,可把作业的几段或几页装入内存即可运行。
  • 段页式系统地址结构:段号;段内页号;页内地址。

在段页式系统中,为了获得一条指令或数据,需要访问三次内存:

第一次:访问内存中的段表,获得页表起始地址

第二次:访问内部才能中的页表,获得该页所在的物理块号,将块号与页内地址形成物理地址

第三次:根据第二次所得的地址,取出指令或数据

缺点;访存次数增加两倍

解决方法:增设高速缓冲寄存器

2.5 页面置换算法

(1)最佳置换算法

最佳置换算法是一种理想化的算法,具有最好的性能,但难于实现。

其所选择的被淘汰页面,将是以后永不再用的,或许是在最长(未来)时间内不再被访问的页面。

优点:保证获得最低的缺页率

缺点:无法预知一个进程在内存的若干个页面,哪个在未来最长时间内不再被访问

(2)先进先出置换算法

算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

缺点:算法与进程的实际运行规律不相适应,因为进程中的某些页面经常被访问,但先进先出置换算法不能保证这些页面不被淘汰。

(3)最近最久未使用(LRU)置换算法

LRU置换算法是选择最近最久未使用的页面予以淘汰。

该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t ,当需淘汰一个页面时,选择现有页面中 t 值最大的,即最近最久未使用的页面予以淘汰。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值