当前位置:首页>综合>正文

计算机所有程序都是在内存中运行吗

2025-01-13 10:09:03 互联网 未知 综合

计算机所有程序都是在内存中运行吗

是错误的。

先给各位介绍一下内存/外存的定义。

内存:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器和主存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

外存:外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。


为了方便描述,咱们把没有争议的“名称具体到硬件”做一遍。一般来讲,标题里的“运行内存”指的是DDR SDRAM(下称SDRAM),标题里的“内存”指的是EMMC/UFS。

接下来我们先了解一下手机运行一个APP时的流程,然后和上面的定义进行对比。

文件一开始存在EMMC/UFS里,运行之后,CPU会把文件从EMMC/UFS里调到SDRAM里暂存,CPU需要某个文件就从SDRAM里拿,用完再还给SDRAM,等文件使用完毕后,CPU会把SDRAM里的文件存回EMMC/UFS里面。(这个流程忽略了CPU自带的L1L2L3缓存)

可以看到,SDRAM是直接和CPU通讯的,而且SDRAM也会和EMMC/UFS进行通讯,SDRAM负责暂存运行中的文件。EMMC/UFS只负责存储不用的文件,不和CPU直接通讯,只和SDRAM进行通讯。(防杠,再说一次这里不涉及CPU缓存)

对照上面的定义,可以得出:DDR SDRAM属于内存,EMMC/UFS属于外存。因此把EMMC/UFS叫做内存的说法是错误的。(把内存叫做运行内存个人认为没啥问题)


解答区(看到啥问题能答就顺便答这了):

Q:如果EMMC/UFS不叫内存,那叫什么?

A:外存,或者普遍点的叫硬盘或者存储空间,不论如何都不叫内存,避免歧义很重要。


……………………………………………………………………


更新日志:

1、感谢评论区的纠错,删去了部分关于flash分类的Q&&A,不影响结论。

计算机所有程序都需要被加载到内存中才能运行。当计算机用户打开一个程序时,操作系统会将该程序从硬盘中读取到内存中,然后CPU开始执行其中的指令。

内存是一个非常快速的存储器件,它可以很快地读取和写入数据,因此让程序在内存中运行可以提高计算机的运行效率。

一旦程序运行结束,操作系统会将其从内存中删除,释放出内存空间。如果计算机的内存不足,会导致系统运行缓慢或崩溃,因此内存管理是计算机系统中非常重要的一部分。