學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦硬件知識>內(nèi)存知識>

內(nèi)存與外存關(guān)鍵區(qū)別知識科普

時間: 懷健0 分享

首先簡要介紹一下計算機的存儲類型。在計算機的組成結(jié)構(gòu)中,存儲器是其中最重要的部分之一。存儲器是用來存儲程序和數(shù)據(jù)的部件,它賦予計算機的記憶功能,保證正常工作。下面就讓小編帶你去看看內(nèi)存與外存關(guān)鍵區(qū)別知識科普,希望能幫助到大家!

計算機的內(nèi)存和外存別再分不清了

內(nèi)存,是大家對內(nèi)部存儲器的簡稱,當(dāng)然,我們也可以叫內(nèi)部存儲器為主存。它是計算機中最重要的部件之一。內(nèi)存是計算機運行過程中存放需要運行的程序和數(shù)據(jù)的地方。計算機工作的時候,是先把需要處理的數(shù)據(jù)從外存調(diào)入內(nèi)存,然后CPU再從內(nèi)存中調(diào)取數(shù)據(jù);CPU處理完成當(dāng)前這些數(shù)據(jù)之后,又將數(shù)據(jù)送回到內(nèi)存中,之后才將內(nèi)存中的數(shù)據(jù)又存入外存中。

大家熟悉的插在在主板內(nèi)存插槽的內(nèi)存條,它叫隨機存取存儲器,英文是Random Access Memory,縮寫為RAM,CPU要使用外存中的數(shù)據(jù)時,先把數(shù)據(jù)存入RAM中,RAM再將數(shù)據(jù)傳給CPU處理。

說到RAM,有一個和RAM縮寫相似的ROM存取器又是什么呢?ROM是Read-Only Memory的縮寫,它叫只讀存儲器。ROM所存數(shù)據(jù),一般是裝入整機前事先寫好的,整機工作過程中只能讀出,而不像RAM隨機存儲器那樣能快速地、方便地加以改寫。ROM所存數(shù)據(jù)穩(wěn)定 ,斷電后所存數(shù)據(jù)也不會改變;其結(jié)構(gòu)較簡單,讀出較方便,因而常用于存儲各種固定程序和數(shù)據(jù)。舉個例子,主板上的ROM里面固化了一個基本輸入/輸出系統(tǒng),簡稱為BIOS,它是個人電腦啟動時加載的第一個軟件。BIOS它是一組固化到計算機內(nèi)主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、開機后自檢程序和系統(tǒng)自啟動程序,它可從CMOS中讀寫系統(tǒng)設(shè)置的具體信息。

說了這么多,還是沒太明白內(nèi)存?沒關(guān)系,給大家來打個比方。假如說,你有一個經(jīng)常使用的書包,今天剛好周末,你打算出去逛逛街,于是你在書包里除了裝好錢包、鑰匙和手機,你還帶上了水杯和面包零食,萬一路上餓了還能吃。逛完街回來晚上了,明天周一了,要回校上課了,你拿出你逛街時候買的東西,把你的書本、筆記本、學(xué)習(xí)工具統(tǒng)統(tǒng)裝進你的書包。你看看,內(nèi)存就跟你常用的這個書包一樣,它不需要存放固定不變的東西,相反,不同的情況中,它所存放的東西是不一樣的,是可以隨時變化的。

那么,咱們再來說說外存吧。外存是相對計算機內(nèi)存及CPU緩存以外的外部部存儲器,硬盤,光盤,U盤都是常用的外存。外存上的數(shù)據(jù)一般斷電后仍然能保存數(shù)據(jù)。這里請大家注意下,在自己的個人電腦“我的電腦“界面中看到的C盤、D盤、E盤等這些都是外部存儲器,而不是內(nèi)存儲器。外存上保存的數(shù)據(jù)是暫時不使用的數(shù)據(jù)信息,比如你存在D盤中的電影和音樂,你存放在U盤中的學(xué)習(xí)資料等等。外存儲器的容量很大,比內(nèi)存的容量要大得多。

內(nèi)存儲器速度快 價格貴,容量小,斷電 后內(nèi)存內(nèi)數(shù)據(jù)會丟失。它是在計算機工作過程中暫時存放需要處理的數(shù)據(jù)和計算的結(jié)果,就像剛才說的你的書包,它是可是隨時更換其中的東西的,內(nèi)存中的數(shù)據(jù)也是隨時可以更換了,內(nèi)存它不用來長久保存數(shù)據(jù)。而你要長久保存一些數(shù)據(jù)信息的話,就需要使用外存儲器。外存儲器它的價格相對低些,容量大,但是讀寫數(shù)據(jù)的速度慢些, 斷電后數(shù)據(jù)不會丟失,所以它可以將你要長久保存的信息保存起來。

現(xiàn)在你分清楚什么是內(nèi)存和外存了吧。

內(nèi)存與外存的關(guān)鍵區(qū)別有哪些?

計算機內(nèi)存和外部存儲之間的主要區(qū)別是易失性和非易失性,以及性能和容量之間的差別。

易失性VS非易失性。內(nèi)存,例如隨機存取內(nèi)存(RAM),是具有易失性的。這意味著當(dāng)系統(tǒng)斷電時,數(shù)據(jù)就會丟失。與之相反,外部存儲是非易失性的,因此即使沒有電源,它也能保存數(shù)據(jù)。

性能和容量。在大多數(shù)情況下,外存比內(nèi)存的速度慢得多。而與外存不同的是,RAM直接通過更寬更快的總線連接到CPU。

計算機內(nèi)存提供了對數(shù)據(jù)的快速訪問,而外存提供了更大的容量。

下面,讓我們仔細看看計算機系統(tǒng)中三個主要的存儲類型:主內(nèi)存、緩存和輔助存儲器(secondary memory)——其實“輔助存儲器”也可以說就是外部存儲器。

主內(nèi)存(Primary Memory)

主內(nèi)存是隨機存取內(nèi)存(RAM),內(nèi)存芯片接收和處理CPU指令,用于計算和存儲命令。處理器寄存器每個都保存少量數(shù)據(jù),并與CPU交互執(zhí)行數(shù)學(xué)運算以及發(fā)出數(shù)據(jù)操作指令。(只讀存儲器,或著叫ROM,位于BIOS芯片上。)

主內(nèi)存是CPU直接訪問的易失性內(nèi)存。這個定義中包括了高速緩存內(nèi)存,但是主內(nèi)存是最常用的術(shù)語,用來描述通過快速總線連接到CPU的DRAM內(nèi)存模塊。DRAM芯片存儲那些用于CPU計算的數(shù)據(jù)。RAM將計算作為一組指令傳遞給附加的/網(wǎng)絡(luò)中的存儲媒介。

主內(nèi)存是依賴于不間斷電源的易失性存儲,所以當(dāng)CPU斷電時,內(nèi)存和存儲在RAM中的任何數(shù)據(jù)都會丟失。在啟動時,系統(tǒng)訪問操作系統(tǒng)并從存儲器中啟動應(yīng)用程序,然后重新填充主內(nèi)存。盡管DRAM比高速緩存內(nèi)存的SRAM慢,但它的體系結(jié)構(gòu)以及與CPU的直接連接允許它傳輸數(shù)據(jù)的速度比輔助內(nèi)存或存儲快得多。

高速緩沖存儲器(Cache Memory)

高速緩沖存儲器是一種用于高速數(shù)據(jù)處理的高速緩存。高速緩存內(nèi)存標(biāo)識位于主內(nèi)存中的重復(fù)指令和數(shù)據(jù),并將其復(fù)制到其內(nèi)存中。CPU不再為相同的指令和數(shù)據(jù)重復(fù)訪問較慢的主內(nèi)存,而是訪問更快的緩存。

緩存有時稱為CPU內(nèi)存,通常運行在高性能的SRAM內(nèi)存模塊上。CPU可以訪問更快的緩存內(nèi)存來運行性能敏感的操作。高速緩存內(nèi)存通常集成在主板下,或者在不同的芯片上,通過總線與CPU互連。

高速緩存存儲器存儲CPU在計算機操作期間經(jīng)常訪問的指令和數(shù)據(jù)。CPU可以更快地從高性能高速緩存中檢索這些重復(fù)信息,而不必從主內(nèi)存中訪問這些信息。

為了達到這種性能水平,當(dāng)CPU處理數(shù)據(jù)和指令時,它首先在主內(nèi)存之前查看緩存內(nèi)存。緩存內(nèi)存不是單塊的:多級緩存甚至更有效,因為CPU可以在高緩存性能層或低緩存性能層對重復(fù)數(shù)據(jù)和指令進行優(yōu)先級排序。

輔助存儲器(Secondary Memory)

所謂的輔助存儲器實際上就是計算機的外部存儲器,系統(tǒng)將應(yīng)用程序和數(shù)據(jù)保存在非易失性介質(zhì)上。CPU不能直接讀寫外存的數(shù)據(jù)。它向RAM發(fā)送一個包含特定存儲地址的讀/寫(或加載/存儲)命令,存儲控制器接收命令并完成請求。

目前有許多不同類型的存儲介質(zhì),包括機械硬盤(HDD)、固態(tài)硬盤(SSD)、磁帶、指狀儲存器和光盤。磁帶在受監(jiān)管的行業(yè)中保持著在主動歸檔存儲和高可用性存儲方面的使用價值。但是就目前來看,HDD和SSD是數(shù)據(jù)中心中最常見的存儲類型。

內(nèi)存和外存之間的關(guān)鍵區(qū)別

內(nèi)存:易失性;內(nèi)存包括RAM中的緩存和主內(nèi)存。它正式包括存儲器和輔助存儲器。與CPU非常接近的高性能數(shù)據(jù);SRAM比DRAM更貴;DRAM比外存更貴??缮壍?與外部存儲介質(zhì)相比,價格昂貴。存儲CPU指令:使用頻繁重復(fù)的指令進行緩存以提高效率,主要用于將CPU指令與其他計算機設(shè)備和組件進行通信。

外存:非易失性;盡管外存也是一種存儲類型,但它與緩存和主內(nèi)存不同,因為它是非易失性的。速度較慢,但能夠以更低的成本獲得更高的容量??缮壍?HDD成本在廣泛可接受的范圍內(nèi),而SSD的價格正在逐年降低,與HDD十分接近。

可存儲數(shù)據(jù),直到預(yù)定的數(shù)據(jù)被移動或刪除。沒有電源的硬盤和磁帶將無限期地保存數(shù)據(jù)。無電源SSD可以保留數(shù)據(jù)長達兩年,但實際上這段時間要短得多。

堆內(nèi)內(nèi)存還是堆外內(nèi)存?

一般情況下,Java中分配的非空對象都是由Java虛擬機的垃圾收集器管理的,也稱為堆內(nèi)內(nèi)存(on-heap memory)。虛擬機會定期對垃圾內(nèi)存進行回收,在某些特定的時間點,它會進行一次徹底的回收(full gc)。徹底回收時,垃圾收集器會對所有分配的堆內(nèi)內(nèi)存進行完整的掃描,這意味著一個重要的事實——這樣一次垃圾收集對Java應(yīng)用造成的影響,跟堆的大小是成正比的。過大的堆會影響Java應(yīng)用的性能。

對于這個問題,一種解決方案就是使用堆外內(nèi)存(off-heap memory)。堆外內(nèi)存意味著把內(nèi)存對象分配在Java虛擬機的堆以外的內(nèi)存,這些內(nèi)存直接受操作系統(tǒng)管理(而不是虛擬機)。這樣做的結(jié)果就是能保持一個較小的堆,以減少垃圾收集對應(yīng)用的影響。

但是Java本身也在不斷對堆內(nèi)內(nèi)存的實現(xiàn)方式做改進。兩者各有什么優(yōu)缺點?Vanilla Java博客作者Peter Lawrey撰寫了一篇文章,在文中他對三種方式:用new來分配對象、對象池(object pool)和堆外內(nèi)存,進行了詳細的分析。

用new來分配對象內(nèi)存是最基本的一種方式,Lawery提到:

在Java 5.0之前,分配對象的代價很大,以至于大家都使用內(nèi)存池。但是從5.0開始,對象分配和垃圾回收變得快多了,研發(fā)人員發(fā)現(xiàn)了性能的提升,紛紛簡化他們的代碼,不再使用內(nèi)存池,而直接用new來分配對象。從5.0開始,只有一些分配代價較大的對象,比如線程、套接字和數(shù)據(jù)庫鏈接,用內(nèi)存池才會有明顯的性能提升。

對于內(nèi)存池,Lawery認為它主要用于兩類對象。第一類是生命周期較短,且結(jié)構(gòu)簡單的對象,在內(nèi)存池中重復(fù)利用這些對象能增加CPU緩存的命中率,從而提高性能。第二種情況是加載含有大量重復(fù)對象的大片數(shù)據(jù),此時使用內(nèi)存池能減少垃圾回收的時間。對此,Lawery還以StringInterner為例進行了說明。

最后Lawery分析了堆外內(nèi)存,它和內(nèi)存池一樣,也能縮短垃圾回收時間,但是它適用的對象和內(nèi)存池完全相反。內(nèi)存池往往適用于生命期較短的可變對象,而生命期中等或較長的對象,正是堆外內(nèi)存要解決的。堆外內(nèi)存有以下特點:

1. 對于大內(nèi)存有良好的伸縮性

2. 對垃圾回收停頓的改善可以明顯感覺到

3. 在進程間可以共享,減少虛擬機間的復(fù)制

4. Lawery還提到對外內(nèi)存最重要的還不是它能改進性能,而是它的確定性。

當(dāng)然堆外內(nèi)存也有它自己的問題,最大的問題就是你的數(shù)據(jù)結(jié)構(gòu)變得不那么直觀,如果數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,就要對它進行串行化(serialization),而串行化本身也會影響性能。另一個問題是由于你可以使用更大的內(nèi)存,你可能開始擔(dān)心虛擬內(nèi)存(即硬盤)的速度對你的影響了。

Lawery還介紹了OpenHFT公司提供三個開源庫:Chronicle Queue、Chronicle Map和Thread Affinity,這些庫可以幫助開發(fā)人員使用堆外內(nèi)存來保存數(shù)據(jù)。采用堆外內(nèi)存有很多好處,同時也帶來挑戰(zhàn),對堆外內(nèi)存感興趣的讀者可以閱讀Lawery的原文來了解更多信息。

內(nèi)存與外存關(guān)鍵區(qū)別知識科普相關(guān)文章:

操作系統(tǒng)基礎(chǔ)知識大全科普

常識科普知識大全

航天航空科普知識大全

科普知識

綜合科普知識題及答案介紹分享

有趣的科普知識精選

小學(xué)生必懂的15個科普知識

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

課外科普知識介紹分享

少兒必知世界科普知識

內(nèi)存與外存關(guān)鍵區(qū)別知識科普

首先簡要介紹一下計算機的存儲類型。在計算機的組成結(jié)構(gòu)中,存儲器是其中最重要的部分之一。存儲器是用來存儲程序和數(shù)據(jù)的部件,它賦予計算機的記憶功能,保證正常工作。下面就讓小編帶你去看看內(nèi)存與外存關(guān)鍵區(qū)別知
推薦度:
點擊下載文檔文檔為doc格式

精選文章

  • 計算機小白內(nèi)存基礎(chǔ)知識掃盲
    計算機小白內(nèi)存基礎(chǔ)知識掃盲

    對于電腦內(nèi)存,可能大家都覺得內(nèi)存影響不到游戲幀數(shù),但這其實是非常片面的。舉個例子,在玩絕地求生時,按下TAB鍵會卡頓或者游戲忽然掉幀,那就是

  • 計算機新手必備內(nèi)存實用知識
    計算機新手必備內(nèi)存實用知識

    在電腦硬件中,CPU和顯卡、內(nèi)存均是重中之重,因此我們在選擇這些核心硬件一定要慎重考慮。下面就讓小編帶你去看看計算機新手必備內(nèi)存實用知識,希

  • 計算機新手必備內(nèi)存知識技巧
    計算機新手必備內(nèi)存知識技巧

    內(nèi)存是計算機中硬盤與CPU進行溝通的橋梁,其本質(zhì)就是一個緩沖區(qū)。計算機中所有程序的運行都是在內(nèi)存中進行的,更直白點就是,CPU需要把運算的數(shù)據(jù)調(diào)

  • 計算機內(nèi)存基礎(chǔ)硬核知識
    計算機內(nèi)存基礎(chǔ)硬核知識

    我們都知道,計算機是處理數(shù)據(jù)的設(shè)備,而數(shù)據(jù)的主要存儲位置就是磁盤和內(nèi)存,并且對于程序員來講,CPU 和內(nèi)存是我們必須了解的兩個物理結(jié)構(gòu),它是

813507