我正在研究 galvin 第六版的操作系统概念,我对程序的执行流程有一些疑问。一张图将用户程序的处理解释为:
当我们到达链接编辑器点时,我们得到一个可执行的二进制文件。正如书中所说,“必须将程序放入内存并放入进程中才能执行”现在我的一些愚蠢问题是:
在程序加载到内存之前,联动编辑器生成的二进制可执行文件存储在硬盘中。二进制可执行文件存储在硬盘中的地址是CPU生成的逻辑地址?
如果前面的答案是肯定的,为什么 CPU 必须生成逻辑地址?我的意思是可执行文件存储在与地址相关的硬盘中的某个位置,为什么CPU必须单独执行这些东西?CPU的主要目的毕竟是处理!
为什么可执行文件需要在物理内存即ram中,不能在硬盘中执行?是不是因为速度问题?
我知道我问这些问题很愚蠢,但相信我,我找不到答案!:|