第七章 存储管理(要点提示)
声明:以下内容只是自己的理解有错误的地方还请各位多多指正(本篇待完善)
为了运行的安全存储管理需求:
1、 Relocation
2、 Protection
3、 Sharing
4、 Logical organization
5、 Physical organization
首先是重定位英文称之为Relocation,其实是逻辑地址转化为物理地址的过程,在硬件上我们用MMU(内存管理单元)因为如果用程序管理其太过耗时。
物理地址的生成与改变是在执行progress时形成的,并且在执行期间判断是否越界。
有关overlay(覆盖技术):
前提:内存空间的分区
A进程过大,装载不下所以将A进程分块然后将A1,A2,A3,A4
分别读入内存同一分区,并依次覆盖原来的。即A1执行->A2执行
覆盖A1->A3执行覆盖A2->A4执行覆盖A3……
分区技术:
1) 固定分区技术:
1、 相同分区技术:相同大小分区对进放置都可装,超过分区大小的采用覆盖技术
弊端:储存利用率低,进程很小但却被分给了很大的分区,有内零头
2、 不同分区技术:其放置算法是装入并浪费最小的那个
2) 动态分区技术:几乎不讨论内零头,只看外零头
一般解决外零头的方法是:紧凑技术将外零头合并形成大的存储分区
分区的根本问题在于存储的空间的连续才有了所谓的内外零头
连续分区的好处:找到进程当前的执行的基址即可
其放置算法有三个:best-fit、first-fit、next-fit其优劣是first-fit > next-fit >
best-fit的由于next-fit总是导致在最后一个free
block里面allocate所以会费一些时,但是最蛋疼的是best-fit每次都是找到近乎相同的free
block去分配结果导致后来导致memory里面的小零碎的空闲空间很多所以要平凡的使用compaction,结果得不偿失反而损失了更多时间,成为最差的。
伙伴系统:???
简单分页技术:之所以称之为简单分页技术是因为全部的program和data是在内存中的,与之相对应的是虚拟存储技术是将部分的program以及data存在内存中。简单分页技术的内存空间划分为很多的小的区域通过查页表在对应的页框中找到内容。其中页表寄存器存放的是页表的起始地址
关于TLB:
1、值得注意的是分页系统的外零头没了但是还是有内零头的,一般存在于最后一页中。
2、数据的I/O是按照block为单位的
3、TLB的转换:是否提升了效率是与其命中率相关的,如果命中率只有可怜巴巴的50%都不到的话,用TLB反而更费时间,因为查询TLB也是耗时的!!!