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

时间:2019-04-24 12:23:42

标签: operating-system cpu systems-programming

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

当您的计算机执行程序时,CPU会依次从内存中读取所有指令并执行它们。 CPU本身在执行程序时无法存储整个程序,因此必须从其他位置读取它。如果CPU必须从硬盘上读取指令,那将会非常疯狂。

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

CPU执行程序时,必须始终跳来跳去。它还必须将程序的内存存储在某个地方,并在需要时尽快进行访问。 HDD在这两方面都很糟糕,RAM很好。

那为什么我们完全使用HDD?因为RAM

  1. 是一种昂贵的方式
  2. 关闭后不会保留数据

那SSD呢?与HDD相比,它们在随机访问方面要好得多,但仍然比RAM慢得多。

此外,您还必须考虑交换文件。如果需要,计算机可以将您的某些HDD或SSD存储器用作系统内存。如果CPU很少访问占用RAM的数据,这将非常有用。