学习啦>学习电脑>电脑硬件知识>内存知识>

内存与外存关键区别知识科普

怀健分享

首先简要介绍一下计算机的存储类型。在计算机的组成结构中,存储器是其中最重要的部分之一。存储器是用来存储程序和数据的部件,它赋予计算机的记忆功能,保证正常工作。下面就让小编带你去看看内存与外存关键区别知识科普,希望能帮助到大家!

计算机的内存和外存别再分不清了

内存,是大家对内部存储器的简称,当然,我们也可以叫内部存储器为主存。它是计算机中最重要的部件之一。内存是计算机运行过程中存放需要运行的程序和数据的地方。计算机工作的时候,是先把需要处理的数据从外存调入内存,然后CPU再从内存中调取数据;CPU处理完成当前这些数据之后,又将数据送回到内存中,之后才将内存中的数据又存入外存中。

大家熟悉的插在在主板内存插槽的内存条,它叫随机存取存储器,英文是Random Access Memory,缩写为RAM,CPU要使用外存中的数据时,先把数据存入RAM中,RAM再将数据传给CPU处理。

说到RAM,有一个和RAM缩写相似的ROM存取器又是什么呢?ROM是Read-Only Memory的缩写,它叫只读存储器。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像RAM随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。举个例子,主板上的ROM里面固化了一个基本输入/输出系统,简称为BIOS,它是个人电脑启动时加载的第一个软件。BIOS它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。

说了这么多,还是没太明白内存?没关系,给大家来打个比方。假如说,你有一个经常使用的书包,今天刚好周末,你打算出去逛逛街,于是你在书包里除了装好钱包、钥匙和手机,你还带上了水杯和面包零食,万一路上饿了还能吃。逛完街回来晚上了,明天周一了,要回校上课了,你拿出你逛街时候买的东西,把你的书本、笔记本、学习工具统统装进你的书包。你看看,内存就跟你常用的这个书包一样,它不需要存放固定不变的东西,相反,不同的情况中,它所存放的东西是不一样的,是可以随时变化的。

那么,咱们再来说说外存吧。外存是相对计算机内存及CPU缓存以外的外部部存储器,硬盘,光盘,U盘都是常用的外存。外存上的数据一般断电后仍然能保存数据。这里请大家注意下,在自己的个人电脑“我的电脑“界面中看到的C盘、D盘、E盘等这些都是外部存储器,而不是内存储器。外存上保存的数据是暂时不使用的数据信息,比如你存在D盘中的电影和音乐,你存放在U盘中的学习资料等等。外存储器的容量很大,比内存的容量要大得多。

内存储器速度快 价格贵,容量小,断电 后内存内数据会丢失。它是在计算机工作过程中暂时存放需要处理的数据和计算的结果,就像刚才说的你的书包,它是可是随时更换其中的东西的,内存中的数据也是随时可以更换了,内存它不用来长久保存数据。而你要长久保存一些数据信息的话,就需要使用外存储器。外存储器它的价格相对低些,容量大,但是读写数据的速度慢些, 断电后数据不会丢失,所以它可以将你要长久保存的信息保存起来。

现在你分清楚什么是内存和外存了吧。

内存与外存的关键区别有哪些?

计算机内存和外部存储之间的主要区别是易失性和非易失性,以及性能和容量之间的差别。

易失性VS非易失性。内存,例如随机存取内存(RAM),是具有易失性的。这意味着当系统断电时,数据就会丢失。与之相反,外部存储是非易失性的,因此即使没有电源,它也能保存数据。

性能和容量。在大多数情况下,外存比内存的速度慢得多。而与外存不同的是,RAM直接通过更宽更快的总线连接到CPU。

计算机内存提供了对数据的快速访问,而外存提供了更大的容量。

下面,让我们仔细看看计算机系统中三个主要的存储类型:主内存、缓存和辅助存储器(secondary memory)——其实“辅助存储器”也可以说就是外部存储器。

主内存(Primary Memory)

主内存是随机存取内存(RAM),内存芯片接收和处理CPU指令,用于计算和存储命令。处理器寄存器每个都保存少量数据,并与CPU交互执行数学运算以及发出数据操作指令。(只读存储器,或着叫ROM,位于BIOS芯片上。)

主内存是CPU直接访问的易失性内存。这个定义中包括了高速缓存内存,但是主内存是最常用的术语,用来描述通过快速总线连接到CPU的DRAM内存模块。DRAM芯片存储那些用于CPU计算的数据。RAM将计算作为一组指令传递给附加的/网络中的存储媒介。

主内存是依赖于不间断电源的易失性存储,所以当CPU断电时,内存和存储在RAM中的任何数据都会丢失。在启动时,系统访问操作系统并从存储器中启动应用程序,然后重新填充主内存。尽管DRAM比高速缓存内存的SRAM慢,但它的体系结构以及与CPU的直接连接允许它传输数据的速度比辅助内存或存储快得多。

高速缓冲存储器(Cache Memory)

高速缓冲存储器是一种用于高速数据处理的高速缓存。高速缓存内存标识位于主内存中的重复指令和数据,并将其复制到其内存中。CPU不再为相同的指令和数据重复访问较慢的主内存,而是访问更快的缓存。

缓存有时称为CPU内存,通常运行在高性能的SRAM内存模块上。CPU可以访问更快的缓存内存来运行性能敏感的操作。高速缓存内存通常集成在主板下,或者在不同的芯片上,通过总线与CPU互连。

高速缓存存储器存储CPU在计算机操作期间经常访问的指令和数据。CPU可以更快地从高性能高速缓存中检索这些重复信息,而不必从主内存中访问这些信息。

为了达到这种性能水平,当CPU处理数据和指令时,它首先在主内存之前查看缓存内存。缓存内存不是单块的:多级缓存甚至更有效,因为CPU可以在高缓存性能层或低缓存性能层对重复数据和指令进行优先级排序。

辅助存储器(Secondary Memory)

所谓的辅助存储器实际上就是计算机的外部存储器,系统将应用程序和数据保存在非易失性介质上。CPU不能直接读写外存的数据。它向RAM发送一个包含特定存储地址的读/写(或加载/存储)命令,存储控制器接收命令并完成请求。

目前有许多不同类型的存储介质,包括机械硬盘(HDD)、固态硬盘(SSD)、磁带、指状储存器和光盘。磁带在受监管的行业中保持着在主动归档存储和高可用性存储方面的使用价值。但是就目前来看,HDD和SSD是数据中心中最常见的存储类型。

内存和外存之间的关键区别

内存:易失性;内存包括RAM中的缓存和主内存。它正式包括存储器和辅助存储器。与CPU非常接近的高性能数据;SRAM比DRAM更贵;DRAM比外存更贵。可升级的;与外部存储介质相比,价格昂贵。存储CPU指令:使用频繁重复的指令进行缓存以提高效率,主要用于将CPU指令与其他计算机设备和组件进行通信。

外存:非易失性;尽管外存也是一种存储类型,但它与缓存和主内存不同,因为它是非易失性的。速度较慢,但能够以更低的成本获得更高的容量。可升级的;HDD成本在广泛可接受的范围内,而SSD的价格正在逐年降低,与HDD十分接近。

可存储数据,直到预定的数据被移动或删除。没有电源的硬盘和磁带将无限期地保存数据。无电源SSD可以保留数据长达两年,但实际上这段时间要短得多。

堆内内存还是堆外内存?

一般情况下,Java中分配的非空对象都是由Java虚拟机的垃圾收集器管理的,也称为堆内内存(on-heap memory)。虚拟机会定期对垃圾内存进行回收,在某些特定的时间点,它会进行一次彻底的回收(full gc)。彻底回收时,垃圾收集器会对所有分配的堆内内存进行完整的扫描,这意味着一个重要的事实——这样一次垃圾收集对Java应用造成的影响,跟堆的大小是成正比的。过大的堆会影响Java应用的性能。

对于这个问题,一种解决方案就是使用堆外内存(off-heap memory)。堆外内存意味着把内存对象分配在Java虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机)。这样做的结果就是能保持一个较小的堆,以减少垃圾收集对应用的影响。

但是Java本身也在不断对堆内内存的实现方式做改进。两者各有什么优缺点?Vanilla Java博客作者Peter Lawrey撰写了一篇文章,在文中他对三种方式:用new来分配对象、对象池(object pool)和堆外内存,进行了详细的分析。

用new来分配对象内存是最基本的一种方式,Lawery提到:

在Java 5.0之前,分配对象的代价很大,以至于大家都使用内存池。但是从5.0开始,对象分配和垃圾回收变得快多了,研发人员发现了性能的提升,纷纷简化他们的代码,不再使用内存池,而直接用new来分配对象。从5.0开始,只有一些分配代价较大的对象,比如线程、套接字和数据库链接,用内存池才会有明显的性能提升。

对于内存池,Lawery认为它主要用于两类对象。第一类是生命周期较短,且结构简单的对象,在内存池中重复利用这些对象能增加CPU缓存的命中率,从而提高性能。第二种情况是加载含有大量重复对象的大片数据,此时使用内存池能减少垃圾回收的时间。对此,Lawery还以StringInterner为例进行了说明。

最后Lawery分析了堆外内存,它和内存池一样,也能缩短垃圾回收时间,但是它适用的对象和内存池完全相反。内存池往往适用于生命期较短的可变对象,而生命期中等或较长的对象,正是堆外内存要解决的。堆外内存有以下特点:

1. 对于大内存有良好的伸缩性

2. 对垃圾回收停顿的改善可以明显感觉到

3. 在进程间可以共享,减少虚拟机间的复制

4. Lawery还提到对外内存最重要的还不是它能改进性能,而是它的确定性。

当然堆外内存也有它自己的问题,最大的问题就是你的数据结构变得不那么直观,如果数据结构比较复杂,就要对它进行串行化(serialization),而串行化本身也会影响性能。另一个问题是由于你可以使用更大的内存,你可能开始担心虚拟内存(即硬盘)的速度对你的影响了。

Lawery还介绍了OpenHFT公司提供三个开源库:Chronicle Queue、Chronicle Map和Thread Affinity,这些库可以帮助开发人员使用堆外内存来保存数据。采用堆外内存有很多好处,同时也带来挑战,对堆外内存感兴趣的读者可以阅读Lawery的原文来了解更多信息。

内存与外存关键区别知识科普相关文章:

操作系统基础知识大全科普

常识科普知识大全

航天航空科普知识大全

科普知识

综合科普知识题及答案介绍分享

有趣的科普知识精选

小学生必懂的15个科普知识

生活中的科普小知识有哪些

课外科普知识介绍分享

少儿必知世界科普知识

    上一篇:内存基础知识干货

    下一篇:内存实用基础大全

    813507