主存儲器main memory[1][2],是用來存放計算機運行時隨時需要使用的程序和數據的存儲器[3],供中央處理器(CPU)隨機存取[1],並與其一起構成主機[2]。一切數據要被CPU操作都必須先裝入主存[1]。主存的工作速度較快,存儲容量較小,主要採用半導體存儲器[3]。目前大部分計算機系統的主存儲器主體為動態隨機存儲器(DRAM)[4],「主存儲器」乃至「存儲器」一詞有時特指DRAM[5];另外,靜態隨機存儲器(SRAM)與只讀存儲器ROM)等也可作主存儲器的一部分[2][4]。如果需要,可以將主存的內容傳輸到外部存儲器;一種常見的方法是通過稱為虛擬內存內存管理技術來實現這一點。

大多數半導體存儲器被組織成存儲單元,每個存儲單元存儲一個比特(0或1)。存儲器單元被分組為固定字長的(word),例如1、2、4、8、16、32、64或128位。每個字可以由N位的二進制地址訪問,從而可以在存儲器中存儲2N個字。

主存儲器類型

編輯

易失性存儲器

編輯

易失性存儲器是需要電力來維持存儲信息的計算機存儲器。大多數現代半導體易失性存儲器是靜態RAM(SRAM)或動態RAM(DRAM)。 DRAM在台式機系統內存中占主導地位。SRAM用於CPU緩存。SRAM也存在於需要很少內存的小型嵌入式系統中。

只要連接電源,SRAM就會保留其內容,並且可以使用更簡單的接口,但通常每比特使用六個晶體管。動態RAM在接口和控制方面更為複雜,需要定期刷新周期以防止丟失內容,但每比特只使用一個晶體管和一個電容器,使其能夠達到更高的密度和更低的每比特成本。[6][7][8]

非易失性存儲器

編輯

非易失性存儲器即使在沒有通電的情況下也可以保留所存儲的信息。只讀存儲器可以作為非易失性主存儲器。正在開發的非易失性存儲器技術包括鐵電隨機存取記憶體可編程金屬化單元自旋轉移矩存儲器等。

半易失性存儲器

編輯

第三類內存是半易失性的。該術語用於描述在斷電後具有一些有限的非易失性持續時間,但隨後數據最終丟失的存儲器。當使用半易失性存儲器時,一個典型的目標是提供與易失性存儲相關聯的高性能和耐久性,同時提供非易失性內存的一些優點。

管理

編輯

正確管理內存對於計算機系統正常運行至關重要。現代操作系統有複雜的系統來正確管理內存。不這樣做可能會導致錯誤或性能降低。

內存錯誤

編輯

內存管理不當是導致錯誤和安全漏洞的常見原因,包括以下類型:

  • 當程序向操作系統請求內存,但在處理完內存後再也不會返回內存時,就會發生內存泄漏。出現此錯誤的程序將逐漸需要越來越多的內存,直到操作系統內存耗盡。
  • 當程序試圖訪問它無權訪問的內存時,就會出現段錯誤。通常,這樣做的程序將被操作系統終止。
  • 當程序將數據寫入其分配空間的末尾,然後繼續將超出該末尾的數據寫入已分配用於其他目的的內存時,就會發生緩衝區溢出。這可能會導致程序行為不穩定,包括內存訪問錯誤、運行結果錯誤、崩潰或造成系統安全漏洞。緩衝區溢出是許多軟件漏洞的基礎,可以被惡意利用。[9]

虛擬內存

編輯

虛擬內存(英語:Virtual memory)是計算機系統內存管理的一種技術。它使得應用程序認為它擁有連續可用的內存(一個連續完整的地址空間),而實際上物理內存通常被分隔成多個內存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。與沒有使用虛擬內存技術的系統相比,使用這種技術使得大型程序的編寫變得更容易,對真正的物理內存(例如RAM)的使用也更有效率。此外,虛擬內存技術可以使多個進程共享同一個運行庫,並通過分割不同進程的內存空間來提高系統的安全性。

記憶體保護

編輯

記憶體保護(英語:Memory protection)是作業系統電腦上的記憶體進行存取權限管理的一個機制。記憶體保護的主要目的是防止某個進程去存取不是作業系統配置給它的定址空間。這個機制可以防止某個進程,因為某些程序錯誤或問題,而有意或無意地影響到其他進程或是作業系統本身的運行狀態和數據。

參見

編輯

參考資料

編輯
  1. ^ 1.0 1.1 1.2 全國科學技術名詞審定委員會,審定.計算機科學技術名詞 [M]. 3版.北京:科學出版社, 2018: 121. 科學文庫.
  2. ^ 2.0 2.1 2.2 教育部教育考試院.全國計算機等級考試二級教程:公共基礎知識 [M].北京:高等教育出版社, 2022 (2023): 3-9.
  3. ^ 3.0 3.1 內存儲器 [DB/OL] [2024] // 陳至立辭海. 7版網絡版.上海:上海辭書出版社, 2020.
  4. ^ 4.0 4.1 蔡尚銘.主存儲器 [DB/OL].胡偉武,安虹,肖利民,等編 (2022-12-23) [2024] // 陳奎元中國大百科全書. 3版網絡版.北京:中國大百科全書出版社.
  5. ^ 邱鵬飛.存儲器 [DB/OL].胡偉武,安虹,肖利民,等編 (2022-12-23) [2024] // 陳奎元中國大百科全書. 3版網絡版.北京:中國大百科全書出版社.
  6. ^ Hemmendinger, David. Computer memory. Encyclopedia Britannica. February 15, 2016 [16 October 2019]. 
  7. ^ The DRAM memory of Robert Dennard history-computer.com
  8. ^ Stanek, William R. Windows Server 2008 Inside Out. O'Reilly Media, Inc. 2009: 1520 [2012-08-20]. ISBN 978-0-7356-3806-8. (原始內容存檔於2013-01-27). [...] Windows Server Enterprise supports clustering with up to eight-node clusters and very large memory (VLM) configurations of up to 32 GB on 32-bit systems and 2 TB on 64-bit systems. 
  9. ^ An Overview and Example of the Buffer-Overflow Exploit. (PDF).