操作系统学习--存储管理
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内存空间。
一、重定位:
(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内存空间。
相关文章推荐
- 内功修炼之操作系统学习(四:存储管理)
- 操作系统--存储管理
- 操作系统分页存储管理
- [操作系统]复习二 分段分页存储管理
- Linux操作系统基础理论(4)-----Linux 存储管理的实现
- 操作系统_第四章_存储管理之重定位:绝对地址和相对地址
- c++ 计算机操作系统虚拟页式存储管理系统仿真实现
- 操作系统知识整理2:存储管理
- 现代操作系统学习笔记——posix标准中的进程管理
- 操作系统中的存储管理
- 操作系统学习(五)-- 操作系统之内存管理
- 软件复习-操作系统---存储管理
- 操作系统之存储管理(续)
- 操作系统原理学习笔记--存储管理
- 操作系统中的存储管理
- 操作系统学习笔记(14) 存储管理-储存管理的任务
- 操作系统--存储管理的任务
- 3.1存储管理操作系统
- 【数据库学习笔记】Oracle_01_sql*plus,存储结构,用户管理,常用数据类型
- 【操作系统】虚拟存储器--请求分段存储管理方式