日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

六 讀核日記

我們講完了分段機(jī)制 。接下來我們需要分析保護(hù)模式的第二種存儲管理機(jī)制:分頁方式 。
在前面我們提到過轉(zhuǎn)臺和控制寄存器組 。他們包括EFLAGS、ELP 。和4 個32 位的控制寄存器CRO CR1CR2 CER3 。其中CRO中有一位PE 用于標(biāo)志是使用保護(hù)模式還是實(shí)模式的 。有一位PG定義是否使用分頁方式(1或0) 。
當(dāng)PG=1 時,系統(tǒng)使用分頁機(jī)制 。80386使用大小位4K的頁,并且每一個頁的邊界隊(duì)奇 。即每一個頁的起始位置都可以被4K整除 。這樣4G的字節(jié)就被分成了1M 頁 。分頁機(jī)制把線性頁映射成物理頁 。真正的起到了轉(zhuǎn)換作用
下面我們看一下LINUXE得分頁結(jié)構(gòu):
1.多級頁表結(jié)構(gòu)
在LINUX中含有1M個頁 。其中每個頁表占4個字節(jié) 。則需要占用4M的連續(xù)內(nèi)存因此LINUX引入了2 級頁表結(jié)構(gòu) 。在線性地址中的后10 位(22-32)定義了二級頁表 。
二級頁表有1K 個字節(jié),頁正好存在]一個4K 的頁中 。并且通過前20位進(jìn)行索引,從而實(shí)現(xiàn)實(shí)際的物理地址 。
這個地方我說不太清楚 。大致可以這樣理解 。
如:有N 個鏈表 。每一個便是一頁 。可最后一頁的內(nèi)容是指向另一個二級煉表的指針(或者是索引項(xiàng))
2,頁面項(xiàng)和頁目錄項(xiàng)
對于每一個頁 。都會存在一個頁面項(xiàng) 。用來表示該頁的使用狀況,是否空閑 。是否在內(nèi)存中等等 。而這些相會存儲成一個連標(biāo) 。以減少使用表時的查詢時間等 。
而每一個頁表,會存在1024個頁面項(xiàng),這才是真正的“頁“ 。
3,線性地址到物理地址的切換
CR 包含頁目錄的起始地址,用32 位地址中的31-22位的內(nèi)容作頁目錄的頁目錄項(xiàng)的索引,于CR3種的頁目錄的起始地址相加 。得到相應(yīng)頁表的地址 從指定的地址中取出32 位頁目錄項(xiàng) 。它的提12 位是0用這32 位地址中21-12位作為頁表中的頁面的索引 。將它乘以4和頁表的起始地址相加,得到32位地址 獎11-0位作為相對一頁面地址的偏移量,于32位頁面地址相加 。形成32 位的物理地址 。
4,頁面CACHE
當(dāng)然,系統(tǒng)頻繁的訪問二級頁表,會造成很大的時間浪費(fèi),因此引入了頁表CACHE,用來保存最近使用的頁面,或者頻繁使用的頁面,關(guān)于CACHE 的原理這里不再詳細(xì)講解,有興趣的朋友可以查一些,計(jì)算機(jī)專業(yè)的基礎(chǔ)教材
至此,LINUX使用的836保護(hù)模式,基本上講解完畢 。至于控制轉(zhuǎn)移和任務(wù)切換 。和一般的匯編編程差不多少,本人匯編水平太低 。不在獻(xiàn)丑
總的說來,多任務(wù)的切換,以及保護(hù)模式的應(yīng)用 。虛擬存儲系統(tǒng)的實(shí)現(xiàn),是建立在硬件的技術(shù)支持之上的 。
【六 讀核日記】個人認(rèn)為,LINUX的存儲管理 。在不同的機(jī)器上是完全不同的,至于linux是否為他們提供了統(tǒng)一的接口 。我還不太清楚 ??梢詤⒁娖渌麢C(jī)型的源碼

    推薦閱讀