在操作系统中, 存储管理 是非常重要的核心功能之一。操作系统需要对内存进行合理分配和管理,使多个进程能够高效、安全地共享系统资源。
在软考高级系统架构设计师考试中,存储管理是 计算机系统基础的重要考点 ,经常出现在
本文将系统讲解这些知识点,并结合典型例题进行说明。
在计算机系统中, 内存是CPU直接访问的存储空间 。
如果多个程序同时运行,就需要操作系统负责
逻辑地址(Logical Address)
物理地址(Physical Address)
操作系统需要通过 地址映射机制 实现
逻辑地址 → 物理地址
为了解决内存利用率低和碎片问题,操作系统提出了多种存储管理方式。
页式存储管理(Paging)**将
页大小 = 4KB
页大小 = 页框大小
这样可以避免 外部碎片问题 。
为了记录页与页框之间的映射关系,操作系统使用
页号 → 页框号
在页式存储中,逻辑地址通常由两部分组成
页号 + 页内地址
页面大小 = 4KB 逻辑地址长度 = 16位
页内地址 = 12位 页号 = 4位
2^12 = 4096 = 4KB
页面大小 = 1KB 逻辑地址 = 5000 页表如下
页号 = 5000 / 1024
页号 = 4
页内地址 = 5000 % 1024
页内地址 = 904
页号4 → 页框2
物理地址 = 页框号 × 页面大小 + 页内地址
= 2 × 1024 + 904 = 2952
物理地址 = 2952
在页式存储中,每次访问内存都需要
两次内存访问
快表(TLB:Translation Lookaside Buffer)
快表是一种 高速缓存 ,用于存储最近使用的页表项。
逻辑地址 → 查TLB ↓ 命中 ↓ 直接得到页框号
查页表 → 更新TLB
TLB命中率 = 90% TLB访问时间 = 10ns 内存访问时间 = 100ns
10 + 100 = 110ns
10 + 100 + 100 = 210ns
EAT = 0.9 × 110 + 0.1 × 210
EAT = 99 + 21
EAT = 120ns
段式存储管理(Segmentation)**按照程序的逻辑结构进行划分。
每个段大小可以不同
这就是段式存储与页式存储的主要区别。
段号 + 段内地址
段表(Segment Table)
段号 → 段基址 + 段长度
(1, 120)
1
段基址 = 800
120 < 300
物理地址 = 800 + 120
= 920
段式 + 页式
程序 → 段 段 → 页 页 → 页框
段号 + 页号 + 页内地址
页大小 = 1KB 逻辑地址:(段2,页1,偏移100)
段2 → 页表 PT2
页1 → 页框5
物理地址 = 5 × 1024 + 100
= 5120 + 100
= 5220
在软考高级系统架构设计师考试中,存储管理重点包括
存储管理是操作系统的重要组成部分,也是软考高级系统架构设计师考试中的高频考点。

上一篇:系统架构师案例分析经验
软考梦工厂
扫码关注我们