數(shù)據(jù)存儲內(nèi)存管理:優(yōu)化計算機內(nèi)存
2019/9/3 14:58:45
大多數(shù)計算和存儲部署如今面臨的情況是,計算機內(nèi)存空間都受到了上限的限制?,F(xiàn)代系統(tǒng)的資源可能并不像內(nèi)存那樣受到限制,但操作系統(tǒng)、應(yīng)用程序和存儲設(shè)備總是需要采用更多的內(nèi)存。但內(nèi)存空間并不是無限的,在某些時候?qū)耆谋M,這會導(dǎo)致系統(tǒng)不穩(wěn)定或數(shù)據(jù)丟失。 自從現(xiàn)代IT出現(xiàn)以來,內(nèi)存空間耗盡的挑戰(zhàn)已由多種功能進行處理,通常都歸入內(nèi)存管理的內(nèi)容,以下對內(nèi)存管理的內(nèi)容進行概述。 什么是內(nèi)存管理? 內(nèi)存管理就是要確保有盡可能多的可用內(nèi)存空間來執(zhí)行新的程序、數(shù)據(jù)和進程。由于現(xiàn)代操作系統(tǒng)的多個部分使用內(nèi)存,因此內(nèi)存分配和內(nèi)存管理可以采取不同的形式。 •操作系統(tǒng)—Windows和Linux等操作系統(tǒng)可以利用物理內(nèi)存和硬盤交換空間來管理可用內(nèi)存的內(nèi)存池。 •編程語言—C語言要求開發(fā)人員直接管理內(nèi)存利用率,而其他語言(如Java和C#)則提供自動內(nèi)存管理。 •應(yīng)用程序—應(yīng)用程序使用和管理內(nèi)存,但通常受到基礎(chǔ)語言和操作系統(tǒng)定義的內(nèi)存管理功能的限制。 •存儲內(nèi)存管理—借助新的NVMe存儲驅(qū)動器,操作系統(tǒng)可以從更快的存儲驅(qū)動器中受益,以幫助擴展和實現(xiàn)更持久的內(nèi)存管理形式。 為了有效處理,計算機的內(nèi)存管理功能必須位于硬件和操作系統(tǒng)之間。 內(nèi)存管理如何工作 內(nèi)存管理是關(guān)于有限物理資源的分配和優(yōu)化。例如,2GB RAM DIMM不能用作一大塊空間。而是使用存儲器分配技術(shù)將內(nèi)存劃分成可用的存儲器高速緩存塊。 操作系統(tǒng)或應(yīng)用程序中的內(nèi)存管理策略通常涉及了解內(nèi)存中可用的物理地址空間,并執(zhí)行內(nèi)存分配以從內(nèi)存地址空間正確放置、移動、刪除進程。 內(nèi)存地址的類型 操作系統(tǒng)中的靜態(tài)和動態(tài)內(nèi)存分配鏈接到不同類型的內(nèi)存地址。從根本上說,有兩種核心類型的內(nèi)存地址: •物理地址—是指系統(tǒng)內(nèi)存中的存儲位置,標(biāo)識為一組數(shù)字。 •邏輯地址—有時也稱為虛擬內(nèi)存,邏輯地址是操作系統(tǒng)和應(yīng)用程序訪問執(zhí)行代碼的內(nèi)容,作為物理地址空間的抽象。 內(nèi)存管理單元(MMU)如何將虛擬地址轉(zhuǎn)換為物理地址? 計算系統(tǒng)內(nèi)的存儲器管理單元(MMU)是將虛擬邏輯地址空間轉(zhuǎn)換為物理地址的核心硬件組件。存儲器管理單元(MMU)通常是物理硬件,有時也稱為分頁存儲器管理單元(PMMU)。 存儲器管理單元(MMU)將虛擬地址轉(zhuǎn)換為物理地址的過程稱為虛擬地址轉(zhuǎn)換,并使用頁面目錄指針表(PDPT)將一種地址類型轉(zhuǎn)換為另一種地址類型。 該過程直接與頁表分配相關(guān)聯(lián),將一種地址類型匹配和管理到另一種地址類型。為了幫助加速虛擬地址轉(zhuǎn)換,有一種稱為轉(zhuǎn)換后備緩沖區(qū)(TLB)的緩存機制,它也是物理地址轉(zhuǎn)換過程的虛擬地址的一部分。 內(nèi)存分配:靜態(tài)加載與動態(tài)加載 應(yīng)用程序和數(shù)據(jù)可以通過多種不同方式加載到內(nèi)存中,兩種核心方法是靜態(tài)加載和動態(tài)加載。 •靜態(tài)加載—代碼在執(zhí)行之前加載到內(nèi)存中。用于結(jié)構(gòu)化編程語言,其中包括C語言。 •動態(tài)加載—根據(jù)需要將代碼加載到內(nèi)存中。用于面向?qū)ο蟮木幊陶Z言,例如Java語言。 內(nèi)存碎片 當(dāng)在系統(tǒng)中分配內(nèi)存時,并非所有可用內(nèi)存總是以線性方式使用,這可能導(dǎo)致碎片化。 內(nèi)存碎片有兩種核心類型:內(nèi)部碎片和外部碎片 •內(nèi)部碎片—內(nèi)存分配給進程或應(yīng)用程序,未使用、未分配或碎片化的內(nèi)存。 •外部碎片—當(dāng)分配內(nèi)存然后釋放時,可能會有較小的內(nèi)存剩余空間,留下不適合其他進程的內(nèi)存漏洞或“碎片”。 分頁 在邏輯地址空間內(nèi),虛擬內(nèi)存使用分頁進行劃分,這意味著它被分為固定的內(nèi)存單元,稱為頁面。頁面可以具有不同的大小,具體取決于底層系統(tǒng)體系結(jié)構(gòu)和操作系統(tǒng)。頁面管理過程可能非常復(fù)雜。 •有關(guān)如何在Linux中處理分頁的更多信息
下一頁
返回列表
返回首頁
©2025 智能硬件世界----智能硬件產(chǎn)業(yè)門戶網(wǎng)站 電腦版
Powered by iwms
辽源市|
桐柏县|
讷河市|
金阳县|
广安市|
信丰县|
渝中区|
林西县|
仙桃市|
都匀市|
广昌县|
定兴县|
铜陵市|
平罗县|
蒙山县|
建湖县|
蒲城县|
金华市|
中宁县|
枞阳县|
滁州市|
莲花县|
延安市|
息烽县|
赞皇县|
临夏县|
昌都县|
宣威市|
监利县|
平和县|
揭阳市|
临猗县|
桓台县|
阿克陶县|
和龙市|
无棣县|
旬阳县|
南昌县|
石楼县|
共和县|
大邑县|