青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統(tǒng)計

最新評論

Linux的分段和分頁機制

1.分段機制
80386的兩種工作模式
  80386的工作模式包括實地址模式和虛地址模式(保護模式)。Linux主要工作在保護模式下。

分段機制
  在保護模式下,80386虛地址空間可達16K個段,每段大小可變,最大達4GB。
  從邏輯地址到線性地址的轉換由80386分段機制管理。段寄存器CS、DS、ES、SS、FS或GS標識一個段。這些段寄存器作為段選擇器,用來選擇該段的描述符。

分段邏輯地址到線性地址轉換圖


圖9_7 分段邏輯地址到線性地址轉換圖


2. 分頁機制
分頁機制的作用
  分頁機制是在段機制之后進行的,它進一步將線性地址轉換為物理地址。
  80386使用4K字節(jié)大小的頁,且每頁的起始地址都被4K整除。因此,80386把4GB字節(jié)線性地址空間劃分為1M個頁面,采用了兩級表結構。
兩級頁表
  兩級表的第一級表稱為頁目錄,存儲在一個4K字節(jié)的頁中,頁目錄表共有1K個表項,每個表項為4個字節(jié),線性地址最高的10位(22-31)用來產生第一級表索引,由該索引得到的表項中的內容定位了二級表中的一個表的地址,即下級頁表所在的內存塊號。
第二級表稱為頁表,存儲在一個4K字節(jié)頁中,它包含了1K字節(jié)的表項,每個表項包含了一個頁的物理地址。二級頁表由線性地址的中間10位(12-21)位進行索引,定位頁表表項,獲得頁的物理地址。頁物理地址的高20位與線性地址的低12位形成最后的物理地址。

利用兩級頁表轉換地址


圖9_8 利用兩級頁表轉換地址

3. 內核空間和用戶空間
用戶空間
  在Linux中,每個用戶進程都可以訪問4GB的線性虛擬內存空間。其中從0到3GB的虛存地址是用戶空間,用戶進程可以直接訪問。
內核空間
  從3GB到4GB的虛存地址為內核態(tài)空間,存放供內核訪問的代碼和數(shù)據(jù),用戶態(tài)進程不能訪問。所有進程從3GB到4GB的虛擬空間都是一樣的,linux以此方式讓內核態(tài)進程共享代碼段和數(shù)據(jù)段。




保護模式(1)---存儲方式

Writen By Dangerman

保護模式現(xiàn)代操作系統(tǒng)的基礎,理解他是我們要翻越的第一座山。保護模式是相對實模式而言的,他們是處理器的兩種工作方式。很久以前大家使用的dos就是運行在實模式下,而現(xiàn)在的windows操作系統(tǒng)則是運行在保護模式下。兩種運行模式有著較大的不同,
實模式由于是由8086/8088發(fā)展而來因此他更像是一個運行單片機的簡單模式,計算機啟動后首先進入的就是實模式,通過8086/8088只有20根地址線所以它的尋址范圍只有2的20次冪,即1M。內存的訪問方式就是我們熟悉的seg:offset邏輯地址方式,例如我們給出地址邏輯地址它將在cpu內轉換為20的物理地址,即將seg左移4位再加上offset值。例如地址1000h:5678h,則物理地址為10000h+5678h=15678h。實模式在后續(xù)的cpu中被保留了下來,但實模式的局限性是很明顯的,由于使用seg:offset邏輯地址只能訪問1M多一點的內存空間,在擁有32根地址線的cpu中訪問1M以上的空間則變得很困難。而且隨著計算機的不斷發(fā)展實模式的工作方式越來越不能滿足計算機對資源(存儲資源和cpu資源等等)的管理,由此產生了新的管理方式——保護模式。
80386及以上的處理器功能要大大超過其先前的處理器,但只有在保護模式下,處理器才能發(fā)揮作用。在保護模式下,全部32根地址線有效,可尋址4G的物理地址空間;擴充的存儲分段機制和可選的存儲器分頁機制,不僅為存儲器共享和保護提供了硬件支持,而且為實現(xiàn)虛擬存儲器提供了硬件支持;支持多任務;4個特權級和完善的特權級檢查機制,實現(xiàn)了數(shù)據(jù)的安全和保密。計算機啟動后首先進入的就是實模式,通過設置相應的寄存器才能進入保護模式(以后介紹)。保護模式是一個整體的工作方式,但分步討論由淺入深更利于學習。
一.存儲方式
存儲方式主要體現(xiàn)在內存訪問方式上,由于兼容和IA32框架的限制,保護模式在內存訪問上延用了實模式下的seg:offset的形式(即:邏輯地址),其實seg:offset的形式在保護模式下只是一個軀殼,內部的存儲方式與實模式截然不同。在保護模式下邏輯地址并不是直接轉換為物理地址,而是將邏輯地址首先轉換為線性地址,再將線性地址轉換為物理地址。如圖一:





線性地址是個新概念,但大家不要把它想的過于復雜,簡單的說他就是0000000h~ffffffffh(即0~4G)的線性結構,是32個bite位能表示的一段連續(xù)的地址,但他是一個概念上的地址,是個抽象的地址,并不存在在現(xiàn)實之中。線性地址地址主要是為分頁機制而產生的。處理器在得到邏輯地址后首先通過分段機制轉換為線性地址,線性地址再通過分頁機制轉換為物理地址最后讀取數(shù)據(jù)。如圖二:





分段機制是必須的,分頁機制是可選的,當不使用分頁的時候線性地址將直接映射為物理地址,設立分頁機制的目的主要是為了實現(xiàn)虛擬存儲(分頁機制在后面介紹)。先來介紹一下分段機制,以下文字是介紹如何由邏輯地址轉換為線性地址。
分段機制在保護模式中是不能被繞過得,回到我們的seg:offset地址結構,在保護模式中seg有個新名字叫做“段選擇子”(seg..selector)。段選擇子、GDT、LDT構成了保護模式的存儲結構,如圖三



`,GDT、LDT分別叫做全局描述符表和局部描述符表,描述符表是一個線性表(數(shù)組),表中存放的是描述符。





“描述符”是保護模式中的一個新概念,它是一個8字節(jié)的數(shù)據(jù)結構,它的作用主要是描述一個段(還有其他作用以后再說),用描述表中記錄的段基址加上邏輯地址(sel:offset)的offset轉換成線性地址。描述符主要包括三部分:段基址(Base)、段限制(Limit)、段屬性(Attr)。一個任務會涉及多個段,每個段需要一個描述符來描述,為了便于組織管理,80386及以后處理器把描述符組織成表,即描述符表。在保護模式中存在三種描述符表 “全局描述符表”(GDT)、“局部描述符表”(LDT)和中斷描述符表(IDT)(IDT在以后討論)。
(1)全局描述符表GDT(Global Descriptor Table)在整個系統(tǒng)中,全局描述符表GDT只有一張,GDT可以被放在內存的任何位置,但CPU必須知道GDT的入口,也就是基地址放在哪里,Intel的設計者門提供了一個寄存器GDTR用來存放GDT的入口地址,程序員將GDT設定在內存中某個位置之后,可以通過LGDT指令將GDT的入口地址裝入此積存器,從此以后,CPU就根據(jù)此寄存器中的內容作為GDT的入口來訪問GDT了。GDTR中存放的是GDT在內存中的基地址和其表長界限。





(2)段選擇子(Selector)由GDTR訪問全局描述符表是通過“段選擇子”(實模式下的段寄存器)來完成的,如圖三①步。段選擇子是一個16位的寄存器(同實模式下的段寄存器相同)如圖四





段選擇子包括三部分:描述符索引(index)、TI、請求特權級(RPL)。他的index(描述符索引)部分表示所需要的段的描述符在描述符表的位置,由這個位置再根據(jù)在GDTR中存儲的描述符表基址就可以找到相應的描述符(如圖三①步)。然后用描述符表中的段基址加上邏輯地址(SEL:OFFSET)的OFFSET就可以轉換成線性地址(如圖三②步),段選擇子中的TI值只有一位0或1,0代表選擇子是在GDT選擇,1代表選擇子是在LDT選擇。請求特權級(RPL)則代表選擇子的特權級,共有4個特權級(0級、1級、2級、3級)。例如給出邏輯地址:21h:12345678h轉換為線性地址
a. 選擇子SEL=21h=0000000000100 0 01b 他代表的意思是:選擇子的index=4即100b選擇GDT中的第4個描述符;TI=0代表選擇子是在GDT選擇;左后的01b代表特權級RPL=1
b. OFFSET=12345678h若此時GDT第四個描述符中描述的段基址(Base)為11111111h,則線性地址=11111111h+12345678h=23456789h
(3)局部描述符表LDT(Local Descriptor Table)局部描述符表可以有若干張,每個任務可以有一張。我們可以這樣理解GDT和LDT:GDT為一級描述符表,LDT為二級描述符表。如圖五




LDT和GDT從本質上說是相同的,只是LDT嵌套在GDT之中。LDTR記錄局部描述符表的起始位置,與GDTR不同LDTR的內容是一個段選擇子。由于LDT本身同樣是一段內存,也是一個段,所以它也有個描述符描述它,這個描述符就存儲在GDT中,對應這個表述符也會有一個選擇子,LDTR裝載的就是這樣一個選擇子。LDTR可以在程序中隨時改變,通過使用lldt指令。如圖五,如果裝載的是Selector 2則LDTR指向的是表LDT2。舉個例子:如果我們想在表LDT2中選擇第三個描述符所描述的段的地址12345678h。
1. 首先需要裝載LDTR使它指向LDT2 使用指令lldt將Select2裝載到LDTR
2. 通過邏輯地址(SEL:OFFSET)訪問時SEL的index=3代表選擇第三個描述符;TI=1代表選擇子是在LDT選擇,此時LDTR指向的是LDT2,所以是在LDT2中選擇,此時的SEL值為1Ch(二進制為11 1 00b)。OFFSET=12345678h。邏輯地址為1C:12345678h
3. 由SEL選擇出描述符,由描述符中的基址(Base)加上OFFSET可得到線性地址,例如基址是11111111h,則線性地址=11111111h+12345678h=23456789h
4. 此時若再想訪問LDT1中的第三個描述符,只要使用lldt指令將選擇子Selector 1裝入再執(zhí)行2、3兩步就可以了(因為此時LDTR又指向了LDT1)
由于每個進程都有自己的一套程序段、數(shù)據(jù)段、堆棧段,有了局部描述符表則可以將每個進程的程序段、數(shù)據(jù)段、堆棧段封裝在一起,只要改變LDTR就可以實現(xiàn)對不同進程的段進行訪問。
存儲方式是保護模式的基礎,學習他主要注意與實模式下的存儲模式的對比,總的思想就是首先通過段選擇子在描述符表中找到相應段的描述符,根據(jù)描述符中的段基址首先確定段的位置,再通過OFFSET加上段基址計算出線性地址。

posted on 2010-04-15 03:05 大龍 閱讀(455) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩另类字幕中文| 国产精品狼人久久影院观看方式| 精品成人免费| 美女黄网久久| 欧美99在线视频观看| 99re亚洲国产精品| 亚洲毛片在线| 国产精品主播| 鲁鲁狠狠狠7777一区二区| 狂野欧美一区| 亚洲在线视频免费观看| 香蕉精品999视频一区二区 | 亚洲日本aⅴ片在线观看香蕉| 美女国产一区| 亚洲午夜91| 久久久精品免费视频| 亚洲免费观看高清完整版在线观看| 亚洲精品字幕| 国内自拍一区| 91久久精品国产91久久性色tv| 国产精品成人一区二区网站软件 | 亚洲字幕一区二区| 欧美一区二区高清在线观看| 亚洲黄色免费电影| 亚洲永久在线| 日韩视频在线播放| 亚洲欧洲av一区二区三区久久| 永久久久久久| 亚洲视频免费在线| 亚洲精品乱码视频| 香蕉免费一区二区三区在线观看| 亚洲日本无吗高清不卡| 亚洲欧美久久久| 亚洲免费成人av电影| 欧美一区二区三区啪啪| 一本色道**综合亚洲精品蜜桃冫| 欧美一区二区观看视频| 亚洲视频在线观看一区| 免费在线日韩av| 久久躁日日躁aaaaxxxx| 国产精品久久久久久久久免费樱桃 | 亚洲激情中文1区| 国产在线不卡精品| 一区二区免费在线观看| 亚洲欧洲日产国码二区| 久久成人在线| 欧美一区二区| 欧美性一区二区| 亚洲欧洲美洲综合色网| 1024精品一区二区三区| 先锋影音久久| 欧美在线91| 国产精品三级久久久久久电影| 亚洲国产日韩欧美在线99| 一区二区在线观看视频| 午夜精品影院在线观看| 欧美影院久久久| 国产精品久久久一区麻豆最新章节 | 销魂美女一区二区三区视频在线| 亚洲调教视频在线观看| 欧美日本精品| 亚洲毛片在线观看| 日韩网站在线观看| 免费中文字幕日韩欧美| 欧美国产日韩二区| 亚洲第一级黄色片| 免播放器亚洲| 亚洲激情欧美| 一本大道久久a久久综合婷婷| 欧美国产一区二区三区激情无套| 欧美激情精品久久久久久| 亚洲精品免费观看| 欧美连裤袜在线视频| 亚洲精品日韩一| 亚洲午夜羞羞片| 国产精品日日摸夜夜添夜夜av| 亚洲欧美成人| 老司机精品导航| 亚洲激情视频网| 欧美日韩黄视频| 亚洲免费一区二区| 久久在线精品| 亚洲人成在线播放| 欧美日韩视频在线第一区| 亚洲一区国产一区| 久久久av毛片精品| 亚洲激情视频在线播放| 欧美色中文字幕| 性做久久久久久久免费看| 久久伊人一区二区| 日韩一二在线观看| 国产精品影视天天线| 久久人人97超碰精品888| 亚洲精品国产精品乱码不99 | 欧美亚洲在线播放| 精品不卡一区| 欧美日韩精品一本二本三本| 亚洲制服丝袜在线| 免费一级欧美片在线观看| 一本色道久久精品| 狠狠色丁香婷综合久久| 欧美女同在线视频| 欧美一级视频免费在线观看| 欧美激情视频一区二区三区不卡| 一本一本久久a久久精品牛牛影视| 国产精品影视天天线| 麻豆精品在线视频| 亚洲深夜av| 亚洲第一毛片| 久久国产精品久久久久久久久久 | 欧美视频中文字幕在线| 久久精品日产第一区二区三区| 亚洲美女中文字幕| 可以免费看不卡的av网站| 亚洲一区二区不卡免费| 永久免费毛片在线播放不卡| 国产精品美女久久福利网站| 欧美成人小视频| 久久精品欧洲| 小嫩嫩精品导航| 99亚洲一区二区| 亚洲国产欧美日韩精品| 久久性天堂网| 欧美制服丝袜第一页| 一区二区不卡在线视频 午夜欧美不卡在 | 在线观看视频一区| 国产免费一区二区三区香蕉精| 欧美bbbxxxxx| 久久在线免费视频| 欧美在线啊v一区| 亚洲影院一区| 亚洲图中文字幕| 99视频一区二区三区| 最新日韩中文字幕| 亚洲国产精品精华液2区45 | 日韩网站在线| 亚洲日韩欧美一区二区在线| 黄色欧美成人| 国内成+人亚洲| 国产日韩欧美精品| 国产目拍亚洲精品99久久精品| 国产精品草草| 国产精品二区二区三区| 国产精品国产三级国产a| 欧美精品成人一区二区在线观看 | 欧美另类女人| 欧美精品在欧美一区二区少妇| 久久女同精品一区二区| 六十路精品视频| 欧美成人精品福利| 欧美黄色一区二区| 欧美视频免费在线| 国产精品国产三级国产aⅴ9色| 国产精品v亚洲精品v日韩精品 | 狠狠色狠色综合曰曰| 国内久久精品| 亚洲电影免费观看高清| 亚洲激情成人网| 一区二区三区四区在线| 性欧美1819性猛交| 久久久亚洲国产天美传媒修理工 | 99re热这里只有精品视频| 99视频一区二区三区| 亚洲——在线| 久久久999精品免费| 欧美阿v一级看视频| 欧美日韩国产不卡| 国产日韩av一区二区| 亚洲电影观看| 亚洲无亚洲人成网站77777| 欧美在线一二三四区| 免费一级欧美片在线观看| 亚洲国产精品成人一区二区 | 午夜电影亚洲| 美女图片一区二区| 欧美日韩精品免费观看视一区二区| 国产精品mm| 欲色影视综合吧| 一本色道88久久加勒比精品| 久久精品国产99国产精品澳门| 欧美国产日韩二区| 亚洲一二三区在线观看| 裸体素人女欧美日韩| 国产精品乱码一区二区三区| 亚洲电影免费观看高清完整版在线| 中文在线资源观看网站视频免费不卡| 久久精品综合| 日韩视频二区| 免费欧美网站| 国产最新精品精品你懂的| 一区二区欧美日韩| 欧美成人一二三| 性欧美办公室18xxxxhd| 欧美日韩一区二区三区免费| 影音先锋久久久| 久久不见久久见免费视频1| 亚洲国产激情| 久久精品国产综合精品| 国产区日韩欧美| 亚洲在线日韩|