內(nèi)存治理的概念

內(nèi)存治理(Memory Management)是操作零碎設(shè)計(jì)中最主要和最復(fù)雜的內(nèi)容之一。固然盤算機(jī)硬件不斷在飛速開展,內(nèi)存容量也在不時(shí)增加,然則依然弗成能將一切用戶過程和零碎所需求的全體程序和數(shù)據(jù)放入主存中,所以操作零碎必需將內(nèi)存空間停止合理地劃分和無效地震態(tài)分派。操作零碎對(duì)內(nèi)存的劃分和靜態(tài)分派,就是內(nèi)存治理的概念。
無效的內(nèi)存治理在多道程序設(shè)計(jì)中十分主要,不只便利用戶運(yùn)用存儲(chǔ)器、進(jìn)步內(nèi)存應(yīng)用率,還可以經(jīng)過虛擬技巧從邏輯上擴(kuò)大存儲(chǔ)器。
內(nèi)存治理的功用有:

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)西工,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

  • 內(nèi)存空間的分派與收受接管:由操作零碎完成主存儲(chǔ)器空間的分派和治理,使程序員解脫存儲(chǔ)分派的費(fèi)事,進(jìn)步編程效力。

  • 地址轉(zhuǎn)換:在多道程序情況下,程序中的邏輯地址與內(nèi)存中的物理地址弗成能分歧,因而存儲(chǔ)治理必需供給地址變換功用,把邏輯地址轉(zhuǎn)換成響應(yīng)的物理地址。

  • 內(nèi)存空間的擴(kuò)大:應(yīng)用虛擬存儲(chǔ)技巧或主動(dòng)掩蓋技巧,從邏輯上擴(kuò)大內(nèi)存。

  • 存儲(chǔ)維護(hù):包管各道功課在各自的存儲(chǔ)空間內(nèi)運(yùn)轉(zhuǎn),.互不攪擾。


在停止詳細(xì)的內(nèi)存治理之前,需求理解過程運(yùn)轉(zhuǎn)的根本道理和請(qǐng)求。

程序裝入和鏈接

創(chuàng)立過程起首要將程序和數(shù)據(jù)裝入內(nèi)存。將用戶源程序變?yōu)榭稍趦?nèi)存中履行的程序,平日需求以下幾個(gè)步調(diào):

  • 編譯:由編譯程序?qū)⒂脩粼创a編譯成若干個(gè)目的模塊。

  • 鏈接:由鏈接程序?qū)⒕幾g后構(gòu)成的一組目的模塊,以及所需庫(kù)函數(shù)鏈接在一同,構(gòu)成一個(gè)完好的裝入模塊。

  • 裝入:由裝入程序?qū)⒀b入模塊裝入內(nèi)存運(yùn)轉(zhuǎn)。


這三步進(jìn)程如圖3-1所示。

內(nèi)存治理的概念
圖3-1  對(duì)用戶程序的處置步調(diào)


程序的鏈接有以下三種方法:

  • 靜態(tài)鏈接:在程序運(yùn)轉(zhuǎn)之前,先將各目的模塊及它們所需的庫(kù)函數(shù)鏈接成一個(gè)完好的可履行程序,今后不再拆開。

  • 裝入時(shí)靜態(tài)鏈接:將用戶源程序編譯后所失掉的一組目的模塊,在裝入內(nèi)存時(shí),釆用邊裝入邊鏈接的鏈接方法。

  • 運(yùn)轉(zhuǎn)時(shí)靜態(tài)鏈接:對(duì)某些目的模塊的鏈接,是在程序履行中需求該目的模塊時(shí),才對(duì)它停止的鏈接。其長(zhǎng)處是便于修正和更新,便于完成對(duì)目的模塊的共享。


內(nèi)存的裝入模塊在裝入內(nèi)存時(shí),異樣有以下三種方法:
1) 相對(duì)裝入。在編譯時(shí),假如曉得程序?qū)Ⅰv留在內(nèi)存的某個(gè)地位,編譯程序?qū)l(fā)生相對(duì)地址的目的代碼。相對(duì)裝入程序依照裝入模塊中的地址,將程序和數(shù)據(jù)裝入內(nèi)存。因?yàn)槌绦蛑械倪壿嫷刂放c實(shí)踐內(nèi)存地址完整相反,故不需對(duì)程序和數(shù)據(jù)的地址停止修正。
相對(duì)裝入方法只實(shí)用于單道程序情況。別的,程序中所運(yùn)用的相對(duì)地址,可在編譯或匯編時(shí)給出,也可由程序員直接付與。而平日狀況下在程序中釆用的是符號(hào)地址,編譯或匯編時(shí)再轉(zhuǎn)換為相對(duì)地址。
2) 可重定位裝入。在多道程序情況下,多個(gè)目的模塊的肇端地址平日多是從0開端,程序中的其他地址多是絕對(duì)于肇端地址的,此時(shí)應(yīng)釆用可重定位裝入方法。依據(jù)內(nèi)存的以后狀況,將裝入模塊裝入到內(nèi)存的恰當(dāng)?shù)匚?。裝入時(shí)對(duì)目的程序中指令和數(shù)據(jù)的修正進(jìn)程稱為重定位,地址變換平日是在裝入時(shí)一次完成的,所以又稱為靜態(tài)重定位,如圖3-2(a) 所示。

內(nèi)存治理的概念
圖3-2  重定向類型


靜態(tài)重定位的特色是在一個(gè)功課裝入內(nèi)存時(shí),必需分派其請(qǐng)求的全體內(nèi)存空間,假如沒有足夠的內(nèi)存,就不克不及裝入該功課。此外,功課一旦進(jìn)入內(nèi)存后,在全部運(yùn)轉(zhuǎn)時(shí)期不克不及在內(nèi)存中挪動(dòng),也不克不及再請(qǐng)求內(nèi)存空間。
3) 靜態(tài)運(yùn)轉(zhuǎn)古裝入,也稱為靜態(tài)重定位,程序在內(nèi)存中假如發(fā)作挪動(dòng),就需求釆用靜態(tài)的裝入方法。裝入程序在把裝入模塊裝入內(nèi)存后,并不立刻把裝入模塊中的絕對(duì)地址轉(zhuǎn)換為相對(duì)地址,而是把這種地址轉(zhuǎn)換推延到程序真正要履行時(shí)才停止。因而,裝入內(nèi)存后的一切地址均為絕對(duì)地址。這種方法需求一個(gè)重定位存放器的支撐,如圖3-2(b)所示。
靜態(tài)重定位的特色是可以將程序分派到不延續(xù)的存儲(chǔ)區(qū)中;在程序運(yùn)轉(zhuǎn)之前可以只裝入它的局部代碼即可投入運(yùn)轉(zhuǎn),然后在程序運(yùn)轉(zhuǎn)時(shí)期,依據(jù)需求靜態(tài)請(qǐng)求分派內(nèi)存;便于程序段的共享,可以向用戶供給一個(gè)比存儲(chǔ)空間大得多的地址空間。

邏輯地址空間與物理地址空間

編譯后,每一個(gè)目的模塊多是從0號(hào)單位開端編址,稱為該目的模塊的絕對(duì)地址(或邏輯地址)。當(dāng)鏈接程序?qū)⒏鱾€(gè)模塊鏈接成一個(gè)完好的可履行目的程序時(shí),鏈接程序次序順次按各個(gè)模塊的絕對(duì)地址組成一致的從0號(hào)單位開端編址的邏輯地址空間。用戶程序和程序員只需曉得邏輯地址,而內(nèi)存治理的詳細(xì)機(jī)制則是完整通明的,它們只要零碎編程人員才會(huì)觸及。分歧過程可以有相反的邏輯地址,由于這些相反的邏輯地址可以映射到主存的分歧地位。
物理地址空間是指內(nèi)存中物理單位的聚集,它是地址轉(zhuǎn)換的最終地址,過程在運(yùn)轉(zhuǎn)時(shí)履行指令和拜訪數(shù)據(jù)最初都要經(jīng)過物理地址從主存中存取。當(dāng)裝入程序?qū)⒖陕男写a裝入內(nèi)存時(shí),必需經(jīng)過地址轉(zhuǎn)換將邏輯地址轉(zhuǎn)換成物理地址,這個(gè)進(jìn)程稱為地址重定位。

內(nèi)存維護(hù)

內(nèi)存分派前,需求維護(hù)操作零碎不受用戶過程的影響,同時(shí)維護(hù)用戶過程不受其他用戶過程的影響。經(jīng)過釆用重定位存放器和界地址存放器來完成這種維護(hù)。重定位存放器含最小的物理地址值,界地址存放器含邏輯地址值。每一個(gè)邏輯地址值必需小于界地址存放器;內(nèi)存治理機(jī)構(gòu)靜態(tài)地將邏輯地址與界地址存放器停止比擬,假如未發(fā)作地址越界,則加上重定位存放器的值后映射成物理地址,再送交內(nèi)存單位,如圖3-3所示。
當(dāng)CPU調(diào)劑程序選擇過程履行時(shí),差遣程序會(huì)初始化重定位存放器和界地址存放器。每個(gè)邏輯地址都需求與這兩個(gè)存放器停止查對(duì),以包管操作零碎和其他用戶程序及數(shù)據(jù)不被該過程的運(yùn)轉(zhuǎn)所影響。

內(nèi)存治理的概念
圖3-3  重定位和界地址存放器的硬件支撐

分享題目:內(nèi)存治理的概念
文章源于:http://bm7419.com/article16/jdejdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、微信公眾號(hào)企業(yè)建站、、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)