亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

段頁式存儲

2024-06-28 13:27:07
字體:
來源:轉載
供稿:網友
段頁式存儲

幾乎每一本將操作系統原理的書籍都會談及內存管理方法的段頁式存儲。以前看書都是看的云里霧里!原因就是還沒有懂INTEL指令,不知道頁式存儲有什么作用。國內教材有個最大的弊病就是,作者通常先將概念,然后再將如何運用,很少去提及概念是如何被提出來!為什么非要提出這樣一個概念。

除非你已經被一個問題困擾到茶飯不思、輾轉難眠,否則你絕對不會明白一個新的概念對你有多大的作用

分段還是分頁

分段還是分頁其實不是兩個不同的概念!分段,其中心思想是將程序分成若干的邏輯段,每個段實現什么功能,提供什么資源。這個其實和后來面向對象的類的思想沒有任何區別,僅僅是表現不一樣罷了。在過去編程時,將程序分為若干邏輯段(數據段,32位代碼段,16位代碼段等),然后通過設置CS來實現段之間的跳轉。這種方式使得程序在設計期間邏輯清晰。但是這種方式,程序是一個線性的指令集合,某些時候,人們需要同時執行兩個任務,采用分段需要頻繁的切換CS,這樣造成很大的性能損耗。INTEL為了滿足這種能夠新增加一組寄存器 CR0、1、2、3來實現任務跳轉。這個使用同樣一個邏輯地址就能定位為不同的物理地址,如下圖

image

對于同樣一個邏輯地址10000,可以使用不同的分頁轉換,將邏輯地址轉化為不同的物理地址!

注:分段和分頁并不是對立的兩個概念,分頁其實建立在分段的基礎之上!

如何分頁

請思考如下一個數學題

y=f(x) {x的定義域為[0,π/2]} ,找到一個函數使得f(x)的值域為[0,1]?

如果你學過三角函數馬上就會想到 f(x)=sin(x)

用在分頁機制里,該數學題變為了

y=f(x) {x的定義域為[0,4.4M] 用4.4M的虛擬地址范圍 },找到一個函數使得f(x)的值域為[0,4G]---32位CPU內存尋址范圍?

解析:

這里當然可以使用一個函數來實現這種擴展,但是在計算機里面,沒有使用函數,而是使用索引的方式來表示一個更大的范圍,所謂索引,就是新華字典里面的查詢頁!一本字典那么厚,但是可以使用幾頁查詢頁就能找到字典里面的任何一個字!

在INTEL x86CPU保護模式里,一頁通常值為4K(4K=2的12次方,需要12位來表示頁內偏移地址),所以4G就是1M(1M=2的20次方)個4K,1M個頁索引。這樣一個物理地址就可以轉化為

20位頁索引+12位頁內:需要用1M個索引項去記錄每一頁的屬性!INTEL為了減小1M這個值,又將1M索引再次來個索引,將1M個索引按照1K個索引為1段,總共就是1K段!這樣一個屋里地址就轉化為:

10位頁索引的索引+10位頁索引+12位頁內偏移地址,使用兩級索引來表示一個地址,地址轉換過程如下:

image

10位頁索引的所有集合(1M個索引)有個專門的名字:頁表,表中的每一項也就是每一個索引叫做頁表項PTE(page table entry)

10位頁索引的索引的所有集合(1K個)有個專門的名字:頁目錄表,表中的每一項也就是每一個索引的索引叫做頁目錄表項PDE(page directory entry)

有一點值得強調,頁表項和頁目錄表項不僅僅只有索引,只是上面為了理解簡單而省略一些信息,他們都有各種的屬性!

每個項需要4個字節,總共就需要 4*1K(1K個頁目錄表項)+4*(1M個頁表項) = 4.4M!

實際上啟動分頁的過程,也就是將在內存中初始化f(x)的一個過程!具體而言就是在內存中為每一個物理頁做索引,加屬性的過程!

當這些信息都被正確的在內存中初始化完畢之后,最重要的一步,就可以將信息的首地址復制給CR3,然后將CR0最高位設置為1就表示啟動了分頁機制!

分頁還是不分頁,分段還是不分段,保護模式還是實模式追索到源頭其實就是對CPU指令集的一個應用,CPU提供了某些功能,然后由此編寫的操作系統就啟用這些功能!所以不是操作系統多么牛逼,而是處理器多么厲害

分頁有多厲害

詳細解讀一下這句話:將信息的首地址復制給CR3。

CPU在將一個給定的虛擬地址進行地址轉換的時候,首先是尋找CR3給定的頁目錄地址,找到之后,然后按照那個目錄地址開始一級級的轉換,這里你可能就會問,那是不是我隨便給定一個CR3地址,那不是同一個地址會被轉換為隨便一個位置哦?是啊,就有這么牛逼!不同的頁目錄,就有不同的地址,操作系統實現的多任務,虛擬地址空間就是通過設置不同的CR3來實現!現在是否能夠明白windows操作系統的每個進程尋址空間呢?在虛擬地址框架下,不管你如何尋址,你肯定找不到別人進程的代碼,除非你改變CR3的值!

此時你看看下面這張圖:

image

是不是覺得淺顯易懂了呢?

image

最后附上一段代碼,摘抄自《一個操作系統的實現》

; 啟動分頁機制 --------------------------------------------------------------SetupPaging:    ; 為簡化處理, 所有線性地址對應相等的物理地址.    ; 首先初始化頁目錄    mov    ax, SelectorPageDir    ; 此段首地址為 PageDirBase    mov    es, ax    mov    ecx, 1024        ; 共 1K 個表項    xor    edi, edi    xor    eax, eax    mov    eax, PageTblBase | PG_P  | PG_USU | PG_RWW.1:    stosd    add    eax, 4096        ; 為了簡化, 所有頁表在內存中是連續的.    loop    .1    ; 再初始化所有頁表 (1K 個, 4M 內存空間)    mov    ax, SelectorPageTbl    ; 此段首地址為 PageTblBase    mov    es, ax    mov    ecx, 1024 * 1024    ; 共 1M 個頁表項, 也即有 1M 個頁    xor    edi, edi    xor    eax, eax    mov    eax, PG_P  | PG_USU | PG_RWW.2:    stosd    add    eax, 4096        ; 每一頁指向 4K 的空間    loop    .2    mov    eax, PageDirBase    mov    cr3, eax    mov    eax, cr0    or    eax, 80000000h    mov    cr0, eax    jmp    short .3.3:    nop    ret; 分頁機制啟動完畢 ----------------------------------------------------------


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
深夜福利国产精品| 亚洲美女免费精品视频在线观看| 5566成人精品视频免费| 91美女高潮出水| 欧美极品欧美精品欧美视频| 88国产精品欧美一区二区三区| 久久久久国产精品一区| 神马国产精品影院av| 亚洲欧美制服丝袜| 国外成人免费在线播放| 国产精品99久久久久久白浆小说| 国产91精品最新在线播放| 亚洲人高潮女人毛茸茸| 91精品视频免费看| 欧美日韩国产中字| 国产成人综合一区二区三区| www.日韩欧美| zzijzzij亚洲日本成熟少妇| 91精品在线观看视频| 国产精品一区二区在线| 成人福利视频网| 欧美性videos高清精品| 久久99亚洲精品| 亚洲国产精品yw在线观看| 中文字幕久久久av一区| 色综合影院在线| 久久免费精品日本久久中文字幕| 久久精品视频网站| 欧美亚洲视频在线观看| 欧美人交a欧美精品| 久久久免费观看| 51色欧美片视频在线观看| 久久久免费电影| 日韩二区三区在线| 亚洲欧美另类中文字幕| 91精品久久久久久久久久久| 精品久久久久久国产| 91精品在线观| 久久在线观看视频| 欧美精品久久久久久久久久| 91久久在线视频| 久久久久久久久久婷婷| 第一福利永久视频精品| 国产精品久久77777| 97在线视频国产| 久久久久国产精品免费网站| 国产不卡av在线免费观看| 欧美亚洲国产日韩2020| 欧美国产精品va在线观看| 精品视频—区二区三区免费| 97av在线播放| 亚洲国产精品va在看黑人| 日韩少妇与小伙激情| 亚洲成av人乱码色午夜| 国产成人精品最新| 久久久女人电视剧免费播放下载| 最新的欧美黄色| 亚洲男人天堂2024| 欧美一级大胆视频| 午夜精品蜜臀一区二区三区免费| 自拍偷拍亚洲精品| 美女av一区二区三区| 亚洲精品按摩视频| 亚洲美女动态图120秒| 欧美大秀在线观看| 国产成人福利视频| 久久高清视频免费| 国产综合久久久久久| 97超级碰在线看视频免费在线看| 黑人精品xxx一区| 91在线视频导航| 欧美限制级电影在线观看| 欧美视频裸体精品| 精品久久久久久久久久久久| 久久夜精品va视频免费观看| 国产主播在线一区| 中文字幕欧美日韩精品| 欧美最近摘花xxxx摘花| 国产午夜精品一区二区三区| 欧美国产极速在线| www国产91| 久久精品国产亚洲精品| 国产精品男女猛烈高潮激情| 68精品久久久久久欧美| 国产精品久久久久久网站| 欧美最顶级丰满的aⅴ艳星| 亚洲xxxxx性| 91国偷自产一区二区三区的观看方式| 欧美成人午夜影院| 欧美日韩人人澡狠狠躁视频| 1769国内精品视频在线播放| 2018国产精品视频| 亚州国产精品久久久| 日韩成人在线观看| 日韩av在线一区| 国产一区二区三区丝袜| 日韩中文字幕网址| 欧洲成人在线观看| 亚洲欧美日韩精品久久奇米色影视| 亚洲综合小说区| 伊人亚洲福利一区二区三区| 亚洲人精品午夜在线观看| 高清一区二区三区四区五区| 91免费版网站入口| 欧美一级淫片播放口| 日本精品免费观看| 亚洲精品之草原avav久久| 亚洲视频专区在线| 日韩欧美中文字幕在线播放| 国产aⅴ夜夜欢一区二区三区| 国产精品永久在线| 日韩av第一页| 欧美精品在线极品| 成人黄色午夜影院| 日韩在线激情视频| 日韩在线欧美在线| 亚洲一区二区三区视频播放| 欧美一区二区影院| 成人www视频在线观看| 欧美www视频在线观看| 亚洲a在线观看| 国产69久久精品成人| 欧美大片在线看免费观看| 视频一区视频二区国产精品| 日韩免费电影在线观看| 国产精品视频白浆免费视频| 亚洲成年人在线播放| 欧美国产日产韩国视频| 亚洲精品久久久久久久久| 日韩视频―中文字幕| 久久久久久久久国产| 91精品久久久久久久久久入口| 国产香蕉精品视频一区二区三区| 国产精品亚洲精品| 久久国产视频网站| 欧美在线视频在线播放完整版免费观看| 97在线免费观看| 亚洲视频电影图片偷拍一区| 欧美视频不卡中文| 国内精品久久久久影院优| 亚洲品质视频自拍网| 欧美性猛交xxxxx免费看| 久久视频在线播放| 精品亚洲va在线va天堂资源站| 国产999精品久久久| 日韩免费观看视频| 欧美日韩第一视频| 大胆人体色综合| 欧美日韩国产中字| 久久久久久久国产精品视频| 在线日韩第一页| 91精品久久久久久久久| 久久久精品一区二区三区| 亚洲一区二区黄| 国产狼人综合免费视频| 欧美乱大交xxxxx另类电影| 国产日韩欧美日韩大片| 精品久久久久久久久久国产| 久久久久久有精品国产| 亚洲精品在线看| 这里只有精品在线播放| 日本中文字幕不卡免费| 亚洲国产天堂久久国产91| 久久高清视频免费|