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

大龍的博客

常用鏈接

統(tǒng)計(jì)

最新評(píng)論

Linux的分段和分頁(yè)機(jī)制

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

分段機(jī)制
  在保護(hù)模式下,80386虛地址空間可達(dá)16K個(gè)段,每段大小可變,最大達(dá)4GB。
  從邏輯地址到線性地址的轉(zhuǎn)換由80386分段機(jī)制管理。段寄存器CS、DS、ES、SS、FS或GS標(biāo)識(shí)一個(gè)段。這些段寄存器作為段選擇器,用來(lái)選擇該段的描述符。

分段邏輯地址到線性地址轉(zhuǎn)換圖


圖9_7 分段邏輯地址到線性地址轉(zhuǎn)換圖


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

利用兩級(jí)頁(yè)表轉(zhuǎn)換地址


圖9_8 利用兩級(jí)頁(yè)表轉(zhuǎn)換地址

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




保護(hù)模式(1)---存儲(chǔ)方式

Writen By Dangerman

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





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





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



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





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





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





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




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

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


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   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>
            亚洲一区二区三区四区中文| 女主播福利一区| 久久成人精品视频| 亚洲国产精品一区| 国产欧美日本一区二区三区| 久久成人18免费网站| 亚洲欧美中文另类| 亚洲欧美日韩天堂| 日韩一级大片| 亚洲日韩成人| 在线观看成人av电影| 国产一区二区三区直播精品电影| 国产精品亚洲一区二区三区在线| 欧美国产日本高清在线| 欧美在线视频免费播放| 亚洲电影专区| 亚洲精品一区二区三区蜜桃久 | 亚洲电影激情视频网站| 欧美日韩成人一区二区| 欧美精品一卡| 国产精品亚洲成人| 欧美三级视频在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美日韩在线一区二区三区| 99热精品在线| 一区二区三区高清视频在线观看| 日韩视频免费观看高清在线视频| 亚洲午夜视频在线观看| 欧美日韩一区视频| 欧美久久久久免费| 欧美日本高清一区| 国产精品扒开腿爽爽爽视频 | 亚洲欧美日本精品| 久久久久一本一区二区青青蜜月| 久久这里有精品15一区二区三区| 亚洲第一黄色| 欧美高清视频免费观看| 夜夜狂射影院欧美极品| 久久av在线看| 欧美另类极品videosbest最新版本| 亚洲日韩视频| 免费精品视频| 午夜在线视频一区二区区别 | 怡红院精品视频| 亚洲尤物在线| avtt综合网| 久热re这里精品视频在线6| 欧美日韩第一区| 亚洲人午夜精品免费| 女仆av观看一区| 久久精品亚洲热| 国产精品一区二区久久久| 亚洲大片av| 久久视频免费观看| 久久久久国产一区二区三区四区 | 久久精品人人做人人综合| 国产日韩欧美一区二区| 午夜在线播放视频欧美| 亚洲性视频网址| 国产乱码精品一区二区三区忘忧草| 欧美成人一区二区三区| 美女视频网站黄色亚洲| 亚洲三级免费| 一区二区三区欧美视频| 国产综合网站| 91久久精品一区| 国产视频久久| 日韩亚洲精品电影| 国产亚洲视频在线| 亚洲丁香婷深爱综合| 欧美少妇一区二区| 久久精品国产99精品国产亚洲性色 | 国产农村妇女精品一二区| 日韩一级裸体免费视频| 蜜桃久久av一区| 在线精品一区| 蜜臀a∨国产成人精品 | 久久久国产精品一区二区三区| 亚洲一区二区视频在线观看| 国产午夜精品理论片a级大结局 | 亚洲日韩成人| 亚洲免费观看高清完整版在线观看熊 | 欧美视频中文一区二区三区在线观看 | 欧美麻豆久久久久久中文| 日韩一区二区免费看| 亚洲精品女av网站| 欧美成人免费在线观看| av成人免费观看| 亚洲欧美视频一区二区三区| 激情国产一区| 亚洲精品美女免费| 国产精品爽黄69| 毛片一区二区| 欧美视频在线一区二区三区| 久久麻豆一区二区| 欧美日韩亚洲另类| 久久青青草原一区二区| 欧美人成在线视频| 久久人人看视频| 欧美无乱码久久久免费午夜一区| 久久久av水蜜桃| 欧美精品一区视频| 久久精品二区三区| 欧美极品在线观看| 久久理论片午夜琪琪电影网| 欧美另类综合| 老司机成人在线视频| 国产精品99免费看| 欧美国产高清| 国产日韩欧美一二三区| 亚洲精品日韩久久| 极品尤物av久久免费看| 亚洲少妇自拍| 亚洲精品一区二区三区四区高清| 性感少妇一区| 亚洲宅男天堂在线观看无病毒| 久久久久综合一区二区三区| 性欧美精品高清| 欧美日韩一区综合| 亚洲狠狠丁香婷婷综合久久久| 好看的日韩av电影| 一区二区三区欧美亚洲| 99re66热这里只有精品3直播 | 国产精品久久久91| 亚洲日韩成人| 亚洲精品视频在线播放| 久久久久久久性| 久久精品系列| 国产日韩欧美制服另类| 亚洲桃花岛网站| 亚洲视频二区| 欧美日韩天堂| 亚洲美女性视频| 一片黄亚洲嫩模| 欧美理论片在线观看| 亚洲国产欧美一区二区三区同亚洲| 精品动漫3d一区二区三区免费| 久久成人综合视频| 久久这里有精品15一区二区三区| 国产一区二区按摩在线观看| 午夜国产一区| 欧美一区视频在线| 国产日韩av一区二区| 午夜久久久久久| 久久久之久亚州精品露出| 午夜精品在线| 久久久蜜臀国产一区二区| 国产日产欧产精品推荐色| 午夜一区二区三视频在线观看| 久久久精品2019中文字幕神马| 国产主播喷水一区二区| 久久久亚洲高清| 亚洲高清在线| 99国产精品国产精品久久| 欧美日韩一级片在线观看| 亚洲午夜精品久久久久久app| 先锋影院在线亚洲| 国产一区二区三区日韩欧美| 欧美一区二区国产| 免费日韩av片| 一片黄亚洲嫩模| 国产欧美日韩精品在线| 欧美专区第一页| 亚洲国产精品成人综合| 亚洲欧美成人一区二区三区| 国产一级一区二区| 欧美成人精品在线观看| 一区二区三区欧美激情| 久久综合九九| 中文在线不卡| 伊甸园精品99久久久久久| 欧美人与性动交α欧美精品济南到| 亚洲社区在线观看| 欧美a级片网| 亚洲欧美日韩国产中文在线| 精东粉嫩av免费一区二区三区| 欧美人与禽性xxxxx杂性| 欧美一区2区三区4区公司二百| 亚洲国产经典视频| 欧美专区中文字幕| 99ri日韩精品视频| 黄色精品一区二区| 欧美视频专区一二在线观看| 久久婷婷影院| 亚洲一区二区三区三| 欧美激情一二区| 欧美在线播放| 亚洲天堂网站在线观看视频| 亚洲高清激情| 国产一区二区三区久久久| 欧美日韩国产综合一区二区| 久久久无码精品亚洲日韩按摩| 亚洲视频一区在线观看| 亚洲黄一区二区三区| 久久亚洲色图| 小黄鸭精品密入口导航| 亚洲小视频在线观看| 亚洲欧洲精品一区二区三区 | 欧美日韩中文字幕在线| 麻豆精品在线观看|