软考知识点13:段式存储、页式存储
## 简介 段式存储和页式存储是计算机系统中用于管理内存的一些重要技术,尤其是在内存管理和虚拟内存机
渲染中...
## 简介 段式存储和页式存储是计算机系统中用于管理内存的一些重要技术,尤其是在内存管理和虚拟内存机制中。 这部分考点可能会考察概念的理解,也可能会出现部分需要计算的题目。 > 关注公众号“**月上老狗**”,发送“**软件设计师**”,获取历年软件设计师软考真题。 > >  <!-- more --> ## 段式存储 **段式存储(Segmentation)** 是一种内存管理方案,它将程序和数据划分为若干个段(Segment)。每个段有一个段号和一个段内地址。 段式存储的主要特点和考点包括: ### 基本概念 - 段(Segment):一个段是一段逻辑上相关的内存区域,例如一个程序模块、数据数组、堆栈等。每个段都有一个段号和段内地址。 - 段表(Segment Table):段表存储每个段的起始地址和长度,用于地址转换。 ### 地址转换 逻辑地址由段号和段内地址组成。地址转换通过查段表实现,将逻辑地址转换为物理地址。地址转换公式: > 物理地址 = 段基址 + 段内地址 ### 优缺点 - 优点:支持用户视角的逻辑内存划分,提高程序模块化和共享性。每个段可以有不同的保护和共享属性,提高安全性。 - 缺点:内存碎片问题:段的大小不同,容易产生外部碎片。段表开销:需要维护段表,增加内存管理的复杂度。 ## 页式存储 **页式存储(Paging)** 也是一种内存管理方案,它将内存划分为固定大小的页(Page)和页框(Frame)。 ### 基本概念 - 页(Page):逻辑内存划分为固定大小的块,称为页。 - 页框(Frame):物理内存也划分为固定大小的块,称为页框。 - 页表(Page Table):页表存储每个页对应的页框号,用于地址转换。 ### 地址转换 逻辑地址由页号和页内偏移组成。地址转换通过查页表实现,将逻辑地址转换为物理地址。地址转换公式: > 物理地址 = 页框基址 + 页内偏移 ### 优缺点 - 优点:解决了内存碎片问题:页和页框大小固定,有效减少了外部碎片。内存利用率高:物理内存可以分散存放,内存利用率提高。 - 缺点:页表开销:每个进程都有一个页表,增加了内存管理的开销。地址转换开销:每次内存访问都需要通过页表进行地址转换,可能影响性能。 ## 段页式存储 **段页式存储(Segmented Paging)** 结合了段式存储和页式存储的优点。 ### 基本概念 - 逻辑内存先划分为段,每个段再划分为页。 - 需要维护段表和每个段对应的页表。 ### 地址转换 - 逻辑地址包含段号、页号和页内偏移。 - 地址转换过程:先查段表获取段基址,再查段对应的页表获取页框基址,最后计算物理地址。 ### 优点 1. 结合了段式存储的逻辑划分和页式存储的固定大小分块,提高内存管理效率。 2. 既减少了内存碎片问题,又支持灵活的内存保护和共享。 ## 应考建议 在《软件设计师》考试中,关于段式存储和页式存储的考点主要包括: - 基本概念和术语:理解段、页、页框、段表、页表等基本概念。 - 地址转换过程:掌握段式存储和页式存储的地址转换过程和公式(几乎不考)。 - 优缺点对比:能够对比段式存储和页式存储的优缺点,以及它们在实际应用中的适用场景。 - 综合应用:理解段页式存储的原理和优势,能解释其工作机制。 ### 例题(难) 在一个页式存储管理系统中,假设逻辑地址空间为 `16` 位,页大小为 `4KB`。已知某个逻辑地址为 `0x3A45`,请计算该地址存储在物理内存的哪个页框中,假设页表如下: |逻辑页|物理页| |----|----| | 0 | 3 | | 1 | 5 | | 2 | 1 | | 3 | 7 | | 4 | 2 | | 5 | 6 | | 6 | 4 | | 7 | 0 | #### 解答过程 1. 确定页大小和页号 页大小为 `4KB`,即 `2^12` 字节。因此,逻辑地址的低 `12` 位为页内偏移,高 `4` 位为页号。 逻辑地址为 `0x3A45`(`16` 进制),转换为二进制为:`0011 1010 0100 0101`。 2. 提取页号和页内偏移: 页号:高 `4` 位 `0011`,即 `3`(十进制)。 页内偏移:低 `12` 位 `1010 0100 0101`,即 `0xA45`(十进制为 `2629`)。 3. 查找页表: 页表显示页 `3` 映射到页框 `7`。 4. 计算物理地址: 物理页框号为 `7`,物理页框基地址为页框号乘以页大小。 页大小为 `4KB`,即 `4096` 字节。 页框基地址 = `7 × 4KB` = `7 × 4096` = `28672`(十进制)或 `0x7000`(`16` 进制)。 5. 计算最终物理地址: 物理地址 = 页框基地址 + 页内偏移。 物理地址 = `0x7000 + 0xA45 = 0x7A45`。 6. 答: 逻辑地址 `0x3A45` 对应的物理地址是 `0x7A45`。该地址存储在物理内存的页框 `7` 中。
END
评论
登录后查看和发表评论
前往登录