【发布时间】:2015-04-01 10:23:55
【问题描述】:
进程的内存映射似乎被分割成段(堆栈、堆、bss、数据和文本),
- 我想知道这些段是否只是 过程的便利性和物理RAM只是一个线性阵列 地址或物理 RAM 是否也被分割成这些 细分市场?
- 此外,如果 RAM 没有分段并且只是一个线性阵列,那么如何 操作系统是否为进程提供这些段的抽象?
- 此外,如果到进程的内存映射只是一个线性数组而不是分段(MMU 将虚拟地址转换为物理地址),那么编程将如何变化?
【问题讨论】:
-
ad 3) 从 C(++) 程序员内存的角度来看确实显示为由内存管理器管理的线性数组,因此这部分对我来说没有意义。整个问题非常广泛,显示出很少的研究工作。检查类似的 Stack Overflow 问题,然后尝试缩小这一范围。 stackoverflow.com/…..
-
@xmojmr 是的,它确实显示为一个线性数组,但它被分成多个段。
-
为什么投票结束?我不认为这个主题太广泛了。但绝对不是 C 题。我认为您应该删除该标签。
-
是的,但在 C(++) 中没有直接处理段的语言特性,因此编程不受影响。请参阅What is the advantage of using segment registers (today)? 和它的链接问题
-
@m0skit0 我添加了 C 是因为我是从 C 程序员的角度来询问的
标签: memory memory-management operating-system cpu-architecture