日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]內(nèi)存的分配和回收內(nèi)存的分配是為進(jìn)入系統(tǒng)準(zhǔn)備運(yùn)行的程序分配內(nèi)存空間,內(nèi)存的回收是當(dāng)程序運(yùn)行完成后回收所占用的空間,系統(tǒng)為了完成這個(gè)功能,必須跟蹤記錄內(nèi)存空間的使用情況,按照一定的算法為進(jìn)程分配和回收空間

內(nèi)存的分配和回收

內(nèi)存的分配是為進(jìn)入系統(tǒng)準(zhǔn)備運(yùn)行的程序分配內(nèi)存空間,內(nèi)存的回收是當(dāng)程序運(yùn)行完成后回收所占用的空間,系統(tǒng)為了完成這個(gè)功能,必須跟蹤記錄內(nèi)存空間的使用情況,按照一定的算法為進(jìn)程分配和回收空間。

分配存儲(chǔ)方案的因素:

存儲(chǔ)空間的描述結(jié)構(gòu):系統(tǒng)采用某種數(shù)據(jù)結(jié)構(gòu)登記當(dāng)前的內(nèi)存使用情況以及空閑區(qū)的分布情況,供存儲(chǔ)分配使用。每次分配回收要修改這些數(shù)據(jù)。

分配的策略:確定安裝內(nèi)存的分配和回收算法,好的算法既能滿足進(jìn)程運(yùn)行需要,又能充分利用內(nèi)存空間。

存儲(chǔ)地址變換 用戶編程的時(shí)候無(wú)法預(yù)知確定程序在內(nèi)存的位置,只能采用邏輯地址編程,程序運(yùn)行的時(shí)候把程序的邏輯地址轉(zhuǎn)換為實(shí)際地址,由內(nèi)存管理模塊與硬件的地址變換機(jī)構(gòu)共同完成。 1.符合地址 高級(jí)語(yǔ)言編程使用符號(hào)名,比如函數(shù)名,變量名語(yǔ)句標(biāo)號(hào)來(lái)表示操作對(duì)象或者轉(zhuǎn)移的地址,高級(jí)語(yǔ)言使用的空間是符合地址 2.邏輯地址 編譯程序?qū)⒃创a的語(yǔ)句逐條翻譯為機(jī)器指令,為每個(gè)變量分配存儲(chǔ)單元,并利用存儲(chǔ)單元地址替換變量名,這些指令和數(shù)據(jù)順序存放在一起,從0開(kāi)始編排地址,形成目標(biāo)代碼,目標(biāo)代碼所占據(jù)的地址范圍稱為邏輯地址空間,范圍0~n-1,n是目標(biāo)代碼長(zhǎng)度,邏輯地址空間的地址稱為邏輯地址或者相對(duì)地址。 3.物理地址 物理內(nèi)存由一系列的內(nèi)存單元組成,這些內(nèi)存單元從0開(kāi)始按字節(jié)編址,稱為內(nèi)存地址,當(dāng)目標(biāo)程序加載到內(nèi)存里時(shí)候,所占據(jù)的實(shí)際內(nèi)存空間就是它的物理存儲(chǔ)空間,物理空間不會(huì)從0開(kāi)始,因?yàn)閮?nèi)存的低端地址通常被操作系統(tǒng)占據(jù),對(duì)比下圖可以理解。邏輯地址空間i的地址是96,真正的物理內(nèi)存空間時(shí)1120.

現(xiàn)在程序地址的變換采用的是動(dòng)態(tài)變換,程序裝入內(nèi)存的是不進(jìn)行變換,在執(zhí)行過(guò)程遇到邏輯地址,地址變換機(jī)構(gòu)進(jìn)行地址轉(zhuǎn)換,然后再執(zhí)行指令,特點(diǎn)是程序在內(nèi)存中可移動(dòng),可共享。
內(nèi)存保護(hù) 1.雖然內(nèi)存的容量不斷提高,對(duì)應(yīng)用來(lái)說(shuō)還是不足,擴(kuò)充存儲(chǔ)器空間的基本思想是借用外來(lái)存儲(chǔ)空間擴(kuò)展內(nèi)存空間,方法是先讓程序的部分代碼進(jìn)入內(nèi)存,其他放在外存,需要的時(shí)候再調(diào)入內(nèi)存。實(shí)現(xiàn)方式有三種 1.覆蓋技術(shù) 將程序分為幾個(gè)模塊,重要的先進(jìn)入內(nèi)存,不重要的等需要的時(shí)候再進(jìn)入,不重要的共享一些內(nèi)存空間,用的時(shí)候覆蓋掉某個(gè)暫時(shí)不用的塊。缺點(diǎn)是編程的時(shí)候必須對(duì)程序進(jìn)行模塊劃分,復(fù)雜。不好 2.交換技術(shù) 多個(gè)程序并發(fā)執(zhí)行的時(shí)候,往往有些程序因?yàn)榈却硞€(gè)事件暫時(shí)不能運(yùn)行,如果將暫時(shí)不執(zhí)行的程序放入外存,和覆蓋不一樣的是交換技術(shù)是以進(jìn)程為單位的,優(yōu)點(diǎn)是增加了程序并發(fā)的程序數(shù)目,對(duì)程序結(jié)構(gòu)沒(méi)有要求,缺點(diǎn)是對(duì)整個(gè)進(jìn)程換入換出操作浪費(fèi)很多時(shí)間。 3.虛擬存儲(chǔ)器
以上兩種內(nèi)存擴(kuò)充技術(shù)都不是虛擬存儲(chǔ)技術(shù),在編程人眼中,看到的還是實(shí)際內(nèi)存的大小,虛擬存儲(chǔ)技術(shù)原理是將程序的部分代碼調(diào)入內(nèi)存,其余駐留在外存,需要時(shí)候調(diào)入,程序的代碼的換入換出完全由系統(tǒng)完成,用戶看到的是一個(gè)比實(shí)際內(nèi)存大得多的內(nèi)存。
程序局部性原理 實(shí)驗(yàn)證明,程序運(yùn)行的過(guò)程中,CPU不是隨機(jī)的訪問(wèn)整個(gè)程序或者數(shù)據(jù)范圍,而是在一個(gè)時(shí)間段內(nèi)只集中訪問(wèn)程序或數(shù)據(jù)范圍,這種特性稱為局部性原理,局部性原理表明在進(jìn)程運(yùn)行的某個(gè)較短的時(shí)間內(nèi)進(jìn)程地址空間只有部分是活動(dòng)的,其余處于不活動(dòng)狀態(tài),可能長(zhǎng)時(shí)間不會(huì)用到比如初始化和終止代碼,也可能根本不會(huì)用到,比如錯(cuò)誤處理代碼。它們完全沒(méi)有必要在內(nèi)存駐留,只有當(dāng)需要的時(shí)候在被調(diào)入內(nèi)存,可見(jiàn)局部性使得虛擬存儲(chǔ)成為可能。 虛擬存儲(chǔ)器原理 利用外存模擬內(nèi)存,在外存開(kāi)辟一個(gè)大的存儲(chǔ)空間,叫做交換區(qū),進(jìn)程啟動(dòng)后部分代碼進(jìn)入內(nèi)存,其余的留在外存交換區(qū),需要時(shí)候調(diào)入,和覆蓋不一樣的是覆蓋是用戶有意識(shí)的進(jìn)行,看到的內(nèi)存大小還是原來(lái)內(nèi)存大小,虛擬存儲(chǔ)技術(shù)里,內(nèi)存和交換空間之間的交換完全是系統(tǒng)動(dòng)態(tài)完成,應(yīng)用程序不會(huì)發(fā)覺(jué),進(jìn)程看到的是一個(gè)比實(shí)際內(nèi)存大得多的虛擬內(nèi)存。與交換技術(shù)不同的是交換是以進(jìn)程為單位,進(jìn)程映像大小受實(shí)際內(nèi)存的限制,虛擬存儲(chǔ)進(jìn)程的邏輯空間可以超越實(shí)際內(nèi)存容量的限制。
讀寫(xiě)硬盤(pán)速度慢,訪問(wèn)虛擬存儲(chǔ)器速度比訪問(wèn)真正的內(nèi)存慢,以時(shí)間換空間,虛擬存儲(chǔ)器大小也受到地址寄存器位數(shù)限制。32位計(jì)算機(jī),可訪問(wèn)內(nèi)存的上限是4GB。
虛擬存儲(chǔ)器的實(shí)現(xiàn)技術(shù) 有虛擬頁(yè)和虛擬段存儲(chǔ)
下面介紹虛擬頁(yè)存儲(chǔ) VM系統(tǒng)將虛擬存儲(chǔ)器劃分為虛擬頁(yè),固定大小處理數(shù)據(jù),類似的物理存儲(chǔ)器也分割為物理頁(yè),大小一樣。

MMU利用頁(yè)表實(shí)現(xiàn)對(duì)虛擬內(nèi)存的管理,CPU里面的虛擬基址寄存器指向當(dāng)前的頁(yè)表,n位虛擬地址包含兩個(gè)部分,一個(gè)是p為的虛擬地址偏移,一個(gè)是n-p位的虛擬頁(yè)號(hào),MMU利用虛擬頁(yè)號(hào)選擇適當(dāng)?shù)捻?yè)表項(xiàng),比如VPN0對(duì)應(yīng)PTE0,依次類推,如果沒(méi)有發(fā)生缺頁(yè)異常,就可以根據(jù)根據(jù)PTE里面的物理頁(yè)號(hào)和虛擬偏移量組合得到的物理地址。因?yàn)槲锢眄?yè)的大小和虛擬頁(yè)一樣,所以偏移量也正好相當(dāng)。

頁(yè)表命中過(guò)程 處理器生成一個(gè)虛擬的地址,傳送給MMUMMU生成PTE地址,并從高速緩存或者主存請(qǐng)求得到它高速緩存或者主存向MMU返回PTEMMU構(gòu)造物理地址,并把它發(fā)送給主存或者高速緩沖高速緩存或者主存把返回請(qǐng)求的數(shù)據(jù)返回給處理器
頁(yè)表不命中過(guò)程 處理器生成一個(gè)虛擬的地址,傳送給MMUMMU生成PTE地址,并從高速緩存或者主存請(qǐng)求得到它高速緩存或者主存向MMU返回PTE因?yàn)镻TE的有效位是0,觸發(fā)異常,進(jìn)行異常處理缺頁(yè)處理程序從主存確定一個(gè)要犧牲的頁(yè),如果這個(gè)頁(yè)被修改了,就把它重寫(xiě)回磁盤(pán)。缺頁(yè)處理程序頁(yè)面調(diào)入新的頁(yè)面,并更新PTE缺頁(yè)處理程序返回原來(lái)的進(jìn)程,再次執(zhí)行導(dǎo)致缺頁(yè)的命令,CPU將原來(lái)的虛擬頁(yè)再次發(fā)給MMU,因?yàn)檫@次已經(jīng)緩存了所以不會(huì)產(chǎn)生異常。進(jìn)程地址空間管理
地址空間映射
文件映射:進(jìn)程的靜態(tài)鏡像以可執(zhí)行文件的形式駐留在硬盤(pán),在創(chuàng)建進(jìn)程的時(shí)候要構(gòu)造地址空間,方法是用可執(zhí)行文件的相應(yīng)的部分內(nèi)容構(gòu)建虛存區(qū),映像不是被調(diào)入虛存區(qū),而是在映像文件和虛存區(qū)之間建立地址映射這就是文件映射。建立映射的時(shí)候text區(qū)和data區(qū)被映射到磁盤(pán)上的可執(zhí)行文件,stack區(qū)無(wú)須映射,BSS和heap為匿名映射不和任何實(shí)際文件建立對(duì)應(yīng)的映射,BSS和heap的映射對(duì)象是一個(gè)抽象的“零頁(yè)“文件,映射到零頁(yè)文件的區(qū)將全是0.上述圖非虛存區(qū)是不可用的,唯一的例外是棧,棧的空間會(huì)隨著程序執(zhí)行動(dòng)態(tài)的增長(zhǎng),棧大小低于上限(通常是8M)是可以增長(zhǎng)的,超出會(huì)棧溢出造成程序終止。 頁(yè)表映射: 頁(yè)表映像:文件映像只是將文件里面的映像映射到額虛存空間,進(jìn)入物理內(nèi)存的映像則是通過(guò)也表來(lái)映射的,建立了頁(yè)表映射的地址空間是進(jìn)程實(shí)際占用的可以直接訪問(wèn)的部分,就是圖中提到的已經(jīng)分配的。內(nèi)核里有一個(gè)獨(dú)立的內(nèi)核頁(yè)表,用來(lái)映射內(nèi)核空間到物理存儲(chǔ)的低1G空間,進(jìn)程運(yùn)行在用戶空間的時(shí)候使用進(jìn)程頁(yè)表,陷入內(nèi)核使用內(nèi)核頁(yè)表。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

根據(jù)IDC預(yù)測(cè),中國(guó)在人工智能領(lǐng)域的投資預(yù)計(jì)到2027年將達(dá)到381億美元,占全球總投資的近9%。作為全球人工智能的重要參與者,中國(guó)正加速在汽車(chē)、通信、醫(yī)療、金融等多個(gè)行業(yè)應(yīng)用和發(fā)展生成式AI技術(shù),全面邁入“AI 2.0...

關(guān)鍵字: AI 內(nèi)存 DDR5

8月17日消息,近日,超頻愛(ài)好者“saltycroissant”成功將海盜船(CORSAIR)DDR5內(nèi)存超頻至12886MT/s,創(chuàng)造了新的世界紀(jì)錄。

關(guān)鍵字: 內(nèi)存 DDR5

在高性能服務(wù)架構(gòu)設(shè)計(jì)中,緩存是不可或缺的環(huán)節(jié)。在實(shí)際項(xiàng)目中,我們通常會(huì)將一些熱點(diǎn)數(shù)據(jù)存儲(chǔ)在Redis或Memcached等緩存中間件中,只有在緩存訪問(wèn)未命中時(shí)才查詢數(shù)據(jù)庫(kù)。

關(guān)鍵字: 緩存 內(nèi)存

7月25日消息,由于供應(yīng)短缺,最近一段時(shí)間DDR4內(nèi)存頻繁出現(xiàn)漲價(jià)、缺貨等現(xiàn)象。

關(guān)鍵字: DDR4 內(nèi)存

7月10日消息,JEDEC今天正式發(fā)布了LPDDR6內(nèi)存標(biāo)準(zhǔn),規(guī)范編號(hào)JESD209-6,可顯著提升移動(dòng)設(shè)備、AI應(yīng)用的性能、能效、安全。

關(guān)鍵字: LPDDR6 內(nèi)存

7月6日消息,由于供應(yīng)短缺,DDR4內(nèi)存價(jià)格在過(guò)去幾個(gè)月內(nèi)大幅上漲,甚至超過(guò)了DDR5內(nèi)存,這一現(xiàn)象促使一些廠商重新考慮延長(zhǎng)DDR4內(nèi)存的生產(chǎn)。

關(guān)鍵字: DDR4 內(nèi)存

上海 2025年6月23日 /美通社/ -- 近期,黑芝麻智能分享了其如何通過(guò)零拷貝共享內(nèi)存技術(shù),解決車(chē)載多域間大數(shù)據(jù)傳輸?shù)难舆t與資源消耗問(wèn)題。核心技術(shù)包括全局內(nèi)存管理單元和dmabuf機(jī)制優(yōu)化,顯著降低CPU負(fù)載與D...

關(guān)鍵字: 內(nèi)存 數(shù)據(jù)傳輸 大數(shù)據(jù) BUF

6月16日消息,“至少十年沒(méi)看過(guò)現(xiàn)貨價(jià)單日漲幅這么大”,一位從業(yè)者表示。

關(guān)鍵字: DDR4 內(nèi)存

基于美光 LPDDR5X 內(nèi)存和 UFS 4.0 存儲(chǔ)解決方案,合力打造 Motorola 功能強(qiáng)大的翻蓋手機(jī)

關(guān)鍵字: LPDDR5X 內(nèi)存 AI

AIPC作為新興且高速增長(zhǎng)的應(yīng)用領(lǐng)域,對(duì)內(nèi)存性能的推動(dòng)作用十分顯著。一方面,它直接驅(qū)動(dòng)了內(nèi)存技術(shù)規(guī)格的更新?lián)Q代和高帶寬、低延遲的內(nèi)存架構(gòu)的發(fā)展;另一方面,也間接推動(dòng)了內(nèi)存模塊的電源管理技術(shù)、信號(hào)完整性控制和可靠性設(shè)計(jì)的全...

關(guān)鍵字: AIPC 內(nèi)存 LPCAMM Rambus PMIC PMIC5200 PMIC5120
關(guān)閉