久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

linux和windows的內(nèi)存有哪些區(qū)別

172次閱讀
沒有評論

共計 2263 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。

這篇文章主要介紹“l(fā)inux 和 windows 的內(nèi)存有哪些區(qū)別”,在日常操作中,相信很多人在 linux 和 windows 的內(nèi)存有哪些區(qū)別問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux 和 windows 的內(nèi)存有哪些區(qū)別”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!

linux 內(nèi)存和 windows 內(nèi)存的區(qū)別:1、linux 優(yōu)先使用物理內(nèi)存,內(nèi)存不夠時才放在交換分區(qū)上,而 windows 則是內(nèi)存和虛擬內(nèi)存一起使用;2、windows 總會給內(nèi)存留下一定的空閑空間,啟動新的程序比較快,而 linux 內(nèi)存常處于全部被使用的狀態(tài),需要先清理出一塊內(nèi)存再分配給新的程序,啟動新程序比較慢。

linux 和 windows 的內(nèi)存區(qū)別

Linux 優(yōu)先使用物理內(nèi)存,當(dāng)物理內(nèi)存還有空閑時,linux 是不會釋放內(nèi)存的,即時占用內(nèi)存的程序已經(jīng)被關(guān)閉了(這部分內(nèi)存就用來做緩存了)。也就是說,即時你 有很大的內(nèi)存, 用過一段時間后,也會被占滿。這樣做的好處是,啟動那些剛開啟過的程序、或是讀取剛存取過得數(shù)據(jù)會比較快,對于服務(wù)器很有好處。

區(qū)別

windows 則總是給內(nèi)存留下一定的空閑空間,即時內(nèi)存有空閑也會讓程序使用一些虛擬內(nèi)存,這樣做的好處是,啟動新的程序比較快,直接分給它些空閑 內(nèi)存就可以了,

而 linux 下呢?由于內(nèi)存經(jīng)常處于全部被使用的狀態(tài),則要先清理出一塊內(nèi)存,再分配給新的程序使用,因此,新程序的啟動會慢一些。

linux 內(nèi)核基本是先把數(shù)據(jù)都放在內(nèi)存上的,內(nèi)存不夠才放到交換分區(qū) (虛擬內(nèi)存) 上,細(xì)節(jié)是,只有頻繁使用的數(shù)據(jù)才會放到內(nèi)存上,不頻繁操作的數(shù)據(jù)會漸漸放到交換分區(qū)上,適當(dāng)時寫回硬盤里。

而 windows 的處理方式是? 內(nèi)存和虛擬內(nèi)存一起使用,不是以內(nèi)存操作為主,這樣的結(jié)果是 IO 的負(fù)擔(dān)比較大,有時會拖慢處理速度。linux 的哲學(xué)是,盡可能使用內(nèi)存,因為內(nèi)存的速度比硬盤速度快 100 多倍。

擴展知識

Linux 把物理內(nèi)存劃分為三個層次來管理

系統(tǒng)的物理內(nèi)存被劃分成幾個節(jié)點(node), 一個 node 對應(yīng)一個內(nèi)存簇 bank,即每個內(nèi)存簇被認(rèn)為是一個節(jié)點。(可以使用 NODE_DATA(node_id)來查找系統(tǒng)中編號為 node_id 的節(jié)點)

內(nèi)存被劃分成節(jié)點,每個節(jié)點關(guān)聯(lián)到系統(tǒng)的一個處理器,內(nèi)核中用 pg_data_t 來實例,系統(tǒng)中每個節(jié)點被鏈接到一個以 NULL 為結(jié)尾的 pgdat_list 鏈表中,其中每個節(jié)點使用 pg_data_tnode_next 字段鏈接到下一個節(jié)點。對于 UMA 結(jié)構(gòu),只使用 contig_page_data 的靜態(tài) pg_data 結(jié)構(gòu),此時 NODE_DATA 直接指向全局的 contig_page_data.

節(jié)點被劃分成內(nèi)存管理區(qū)。一個內(nèi)存管理區(qū)使用 struct zone_struct 描述,zone_t, 用以表示內(nèi)存的某個范圍,低端范圍的 16MB 被描述為 ZONE_DMA, 然后是可直接映射到內(nèi)核的普通內(nèi)存域 ZONE_NORMAL, 最后是超出內(nèi)核段的物理地址域 ZONE_HIGHMEM(0xF8000000~0xFFFFFFFF), 高端內(nèi)存,是系統(tǒng)中預(yù)留的可用內(nèi)存空間,不能被內(nèi)核直接映射。(為了兼容熱插拔以及內(nèi)存碎片化的處理,內(nèi)核引入一些邏輯上的內(nèi)存區(qū):

1、內(nèi)核定義一個偽內(nèi)存區(qū) ZONE_MOVEABLE, 在防止物理內(nèi)存碎片的機制 mmeory mirgation 中需要使用該內(nèi)存區(qū)域以供內(nèi)存碎片的極致使用

2、ZONE_DEVICE: 為支持熱插拔設(shè)備而分配的 Non Volatile Memory, 非易失性內(nèi)存)。

頁幀(page frame): 代表內(nèi)存的最小單元,堆內(nèi)存中每個頁都會創(chuàng)建一個 struct page 的實例。傳統(tǒng)上,把內(nèi)存視為連續(xù)的字節(jié),即內(nèi)存為字節(jié)數(shù)組,內(nèi)存單元的編號(地址)可作為字節(jié)數(shù)組的索引。分頁管理時,將若干字節(jié)試為一頁,比如 4K byte,此時內(nèi)存變成連續(xù)頁,即內(nèi)存為頁數(shù)組,每一頁物理內(nèi)存為頁幀,以頁為單位對內(nèi)存進行編號,該編號可作為頁數(shù)組的索引,稱為頁幀號。(頁的數(shù)據(jù)結(jié)構(gòu)對象都保存在 mem_map 全局?jǐn)?shù)組中,該數(shù)組通常被存放在 ZONE_NORMAL 的首部,或者就在小內(nèi)存系統(tǒng)中裝入內(nèi)核映像而預(yù)留的區(qū)域之后,在載入內(nèi)核的低地址至內(nèi)存區(qū)域的后面內(nèi)存區(qū)域,也就是 ZONE_NORMAL 開始的地方的內(nèi)存的頁的數(shù)據(jù)結(jié)構(gòu)的對象,都保存在這個全局?jǐn)?shù)組中)。

分頁單元可以實現(xiàn)把線性地址轉(zhuǎn)換成物理地址,線性地址被劃分成固定長度大小的組,稱為頁,頁內(nèi)部的線性地址被映射到連續(xù)的物理地址。這樣內(nèi)核可以指定一個頁的物理地址和其存儲權(quán)限,而不用指定頁的全部線性地址的存儲權(quán)限。

分頁單元把所有 RAM 分成固定長度的頁幀(也叫頁框,page frame), 每一個頁幀包含一個頁,也就是說頁幀和頁的長度是一樣的。頁框?qū)儆趦?nèi)存的一部分,因此也是一個存儲區(qū)域。—-mm_types.h struct page 結(jié)構(gòu)體中的 mapping,不只保存一個指針,還保存一些額外的信息,用于判斷頁是否屬于未關(guān)聯(lián)地址空間的某個匿名內(nèi)存區(qū)。通過 mapping 恢復(fù) anon_vma 的方法:anon_vma=(struct anon_vma *)(mapping-PAGE_MAPPING_ANON)。

到此,關(guān)于“l(fā)inux 和 windows 的內(nèi)存有哪些區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-21發(fā)表,共計2263字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 会泽县| 稻城县| 无棣县| 贡觉县| 红安县| 内黄县| 泰州市| 曲水县| 黔东| 清新县| 保亭| 张家口市| 浏阳市| 阿拉善左旗| 徐汇区| 宜良县| 吴川市| 定远县| 广水市| 孟州市| 拉萨市| 饶阳县| 台州市| 商河县| 光泽县| 奉化市| 木兰县| 恭城| 龙游县| 浪卡子县| 仁怀市| 通化县| 安阳县| 上饶县| 磴口县| 林周县| 乐山市| 利辛县| 大安市| 犍为县| 浑源县|