在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)故事輕松看懂CPU內(nèi)存管理技術(shù)

Linux愛好者 ? 來(lái)源:編程技術(shù)宇宙 ? 作者:編程技術(shù)宇宙 ? 2020-12-07 15:56 ? 次閱讀

還記得我嗎,我是阿Q,CPU一號(hào)車間的那個(gè)阿Q。

今天忙里偷閑,來(lái)到廠里地址翻譯部門轉(zhuǎn)轉(zhuǎn),負(fù)責(zé)這項(xiàng)工作的小黑正忙得滿頭大汗。

看到我的到來(lái),小黑指著旁邊的座椅示意讓我坐下。

坐了好一會(huì)兒,小黑才從工位上忙完轉(zhuǎn)過(guò)身來(lái),“實(shí)在不好意思阿Q,今天活太多,沒來(lái)得及招待你”

“剛忙什么呢,看你滿頭大汗的”,我問道。

“嗨,別提了,老是發(fā)現(xiàn)內(nèi)存頁(yè)面錯(cuò)誤,不停地要通知操作系統(tǒng)那邊去處理,真是懷念以前啊,沒有這么多破事兒要管”,小黑嘆了口氣。

我一聽來(lái)了興趣,“小黑你給我說(shuō)說(shuō)你們的工作唄,地址翻譯是怎么一回事兒,為什么懷念以前呢?”

小黑調(diào)整了下坐姿,咕嚕咕嚕喝了幾口水說(shuō)道,“這話說(shuō)來(lái)可就話長(zhǎng)了”

接下來(lái)小黑開始給我講起了歷史故事······

8086

原來(lái)咱們的祖先叫8086,小黑還給我看了他的照片

那是一個(gè)純真質(zhì)樸的年代,雖然工作性能不高,不過(guò)那個(gè)年代的程序都很簡(jiǎn)單,我們的祖先一問世就成為了明星,稱得上那個(gè)時(shí)代的頂流了。

看到照片中的那些金屬針腳了嗎?那是我們CPU和外界打交道的觸角,每一根都有不同的作用。

通過(guò)這些觸角,CPU就可以跟內(nèi)存打交道,獲取指令和數(shù)據(jù),辛勤的干活啦。

那個(gè)年代,條件比較差,能湊合的就湊合,能共用的就共用。這不,你看祖先CPU的地址總線針腳和數(shù)據(jù)總線針腳就共用了。

祖先是一個(gè)16位的CPU,數(shù)據(jù)(Data)總線就有16位,一次性可以傳輸16個(gè)比特位。和地址(Address)總線湊合著一起共用,于是就取名AD0-AD15。

不過(guò)祖先的地址總線卻不止16個(gè),還多出了A16-A19整整4個(gè)呢!這樣有20個(gè)地址線,可以尋址1MB的內(nèi)存了!

但是祖先的寄存器都是16位的啊,只能存放16位的地址。不過(guò)他們很聰明,發(fā)明了一個(gè)叫分段式存儲(chǔ)管理的方法,把內(nèi)存劃分為最大64KB的小塊,為什么是64KB呢,因?yàn)?6位地址最多只能尋址這么大了。然后又加了幾個(gè)叫做段寄存器的東西,指向這些塊的開頭,這樣,通過(guò)段地址+段內(nèi)偏移地址的方式,就能訪問更多的內(nèi)存了。

32位時(shí)代

后來(lái)啊,祖先的那點(diǎn)計(jì)算能力越來(lái)越捉襟見肘,實(shí)在是跟不上時(shí)代了。家族中的年輕一代開始挑大梁,80286和80386CPU相繼問世,尤其是80386,成為了劃時(shí)代的存在。

到了80386時(shí)代,我們與外界通信的引腳就更多了,并且變成了32位的CPU,那個(gè)時(shí)候,生活條件就變好了,地址線和數(shù)據(jù)線再也不用共享引腳了。

后來(lái),人類變得越來(lái)越貪心,想要一邊聽音樂,一邊還要上網(wǎng),同時(shí)還要編輯文檔,這就同時(shí)需要運(yùn)行多個(gè)程序。

這個(gè)時(shí)候,有人發(fā)現(xiàn)了商機(jī),開發(fā)了一個(gè)叫操作系統(tǒng)的東西,原來(lái)那些程序不再直接和我們CPU打交道了,而是和操作系統(tǒng)打交道,操作系統(tǒng)再和我們打交道,中間商賺差價(jià)說(shuō)的就是他們!

操作系統(tǒng)這玩意兒很聰明啊,通過(guò)時(shí)間片劃分讓我們CPU來(lái)輪流執(zhí)行多個(gè)程序,一會(huì)兒讓我們執(zhí)行音樂播放,一會(huì)兒讓我們執(zhí)行瀏覽器程序,一會(huì)兒又讓我們執(zhí)行文檔編輯程序。我們是無(wú)所謂啊,給什么代碼不是代碼啊,我們不挑,埋頭苦干就是了。人類的反應(yīng)速度跟我們就差得遠(yuǎn)了,他們還以為這些程序真的是同時(shí)執(zhí)行的呢。

虛擬內(nèi)存

不過(guò)隨之而來(lái)出現(xiàn)了一個(gè)大問題,這么多程序都要運(yùn)行,大家擠在一個(gè)內(nèi)存里,經(jīng)常發(fā)生摩擦,沖突不斷。

先祖?zhèn)優(yōu)榱舜耸職椌邞],終于想出了一個(gè)好辦法,一直沿用至今。

他們提出了一個(gè)虛擬地址的東西,所有程序使用的地址都是一個(gè)虛擬的地址,在真正和內(nèi)存打交道的時(shí)候,咱們CPU內(nèi)部工作人員再給翻譯成真實(shí)的內(nèi)存地址,關(guān)于這事兒,內(nèi)存那家伙一直被我們蒙在鼓里。

這樣一來(lái),每個(gè)程序都可以用的是0x00000000到0xffffffff總共4GB這么大范圍的地址空間,當(dāng)然不會(huì)真的給他們那么多空間,內(nèi)存那家伙總共才4GB呢,而是要按需申請(qǐng)分配。分配的單元是按照頁(yè)來(lái)進(jìn)行的,32位的CPU一個(gè)頁(yè)是4KB。這些分配管理的累活就讓操作系統(tǒng)來(lái)干了,中間商不能光拿好處不干正事,至于我們CPU,做好地址翻譯的工作就好了。

為此,在我們寄存器內(nèi)部專門添置了一個(gè)新的寄存器CR3,用來(lái)指向一個(gè)地址翻譯查詢字典,字典劃分了兩級(jí)目錄。我們把一個(gè)32位的地址劃分了3部分,前面兩部分分別指向兩級(jí)目錄中的條目,用來(lái)定位這個(gè)地址在物理內(nèi)存的哪個(gè)頁(yè)面,最后一部分就是指向物理內(nèi)存頁(yè)面的偏移,這樣就完成了地址的翻譯工作。

每個(gè)進(jìn)程有不同的地址空間,切換進(jìn)程的時(shí)候,把CR3的內(nèi)容換一下就使用新進(jìn)程的翻譯字典,特別的方便。

我們把這種內(nèi)存管理方式叫做分頁(yè)式內(nèi)存管理。

真佩服先祖?zhèn)兊闹腔郏@樣巧妙的把各個(gè)程序隔離開來(lái),后來(lái)我們把這種工作模式叫做保護(hù)模式,把之前那種直接使用真實(shí)內(nèi)存地址的工作模式叫做實(shí)地址模式。

分頁(yè)交換

人類變得越來(lái)越貪婪,程序變得越來(lái)越多,對(duì)內(nèi)存的需求也越來(lái)越大。隨著這些程序都不斷申請(qǐng)內(nèi)存頁(yè)面,內(nèi)存空間很快就要耗盡了。

我們看在眼里,急在心里,后來(lái)找操作系統(tǒng)協(xié)商,看看這問題該怎么辦。

操作系統(tǒng)那家伙也不賴,想出了一個(gè)好辦法。內(nèi)存的大小有限,但是硬盤給力啊,硬盤空間大的多,去硬盤上劃一塊區(qū)域來(lái),把內(nèi)存里長(zhǎng)時(shí)間沒有用到的頁(yè)面給換到這塊區(qū)域里去,然后做個(gè)標(biāo)記。如果后面誰(shuí)要訪問那個(gè)頁(yè)面,咱們CPU就檢查如果有這個(gè)標(biāo)記,就發(fā)送一個(gè)頁(yè)錯(cuò)誤的中斷信號(hào)告訴操作系統(tǒng)去把這個(gè)頁(yè)面換回來(lái)。

通過(guò)我們之間的配合,解決了內(nèi)存緊張的危機(jī)。后來(lái)我們把這個(gè)技術(shù)叫做內(nèi)存分頁(yè)交換。

現(xiàn)在

時(shí)間過(guò)得很快,到了我們這一輩,內(nèi)存變得更大了,16GB都是小case,32GB也很常見。

除了內(nèi)存,我們CPU本身也更先進(jìn)了,別的不說(shuō),你光看看咱們現(xiàn)在的引腳數(shù)那比先祖?zhèn)兡菐纵吘筒豢赏斩Z(yǔ)。

我們不僅從32位變成了64位,還從單核變成了多核,像我所在的CPU就有8個(gè)車間,8核并行執(zhí)行,比起先祖那個(gè)年代簡(jiǎn)直有云泥之別。

彩蛋

和小黑閑談間,我們車間的老K突然出現(xiàn)在了門口。
“阿Q原來(lái)你在這里,讓我好找,趕快回去吧,隔壁二號(hào)車間的虎子說(shuō)我們改了他們的數(shù)據(jù),上門來(lái)鬧事了······”

原文標(biāo)題:一個(gè)故事看懂 CPU 內(nèi)存管理技術(shù)

文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5386

    瀏覽量

    121430
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10927

    瀏覽量

    213365
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3074

    瀏覽量

    74436

原文標(biāo)題:一個(gè)故事看懂 CPU 內(nèi)存管理技術(shù)

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    虛擬內(nèi)存和云計(jì)算的關(guān)系

    在現(xiàn)代計(jì)算機(jī)科學(xué)中,虛擬內(nèi)存和云計(jì)算是兩個(gè)關(guān)鍵的技術(shù)概念。虛擬內(nèi)存內(nèi)存
    的頭像 發(fā)表于 12-04 09:50 ?198次閱讀

    Linux下如何管理虛擬內(nèi)存 使用虛擬內(nèi)存時(shí)的常見問題

    在Linux系統(tǒng)中,虛擬內(nèi)存管理是操作系統(tǒng)內(nèi)核的個(gè)重要功能,負(fù)責(zé)管理物理內(nèi)存和磁盤上的交換空間
    的頭像 發(fā)表于 12-04 09:19 ?684次閱讀

    虛擬內(nèi)存對(duì)計(jì)算機(jī)性能的影響

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,內(nèi)存管理是確保系統(tǒng)高效運(yùn)行的關(guān)鍵因素之。虛擬內(nèi)存技術(shù)作為內(nèi)存
    的頭像 發(fā)表于 12-04 09:17 ?1501次閱讀

    看懂DDR內(nèi)存的原理

    CPU 進(jìn)行數(shù)據(jù)處理運(yùn)算和緩存的不可或缺的周轉(zhuǎn)“倉(cāng)庫(kù)”,個(gè)強(qiáng)大的核心處理單元也必須配備個(gè)高速運(yùn)轉(zhuǎn)的寬通路的數(shù)據(jù)訪問和存儲(chǔ)單元。 存儲(chǔ)
    的頭像 發(fā)表于 11-18 11:40 ?1096次閱讀
    <b class='flag-5'>一</b>文<b class='flag-5'>看懂</b>DDR<b class='flag-5'>內(nèi)存</b>的原理

    Linux內(nèi)存泄露案例分析和內(nèi)存管理分享

    內(nèi)存報(bào)警的消息,讓整個(gè)團(tuán)隊(duì)都比較緊張,我們團(tuán)隊(duì)負(fù)責(zé)的LB服務(wù)是零售、物流、科技等業(yè)務(wù)服務(wù)的流量入口,承接上萬(wàn)個(gè)服務(wù)的流量轉(zhuǎn)發(fā),旦有故障影響業(yè)務(wù)服務(wù)比較多,必須馬上著手解決內(nèi)存暴漲的問
    的頭像 發(fā)表于 10-24 16:14 ?800次閱讀
    Linux<b class='flag-5'>內(nèi)存</b>泄露案例分析和<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>分享

    北橋芯片負(fù)責(zé)與cpu的聯(lián)系并控制內(nèi)存

    北橋芯片,也被稱為內(nèi)存控制器或系統(tǒng)控制器,是計(jì)算機(jī)主板上的個(gè)重要組成部分。它負(fù)責(zé)管理CPU內(nèi)存
    的頭像 發(fā)表于 10-14 10:37 ?890次閱讀

    Windows管理內(nèi)存的三種主要方式

    Windows操作系統(tǒng)提供了多種方式來(lái)管理內(nèi)存,以確保系統(tǒng)資源的有效利用和性能的優(yōu)化。以下是關(guān)于Windows管理內(nèi)存的三種主要方式的詳細(xì)闡述,包括堆
    的頭像 發(fā)表于 10-12 17:09 ?1526次閱讀

    C2000 CPU內(nèi)存內(nèi)置自檢功能

    電子發(fā)燒友網(wǎng)站提供《C2000 CPU內(nèi)存內(nèi)置自檢功能.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 09:27 ?0次下載
    C2000 <b class='flag-5'>CPU</b><b class='flag-5'>內(nèi)存</b>內(nèi)置自檢功能

    內(nèi)存管理的硬件結(jié)構(gòu)

    常見的內(nèi)存分配函數(shù)有malloc,mmap等,但大家有沒有想過(guò),這些函數(shù)在內(nèi)核中是怎么實(shí)現(xiàn)的?換句話說(shuō),Linux內(nèi)核的內(nèi)存管理是怎么實(shí)現(xiàn)的?
    的頭像 發(fā)表于 09-04 14:28 ?420次閱讀
    <b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>的硬件結(jié)構(gòu)

    主板內(nèi)存故障燈亮?xí)?b class='flag-5'>cpu的問題嗎

    主板內(nèi)存故障燈亮并不定是CPU的問題,但CPU內(nèi)存之間的交互確實(shí)可能影響這故障現(xiàn)象。以下是
    的頭像 發(fā)表于 09-02 14:42 ?3875次閱讀

    主板自檢cpu內(nèi)存直來(lái)回閃

    當(dāng)你遇到主板自檢時(shí)CPU內(nèi)存直來(lái)回閃爍的情況,這通常意味著硬件檢測(cè)過(guò)程中存在問題。這個(gè)問題可能涉及到多個(gè)方面,包括硬件故障、BIOS設(shè)置錯(cuò)誤、兼容性問題等。 1. 硬件故障 1.1 CP
    的頭像 發(fā)表于 09-02 14:38 ?1.4w次閱讀

    什么是CPU緩存?它有哪些作用?

    CPU緩存(Cache Memory)是計(jì)算機(jī)系統(tǒng)中個(gè)至關(guān)重要的組成部分,它位于CPU內(nèi)存之間,作為兩者之間的臨時(shí)存儲(chǔ)器。
    的頭像 發(fā)表于 08-22 14:54 ?4021次閱讀

    內(nèi)存、存儲(chǔ)系統(tǒng)和CPU的區(qū)別

    在計(jì)算機(jī)系統(tǒng)中,內(nèi)存、存儲(chǔ)系統(tǒng)和CPU是三個(gè)至關(guān)重要的組件,它們各自承擔(dān)著不同的職責(zé),共同協(xié)作以完成數(shù)據(jù)處理和運(yùn)算任務(wù)。以下是對(duì)這三者之間區(qū)別的詳細(xì)闡述。
    的頭像 發(fā)表于 07-15 18:11 ?3025次閱讀

    70頁(yè)P(yáng)PT,徹底看懂光纖寬帶技術(shù)

    70頁(yè)P(yáng)PT,徹底看懂光纖寬帶技術(shù)
    的頭像 發(fā)表于 05-15 08:04 ?315次閱讀
    70頁(yè)P(yáng)PT,徹底<b class='flag-5'>看懂</b>光纖寬帶<b class='flag-5'>技術(shù)</b>!

    Linux內(nèi)存管理CPU本地頁(yè)幀緩存

    在前節(jié)中,我們學(xué)習(xí)了buddy伙伴關(guān)系系統(tǒng),它適用于申請(qǐng)連續(xù)的大塊物理內(nèi)存;而有些時(shí)候,經(jīng)常需要申請(qǐng)和釋放單個(gè)頁(yè)幀。
    的頭像 發(fā)表于 02-20 09:23 ?585次閱讀
    主站蜘蛛池模板: 四虎影院永久 | 黄色一区二区三区 | 男人j进女人j的视频一进一出 | 2022年永久免费观看 | 美女免费毛片 | 亚洲一级色片 | 亚色成人 | 91福利专区 | www.色噜噜| 日本高清视频在线www色 | 久久久久久久国产精品影院 | 五月天婷婷在线观看 | 成人影院久久久久久影院 | 欧洲不卡一卡2卡三卡4卡网站 | 黄网站色视频 | 在线黄色网| 日韩欧美亚洲一区 | 婷婷丁香色综合狠狠色 | 天天操天天操天天操 | 女人张腿让男桶免费视频观看 | 男啪女色黄无遮挡免费视频 | 天天躁日日躁狠狠躁一级毛片 | 四虎影院在线免费观看视频 | 性欧美长视频 | 国产美女亚洲精品久久久久久 | 四虎国产精品高清在线观看 | 天天天天射 | 日韩免费看| 天天做天天爽爽快快 | 老司机午夜网站 | 国产综合图片 | 精品亚洲欧美无人区乱码 | 国产成人三级经典中文 | 中文字幕一区二区三区精品 | 久久草在线精品 | 在线观看日本免费不卡 | 韩国三级视频在线观看 | 手机在线观看一级午夜片 | 三级网在线| 在线视频一二三区 | 婷婷久久综合九色综合九七 |