段式存储和页式存储是计算机系统中用于管理内存的一些重要技术,尤其是在内存管理和虚拟内存机制中。
这部分考点可能会考察概念的理解,也可能会出现部分需要计算的题目。
关注公众号“月上老狗”,发送“软件设计师”,获取历年软件设计师软考真题。
段式存储(Segmentation) 是一种内存管理方案,它将程序和数据划分为若干个段(Segment)。每个段有一个段号和一个段内地址。
段式存储的主要特点和考点包括:
逻辑地址由段号和段内地址组成。地址转换通过查段表实现,将逻辑地址转换为物理地址。地址转换公式:
物理地址 = 段基址 + 段内地址
页式存储(Paging) 也是一种内存管理方案,它将内存划分为固定大小的页(Page)和页框(Frame)。
逻辑地址由页号和页内偏移组成。地址转换通过查页表实现,将逻辑地址转换为物理地址。地址转换公式:
物理地址 = 页框基址 + 页内偏移
段页式存储(Segmented Paging) 结合了段式存储和页式存储的优点。
在《软件设计师》考试中,关于段式存储和页式存储的考点主要包括:
在一个页式存储管理系统中,假设逻辑地址空间为 16 位,页大小为 4KB。已知某个逻辑地址为 0x3A45,请计算该地址存储在物理内存的哪个页框中,假设页表如下:
| 逻辑页 | 物理页 |
|---|---|
| 0 | 3 |
| 1 | 5 |
| 2 | 1 |
| 3 | 7 |
| 4 | 2 |
| 5 | 6 |
| 6 | 4 |
| 7 | 0 |
页大小为 4KB,即 2^12 字节。因此,逻辑地址的低 12 位为页内偏移,高 4 位为页号。
逻辑地址为 0x3A45(16 进制),转换为二进制为:0011 1010 0100 0101。
页号:高 4 位 0011,即 3(十进制)。
页内偏移:低 12 位 1010 0100 0101,即 0xA45(十进制为 2629)。
页表显示页 3 映射到页框 7。
物理页框号为 7,物理页框基地址为页框号乘以页大小。
页大小为 4KB,即 4096 字节。
页框基地址 = 7 × 4KB = 7 × 4096 = 28672(十进制)或 0x7000(16 进制)。
物理地址 = 页框基地址 + 页内偏移。
物理地址 = 0x7000 + 0xA45 = 0x7A45。
0x3A45 对应的物理地址是 0x7A45。该地址存储在物理内存的页框 7 中。本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!