操作系统原理--存储器管理(分区、分页、分段)

这篇复习笔记详细介绍了操作系统中的存储器管理,包括分区、分页、分段和段页式存储管理。内容涵盖页表、页框、页表项、多级页表的概念,以及首次适应、最佳适应等可变分配区算法。同时,通过实例解析了页式存储管理、快表查询、两级页表和多级页表的工作原理,以及分段和段页式存储管理的逻辑地址转换。笔记还讨论了快表在提高访问效率方面的作用。
摘要由CSDN通过智能技术生成

OS09-存储器管理(分区、分页、分段)

《操作系统原理》快要期末考试了,写了个复习笔记,第一次写文章,有任何问题还请大家指正。


临时加的第0条,这几个概念分不清,后面真的容易蒙, 我就因为几道题概念混淆,坐着想了一个点😥

0.页、页框、页表、页表项、多级页表

  • 页:分页存储管理将进程的逻辑地址空间划分为若干页(面),并且对其编号,号数从0开始,每个页(面)的大小称为页面大小,且大小应为2的幂。

  • 物理块:将内存的物理地址空间划分为若干块,称为物理块,物理块与页(面)一一对应。

  • 页表:又称页面映像表,存储在内存中,通过页表建立页(面)与物理块的索引。

  • 页表项:页表中的每一项叫页表项

  • 页框:理论上页框大小与页的大小一样

  • 多级页表:通过高级的页表为低级页表提供索引。

    ​ 页表

    页号块号
    06
    17
    210
    35

    其中每一行叫一个页表项

    img

1.可变分配区

1.空闲区表举例

2.可变分配区算法
1.考点:
  1. 首次适应算法:从链首顺序查找,直至找到一个能满足大小的空闲分区为止。按需要对其进行划分,分配、保留。
  2. 循环首次适应算法:空闲分区以地址递增的次序链接;且做成环形。
  3. 最佳适应算法:空闲分区按从小到大进行链接(外零头严重)
  4. 最坏适应算法:空闲分区按从大到小链接(难满足大作业的要求)
2.例题:

2.页式存储管理

1.考点
  1. 逻辑地址A,页面大小L:页号P=INT(A/L) 页内地址:d=[A]mod L

    举个栗子:相对地址:2500 页面大小:1kb
    p=2500/1024=2; w=2500%1024=452
    经分析,相对地址2500是2页中的偏移地址452

  2. 按位理解:
    假设机器地址字长16位,页面大小1024=210。则地址的高6位是页号,低10位是页内偏移地址
    e.g 相对地址2500:二页内偏移地址进制0000 1001 1100 0100 前6位 页号,后10位 页内偏移地址

2.例题:
  1. 某计算机系统按字节寻址,支持 32位逻辑地址,采用分页存储管理,页面大小4kb页表项长度4B

    解:4kb=212,页内地址要用12位表示,剩余32-12=20位表示 。所以一个进程最多有220 页表项,所以一个 页表最大需要:220*4B=222B, 共需要222/212=210页框存储该页表。

  2. 机器地址长16位, 内存大小1024kb,现有 逻辑地址为2500(16进制9C4H)

    二进制为0000 1001 1100 0100,求其物理地址

    页号块号
    06
    17
    210
    35
    • 方法一: 内存大小1024=210页内偏移地址10位,剩余16-10=6位表示

      0000100111000100,页号为前6位000010(十进制2),查页表得块号为10。形成物理地址高10位0000001010,块内偏移地址1C4H为物理地址低10位,拼接后得 0000001010 0111000100,就是 绝对地址29C4H,即十进制10692

    • **方法二:**2500/1024=2……452,逻辑页号为2,查页表块得块号为10;页内地址为452。所以 物理地址为10*1024+452=10692,16进制为29C4H

3.快表查询

1.考点:
  1. 每存取一个数据,需访问两次内存。CPU产生的逻辑地址的页首先在快表中寻找,若找到(命中),就找出其对应的物理块;若未找到(未命中),再到页表中找其对应的物理块,并将之复制到快表。

    即:快表中找到访问一次,否则访问两次

2.例题:
  1. e.g 在一个将页表存放在内存且配置了快表的分页系统中,如果访问内存需要0.2ns,在快表中找到页表项的机率高达90%,假定査快表需要花费的时间为0,则系统的有效访问时间是:

    解:使用快表时,若能从快表中直接找到对应的页表项,则可立即形成物理地址去访问相应的数据,否则,仍需两次访问内存,有效访问时间是:0.9×0.2+(1-0.9)×2×0.2=0.22ns。

4.两级页表和多级页表

1.考点:

1.若采用多级页表机制,各级页表大小不能超过一个页面

2.一个页面=页表项大小 x 页表项数目 (这个页表项数目决定了每级页表 最大 的大小)

2.例题:

1.在这里插入图片描述

2 .
在这里插入图片描述

3 . 一个32位虚拟地址被分成a、b、c、d四个区域,a b c 用于三级页表系统,d是页内偏移,页面数为多少?

解:设a b c分别代表一二三级页表,一级页表可以存储2^a^个二级页表,二级页表可以存储2^b^个三级页表,三级页表可以存储2^c^个页表项,一共可以存储2^a^ 2^b^ 2^c^=2^a+b+c^个页表项,即2^a+b+c^个页面数

5.分段存储管理

1.考点:
  1. 逻辑地址是二维的:段号+段内地址

  2. 每段的最大长度为:216=64kb,最多允许有64k个段

  3. 内存分配以段为基本单位,各段的空间可以不邻接

  4. 一个段表包括:段号、段长、段的起始地址(基址)

2.例题:
段号内存始址段长
050k10k
160k3k
270k5k
3120k8k

请将逻辑地址(段号,段内地址)(0,137),(1,4000)(5,230)转换成物理地址

解:由上图可知段表长3

  1. 段号0<段表长,合法;段内地址137<段长10k,合法,所以物理地址=50k+137=51337

  2. 段号1<段表长,合法;段内地址4000>4k,不合法,产生越界中断

  3. 段号5>段表长,不合法,产生越界中断。

  4. 物理地址=该段始址+段内地址

6.段页式存储管理

1.考点:
  1. 逻辑地址结构:段号S+段内页号P+页地址W
  2. 在段页式存储管理方式中,每访问一次数据,需访问三次内存。第一次访问内存中的段表,第二次是内存中的页表,第三次是相应数据。大大降低了访问速度。
2.例题:
  1. 段页式存储管理中,某个进程的段表和页表如下图所示,页的大小为4096B,现有逻辑地址(2,8976),其对应的物理地址是______。

解: 逻辑地址(2,8976)可知段号为2,页地址为8976; 页的大小为4096B,所以根据页地址8976可计算页号和页内地址为: 页号=8976 / 4096 =2 页内地址= 8976 % 4096 =784 由段号2查到其对应的页表,第2页对应的页框号为126,因此可计算物理地址为: 126×4096+784=516880

2.某系统采用段页式存储管理,有关数据结构如下图所示,则逻辑地址139366对应的物理地址为________

解法一:

逻辑地址139366的二进制为:10 0010 000001100110,将则持分为下列形式: 页内地址w为12位,可知页大小为2^12=4096,给定的逻辑地址中页内地址为:000001100110,十进制为:102 页号P为4位,即:0010,十进制为:2 剩余的为段号S(8位),即:10,十进制为:2 查段表的第2号指向的页表,可得第2页对应的页框号为A,即十进制10,因此物理地址为:10×4096+102=41062

解法二:

139366十六进制等于22066H 即位2段2页,页内地址66H 2段2页对应页框号A 所以物理地址为A066H

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放学等我_红橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值