【发布时间】:2012-10-20 06:51:36
【问题描述】:
我正在研究 galvin 第六版的操作系统概念,我对程序的执行流程有一些疑问。一张图将用户程序的处理解释为:
当我们到达链接编辑器点时,我们得到一个可执行的二进制文件。正如书中所说,“程序必须被放入内存并放入进程中才能执行”现在我的一些愚蠢的问题是:
在程序加载到内存之前,联动编辑器生成的二进制可执行文件存储在硬盘中。二进制可执行文件存储在硬盘中的地址是CPU生成的逻辑地址?
如果前面的答案是肯定的,为什么CPU必须生成逻辑地址?我的意思是可执行文件存储在与地址相关的硬盘中的某个位置,为什么CPU必须单独执行这些东西? CPU的主要目的毕竟是处理!
为什么可执行文件需要在物理内存即ram中,不能在硬盘中执行?是不是速度问题?
我知道我问这些问题很愚蠢,但相信我,我找不到答案! :|
【问题讨论】:
-
这是一个很好的问题,但 SO 并不是真正适合它的论坛。请参阅FAQ。
标签: operating-system memory-address