2024-05-17
藏龙卧虎
00
请注意,本文编写于 206 天前,最后修改于 163 天前,其中某些信息可能已经过时。

目录

简介
段式存储
基本概念
地址转换
优缺点
页式存储
基本概念
地址转换
优缺点
段页式存储
基本概念
地址转换
优点
应考建议
例题(难)
解答过程

简介

段式存储和页式存储是计算机系统中用于管理内存的一些重要技术,尤其是在内存管理和虚拟内存机制中。

这部分考点可能会考察概念的理解,也可能会出现部分需要计算的题目。

关注公众号“月上老狗”,发送“软件设计师”,获取历年软件设计师软考真题。

image

段式存储

段式存储(Segmentation) 是一种内存管理方案,它将程序和数据划分为若干个段(Segment)。每个段有一个段号和一个段内地址。

段式存储的主要特点和考点包括:

基本概念

  • 段(Segment):一个段是一段逻辑上相关的内存区域,例如一个程序模块、数据数组、堆栈等。每个段都有一个段号和段内地址。
  • 段表(Segment Table):段表存储每个段的起始地址和长度,用于地址转换。

地址转换

逻辑地址由段号和段内地址组成。地址转换通过查段表实现,将逻辑地址转换为物理地址。地址转换公式:

物理地址 = 段基址 + 段内地址

优缺点

  • 优点:支持用户视角的逻辑内存划分,提高程序模块化和共享性。每个段可以有不同的保护和共享属性,提高安全性。
  • 缺点:内存碎片问题:段的大小不同,容易产生外部碎片。段表开销:需要维护段表,增加内存管理的复杂度。

页式存储

页式存储(Paging) 也是一种内存管理方案,它将内存划分为固定大小的页(Page)和页框(Frame)。

基本概念

  • 页(Page):逻辑内存划分为固定大小的块,称为页。
  • 页框(Frame):物理内存也划分为固定大小的块,称为页框。
  • 页表(Page Table):页表存储每个页对应的页框号,用于地址转换。

地址转换

逻辑地址由页号和页内偏移组成。地址转换通过查页表实现,将逻辑地址转换为物理地址。地址转换公式:

物理地址 = 页框基址 + 页内偏移

优缺点

  • 优点:解决了内存碎片问题:页和页框大小固定,有效减少了外部碎片。内存利用率高:物理内存可以分散存放,内存利用率提高。
  • 缺点:页表开销:每个进程都有一个页表,增加了内存管理的开销。地址转换开销:每次内存访问都需要通过页表进行地址转换,可能影响性能。

段页式存储

段页式存储(Segmented Paging) 结合了段式存储和页式存储的优点。

基本概念

  • 逻辑内存先划分为段,每个段再划分为页。
  • 需要维护段表和每个段对应的页表。

地址转换

  • 逻辑地址包含段号、页号和页内偏移。
  • 地址转换过程:先查段表获取段基址,再查段对应的页表获取页框基址,最后计算物理地址。

优点

  1. 结合了段式存储的逻辑划分和页式存储的固定大小分块,提高内存管理效率。
  2. 既减少了内存碎片问题,又支持灵活的内存保护和共享。

应考建议

在《软件设计师》考试中,关于段式存储和页式存储的考点主要包括:

  • 基本概念和术语:理解段、页、页框、段表、页表等基本概念。
  • 地址转换过程:掌握段式存储和页式存储的地址转换过程和公式(几乎不考)。
  • 优缺点对比:能够对比段式存储和页式存储的优缺点,以及它们在实际应用中的适用场景。
  • 综合应用:理解段页式存储的原理和优势,能解释其工作机制。

例题(难)

在一个页式存储管理系统中,假设逻辑地址空间为 16 位,页大小为 4KB。已知某个逻辑地址为 0x3A45,请计算该地址存储在物理内存的哪个页框中,假设页表如下:

逻辑页物理页
03
15
21
37
42
56
64
70

解答过程

  1. 确定页大小和页号

页大小为 4KB,即 2^12 字节。因此,逻辑地址的低 12 位为页内偏移,高 4 位为页号。 逻辑地址为 0x3A4516 进制),转换为二进制为:0011 1010 0100 0101

  1. 提取页号和页内偏移:

页号:高 40011,即 3(十进制)。 页内偏移:低 121010 0100 0101,即 0xA45(十进制为 2629)。

  1. 查找页表:

页表显示页 3 映射到页框 7

  1. 计算物理地址:

物理页框号为 7,物理页框基地址为页框号乘以页大小。 页大小为 4KB,即 4096 字节。 页框基地址 = 7 × 4KB = 7 × 4096 = 28672(十进制)或 0x700016 进制)。

  1. 计算最终物理地址:

物理地址 = 页框基地址 + 页内偏移。 物理地址 = 0x7000 + 0xA45 = 0x7A45

  1. 答: 逻辑地址 0x3A45 对应的物理地址是 0x7A45。该地址存储在物理内存的页框 7 中。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!