为什么程序在内存而不是硬盘上执行?



当我学习计算机体系结构和系统编程时,出现了一些问题。

首先,程序位于SSD或硬盘中,但是当它执行时,这会加载到内存(RAM)。为什么程序不直接在硬盘上执行?为什么需要在内存上加载?

谢谢

这样做很简单,因为您的 RAM 比硬盘快得多。

当您的计算机执行程序时,CPU会一个接一个地从内存中读取所有指令并执行它们。CPU本身在执行时无法存储整个程序,因此必须从其他地方读取。如果CPU必须从硬盘读取指令,那将是非常慢的。

现在我们有SSD,这变得不那么重要了,但是在过去,RAM("随机存取存储器")和HDD("硬盘驱动器")之间的区别在于RAM可以在任何时间点访问任何内存地址,因此"随机访问"。HDD必须旋转存储数据的硬盘才能从某个地址读取。对于 HDD 来说,访问随机内存地址非常困难。

当CPU执行程序时,它必须一直跳来跳去。它还必须将程序的内存存储在某个地方,并在需要时尽快访问它。HDD在这两件事上非常糟糕,RAM非常好。

那么我们为什么要使用硬盘呢?因为内存

  1. 是昂贵的方式
  2. 关闭时不保留数据

那么固态硬盘呢?它们在随机存取方面比HDD好得多,但它们仍然比RAM慢得多。

此外,您必须考虑交换文件。如果需要,计算机可以使用部分 HDD 或 SSD 存储作为系统内存。如果 CPU 不经常访问占用 RAM 的数据,这可能非常有用。

相关内容

最新更新