您的位置:首页 > 其它

操作系统学习--存储管理

2014-03-06 11:17 295 查看
本章要点:存储管理方式,内存的分配与回收,重定位,内存的保护与共享,移动技术,换入与换出,虚拟存储

一、重定位:

(1)静态重定位

在装入一个作业时,把作业中的逻辑地址全部转换为物理地址,这种定位实在作业开始前集中进行的,作业开始后无需再进行转换

(2)动态重定位

在作业装入时,不进行转换,直接装入主存。而是在每条指令执行时由硬件的地址转换机构进行转换。即每次动作都得由别人告诉它地址,因此,可采用移动技术。

二、移动技术

即在主存中将作业从一个位置移到另一个位置,类似于磁盘上文件的移动,在移动前要保证没有其他作业对它的引用。

三、内存的保护与共享:

装入内存时由界址和基址寄存器把逻辑地址转换为物理地址,并检查是否在指定区域装入,如果是就装入,否则就不能装入。在作业占用处理器时进程调度程序将其 起始地址和长度装入基址和界址寄存器,这样在执行每条指令时,都会检查其是否越界。

四、存储管理方式:

分区存储管理

1. 固定分区:将内存分为固定大小和个数(大小同或不同),操作系统内核占用固定部分,其他分配给用户使用,可按照作业的大小分配内存,直到不能分配为止

(1)内存的分配与回收

按照作业先后和大小进行分配内存,直到不能分配为止。

作业结束后占用分区被收回

(2)管理采用的数据结构:系统维护一张主存分配表(主存号+起始地址+长度+占用标识)

(3)可采用静态定位和动态定位

(4)优点:开销小,实现简单

缺点:产生内存碎片,内存利用率低

2.可变分区:内存分区的位置和大小不是固定的,可根据作业的大小动态改变

(1)根据内存大小,利用分配算法,分配内存。分配算法有:最先适应分配算法,最优适应分配算法和最坏适应分配算法。作业结束时,内存被收回,可用于重分配。

(2)采用数据结构:两张表,已分配分区表和空闲分区表

(3)覆盖和交换技术

覆盖:一个程序的数据段或代码段按照时间顺序先后占用内存,实现较小的内存运行较大的程序。

交换:将暂时不能执行的程序,换出外存,给已就绪的程序让出内存,可增加程序的并发

3. 页式存储管理(系统管理需要)

(1)将内存分为大小相等的块儿,和固定分区相似,和固定分区不同的是,块儿的大小小 的多,为2的次幂大小,便于由逻辑地址转换为物理地址。采用映射,页面和页框对应。例如,16为地址,页面的大小的2(12)B即4KB,高四位为页面号,低12位为页面内偏移量。因此,页面外无内存碎片,页面内有,但是很小

(2)采用管理数据结构:页表+请求表+存储页面表(静态页式管理),加入中断后的页表(动态页式管理),页表项中有特征位(标识该页是否在内存)

(3)快表:和CPU的高速缓存cache不同,cache的引入是因为主存的速度远远跟不上CPU的速度,因此cache 和CPU的性能有很大关系。

快表是页表的一小部分的克隆。将常用的页放在一个高速缓存里,访问时内存和快表同时查找,大大提高了访问速度,普通状态访问程序数据需要两次,使用快表只需要一次。

(4)要访问的页面不存在:缺页中断。

(5)优点:要多大有多大,缺点:作业需全部装入进程。

4.段式存储管理(用户应用需要,一条指令不会跨越两个段,可能跨过两个页)

(1) 将内存视为二维的。和可变分区相似,可变分区管理方式中是为每个作业分一个区,而段式管理是为一个作业中的每个段分一个连续的空间。段间不必连续,程序通过分段,划分为多个段:代码段,数据段,共享段

(2)采用管理数据结构:段表 由 段号 、 本段限长 和 起始地址 三部分组成,由于每一行记录的行号可以对应程序的段号,因此段号实际上被省略,不占存储空间。

  与其他管理方式一样,段表记录的信息用于地址转换和存储保护。段表的表目起到了基址/限长寄存器的作用。

(3)地址转换:例如,16位地址, 前面4位为短号,后面12位为偏移量,则段的大小为2(12)=4096B。将偏移量与段表的前12位(长度)比较,是否越界。后16位为基址。



五、虚拟内存

提取磁盘上的空间当做内存的扩充,利用分页、分段和换入与换出机制。虚拟内存即是页文件,包括页目和页表,一共4.4M,表示4GB的虚存空间。个人理解页面在外存中,页目应该在内存中。一个进程被创建时,系统同时为它创建页文件,也即每个进程都有自己独立的4GB内存空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: