文章目录
内存管理
基础
功能
分配和回收内存、地址变换、扩充内存容量、内存保护
地址变换-指把程序中的逻辑地址转换为物理地址,存储保护-保护作业在自己的存储空间并行互不受干扰
扩充内存的方法
交换技术:把不需要的程序和数据放到外存,把需要的从外存拿进内存
覆盖技术
连续分配的管理方式
- 单一连续分配:把内存分为系统区和用户区
- 固定分区分配:分区大小相等和分区大小不相等
- 动态分区分配:固定分区存在内部碎片,五外部碎片;动态分区存在外部碎片,无内部碎片
分区分配算法
- 首次适应算法:按地址递增的次序链接,从头开始找到放得下作业的空闲分区地址为止
- 循环首次适应算法:在首次适应的基础上,上次找到空闲分区的下一个开始找(拉链法?)
- 最佳适应算法:按照空闲空间大小从小到大排列找能放得下作业的最小分区
- 最坏适应算法:由大到小排列,找能放得下作业的最大分区
非连续分配管理方式:
指运行一个程序分散装入很多不相邻的小分区中。根据小分区的大小固定和不固定分为分页存储方式和分段存储管理方式。
基本分页管理方式
用户作业的地址空间被划分为若干大小相等的区域称为页面或者页。相应的将内存的存储空间也分成与页大小相等的区域称为块或者物理块。
分页存储管理系统中逻辑地址结构包括两部分:
前一部份为页号P,后一部份为页内偏移量W
若逻辑地址空间是2^m,页面大小是2^n
那么逻辑地址的高m-n位是页号P,低n位是页内偏移量W。
基本地址变换机构
逻辑->物理地址
逻辑页号,页表起始地址->块号,页内偏移量->物理地址
例如:页面大小L,逻辑地址A,页表长度M,起始地址F,物理地址b
P:A/L
W:A%L
P>=M越界中断
页号P对应的页表项地址:F+Px页表项大小
物理地址:bxL+W
有效访问时间
指给定的逻辑地址找的内存那种对应的物理地址单元中数据所花的总时间
- 若无快表,时间为2t(查找页表项t+根据物理地址访问t)
- 有(之前访问过的页表项存放在快表)快表查找时间是e,设命中率a有效时间分为:查页表项的平均时间为ea+(t+e)(1-a)
两级和多级页表
外层页号P1,外层业内地址P2(或内层页号),…,页内偏移量W
例题:假设页面大小为4KB,再也表中的每个页表项需要占用8字节,则为了满足在2^64地址空间的作业运行系统的分页管理至少应采用多少级页表?
4KB=2^12
8B=2^3
一页可放2^12/2^3=2^9个页表项
(64-12)/9=5 向上取整得6
分段与分页存储管理主要区别
- 页是信息的物理单位目的是实现离散分配,减少内存的外部碎片,提高内存的利用率。段是信息的逻辑单位,每一端在逻辑上是一组相对完整的信息
- 页的大小是固定的等长的,段的大小动态变化
- 分页存储管理系统中作业的地址空间是一维的,分段存储管理系统中作业的地址空间是二维的
- 分页存储管理系统中不易实现“共享”和“动态链接”,而分段存储管理系统则很容易实现
拼接技术:将空闲分区集中
段页式分配:是段式和页式两种存储方式的互补,用分段方式来分配和管理用户的地址空间,用分页方法来管理物理存储空间
例题:在段式、页式、段页式分配种CPU每次从内存中去一次数据个需要多少次访问内存?
答:2,2,3
段式 逻辑->物理->内存
页式 逻辑->物理->内存
段页式 段式->页式->内存