㈠ 內存分為幾類
內存分為基本內存、保留內存、上位內存、高端內存、擴充內存和擴展內存六大類。
1、基本內存
指手機自身所帶的內存,區別於外插的各種內存卡。如一台手機它的手機內存有60M,但它插有一個1G的存儲卡,那麼它的基本內存為60M。也用於指一些品牌電腦所帶有的內存容量。
2、保留內存
一般占據640KB~1024KB地址空間。分配給顯示緩沖存儲器、各適配卡上的ROM和系統ROM BIOS,剩餘空間可作上位內存UMB。UMB的物理存儲器取自物理擴展存儲器。此范圍的物理RAM可作為Shadow RAM使用。
3、上位內存
是常規內存上面一層的內存,又稱之為DOS高端內存(地址為0A0000H~0FFFFFH)。利用保留內存中未分配使用的地址空間建立,其物理存儲器由物理擴展存儲器取得。
4、高端內存
擴展內存中的第一個64KB區域(1024KB~1088KB)。由HIMEM.SYS建立和管理。
5、擴充內存
是一種早期的增加內存的標准,最多可擴充到32M。使用擴充內存必須在計算機中安裝專門的擴充內存板,而且還要安裝管理擴充內存板的管理程序。
6、擴展內存
在386以上檔次的微機中,有兩種存儲器工作方式,一種稱為實地址方式或實方式,另一種稱為保護方式。在實方式下,物理地址仍使用20位,所以最大定址空間為1MB,以便與8086兼容。保護方式採用32位物理地址,定址范圍可達4GB。
㈡ C語言各種數據在內存中的分配方式,分別對程序的運行效率有哪些影響
從另一個角度,從變數值存在的作時間(即生存期)角度來分,可以分為靜態存儲方式
和動態存儲方式。
靜態存儲方式:是指在程序運行期間分配固定的存儲空間的方式。
動態存儲方式:是在程序運行期間根據需要進行動態的分配存儲空間的方式。
㈢ 對空閑磁碟空間的管理常用哪幾種分配方法在unix系統中是採用何種分配方式
空白文件目錄是管理磁碟空間的一種方法,該方法將文件存儲設備上的每個連續空閑區看作一個空白文件.系統為所有空白文件單獨建立一個目錄,每個空白文件在這個目錄中佔一個表目.表目的內容至少包括第一個空白塊的地址(物理塊號),空白塊的數目. 位示圖是另一種常用的管理磁碟空間的方法,該方法通過建立一張位示圖來反映整個存儲空間的分配情況.其中,每一個二進制位都對應一個物理塊,當某位為l時表示該塊已分配,當某位為0時表示該塊空閑. 網上的資料
㈣ 運行時環境中存儲分配策略包括
程序運行時的內存分配有三種策略,分別是靜態的,棧式的,和堆式的.
靜態存儲分配是指在編譯時就能確定每個數據目標在運行時刻的存儲空間需求,因而在編譯時就可以給他們分配固定的內存空間.這種分配策略要求程序代碼中不允許有可變數據結構(比如可變數組)的存在,也不允許有嵌套或者遞歸的結構出現,因為它們都會導致編譯程序無法計算準確的存儲空間需求.
棧式存儲分配也可稱為動態存儲分配,是由一個類似於堆棧的運行棧來實現的.和靜態存儲分配相反,在棧式存儲方案中,程序對數據區的需求在編譯時是完全未知的,只有到運行的時候才能夠知道,但是規定在運行中進入一個程序模塊時,必須知道該程序模塊所需的數據區大小才能夠為其分配內存.和我們在數據結構所熟知的棧一樣,棧式存儲分配按照先進後出的原則進行分配。
靜態存儲分配要求在編譯時能知道所有變數的存儲要求,棧式存儲分配要求在過程的入口處必須知道所有的存儲要求,而堆式存儲分配則專門負責在編譯時或運行時模塊入口處都無法確定存儲要求的數據結構的內存分配,比如可變長度串和對象實例.堆由大片的可利用塊或空閑塊組成,堆中的內存可以按照任意順序分配和釋放.
㈤ 內存的分配方式有哪幾種
內存的三種分配方式:
1. 從靜態存儲區分配:此時的內存在程序編譯的時候已經分配好,並且在程序的整個運行期間都存在。全局變數,static變數等在此存儲。
2. 在棧區分配:相關代碼執行時創建,執行結束時被自動釋放。局部變數在此存儲。棧內存分配運算內置於處理器的指令集中,效率高,但容量有限。
3. 在堆區分配:動態分配內存。用new/malloc時開辟,delete/free時釋放。生存期由用戶指定,靈活。但有內存泄露等問題。
常見內存錯誤及對策
1. 內存分配未成功,卻被使用。
對策:使用內存之前檢查是否分配成功。用p!=NULL判斷。
2. 內存分配成功,未初始化就被使用。
內存的預設值沒有統一的標准。大部分編譯器以0作為初始值,但不完全是。
對策:內存初始化時賦初值。
3. 內存操作越界。
對策:只能是小心了。
4. 釋放了內存,仍然使用。
(1) 使用顯示delete和free的野指針。
對策:釋放完內存,將指針置為NULL。
(2) 使用隱式delete和free的野指針。主要是指函數返回指向棧內存的指針或引用。
對策:當然是不要返回就可以了。
5. 未釋放內存,導致內存泄露。
用new/malloc開辟了內存,沒用delete/free釋放.
對策:new和delete的個數一定相同;malloc和free的個數一定相同;new[]和[]delete一定對應。
㈥ 內存的分配方式有幾種
內存的三種分配方式:
1.
從靜態存儲區分配:此時的內存在程序編譯的時候已經分配好,並且在程序的整個運行期間都存在。全局變數,static變數等在此存儲。
2.
在棧區分配:相關代碼執行時創建,執行結束時被自動釋放。局部變數在此存儲。棧內存分配運算內置於處理器的指令集中,效率高,但容量有限。
3.
在堆區分配:動態分配內存。用new/malloc時開辟,delete/free時釋放。生存期由用戶指定,靈活。但有內存泄露等問題。
常見內存錯誤及對策
1.
內存分配未成功,卻被使用。
對策:使用內存之前檢查是否分配成功。用p!=NULL判斷。
2.
內存分配成功,未初始化就被使用。
內存的預設值沒有統一的標准。大部分編譯器以0作為初始值,但不完全是。
對策:內存初始化時賦初值。
3.
內存操作越界。
對策:只能是小心了。
4.
釋放了內存,仍然使用。
(1)
使用顯示delete和free的野指針。
對策:釋放完內存,將指針置為NULL。
(2)
使用隱式delete和free的野指針。主要是指函數返回指向棧內存的指針或引用。
對策:當然是不要返回就可以了。
5.
未釋放內存,導致內存泄露。
用new/malloc開辟了內存,沒用delete/free釋放.
對策:new和delete的個數一定相同;malloc和free的個數一定相同;new[]和[]delete一定對應。
㈦ 文件系統中分配存儲空間的基本單位是什麼
以塊為單位進行的。
為了提高存儲空間的利用率,對存儲空間的分配,通常是採用離散分配方式,以減少外存零頭,並以盤塊為基本分配單位。盤塊的大小通常為 1~8KB。
文件系統中,用於文件的描述和控制並與文件一一對應的是文件控制塊。文件存儲空間的管理就是塊空間的管理,包括空閑塊的分配、回收和組織等幾個問題。
(7)必然存儲空間分配方式擴展閱讀:
位示圖是利用二進制的一位來表示磁碟中一個盤塊的使用情況。當其值為「0」時,表示對應的盤塊空閑;為「1」時,表示已分配。有的系統把「0」作為盤塊已分配的標志,把「1」作為空閑標志。(它們在本質上是相同的,都是用一位的兩種狀態來標志空閑和已分配兩種情況。)
磁碟上的所有盤塊都有一個二進制位與之對應,這樣,由所有盤塊所對應的位構成一個集合,稱為位示圖。通常可用 m × n 個位數來構成位示圖,並使 m × n 等於磁碟的總塊數。位示圖也可描述為一個二維數組 map:Var map: array of bit;