操作系统——存储器管理(含思维导图)

   本教材为中国铁道出版社——操作系统(第四版)刘振鹏、张明、王煜著。本篇文章为第五章复习。

目录

 思维导图:​编辑

一、存储体系

 1、分类

2、存储管理的目的

3、存储管理的过程

4、程序的连接和装入

(1)程序的连接

(2)程序的装入

二、连续存储管理方式

1、单一连续分配

2、分区分配

(1)固定分区

(2)可变分区

分区分配算法: 

分区的回收:

​编辑

紧凑:

三、覆盖技术&交换技术

1、覆盖技术

关键:

特点:

2、交换技术(终极调度)

关键:

特点:

四、分页存储管理方式

基本思想:

页表:

地址结构:

快表:

两级和多级页表:

分配和回收方式: 

五、分段存储管理方式

基本思想:       

段表:

地址结构:

分页和分段的主要区别:

回收方式:

六、段页式存储管理方式

基本思想:

地址结构:

回收方式:


思维导图:

一、存储体系

 1、分类

计算机系统中存储器一般分为主存储器和辅助存储器两级。即内存和外存。

2、存储管理的目的

存储管理要实现的目的是为用户提供方便、安全、充分大的存储空间。

3、存储管理的过程

4、程序的连接和装入

(1)程序的连接
  1. 静态连接方式(不可逆)
  2. 装入时动态连接
  3. 运行时动态连接
(2)程序的装入
  1. 绝对装入方式:逻辑地址转换为物理地址的过程发生在程序编译或汇编时,装入内存的固定位置。
  2. 可重定位装入方式:逻辑地址转换为物理地址的过程发生在程序装入内存时运行
  3. 动态运行时装入方式:逻辑地址转换为物理地址的过程发生在程序真正执行时仅该装入方式支持紧凑。要求硬件:重定位寄存器

二、连续存储管理方式

1、单一连续分配

        适用于单道存储系统,例如:DOS操作系统——没有存储保护机制。内存的利用率很低。

2、分区分配

(1)固定分区

        数据结构:固定分区分配表

        缺点:内存利用不充分,程序的大小受内存大小的限制

(2)可变分区

        数据结构:已分分区表和空闲分区表

分区分配算法: 

                1.首次适应算法:

                       开始地址递增,可保留高址部分的大空闲区,但使地址首部产生大量内存碎片。

                 2.循环首次适应算法

                        从上一次找到的空闲分区的下一个空闲分区开始查找。会导致缺乏大的空闲分区。                 3.最佳适应算法

                       最佳适应算法并非最佳!这个算法按照空闲分区由小到大的顺序形成一条空闲分区链,这种方法最容易生成内存碎片。

                4.最差适应法:

                        空闲分区由大到小排列。

分区的回收:

                分区回收时分为四种情况

                1>与前一个空闲分区相接:开始地址不变,链长不变

                2>与前一个,后一个两个空闲分区相接:链长-1

                3>与后一个空闲分区相接:开始地址变换,链长不变

                4>与前一个,后一个两个空闲分区都不相接:链长+1

紧凑:

紧凑是指把多个小分区拼接成一个大分区

注意:

 要想实现紧凑,装入方式必须为:动态运行时装入

紧凑开销很大,所有碎片之和能够满足时才会进行一次紧凑。

三、覆盖技术&交换技术

1、覆盖技术

关键:

覆盖技术的关键是提供正确的覆盖结构

特点:

覆盖技术的特点是打破了“一次性”

2、交换技术(终极调度)

具有交换技术的操作系统,通常把外存分为文件区和交换区

关键:

交换技术的关键是设法减少每次交换的信息量

特点:

打破“驻留性”

四、分页存储管理方式

基本思想:

将物理存储空间划分为大小相等、位置固定的页框(或称为内存块、物理块)。页框的大小通常是2的幂次方,如512B~8KB,以便于计算和管理。不宜过大或过小:过大——页表小,碎片多。过小——碎片少,页表大。

页表:

  • 页面与页框之间通过页表进行映射。页表记录了每个页面在内存中对应的物理块号。
  • 一个进程对应一个页表,页表项的数量与进程中的页面数量相等。
  • 页表由“页号”和“块号”组成。页号用于标识进程中的页面,块号用于标识内存中的页框。
  • 页表通常驻留在内存中,但可以通过分页的方式离散存储,以减少对连续内存空间的需求。
  • 进程页表的起始地址存放在进程PCB中。

地址结构:

页号=逻辑地址/页面大小

页内位移量=逻辑地址-页号*页面大小

           页号               页内偏移量

页表项大小 = 主存内存大小(物理地址大小) / 页面大小(页内地址多少) 

页表大小 = 页表项的大小 x 页表项的个数 (页号多少)

快表:

        为了提高地址变换速度,可以在地址变换机构中增设一个快表(Translation Lookaside Buffer,TLB)。快表用于存放当前访问频繁的页表项,以便快速找到对应的物理块号。当CPU给出有效地址后,地址变换机构会首先访问快表。如果快表中存在对应的页表项,则直接从中读出物理块号;否则,再访问内存中的页表。

访问一次块表会进行:2次内存访问,1次越界判断

两级和多级页表:

两级页表结构为

两级就是为一级页表再分页。外层页内地址就是每页条数。访问一次两级页表会进行:1次越界访问和3次内存访问

例题

已知系统为48位地址,页面大小4KB,页表项大小为8B,使用页式存储,则要采用多少级页表,页内偏移多少位 ?

页面大小 = 2 ^12 B,故页内偏移12位
页号位数 = 48-12 = 36
4KB / 8B = 2 ^9 ,一个页面能装下2 ^9个页表项
按理来说,外层页以及内层页的大小都应为一个页面大小,外层页号需不超过一个页面大小,不然需要对外层页号再次分页
因此,36/9 = 4 ,需要四级页表

分配和回收方式: 

位示图法

五、分段存储管理方式

基本思想:       

         分段存储管理方式是一种操作系统的内存管理方式,它按照程序自身的逻辑关系将进程的地址空间划分为若干个段,每个段都有一个段名,并从0开始编址。段内地址连续。段间地址可以不连续。

段表:

段表实现了从逻辑段到物理内存的映射。

地址结构:

           段号               段内地址

分段系统中的地址转换 通过段表寄存器实现。在访问过程中会有:2次越界判断 2次内存访问

分页和分段的主要区别:

(1)页是信息的物理单位,故对用户而言,分页是不可见的,是透明的。段是信息的逻辑单位,对用户而言,分段是可见的。分段更容易实现见共享

(2)页的大小是固定的,由系统决定;段的大小是不固定的,由用户程序本身决定。
(3)用户角度看,
分页的地址空间是一维的,而段的地址空间是二维的

回收方式:

可变分区方式

六、段页式存储管理方式

基本思想:

        段页式存储管理方式将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。这样,每个段内的页都可以通过段名和页号来唯一标识。系统为每个作业或进程建立一张段表,用于管理内存分配与释放、缺段处理等。同时,由于一个段被划分为若干个页,因此每个段还必须建立一张页表,用于将段中的虚页变换为内存中的实际页面

地址结构:

在地址变换过程中,会出现2次越界判断,3次访问内存 

回收方式:

位示图法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值