0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

內(nèi)存和磁盤的關系&數(shù)據(jù)壓縮(上)

jf_78858299 ? 來源:前端柒八九 ? 作者:前端柒八九 ? 2023-03-31 16:21 ? 次閱讀

在計算機的5大部件中, 「內(nèi)存」「磁盤」 都被歸類為 「存儲部件」 。不過,利用 電流 來實現(xiàn)存儲的內(nèi)存,同利用 「磁效應」 來實現(xiàn)存儲的磁盤,還是有差異的。

從存儲容量來看

  • 內(nèi)存是**「高速高價」**
  • 磁盤是**「低速廉價」**

不讀入內(nèi)存就無法運行

計算機中主要的存儲部分是 「內(nèi)存」「磁盤」「磁盤中存儲的程序,必須要加載到內(nèi)存后才能運行。在磁盤中保存的原始程序是無法直接運行的」 。這是因為,「負責解析和運行程序內(nèi)容的CPU,需要通過內(nèi)部程序計數(shù)器來指定內(nèi)存地址,然后才能讀出程序」

?存儲在磁盤中的程序需要讀入到內(nèi)存后才能運行

?

圖片


磁盤緩存

磁盤緩存Disk Cache指的是把從磁盤中讀出的數(shù)據(jù)存儲到 「內(nèi)存空間」 中的方式。這樣一來,當接下來需要讀取 「同一數(shù)據(jù)」 時,就不用通過實際的磁盤,而是從磁盤緩存中把內(nèi)容讀出。

?使用磁盤緩存可以大大改善磁盤數(shù)據(jù)的訪問速度

?

圖片

「低速設備」 的數(shù)據(jù)保存到 「高速設備」 中,需要時可以直接將其從高速設備中讀出,這種 「緩存」 的方式在其他情況下也會用到。

其中一個實例就是在Web瀏覽器中的使用。由于Web瀏覽器是通過 網(wǎng)絡 來獲取 「遠程」 Web服務器的數(shù)據(jù)并將其顯示出來的。因此,在顯示較大的圖片等文件時,會花費不少時間。于是,Web瀏覽器就可以把獲取的數(shù)據(jù) 「暫時」 保存在 「磁盤」 中,然后在需要時再顯示磁盤中的數(shù)據(jù)。也就是, 「把低速的網(wǎng)絡數(shù)據(jù)保存到相對高速的磁盤中」 。

虛擬內(nèi)存

虛擬內(nèi)存Virtual Memory是指把 「磁盤」 的一部分作為 「假想的內(nèi)存」 來使用。這與磁盤緩存是 「假想的磁盤」實際上是內(nèi)存)相對,虛擬內(nèi)存是 「假想的內(nèi)存」實際上是磁盤)。

「通過借助虛擬內(nèi)存,在內(nèi)存不足時也可以運行程序」 。為了實現(xiàn)虛擬內(nèi)存,就必須把 「實際內(nèi)存」 (也可稱為 「物理內(nèi)存」 )的內(nèi)容,和磁盤上的虛擬內(nèi)存的內(nèi)容進行 「部分置換」 ,并同時運行程序。

?虛擬內(nèi)存的方法有 「分頁式」「分段式」 兩種。

?

Windows采用的是 「分頁式」 。該方式是指, 「把運行的程序按照一定大小的頁Page進行分割,并以為單位在內(nèi)存和磁盤間置換」 。

在分頁式中,把磁盤的內(nèi)容讀出到內(nèi)存稱為Page In,把內(nèi)存的內(nèi)容寫入磁盤稱為Page Out。

圖片

為了實現(xiàn)虛擬內(nèi)存功能,Windows「磁盤」 上提供了虛擬內(nèi)存用的頁文件Page File。該文件由Windows自動做成和管理。

節(jié)約內(nèi)存的編程方式(DLL文件)

「DLL(Dynamic Link Library)文件」 ,是在程序 「運行時」 可以 「動態(tài)」 加載Library(函數(shù)和數(shù)據(jù)的集合)的文件。并且,多個應用可以 「共有同一個」 DLL文件。所以, 「通過共有同一個DLL文件可以達到節(jié)約內(nèi)存的效果」 。

假設我們編寫了一個具有某些處理功能的函數(shù)MyFunc(),應用A和應用B都會使用這個函數(shù)。如果函數(shù)MyFunc()是獨立的DLL文件,由于同一個DLL文件的內(nèi)容在運行時可以被多個應用共有,因此內(nèi)存中存在的函數(shù)MyFunc()的程序就只有一個。

圖片

?Windows操作系統(tǒng) 本身也是多個DLL文件的集合體。

?

DLL文件還有一個優(yōu)點:在不變更可執(zhí)行文件的情況下,只通過升級DLL文件就可以更新。


磁盤的物理結構

「磁盤的物理結構是指磁盤存儲數(shù)據(jù)的形式」 。

?磁盤是通過把其物理表面劃分成多個空間來使用的。

?

劃分的方式有 「扇區(qū)方式」「可變長方式」 兩種。

  1. 「扇區(qū)方式」 是指將磁盤劃分為 「固定長度」 的空間
  2. 「可變長方式」 是指把磁盤劃分為 「長度可變」 的空間

Windows計算機所使用的硬盤,采用的都是 「扇區(qū)方式」 。

扇區(qū)方式中,把磁盤表面分成若干個 「同心圓的空間」 就是 「磁道」 ,把磁道按照 「固定大小」 (能存儲的數(shù)據(jù)長度相同)劃分而成的空間就是 「扇區(qū)」 。

圖片

?扇區(qū)是對磁盤進行 「物理讀寫」 的最小單位,一般一個扇區(qū)是512字節(jié)

?

不過,Windows「邏輯方面」軟件方面)對磁盤就進行讀寫的單位是扇區(qū)的整數(shù)倍 「簇」 。根據(jù)磁盤容量的不同,1簇可以是512字節(jié)(1簇=1扇區(qū))、1KB(1簇=2扇區(qū))、2KB、4KB等。

? 「不同的文件是不能存儲在同一簇中的」 ,否則就會導致只有一方的文件不能被刪除

?


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10702

    瀏覽量

    209465
  • 計算機
    +關注

    關注

    19

    文章

    7175

    瀏覽量

    87175
  • 內(nèi)存
    +關注

    關注

    8

    文章

    2904

    瀏覽量

    73555
  • 計數(shù)器
    +關注

    關注

    32

    文章

    2241

    瀏覽量

    93984
收藏 人收藏

    評論

    相關推薦

    請問有沒有32可用的數(shù)據(jù)壓縮算法?

    了40M大小,手賤用rar壓縮了一下,3.2M!?。?,為了傳輸這40M的數(shù)據(jù)更改了工具的波特率和buffer,這樣就和公司老產(chǎn)品不兼容了,如果STM32能實現(xiàn)類似rar的數(shù)據(jù)壓縮算法
    發(fā)表于 12-19 08:57

    基于FPGA的高性能無損數(shù)據(jù)壓縮IP

    LZOAccel-CLZO Data Compression CoreLZOAccel-C是一個無損數(shù)據(jù)壓縮引擎的FPGA硬件實現(xiàn),兼容LZO 2.10標準。Core接收未壓縮的輸入數(shù)據(jù)塊,產(chǎn)生
    發(fā)表于 12-21 23:10

    MapReduce數(shù)據(jù)壓縮的基本原則

    黑猴子的家:MapReduce數(shù)據(jù)壓縮
    發(fā)表于 05-24 12:45

    【ELT.ZIP】OpenHarmony啃論文俱樂部——多層存儲分級數(shù)據(jù)壓縮

    HCompress方案,用更少的NVMe,較少的內(nèi)存占用,減少了大量總執(zhí)行時間, 有顯著的性能提升,與沒有壓縮的庫相比,最高可提高 8 倍,與其他壓縮庫相比,至少提高 1.72 倍。多層存儲對
    發(fā)表于 07-23 13:20

    【學習打卡】【ELT.ZIP】OpenHarmony啃論文俱樂部——多層存儲分級數(shù)據(jù)壓縮

    HCompress方案,用更少的NVMe,較少的內(nèi)存占用,減少了大量總執(zhí)行時間, 有顯著的性能提升,與沒有壓縮的庫相比,最高可提高 8 倍,與其他壓縮庫相比,至少提高 1.72 倍。多層存儲對
    發(fā)表于 07-23 13:26

    數(shù)據(jù)壓縮技術

    一、數(shù)據(jù)壓縮的必要性二、多媒體數(shù)據(jù)壓縮的可能性三、壓縮方案應滿足的要求四、編碼方案分類五、數(shù)據(jù)壓縮(編碼)的主要步驟六、一些基本的壓縮技術七
    發(fā)表于 03-25 13:19 ?35次下載

    傳真機的數(shù)據(jù)壓縮系統(tǒng)

    傳真機的數(shù)據(jù)壓縮系統(tǒng)         
    發(fā)表于 12-29 16:51 ?629次閱讀

    JPEG2000數(shù)據(jù)壓縮的FPGA實現(xiàn)

    高性能的數(shù)據(jù)壓縮可以有效的減少數(shù)據(jù)對存儲空間和通信帶寬的要求,降低通信成本。為解決圖像數(shù)據(jù)的高壓縮性能問題,本文提出了基于JPEG2000標準的數(shù)據(jù)
    發(fā)表于 04-16 10:39 ?47次下載
    JPEG2000<b class='flag-5'>數(shù)據(jù)壓縮</b>的FPGA實現(xiàn)

    JAVA教程之數(shù)據(jù)壓縮與傳輸

    JAVA教程之數(shù)據(jù)壓縮與傳輸,很好的JAVA的資料,快來學習吧
    發(fā)表于 04-11 17:28 ?10次下載

    小波算法在監(jiān)測數(shù)據(jù)壓縮中的應用

    小波算法在監(jiān)測數(shù)據(jù)壓縮中的應用
    發(fā)表于 02-07 18:22 ?16次下載

    數(shù)據(jù)壓縮的重要性

    數(shù)據(jù)壓縮是指在不丟失有用信息的前提下,縮減數(shù)據(jù)量以減少存儲空間,提高其傳輸、存儲和處理效率,或按照一定的算法對數(shù)據(jù)進行重新組織,減少數(shù)據(jù)的冗余和存儲的空間的一種技術方法。
    的頭像 發(fā)表于 02-28 10:45 ?1.4w次閱讀

    數(shù)據(jù)壓縮算法計算步驟及過程

    一種非常簡單的壓縮方法是行程長度編碼,這種方法使用數(shù)據(jù)數(shù)據(jù)長度這樣簡單的編碼代替同樣的連續(xù)數(shù)據(jù),這是無損數(shù)據(jù)壓縮的一個實例。這種方法經(jīng)常用
    的頭像 發(fā)表于 02-28 10:51 ?1.2w次閱讀
    <b class='flag-5'>數(shù)據(jù)壓縮</b>算法計算步驟及過程

    有趣!史記:數(shù)據(jù)壓縮算法列傳

    簡單地說,如果沒有數(shù)據(jù)壓縮技術,我們就沒法用 WinRAR 為 Email 中的附件瘦身;如果沒有數(shù)據(jù)壓縮技術,市場上的數(shù)碼錄音筆就只能記錄不到20 分鐘的語音;如果沒有數(shù)據(jù)壓縮技術
    的頭像 發(fā)表于 11-11 15:21 ?670次閱讀

    內(nèi)存磁盤關系&amp;amp;數(shù)據(jù)壓縮(下)

    計算機中主要的存儲部分是 「內(nèi)存」 和 「磁盤」 。 「磁盤中存儲的程序,必須要加載到內(nèi)存后才能運行。在磁盤中保存的原始程序是無法直接運行的
    的頭像 發(fā)表于 03-31 16:21 ?1163次閱讀
    <b class='flag-5'>內(nèi)存</b>和<b class='flag-5'>磁盤</b>的<b class='flag-5'>關系</b>&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>數(shù)據(jù)壓縮</b>(下)

    高性能無損數(shù)據(jù)壓縮FPGA IP,LZO無損數(shù)據(jù)壓縮IP

    LZOAccel-C是一個無損數(shù)據(jù)壓縮引擎的FPGA硬件實現(xiàn),兼容LZO 2.10標準。 Core接收未壓縮的輸入數(shù)據(jù)塊,產(chǎn)生壓縮后的數(shù)據(jù)
    的頭像 發(fā)表于 01-25 13:39 ?375次閱讀
    高性能無損<b class='flag-5'>數(shù)據(jù)壓縮</b>FPGA IP,LZO無損<b class='flag-5'>數(shù)據(jù)壓縮</b>IP