0

我在研究虚拟内存时有一个关于 RAM 的问题。当我们在单片机中编译程序时,程序代码被烧录在闪存中,变量存储在 RAM 中,对吗?我们的台式机也一样吗?我的意思是,虚拟内存的目标不是要与物理内存(RAM)相协调;虚拟地扩展物理内存,比如假设一个进程需要位于 RAM 之外的下一个地址,它会不会改变页面(放开现在并从虚拟内存中获取页面)?话虽如此,RAM是否不仅包含变量,还包含正在运行的进程的程序内存?

4

2 回答 2

0

当程序未执行或从未被调用时,指令在闪存上,但没有为变量分配空间。但是闪存包含告诉操作系统何时为程序变量分配内存的指令程序被执行。

只有在程序执行时,操作系统才会将程序指令复制到 RAM 中,然后为变量分配内存。

因此,是的!.RAM 包含所有程序指令和变量,但仅在进程执行期间。

仅当进程为其变量所需的内存未在具有传染性的物理位置(例如“变量数组”)中找到时,才会实施虚拟内存。

于 2014-06-13T11:10:00.433 回答
0

RAM 是唯一可由 CPU 直接访问的存储器,因此根据定义,程序指令必须存储在那里。

否则,CPU 将不知道该怎么做。

于 2015-12-14T08:52:51.607 回答