精华内容
下载资源
问答
  • 内存分页存储管理

    2020-04-08 17:28:14
    由于软件设计师教程中分页存储的部分不是太理解,所以根据自己的理解整理了一下。

    目录

    一、纯分页存储

    二、快表

    三、两级页表


          分页存储管理的引入:解决分区管理方案由于需要连续地址空间进行分区靠拢比较耗费系统时间的问题。

    相关概念:

    页:将一个进程的地址空间划分为若干大小相等的区域。

    块/页框:将主存空间划分成与页相同大小的若干个物理块。

    页表:系统为保证在主存中可以找到进程要访问的页面所对应的物理块,为每个进程建立的一张页面映射表。每个页在页表中占一个表项,表项记录了该页在主存中对应的物理块号。

          系统在为进程分配主存时,会将进程中若干页分别装入主存中若干个不相邻接的块中。

    分页存储的地址结构:页号+页内地址,类似如下的形式

    一、纯分页存储

          为了能将用户地址空间中的逻辑地址变换为内存空间中的物理地址,在系统中必须设置地址变换机构。该机构的基本任务是实现从逻辑地址到物理地址的转换。实际上是将用户程序中的页号变换成主存中的物理块号。根据逻辑页号找到物理块号,然后与页内地址进行拼接即可得到物理地址。纯分页的地址变换示意图如下:

    例:某页式存储系统的地址变换过程如下图所示。假定页面的大小为8K,图中所示的十进制逻辑地址9612经过地址变换后,形成的物理地址a应为十进制多少呢?

    分析:页面大小为8K,而8K=2^{13},所以页面地址有13位,逻辑地址9612转换成二进制数,得到10 0101 1000 1100,共14位,则第一位为页号1,后面13位为页内地址。页号1对应物理块号为3,对应二进制数为11,与页内地址进行拼接得到的就是物理地址110 0101 1000 1100,转换为十进制得到结果25996。

    二、快表

          页式存储至少需要访问两次内存,降低了访问速度。第一次访问页表得到物理地址,第二次存取数据。为了提高访问主存的速度,可以在地址映射机构中增加一个小容量的由一组高速存储器组成的联想存储器,用来存放当前进程最活跃的少数几页物理块号。

          查找联想存储器的查找和页表的查找类似,程序访问数据时,根据逻辑页号在联想存储器中查找对应的物理块号,如果找到则与页内地址拼接得到物理地址,如果没有找到,还是从主存页表里查找,并将物理块号填入联想存储器的空闲单元中。没有空闲单元时,先淘汰一页然后再填入。为了快速访问,查找联想存储器和查找主存页表并行进行。

    三、两级页表

          纯页表存储中每个进程最多都要占用数兆连续的主存空间 ,现实中比较难满足。为了减少页表占用的连续主存空间,可以将页表进行分页,并离散地将各个页面分别存放在不同的物理块中来加以解决。其中每个页面的大小与主存物理块大小相同。为这些页面建立一张页表,称为外层页表。外层页表是页的目录表,其中的每个表目存放页表的物理地址。内层页表的每个表目存放的是页的物理块号。示意图如下所示:

    可以看出,内层页表的每个表项中存放的是进程的某页在内存中的物理块号,如第0页页表中0页存放在1号物理块中,这一点跟单个分页的方式是一样的。外层页表的每个页表项中存放的是内层页表的物理地址,如第1页页表的物理地址为1078。


          声明:由于时间原因,文章中部分图片来源于网络。

    展开全文
  • 文章目录1.1 内存管理1.2 内存管理的功能1.3非连续配置管理方式1.3.1 基本分页存储管理方式1.3.1.1 分页存储的几个基本概念1.3.1.2 基本地址变换机构1.3.1.3 具有快表的地址变换机构1.3.1.4 两级页表1.3.2 基本分段...

    1.1 内存管理

    操作系统对内存的划分和动态分配。// for : 支持多道程序并发执行。

    1.2 内存管理的功能

    (1)内存空间的分配与回收
    (2)地址转换
    (3)内存空间的扩充
    (4)存储保护

    1.3非连续配置管理方式

    非连续分配允许一个程序分散地装入到不相邻的内存分区中。非连续分配管理方式根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式。分页存储管理方式中,又根据运行作业时是否把作业的所有页面都装入内存才能运行分为基本分页存储管理方式和请求分页存储管理方式。

    1.3.1 基本分页存储管理方式

    1.3.1.1 分页存储的几个基本概念

    (1)分页:把主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单元。每个进程也以块为单位进行划分,进程在执行时,以块为单位逐个申请主存中的块空间。(会产生页内碎)
    (2)页:进程中的块。
    (3)页框:内存中的块
    逻辑地址结构:
    在这里插入图片描述
    (4)页表:为了便于在内存中找到进程的每个页面所对应的物理块,系统为每个进程建立一张页表,记录页面在内存中对应的物理块号,页表一般存放在内存中。页表是由页表项组成的,第一部分是页号,第二部分是物理内存中的块号,页表项的第二部分与逻辑地址结构的第二部分共同组成物理地址。
    在这里插入图片描述

    1.3.1.2 基本地址变换机构

    地址变换机构的任务是将逻辑地址转换为内存中的物理地址,地址变换是借助页表实现的。
    在这里插入图片描述
    在系统中通常设置一个页表寄存器(PTR),存放页表在内存的始址F和页表长度M。进程未执行时,页表的始址和长度存放在进程控制块中,当进程执行时,才将页表是地址和长度存入页表寄存器。
    (1)计算页号P(P=A/L)和页内偏移W(W=A%L)。
    (2)比较页号P和页表长度M,若P>=M,则产生越界中断,否则继续执行。
    (3)页表中页号P对应的页表项地址 = 页表起始地址F + 页号 * 页表长度,取出该页表内容b,即为物理块号。
    (4)计算E = b * L + W,用得到的物理地址E去访问内存。
    存在的两个主要问题:
    (1)地址转换过程必须足够快,否则访存速度会降低;
    (2)页表不能太大,否则内存利用率会降低。

    1.3.1.3 具有快表的地址变换机构

    在地址变换机构中增设了一个具有并行查找能力的高速缓冲存储器-快表,又称联想寄存器(TLB),用来存放当前访问过的若干页表项,以加速地址变换的过程。与此对应,主存中的页表也常称为慢表。
    在这里插入图片描述
    (1)CPU给出逻辑地址后,由硬件进行地址转换并将页号送入高速缓存寄存器,并将此页号与快表中的所有页号进行比较。
    (2)如果找到匹配的页号,说明所要访问的页表项在快表中,则直接从中取出该页对应的页表框号,也页内偏移拼接形成物理地址。
    (3)如果没有找到,则需要访问主存中的页表,在读出页表项后,应同时将其存入快表,以便后面可能的再次访问。

    1.3.1.4 两级页表

    在这里插入图片描述

    1.3.2 基本分段存储管理方式

    分段管理方式的提高则是考虑了用户和程序员,以满足方便编程、信息保护和共享、动态增长及动态链接等多方面的需要。

    1.3.2.1 分段存储的几个基本概念

    (1)分段:段式管理方式按照用户进程中的自然段划分逻辑空间。其逻辑地址由段号S与段内偏移量W两部分组成。
    逻辑地址结构:
    在这里插入图片描述
    段号为16位,段内偏移量为16位,则一个作业时最多可有2^16=65535个段,最大段长为64KB。在页式系统中,逻辑地址的页号和页内偏移量对用户是透明的,但在段式系统中,段号和段内偏移量必须由用户显式提供,在高级程序设计语言中,这个工作由编译程序完成。
    (2)段表:每个进程都有一张逻辑空间与内存空间映射的段表,其中每一个段表项对应进程的一个段,段表项记录该段在内存中的段的长度和起始地址。(实际上只有后两部分)
    在这里插入图片描述
    在配置了段表后,执行中的进程可通过查找段表,找到每个段所对应的内存区。
    在这里插入图片描述

    1.3.2.2 地址变换机构

    实现进程从逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段表始址F和段表长度M。
    在这里插入图片描述
    (1)从逻辑地址A取出前几位为段号S,后几位为段内偏移量W。
    (2)比较段号S和段长度M,若S>=M,则产生越界中断,否则继续执行。
    (3)段表中段号S对应的段表项地址 = 段表起始地址F + 段号S * 段表项长度,取出该段表项的前几位得到段长C。若段内偏移量>=C,则产生越界中断,否则继续执行。
    (4)取出段表项中该段的起始地址b,计算E = b + W,用得到的物理地址E去访问内存。

    1.3.2.3 段的共享与保护

    在分段系统中,段的共享是通过两个作业的段表中相应表项指向被共享的段的同一个物理副本来实现的。

    1.3.3 段页式管理方式

    页式存储管理能有效地提高内存利用率,而分段存储管理能反映程序的逻辑结构并有利于段的共享。如果将这两种存储管理方式结合起来,就形成段页式存储管理方式。在段页式系统中,作业的地址空间首先被分成若干个逻辑段,每段都有自己的段号,然后再将每一段分成若干个大小固定的页。对内存空间的管理仍然和分页存储管理一样,将其分成若干个和页面大小相同的存储块,对内存的分配以存储块为单位。
    在这里插入图片描述
    在段页式系统中,作业的逻辑地址分为三部分:段号、页号和页内偏移。
    逻辑地址结构:
    在这里插入图片描述
    在进行地址变换时,首先通过段表查到页表起始地址,然后通过页表找到页帧号,最后形成物理地址。
    在这里插入图片描述
    参考文献:
    《计算机操作系统》 汤子灜

    展开全文
  • struct MyNode { int k, v; MyNode(int tk = 0, int tv = 0) { k = tk; v = tv; } }; // @lc code=start class LRUCache { private: map<int, int> hashtable; list<MyNode *>...
  • 首先把内存分为一个个相等的小分区,称为页框(或页帧、内存块、物理块),对应页框号(从0开始) 然后再按照分区大小把进程拆分成一个个小部分,称为页(或页面),对应页号(从0开始) 最后将进程的各个页面可离散...

    一、基本思想


    1. 首先把内存分为一个个相等的小分区,称为页框(或页帧、内存块、物理块),对应页框号(从0开始)
    2. 然后再按照分区大小把进程拆分成一个个小部分,称为页(或页面),对应页号(从0开始)
    3. 最后将进程的各个页面可离散地存放到各个的内存块中

    进程的页面与内存的页框有一 一对应的关系。各个页面不必连续存放,也不必按先后顺序来,可以放到不相邻的各个页框中。

    在这里插入图片描述
    在这里插入图片描述

    二、逻辑地址结构


    为了方便计算页号、页内偏移量,页面大小一般设为2的整数幂

    在这里插入图片描述

    三、页表


    在这里插入图片描述
    在这里插入图片描述

    四、地址转换(逻辑地址 → 物理地址)


    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 3、基本分页存储管理思维导图 思维导图

    思维导图

    在这里插入图片描述

    页框(页帧、内存块、物理块、物理页面)与页面(页)

    在这里插入图片描述

    实现了程序在内存中的不连续存储

    如何确定进程的每个页面在内存中存放的位置?--------->页表

    在这里插入图片描述

    我们可以通过逻辑地址与页表,页表与物理地址的映射关系实现从逻辑地址到物理地址的转化

    每个页表项多大?占几个字节?i号页表项的起始地址怎么找?

    在这里插入图片描述

    具体如何实现地址的转换呢?

    十进制计算

    在这里插入图片描述

    二进制计算

    在这里插入图片描述

    当地址用二进制表示时会有这样的规律:
    如果页面大小 刚好是 2 的整数幂,则计算机硬件可以很快速的把逻辑地址拆分成(页号,页内偏移量)
    如上图所示:红色位页号,黑色为页内偏移量,则逻辑地址4097对应的物理地址 = 页面在内存中存放的起始地址 + 页内偏移量
    一般在计算机中都是二进制表示,所以,逻辑地址的结构为
    在这里插入图片描述



    地址变换怎么用硬件实现呢?
    见下篇博客:操作系统之内存管理:4、基本地址变换机构(页式、段式、段页式)

    展开全文
  • 分页存储管理和分段存储管理 一、实验目的 加深对分页存储管理方式和分段存储管理方式的理解,特别是要掌握地址转换的方法。 二、实验原理 分页存储管理方式 页面:将一个进程的逻辑地址空间分成若干个大小相等的片...
  • 1 基本分页存储管理 连续分配:为用户进程分配的必须是一个连续的内存空间。 非连续分配:为用户进程分配的可以是一些分散的内存空间。 1.1 什么是分页存储 将内存空间分为一个个大小相等的分区(比如:每个分区4KB...
  • 真正的模拟操作系统中 内存的分配 (分页存储管理)(操作系统模拟多进程内存分配) 连续的分配方式会形成许多碎片,虽然通过紧凑的方法将血多碎片拼接成可用的大块空间 但须付出很大的开销。如果允许将一个进程...
  • 前叙除“多重分区”的分配方法外,都属于连续分区分配。会产生“内零头”和“外零头”,而通过“紧凑”技术又会牺牲CPU时间,因而产生了离散分区...把内存的物理空间划分为同页大小的片,称为页框/存储块,PageFrame。
  • 分页存储管理

    2019-08-21 13:42:11
    分页存储管理是指,将系统内存物理地址空间分为若干大小固定的块(页框或物理块),将进程的逻辑地址空间也分为相同大小的若干页,系统通过为每一个进程维护一张页表来寻找对应的物理地址。 采用分页存储管理后,...
  • 真正的模拟操作系统中 内存的分配 (分页存储管理)(操作系统模拟多进程内存分配) 连续的分配方式会形成许多碎片,虽然通过紧凑的方法将血多碎片拼接成可用的大块空间 但须付出很大的开销。如果允许将一个进程...
  • 分页存储管理方式

    千次阅读 2018-12-05 18:28:54
    基本分页存储管理 基本分段存储管理 段页式存储管理 二.基本分页存储管理 离散分配内存: 作业规定大小划分成小份;内存也按同样大小划分成小份 作业的任一小份可分散放入内存任意未使用的小份 1)页面的...
  • 文章目录1.1 虚拟存储器的定义1.2 虚拟存储器的特征1.3 虚拟内存技术的实现1.4 请求分页管理方式1.4.1 页表机制1.4.2 缺页中断机构1.4.3 地址变换机构1.5 页面置换算法1.6 页面分配策略1.6.1 驻留集大小1.6.2 调入...
  • 不具备页面对换功能,不支持虚拟存储器功能,在调度作业运行时 ,必须将它的所有页面一次调入内存 ,若内存没有足够的块 则作业等待 的这种分页管理方式被称为纯分页或基本分页存储管理方式 而请求分页管理方式 是...
  • 将整个内存空间也划分为若干个固定大小的区域,这里的大小与页面的大小一致,称为物理块。 地址、数据结构 离散分配、页表 通过上述的空间划分结构,用户程序的任一页面都可通过离散分配的方式装入内存空间中的某...
  • Linux系统采用了虚拟内存管理机制,就是交换和请求分页存储管理技术。这样,当进程运行时,不必把整个进程的映像都放在内存中,只需在内存保留当前用到的那一部分页面。当进程访问到某些尚未在内存的页面时,就由...
  • 一、分页存储管理 1、基本概念(页面和物理块) 将一个进程的逻辑地址空间划分成若干大小相等的部分,每一部分称为页或页面(页面的大小通常是2的次幂,大约在512B~4MB之间);同样,将内存空间也划分为与页面大小...
  • 基本分页存储管理方式 离散分配内存: 作业规定大小划分成小份;内存也按同样大小划分成小份 作业的任一小份可分散放入内存任意未使用的小份 分页方式下,内存的使用率高,浪费少。但不是绝对没有碎片(进程的最后一...
  • 3.1.4.1 基本分页存储管理方式

    千次阅读 2016-07-13 23:58:02
    非连续分配允许一个程序分散地装入到不相邻的内存分区中,根据分区的大小是否固定分为分页存储管理方式和分段存储管理方式。 分页存储管理方式中,又根据运行作业时是否要把作业的所有页面都装入内存才能运行分为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,290
精华内容 516
关键字:

内存分页存储管理