【发布时间】:2019-10-30 08:37:13
【问题描述】:
我正在阅读 OSTEP 关于内存分段的第 16 章。
在本节的一个示例中,它将 15KB 虚拟地址转换为物理地址:
| Segment | Base | Size | Grow Positive |
| Code | 32KB | 2K | 1 |
| Heap | 34KB | 2K | 1 |
| Stack | 28KB | 2K | 0(negative) |
将 15KB 虚拟地址转换为物理地址(在教科书中):
15KB 转换为位 => 11 1100 0000 00000
前 2 位 (11) 确定段,即堆栈。
剩下 3KB 用于获得正确的偏移量:
3KB - 最大段大小 = 3KB - 4KB = -1KB物理地址 = 28KB -1KB = 27KB
我的问题是,在第 4 步中,为什么最大段是 4KB——不是 2KB 吗?
【问题讨论】: