2.10 - 存储管理 2.11 - 页式存储 2.12 - 段式存储 2.13 - 段页式存储

目录

2.10 - 存储管理

一、存储管理的目的

二、分区存储管理

1、概念

2、分类

3、固定分区

4、可变分区

5、可重定位分区

2.11 - 页式存储

一、分页存储管理

1、概念

2、如何得知每一页存在哪个物理块中

3、物理地址

4、页式存储的地址

二、考法1:页式存储地址机构

三、考法2:页式存储地址转换

2.12 - 段式存储

一、段式存储

1、概念

2、解决问题

3、优点

4、缺点

5、段式存储的地址

2.13 - 段页式存储

一、段页式存储

1、概念

2、优点

3、缺点

4、段式存储的地址

二、考法1:段页式存储的地址结构


2.10 - 存储管理

一、存储管理的目的

  • 解决内存利用率的问题。
  • 一个程序要运行时首先要加载到内存中,所以内存利用率的高低就会影响到程序的一些运行情况。

虚拟存储管理:用来扩大主存选址空间的一种方案。

二、分区存储管理

1、概念

  • 早期的存储方案。

  • 就是将主存中的用户分区,划分成若干个区域,每一个区域给一个用户作业去使用,也就是说允许同时加载多个用户的作业到主存。

2、分类

  • 分区存储管理发展过程:固定分区、可变分区、可重定位分区。

3、固定分区

  • 概念:把内存按照预先定义好的大小进行划分,解决了多个用户同时加载的情况。

  • 缺点:但是当有超过分区大小的作业时,内存就无法加载作业了。

  • 举例说明:例如将64M的内存划分成四个区域,大小分别是8M、8M、32M、16M,此时可以同时加载四个作业,2个不大于8M的、一个不大于16M的、一个不大于32M的。此时如果有一个48M的作业需要运行,内存是无法支持的。

4、可变分区

  • 概念:不给内存划固定的大小,按作业运行需要的内存空间给作业划分内存区域。作业完成以后,会将两个相邻的为空的区域进行合并,合成一个大的区域。解决了固定区域不能运行超过分区大小作业的问题。

  • 缺点:但是这种分区存储内存的利用率依然比较低,内存浪费较大。

  • 举例说明:例如有一个4M的作业运行完成释放4M的空间,无法给9M的程序用,与4M空间相邻的4M空间运行完作业后也释放了4M的空间,空间合并成8M的区域,但依然不能运行9M的作业,这2个4M的内存空间就一直处于空闲状态,造成了资源的浪费。 

5、可重定位分区

  • 概念:采用一些算法提高内存的使用率。

  • 算法:

最佳适应算法:按照作业运行所需区域的大小,在内存多个分区中查找大小最接近的区域,给作业划分空间,运行作业。

最佳适应算法:按照作业运行所需区域的大小,在内存划分的最大区域中再划分一个区域,运行作业。

首次适应算法:按照作业运行的大小,从第一个区域开始找,找到能运行作业的第一个区域就运行作业。

循环首次适应算法:从上一次运行作业的区域往下找,找到能运行作业的第一个区域就运行作业。

2.11 - 页式存储

一、分页存储管理

1、概念

  • 页式存储管理就是分页存储管理。

  • 是将内存划分为固定大小的块,在不同情况下固定块的大小不一样。

  • 实现当连续的内存空间不够大时,仍然可以将一个大的用户作业加载到内存中。

  • 例如以4K为单位,将每个物理块的大小划分为4K。再按照物理块的大小对用户作业进行切割,切割后得到N个4K大小的页,这时就可以把每一个页塞到一个内存块里面。又由于作业的页和内存的块大小一致,所以只要内存上有空闲块,就可以将作业的页塞进去。

  • 优点:内存利用率高,内存碎片小,分配和管理起来比较方便;

  • 缺点:由于增加了一个管理机构(页表),所以产生了系统的开销;可能产生抖动,当物理内存分配的块的数量,少于页的数量的时候,可能会产生频繁的调域调区,就会产生抖动,程序段含义不完整。

2、如何得知每一页存在哪个物理块中

  • 通过页表组织一个逻辑上连续的空间存放用户的作业,页表来记录每一页都存在在哪个物理块中。

3、物理地址

对于页式存储来讲,物理地址就是:页存在内存中的哪一个块上面。

举例说明

  • 以50个学生在5个教室上课(每教室容纳10人)为例,通过人员和教室位置的对应关系,把连续的50号人放到了5个教室,学生在内存中的位置就是物理地址(假设1号教室中的10个学生,编号是0~9,编号为5的学生在一号教室的位置可以描述为:1号教室的5号学生,(1,5)就是一个物理地址)。

  • 逻辑地址就是学生的编号,例如5号学生;物理地址就是这个学生在内存中具体的位置。

4、页式存储的地址

  • 由页内地址+页号组成。

  • 页内地址:决定了每一页能存储的最大值。

(1)页内地址也叫块内地址,因为页的大小跟块的大小是相等的,里面的编号的个数都是一致的。

(2)如图所示,页内地址的编号从0~11,也就是12位二进制,就有2的12次方个编码,所以这个页内地址指定的页的大小或者块的大小就是4K.

  • 页号:决定了在整个页式存储中,程序做多能分多少个页。

(1)决定页的编号(是第几个页,它的编号)。

(2)如图所示,页号从12到31,共20个位二进制,也就是2的20次方个页,所以这个程序最多分1M个页。

二、考法1:页式存储地址机构

三、考法2:页式存储地址转换

  • 4K:说明有2的12次方个编码,也就是页面地址的编号是0~11,共12位。

  • 逻辑地址:2C18H:10110100011000,后12位表示页内地址,

  • 又由于页内存储的地址=页号+页内地址;C18H转成二进制正好12位,所以表示页内地址,2就是页号。

  • 物理地址就是说这个页具体放在哪个物理块中的哪个位置,根据页表中的记录可得知,2号页放在5号物理块中,页式地址不变,所以物理地址位5C18H.

2.12 - 段式存储

一、段式存储

1、概念

  • 按段进行存储,会将用户的作业按照程序段的大小进行划分,然后在内存中找到适合程序段执行大小的空间,将代码段塞进去即可。

2、解决问题

  • 由于页式存储会把程序按页进行切割来实现程序功能。但是当一个6K的程序,按每页4K进行存储时,就会导致每一页的程序功能不太完整,所以就不利于在多种情况下调用这个程序。为了解决这个问题,就有了段式存储。

3、优点

  • 由于每一段的程序含义被保存下来了,所以利于多道程序共享该程序段的含义。

4、缺点

  • 由于段的大小是不确定的,所以将将程序段塞到大小不一的内存中会造成内存空间大量的浪费。

5、段式存储的地址

  • 段式存储的地址=段号+段内地址

  • 段内地址:决定了每一个段能存储的最大值。

  • 段号:决定了段式存储中最多允许有多少个段。

2.13 - 段页式存储

一、段页式存储

1、概念

  • 程序某一段按段式存储分隔,由于每一段大小不确定,所以造成内存空间浪费比较大,所以通过页式存储的解决方案,为每一个段分配一个逻辑上连续的空间。

  • 也就相当于将用户作业划分成很多歌程序段,再将程序段划分成很多个页,再为每一个页在内存中找到一个内存块存放。

  • 也就是用户的作业按段进行划分,内存空间是按固定大小进行切割的。

  • 所以通过页式存储的原理来解决每一个段的存放问题。所以理解段页式存储的过程就是:

(1)看成程序分成了多少个段;

(2)每一个段的页表大小,以及起始页是多少;

(3)然后再找每一个页表中的也分别放在哪一个块上面。整体形成了一个耳机的关系。

2、优点

  • 结合了页式存储和段式存储的优点。

  • 内存利用率高,内存碎片小。

  • 存储时每一个程序段的含义得到了保存。

3、缺点

  • 管理机制比较复杂,导致软件管理的成本增加,系统复杂度增加,从而导致系统性能的下降,执行效率下降。

4、段式存储的地址

  • 采用也页式存储的方式来存储每一个程序段。

  • 每一个页的地址是多大。在一个段中最多允许有多少个页。整个段页式存储最多允许多少个段。

二、考法1:段页式存储的地址结构

  • 段页式存储的考题中,注意用词,应该是最大允许。

  • 因为段的大小是不确定的,所以每个段中存在的页的个数也是不确定的,所以只能是最大允许,不能说均是。

本文链接:https://my.lmcjl.com/post/7180.html

展开阅读全文

4 评论

留下您的评论.