![第1章04Pentium保護模式存儲管理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/2/dfecb05b-f12a-493b-a206-213eec139aa3/dfecb05b-f12a-493b-a206-213eec139aa31.gif)
![第1章04Pentium保護模式存儲管理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/2/dfecb05b-f12a-493b-a206-213eec139aa3/dfecb05b-f12a-493b-a206-213eec139aa32.gif)
![第1章04Pentium保護模式存儲管理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/2/dfecb05b-f12a-493b-a206-213eec139aa3/dfecb05b-f12a-493b-a206-213eec139aa33.gif)
![第1章04Pentium保護模式存儲管理_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/2/dfecb05b-f12a-493b-a206-213eec139aa3/dfecb05b-f12a-493b-a206-213eec139aa34.gif)
![第1章04Pentium保護模式存儲管理_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/2/dfecb05b-f12a-493b-a206-213eec139aa3/dfecb05b-f12a-493b-a206-213eec139aa35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、COMPUTER SCIENCE AND TECHNOLOGY 1微型計算機原理與接口技術(shù)微型計算機原理與接口技術(shù)(第(第2版)版) 北京:科學(xué)出版社 出版 趙宏偉趙宏偉 于秀峰于秀峰 黃永平黃永平 秦貴和秦貴和COMPUTER SCIENCE AND TECHNOLOGY 2第第1章章 Pentium保護模式存儲管理保護模式存儲管理 1.1 虛擬存儲器及其工作原理虛擬存儲器及其工作原理 虛擬存儲器又稱為虛擬存儲系統(tǒng)。虛擬存儲器是為滿足用戶對存儲空間不斷擴大的要求而提出的,隨著用戶程序復(fù)雜性的增加,占用存儲空間越來越大。其解決辦法是,可擴大主存,但是造價高,空間利用率很低,并不是好的途徑。采用
2、虛擬存儲器,可較好地解決這個問題。 虛擬存儲器這個概念是1961年由英國曼徹斯特大學(xué)的Kilburn等人提出的,并于20世紀(jì)70年代廣泛應(yīng)用于大中型計算機之中,現(xiàn)在的微型計算機也都采用了這種技術(shù)。 虛擬存儲器是由主存儲器、輔助存儲器、輔助硬件和操作系統(tǒng)管理軟件組成的一種存儲體系。它把輔助存儲器作為主存儲器的擴充,對應(yīng)用程序員來說,好像計算機系統(tǒng)有一個容量很大的主存。虛擬存儲系統(tǒng)的目標(biāo)是為了增加存儲器的存儲容量,它的速度接近于主存,單位造價接近于輔存,因此性能價格比很高。 COMPUTER SCIENCE AND TECHNOLOGY 3表表1.1.1 虛擬存儲器和虛擬存儲器和Cache存儲器的
3、比較存儲器的比較 COMPUTER SCIENCE AND TECHNOLOGY 41.1.1 地址空間及地址地址空間及地址 在虛擬存儲器中有3種地址空間及對應(yīng)的3種地址。 3種地址空間分別是虛擬地址空間、主存地址空間、輔存地址空間。 虛擬地址空間:又稱為虛存地址空間,是應(yīng)用程序員用來編寫程序的地址空間,與此相對應(yīng)的地址稱為虛地址或邏輯地址。 主存地址空間:又稱為實存地址空間,是存儲、運行程序的空間,其相應(yīng)的地址稱為主存物理地址或?qū)嵉刂贰?輔存地址空間:也就是磁盤存儲器的地址空間,是用來存放程序的空間,相應(yīng)的地址稱為輔存地址或磁盤地址。 COMPUTER SCIENCE AND TECHNOL
4、OGY 51.1.2 虛擬存儲器工作原理虛擬存儲器工作原理 COMPUTER SCIENCE AND TECHNOLOGY 6存貯管理方式存貯管理方式 由于采用的存貯映象算法不同,就形成了不同的存貯管理方式,其中主要有段式、頁式和段頁式3種。 Pentium支持分段存儲管理、分頁存儲管理和段頁式存儲管理。Pentium微處理器片內(nèi)存儲管理部件負責(zé)對物理存儲器實施安全可靠且行之有效的存儲管理操作。當(dāng)存儲管理部件正常運轉(zhuǎn)時,程序是不能直接對物理存儲器進行尋址操作的,只能對一個被稱之為虛擬存儲器的存儲器模型進行尋址操作。 Pentium微處理機的存儲管理部件由分段部件和分頁部件組成。分段部件可以提供
5、多個各自獨立的地址空間,而分頁部件可以使用少量的隨機存儲器(RAM)和磁盤存儲器去支持一個很大的地址空間模型。由程序提供的地址叫做邏輯地址。分段部件的功能之一就是將邏輯地址轉(zhuǎn)換成一個連續(xù)的不分段的地址空間,這個地址空間的地址叫做線性地址。而分頁部件的主要功能就是將線性地址轉(zhuǎn)換成物理地址。 COMPUTER SCIENCE AND TECHNOLOGY 71.2 分段存儲管理分段存儲管理 1.2.1 分段存儲管理的基本思想 通常,一個程序由多個模塊組成,特別是在結(jié)構(gòu)化程序設(shè)計思想提出之后,程序的模塊性就更強了。一個復(fù)雜的大程序總可以分解成多個在邏輯上相對獨立的模塊,模塊間的界面和調(diào)用關(guān)系是可以清
6、楚定義的。這些模塊可以是主程序、各種能賦于名稱的子程序或過程,也可以是表格、數(shù)組、樹、向量等某類數(shù)據(jù)元素的集合。模塊的大小可以各不相同,有的甚至事先無法確定。但每一個模塊都是一個特定功能的獨立的程序段,都是以該段的起點為0相對編址。 把主存按段分配的存儲管理方式就稱為段式管理。程序進入內(nèi)存時,各程序段要求占據(jù)相對獨立的內(nèi)存區(qū)間。因此,現(xiàn)代微機系統(tǒng)把物理空間分成相對獨立的許多內(nèi)存段,每個內(nèi)存段放置一個程序段,至此內(nèi)存段與程序段統(tǒng)一,統(tǒng)稱為段。一個程序擁有多個段、不同程序占據(jù)不完全相同的幾個段。而且管理系統(tǒng)所需要的信息放置在屬于系統(tǒng)所有的段中。 COMPUTER SCIENCE AND TECHN
7、OLOGY 81分段存儲管理工作過程分段存儲管理工作過程 COMPUTER SCIENCE AND TECHNOLOGY 92虛擬地址和虛擬地址空間虛擬地址和虛擬地址空間 Pentium微處理機在保護模式下的存儲器管理單元使用48位的存儲器指針。 它分為段選擇符(或簡稱為選擇符)和偏移量兩部分。該48位存儲器指針稱為虛擬地址,它在程序中用以規(guī)定指令或數(shù)據(jù)的存儲器位置。段選擇符16位,偏移量32位。 段選擇符可放在Pentium微處理機段寄存器中。若要訪問存儲器中的代碼,則段選擇符應(yīng)放在CS中。若要訪問存儲器中的數(shù)據(jù),則段選擇符應(yīng)放在DS、ES、FS、GS、SS中的任意一個。 偏移量放在Pent
8、ium微處理機的用戶可訪問的寄存器中。若要訪問存儲器中的代碼,則偏移量放在EIP寄存器中。若要訪問存儲器中的數(shù)據(jù),則偏移量放在EAX、EBX、ECX、EDX、ESI、EDI等寄存器中。由于偏移量是32位長,所以段大小可達4G字節(jié)。我們說段大小可達4G字節(jié)是因為段大小實際上可變的,它可從1個字節(jié)到4G字節(jié)。 COMPUTER SCIENCE AND TECHNOLOGY 10保護模式下的存儲器指針及段選擇符格式保護模式下的存儲器指針及段選擇符格式 COMPUTER SCIENCE AND TECHNOLOGY 113虛實地址轉(zhuǎn)換虛實地址轉(zhuǎn)換 Pentium微處理機的分段存儲管理機制允許將46位虛
9、擬地址映射到硬件所需的32位物理地址。 首先由虛擬地址(也稱邏輯地址)段選擇符部分的13位索引字段確定段描述符在段表(也稱段描述符表)的位置。 然后取出段描述符中的32位基地址并與偏移量相加,得到32位的線性地址。如果不啟用分頁功能,則線性地址就直接作為物理地址。 COMPUTER SCIENCE AND TECHNOLOGY 12虛實地址轉(zhuǎn)換示意圖虛實地址轉(zhuǎn)換示意圖 COMPUTER SCIENCE AND TECHNOLOGY 131.2.2 段描述符段描述符 段描述符是Pentium微處理機存儲管理部件用以管理64T字節(jié)虛擬存儲地址空間分段的基本元素。一個段描述符對應(yīng)于虛擬地址空間中的一
10、個存儲器段。 段描述符是位于主存中的一種數(shù)據(jù)結(jié)構(gòu),由系統(tǒng)程序創(chuàng)建,它為處理機提供段的基本信息。所有段描述符均由8個字節(jié)組成。段描述符內(nèi)保存著供處理機使用的有關(guān)段的屬性、段的大小、段在存儲器中的位置以及控制和狀態(tài)信息。一般說來,各段描述符都是由各種編譯程序、各種連接程序、各種裝入程序或者是操作系統(tǒng)產(chǎn)生的,而不是由各種應(yīng)用程序生成的。 段描述符按段的性質(zhì)可分為程序段描述符、系統(tǒng)段描述符和門描述符,如圖1.2.4所示。對于不同的描述符,其格式存在差異。 COMPUTER SCIENCE AND TECHNOLOGY 14段描述符的分類段描述符的分類 COMPUTER SCIENCE AND TECH
11、NOLOGY 151程序段描述符程序段描述符 程序段描述符的格式:(1)基地址字段Pentium微處理機用這個字段來規(guī)定某一個段在4GB物理地址空間中的起始位置。段描述符的第24和第7字節(jié)組成了32位的基址字段,這個基址可以訪問4G(232)字節(jié)的主存空間。(2)段界限字段段描述符中的段界限字段是用來定義段的大小規(guī)模。段描述符的第0、1字節(jié)和第6字節(jié)的低4位是20位的段界限字段,該字段的值決定了段的長度,而該字段的值的單位由“G”位決定?!癎”位稱作粒度位,用來確定段界限所使用的長度單位。(3)粒位G字段段描述符中的這個字段是用來確定段界限所使用的長度單位。段描述符的第6字節(jié)的D7位是粒度位G
12、字段。G=0時,段的長度以一個字節(jié)為單位。G=1時,段的長度以4K(212)字節(jié)為單位。當(dāng)G=0時,段界限字段值的范圍可從1B到1MB(因為段界限為20位)范圍。在這種情況下,段界限字段的值可在1B的基礎(chǔ)上,每次增值1B。當(dāng)G=1時,段界限字段值的范圍可從4KB到4GB范圍。在這種情況下,段界限字段的值可在4KB的基礎(chǔ)上,每次增值4KB。COMPUTER SCIENCE AND TECHNOLOGY 16(4)分類S字段 段描述符中的第5字節(jié)的D4位“S”字段是用來區(qū)分是系統(tǒng)段描述符還是非系統(tǒng)段描述符。當(dāng)S=0時,是系統(tǒng)段描述符。當(dāng)S=1時,是非系統(tǒng)段描述符。(5)段存在位P字段P字段表示該段
13、是否在內(nèi)存中。段描述符的第5字節(jié)的D7位是P字段。當(dāng)P=1時,表示該段在內(nèi)存中。當(dāng)P=0時,表示該段不在內(nèi)存中。 (6)系統(tǒng)可用位AVL字段表示系統(tǒng)軟件是否可用本段。段描述符的第6字節(jié)的D4位是AVL字段。當(dāng)AVL=1時,表示系統(tǒng)軟件可用本段。當(dāng)AVL=0時,表示系統(tǒng)軟件不能用本段。 (7)特權(quán)級DPL字段這個字段用來定義段的特權(quán)級。段描述符的第5字節(jié)的D6、D5位是DPL字段。DPL字段占有2位,故有4個特權(quán)級:00、01、10、11,稱作0級、1級、2級、3級。0級的特權(quán)最高,1級次之,3級的特權(quán)最低。借助于保護機構(gòu),用這個字段定義的特權(quán)級去控制對這個段的訪問。其訪問原則是高特權(quán)級的程序段
14、可以訪問低特權(quán)級程序的數(shù)據(jù)段,反之則不行。COMPUTER SCIENCE AND TECHNOLOGY 17(8)類型TYPE字段段描述符的第5字節(jié)的低4位是類型TYPE字段。類型TYPE字段在不同的段描述符中有不同的格式。1)數(shù)據(jù)段或堆棧段描述符中的類型TYPE字段。數(shù)據(jù)段或堆棧段描述符中的類型TYPE字段的格式如表1.2.2所示。 E可執(zhí)行位。當(dāng)E=0時,是數(shù)據(jù)段或堆棧段。 ED擴展方向位。當(dāng)ED=0時,向上擴展(地址增加方向),通常用于數(shù)據(jù)段。它指明段的地址范圍是從基地址向高位地址方向擴展,可以一直擴展到該數(shù)據(jù)段的上界,上界的界限值是最大值。在數(shù)據(jù)段內(nèi),段界限字段規(guī)定了該數(shù)據(jù)段的上界,
15、使用時,段的偏移量值必須小于等于界限值。當(dāng)ED=1時,向下擴展(地址減小方向),通常用于堆棧段。它指明從段的最大偏移量處向低位地址方向擴展,可以一直擴展到該堆棧段的下界,下界的界限值是最小值。在向下擴展的堆棧段內(nèi),段界限字段規(guī)定了該堆棧段的下界,使用時,偏移量的值必須大于界限。在80X86系統(tǒng)中,堆棧向小地址方向生成,堆棧底部的地址最大,隨著壓入堆棧的數(shù)據(jù)增多,棧頂?shù)牡刂吩絹碓叫?,這就是“向下擴展”的含義,為此,要規(guī)定一個界限,使棧頂?shù)钠屏坎荒苄∮谶@個值。 COMPUTER SCIENCE AND TECHNOLOGY 18 W可寫位。當(dāng)W=0時,不允許寫入。當(dāng)W=1時,允許寫入。 A訪問位
16、。當(dāng)A=0時,該段尚未被訪問。當(dāng)A=1時,該段已被訪問。2)代碼段描述符中的類型TYPE字段代碼段描述符中的類型TYPE字段的格式如表1.2.3所示。 E可執(zhí)行位。當(dāng)E=1時,是代碼段。 C一致性位。所謂一致性檢查,就是采用特權(quán)級進行控制。當(dāng)C=0時,表示非一致性代碼段,此時忽視段描述符的特權(quán)值。當(dāng)C=1時,表示一致性代碼段,需要進行特權(quán)級檢查。 R可讀位。當(dāng)R=0時,不允許讀。當(dāng)R=1時,允許讀。當(dāng)然,對程序段來說,通常都是“可執(zhí)行的”。R位取0可防止用戶程序?qū)Υ鎯ζ骼锏摹澳繕?biāo)程序代碼”做手腳。R位為0的描述符只能加載到CS的描述符寄存器,而R位為1的描述符可加載到CS、DS、ES、FS及G
17、S的描述符寄存器,此時,可以讀取段內(nèi)的數(shù)據(jù)(程序代碼)。 A訪問位。當(dāng)A=0時,該段尚未被訪問;當(dāng)A=1時,該段已被訪問。 COMPUTER SCIENCE AND TECHNOLOGY 19(9)D位/B位字段段描述符的第6字節(jié)的D6位是D位/B位字段。這個字段在代碼段描述符中叫做D位字段,而在數(shù)據(jù)段和堆棧段描述符中叫做B位字段。該字段可分為下述三種情況。1)在代碼段描述符中,用來指示代碼段中缺省的操作數(shù)的長度和有效地址長度。當(dāng)D=1時,說明采用的是32位操作數(shù)和32位有效地址的尋址方式。D=0時,則說明采用的是16位操作數(shù)和16位有效地址的尋址方式。2)在堆棧段描述符中,用來指示堆棧指針寄
18、存器的大小。當(dāng)B=1時,使用的是32位的堆棧指針寄存器ESP。當(dāng)B=0時,使用的是16位的堆棧指針寄存器SP。堆棧段的上界是一個各位均為1的地址。當(dāng)B=1時,上界地址值為0FFFFFFFFH。當(dāng)B=0時,上界地址值為0FFFFH。3)在數(shù)據(jù)段描述符中,用來指示數(shù)據(jù)段中操作數(shù)的長度。當(dāng)B=1時,使用的是32位的操作數(shù)。當(dāng)B=0時,使用的是16位的操作數(shù)。(10)兼容位字段段描述符的第6字節(jié)的D5位必須是0,以便與將來的處理器兼容。 COMPUTER SCIENCE AND TECHNOLOGY 20程序段描述符的格式程序段描述符的格式 COMPUTER SCIENCE AND TECHNOLOG
19、Y 212系統(tǒng)段描述符系統(tǒng)段描述符 COMPUTER SCIENCE AND TECHNOLOGY 22系統(tǒng)段描述符中的類型系統(tǒng)段描述符中的類型TYPE字段的格式字段的格式 COMPUTER SCIENCE AND TECHNOLOGY 233門描述符門描述符 門描述符用來控制訪問的目標(biāo)代碼段的入口點。所謂門是一種關(guān)卡,用來控制從一段程序到另一段程序或從一個任務(wù)到另一個任務(wù)的轉(zhuǎn)移。在轉(zhuǎn)移過程中自動進行保護檢查,并控制轉(zhuǎn)移到目的程序的入口。 門描述符包括調(diào)用門、任務(wù)門、中斷門和陷阱門。這些門為控制轉(zhuǎn)移提供了一個間接的辦法,這一辦法允許處理器自動地完成保護檢查。它也允許系統(tǒng)設(shè)計者控制操作系統(tǒng)的入口
20、點。調(diào)用門用于改變特權(quán)級別,任務(wù)門用于任務(wù)切換,中斷門和陷阱門用于確定中斷服務(wù)程序。 門描述符的第0、1、6、7字節(jié)是一個32位的偏移地址,第4字節(jié)是一個字計數(shù),第2、3字節(jié)是一個段選擇符,第5字節(jié)是門描述符的屬性。 32位的偏移地址指向中斷服務(wù)程序或其他程序的入口。 COMPUTER SCIENCE AND TECHNOLOGY 24門描述符的格式門描述符的格式 COMPUTER SCIENCE AND TECHNOLOGY 251.2.3 全局描述符表及寄存器全局描述符表及寄存器 全局描述符表由段描述符組成。全局描述符表和段描述符都由系統(tǒng)程序產(chǎn)生。描述符表就是描述符的一個陣列,是存放在主存
21、中的一種數(shù)據(jù)結(jié)構(gòu)。 在Pentium微處理機中,全局描述符表寄存器GDTR指定了全局描述符表GDT在內(nèi)存中的起始地址。全局描述符表是Pentium微處理機進入保護方式后存儲器管理系統(tǒng)中的一個重要組成部分。 GDTR是Pentium微處理機中的48位寄存器。該寄存器的低2個字節(jié)標(biāo)識為16位界限,它規(guī)定了GDT按字節(jié)進行計算的地址范圍的大小。GDTR的高4個字節(jié)標(biāo)為32位基地址,指示GDT在存儲器中開始的物理地址。用裝全局描述符表寄存器指令LGDT和存全局描述符表寄存器指令SGDT,可以對全局描述符表寄存器GDTR的內(nèi)容進行裝入和保存的操作。COMPUTER SCIENCE AND TECHNOL
22、OGY 26由由GDTR確定確定GDT存儲位置和界限存儲位置和界限 COMPUTER SCIENCE AND TECHNOLOGY 271.2.4 局部描述符表及寄存器局部描述符表及寄存器 局部描述符表寄存器LDTR也是Pentium微處理機存儲器管理部件的一部分,每個任務(wù)除了可訪問全局描述符表外還可訪問它自己的描述符表,這個描述符表稱為局部描述符表LDT,它由LDTR定義某個任務(wù)用到的局部存儲器地址空間。 Pentium微處理機中的局部描述符表寄存器LDTR由16位選擇符、32位基址、20位界限和12位屬性組成。基址、界限和屬性不可訪問,屬于程序不可見的部分,程序只能對16位的段選擇符進行訪
23、問。 局部描述符表寄存器LDTR中的段選擇符是一個指向全局描述符表GDT中LDT描述符的選擇符,它還不能直接確定局部描述符表LDT的位置。如果LDTR中裝入了段選擇符,Pentium微處理機自動地將相應(yīng)的LDT描述符從全局描述符表GDT中讀出來,并裝入LDTR中程序不可見部分。也就是說,全局描述符表GDT中的LDT描述符才確定了局部描述符表。COMPUTER SCIENCE AND TECHNOLOGY 28由由LDTR確定確定LDT存儲位置和界限存儲位置和界限 COMPUTER SCIENCE AND TECHNOLOGY 291.2.5 中斷描述符表及寄存器中斷描述符表及寄存器 同全局描述
24、符表寄存器一樣,Pentium微處理機通過中斷描述符表寄存器IDTR在內(nèi)存中定義了一個中斷描述符表IDT,中斷描述符表是Pentium微處理機進入保護方式后存儲器管理系統(tǒng)中的又一個重要組成部分。 同GDTR一樣,IDTR是Pentium微處理機中的48位寄存器。該寄存器的低2個字節(jié)標(biāo)識為16位界限,它規(guī)定了IDT按字節(jié)計算的大小,IDT最大可達64KB(但是Pentium微處理機只能夠支持256個中斷和異常,最多占用2KB)。IDTR的高4個字節(jié)標(biāo)為32位基地址,指示IDT在存儲器中開始的物理地址。 中斷描述符表IDT中存放的描述符類型均是門描述符。門提供了一種將程序控制轉(zhuǎn)移到中斷服務(wù)程序入口
25、的手段。每個門8個字節(jié),包含服務(wù)程序的屬性和起始地址。COMPUTER SCIENCE AND TECHNOLOGY 30由由IDTR確定確定IDT存儲位置和界限存儲位置和界限 COMPUTER SCIENCE AND TECHNOLOGY 311.2.6 任務(wù)狀態(tài)段及寄存器任務(wù)狀態(tài)段及寄存器 在多任務(wù)系統(tǒng)中,多個任務(wù)可以并行執(zhí)行。當(dāng)然,這種并行是宏觀上的并行。為了實現(xiàn)多個任務(wù)同時工作,就要求每個任務(wù)都有自己的虛擬存儲空間,都有自己的一個局部描述符表LDT,存放該任務(wù)私有的描述符。 任務(wù)間的轉(zhuǎn)移必然會引起任務(wù)切換。任務(wù)切換操作要保存現(xiàn)有任務(wù)的機器狀態(tài)(指處理器的工作環(huán)境,比如各個寄存器的狀態(tài))
26、,裝入新任務(wù)的機器狀態(tài)。這時的機器狀態(tài)就是通常操作系統(tǒng)的任務(wù)控制塊,對于Pentium微處理機,稱之為任務(wù)狀態(tài)段TSS(Task State Segment)。 任務(wù)狀態(tài)段TSS如同每個任務(wù)有自己的一個LDT一樣,各個任務(wù)都有自己的TSS。 COMPUTER SCIENCE AND TECHNOLOGY 32TSS的格式的格式 COMPUTER SCIENCE AND TECHNOLOGY 33由由TR確定確定TSS存儲位置和界限存儲位置和界限 COMPUTER SCIENCE AND TECHNOLOGY 34 任務(wù)寄存器TR中的32位基址值標(biāo)識任務(wù)狀態(tài)段在內(nèi)存中的起始物理地址,20位界限值
27、定義段的大小。 雖然任務(wù)狀態(tài)段TSS描述符和其他任何描述符一樣,包含了任務(wù)狀態(tài)段TSS的位置、大小和優(yōu)先級別。但它們之間的區(qū)別在于TSS描述符所描述的TSS段不包含數(shù)據(jù)和代碼,它包含了任務(wù)狀態(tài)和任務(wù)間的關(guān)聯(lián)信息,以使任務(wù)可以被嵌套(第一個任務(wù)可以調(diào)用第二個任務(wù),而第二個任務(wù)又可以調(diào)用第三個任務(wù),依此類推)。 TSS描述符由任務(wù)寄存器TR尋址。TR的內(nèi)容由裝任務(wù)寄存器指令LTR和存任務(wù)寄存器指令STR進行裝入和保存。TR的內(nèi)容也可由保護模式下運行程序中的遠轉(zhuǎn)移JMP或遠調(diào)用CALL指令來改變。 LTR指令通常用于系統(tǒng)初始化過程中裝入第一個任務(wù)的選擇符。在初始化之后,遠調(diào)用CALL或遠轉(zhuǎn)移JMP指
28、令通常對任務(wù)進行切換。COMPUTER SCIENCE AND TECHNOLOGY 351.2.7 段選擇符及寄存器段選擇符及寄存器 在實模式下,段寄存器的16位值是基地址。而在保護模式下,為了加快對存儲器的訪問,每個段寄存器都有一個程序員不可見的段描述符高速緩沖寄存器與之對應(yīng)。這樣,每一個段寄存器就由兩部分組成,一部分為16位的可見部分,另一部分為64位的不可見部分(或稱段描述符高速緩沖寄存器)。 對段寄存器的可見部分來說,可用傳送指令MOV裝入,而不可見部分則只能由處理機裝入,用戶是不能也不可能進行干預(yù)和操作的。段寄存器的可見部分裝入的是16位的段選擇符。段選擇符用于識別(選擇)在全局描
29、述符表GDT或局部描述符表LDT內(nèi)被逐一登記的段描述符。在8字節(jié)段描述符中包含有定義段所用的32位的基地址、20位的段界限、12位的屬性(其中包括段類型、訪問控制以及其他一些信息)。 COMPUTER SCIENCE AND TECHNOLOGY 361段選擇符段選擇符 選擇符分為3個字段:13位索引字段INDEX,1位描述符表選擇字段TI和2位的請求特權(quán)級字段RPL。(1)描述符表選擇字段TI 段選擇符中的D2位(TI)是描述符表選擇字段,這個字段用來說明使用的是全局描述符表GDT,還是局部描述符表LDT。當(dāng)TI=0時,選擇的是全局描述符表GDT。當(dāng)TI=1時,選擇的是局部描述符表LDT。(
30、2)索引字段INDEX段選擇符中的D15D3位是索引字段,共13位,這就意味著,利用索引字段可以從擁有213=8192個段描述符的描述符表中選出任何一個段描述符來。索引值乘以8就是相對于GDT或LDT首址的偏移量,處理機用這個偏移量再加上描述符表的基地址(來自全局描述符表寄存器GDTR,或者局部描述符表寄存器LDTR)就是段描述符在描述符表中的地址。(3)請求特權(quán)級字段RPL段選擇符中的D1、D0位是請求特權(quán)級字段。RPL字段占有2位,故有4個特權(quán)級,00、01、10、11,稱作0級、1級、2級、3級。0級的特權(quán)最高,1級次之,3級的特權(quán)最低。 COMPUTER SCIENCE AND TEC
31、HNOLOGY 372段選擇符裝入段寄存器的操作段選擇符裝入段寄存器的操作 段選擇符裝入段寄存器的操作是通過應(yīng)用程序中的指令完成的。裝段寄存器的指令有2類,即直接的裝段寄存器指令和隱含的裝段寄存器指令。 (1)直接的裝段寄存器指令:可使用傳送指令MOV、彈出堆棧指令POP、加載段寄存器指令LDS、LSS、LGS、LFS。這些指令都是顯式地訪問段寄存器。 (2)隱含的裝段寄存器指令:可使用調(diào)用一個過程指令CALL、遠轉(zhuǎn)移指令JMP。這種指令更改代碼段寄存器CS的內(nèi)容。 由于絕大多數(shù)指令都要涉及段,所以段選擇符總是被裝在段寄存器內(nèi)備用。 COMPUTER SCIENCE AND TECHNOLOG
32、Y 381.3 保護模式下的訪問操作與保護機制保護模式下的訪問操作與保護機制 1.3.1 保護機制的分類 1任務(wù)間存儲空間的保護任務(wù)間的保護是通過每一個任務(wù)所專用的LDT描述符實現(xiàn)的。根據(jù)LDT描述符,每個任務(wù)都有它特定的虛擬空間,因而避免各任務(wù)之間的干擾,起到隔離、保護的作用。2段屬性和界限的保護當(dāng)段寄存器進行加載時,需要進行段存在性檢查(屬性字節(jié)的P位)以及段限檢查。在段描述符中給出了20位的段界限值,每當(dāng)產(chǎn)生一個邏輯地址時,都要比較偏移量和段限值。一旦偏移地址大于段限值,CPU就終止執(zhí)行命令,并發(fā)出越限異常。由此限制每個程序段只在自己的程序、數(shù)據(jù)段內(nèi)運行,不相互干擾。最后,還要對該段的讀
33、寫權(quán)限進行檢查。3特權(quán)級與特權(quán)級保護特權(quán)級與特權(quán)保護是為了支持多用戶多任務(wù)操作系統(tǒng),使系統(tǒng)程序和用戶的任務(wù)程序之間、各任務(wù)程序之間互不干擾而采取的保護措施。Pentium微處理機系統(tǒng)提供了一個4級特權(quán)管理系統(tǒng),也就是4級保護系統(tǒng),如圖1.3.1所示。這樣可為不同程序規(guī)定一個權(quán)限,控制特權(quán)指令和I/O指令的使用,控制對段和段描述符的訪問,從而有效地防止不同程序執(zhí)行時的相互干擾或非法訪問、非法改寫GDT和LDT。 COMPUTER SCIENCE AND TECHNOLOGY 393種形式的特權(quán)管理種形式的特權(quán)管理 在實施管理中使用了3種形式的特權(quán)管理:當(dāng)前任務(wù)特權(quán)CPL、選擇符特權(quán)RPL和描述符
34、特權(quán)DPL。并且規(guī)定:特權(quán)級為P的段中存儲的數(shù)據(jù),只能由特權(quán)級高于或等于P的段中運行的程序使用;特權(quán)級為P的代碼段/過程,只能由在低于或等于P的特權(quán)級下執(zhí)行的任務(wù)調(diào)用。(1)當(dāng)前特權(quán)級CPLCPL是當(dāng)前正在執(zhí)行的代碼段所具有的訪問特權(quán)級,存放在CS段寄存器的最低兩位。每一項任務(wù)都是在其代碼段描述符所確定的特權(quán)級中運行。當(dāng)前特權(quán)級就是任務(wù)執(zhí)行時所處的特權(quán)級。例如,一個正在運行的任務(wù)的CPL,就是其描述符中訪問權(quán)限字節(jié)的DPL。當(dāng)前特權(quán)級的值一般就是代碼段描述符中的DPL。任務(wù)執(zhí)行時當(dāng)前特權(quán)級一般不能改變,如果必須改變,只能通過代碼段的門描述符的控制轉(zhuǎn)換才能實現(xiàn)。一般高一級的任務(wù)可以訪問同級或低級
35、GDT和LDT中定義的數(shù)據(jù),顯然在第3特權(quán)級執(zhí)行的任務(wù)對數(shù)據(jù)的訪問受到的限制最大。(2)描述符特權(quán)級DPLDPL是段被訪問的特權(quán)級,保存在該段的段描述符的特權(quán)級DPL位。(3)請求特權(quán)級RPLRPL是新裝入段寄存器的段選擇符的特權(quán)級,存放在段選擇符的最低兩位。 COMPUTER SCIENCE AND TECHNOLOGY 401.3.2 數(shù)據(jù)段訪問及其特權(quán)級檢查數(shù)據(jù)段訪問及其特權(quán)級檢查 COMPUTER SCIENCE AND TECHNOLOGY 41數(shù)據(jù)段訪問的特權(quán)級檢查數(shù)據(jù)段訪問的特權(quán)級檢查 COMPUTER SCIENCE AND TECHNOLOGY 421.3.3 任務(wù)內(nèi)的段間轉(zhuǎn)
36、移及其特權(quán)級檢查任務(wù)內(nèi)的段間轉(zhuǎn)移及其特權(quán)級檢查 程序控制轉(zhuǎn)移有2種類型:NEAR類型的段內(nèi)轉(zhuǎn)移和FAR類型的段間轉(zhuǎn)移。 段內(nèi)轉(zhuǎn)移發(fā)生在同一個代碼段內(nèi),段的基址不變,所以不需要重新訪問段描述符。轉(zhuǎn)移發(fā)生時,只需要進行段限保護檢查,即比較偏移量和段限值。 段間轉(zhuǎn)移發(fā)生在不同的代碼段之間,不同的代碼段,其基址也不同,因此,轉(zhuǎn)移發(fā)生時,需要重新訪問目標(biāo)段的段描述符,以便確定目標(biāo)段的基址。在保護機制方面,除了要進行段限保護檢查外,還要進行特權(quán)級檢查。 段間轉(zhuǎn)移有2種方法:段間直接控制轉(zhuǎn)移、段間間接控制轉(zhuǎn)移。下面將對這2種方法的實現(xiàn)過程和特權(quán)級檢查保護進行說明。 COMPUTER SCIENCE AND
37、TECHNOLOGY 43段間轉(zhuǎn)移方法小結(jié)段間轉(zhuǎn)移方法小結(jié) (1)任務(wù)內(nèi)的控制轉(zhuǎn)移可分為同一特權(quán)級間的控制轉(zhuǎn)移和不同特權(quán)級間的控制轉(zhuǎn)移。 (2)用JMP指令通過代碼段描述符,可實現(xiàn)同一特權(quán)級間的直接控制轉(zhuǎn)移。 (3)用CALL指令通過代碼段描述符,可實現(xiàn)同一特權(quán)級間的直接控制轉(zhuǎn)移,通過調(diào)用門,可實現(xiàn)同一特權(quán)級間或更高特權(quán)級的間接控制轉(zhuǎn)移。 (4)用INT指令(包括異常中斷和外部中斷)通過中斷門/陷阱門,可實現(xiàn)同一特權(quán)級間或更高特權(quán)級的間接控制轉(zhuǎn)移。 (5)將程序控制轉(zhuǎn)移給同一代碼段中的另一條指令,只須使用轉(zhuǎn)移或調(diào)用指令即可,此時,只需要檢查段長界限,以確保轉(zhuǎn)移或調(diào)用的目標(biāo)不會超過當(dāng)前代碼段的邊
38、界。 COMPUTER SCIENCE AND TECHNOLOGY 44任務(wù)內(nèi)段間控制轉(zhuǎn)移的描述符訪問規(guī)則任務(wù)內(nèi)段間控制轉(zhuǎn)移的描述符訪問規(guī)則 COMPUTER SCIENCE AND TECHNOLOGY 45段間直接轉(zhuǎn)移過程及目標(biāo)線性地址的生成段間直接轉(zhuǎn)移過程及目標(biāo)線性地址的生成 COMPUTER SCIENCE AND TECHNOLOGY 46通過代碼段的段描述符實現(xiàn)段間直接轉(zhuǎn)移的特權(quán)檢查通過代碼段的段描述符實現(xiàn)段間直接轉(zhuǎn)移的特權(quán)檢查 COMPUTER SCIENCE AND TECHNOLOGY 47用調(diào)用門實現(xiàn)段間間接轉(zhuǎn)移的過程用調(diào)用門實現(xiàn)段間間接轉(zhuǎn)移的過程 COMPUTER SC
39、IENCE AND TECHNOLOGY 481.3.4 任務(wù)切換及其特權(quán)級檢查任務(wù)切換及其特權(quán)級檢查 所謂任務(wù)切換,是指從執(zhí)行某一個任務(wù)轉(zhuǎn)換到執(zhí)行另外一個任務(wù)的過程。任務(wù)切換是多任務(wù)/多用戶系統(tǒng)的一個非常重要的屬性。Pentium微處理器支持多任務(wù),允許多個任務(wù)之間通過硬件進行快速切換。任務(wù)切換的過程是:保存機器的整個狀態(tài)(比如所有的寄存器、地址空間、到原來任務(wù)的鏈接等),裝入新的執(zhí)行狀態(tài),進行保護檢查,開始新任務(wù)的執(zhí)行,執(zhí)行完畢后回到原來的任務(wù)繼續(xù)執(zhí)行。1任務(wù)的設(shè)定在執(zhí)行某任務(wù)以前,必須在存儲器中定義GDT、IDT、LDT和TSS,在GDT中登記(寫入)所需要的段描述符、門描述符、LDT描
40、述符、TSS描述符,在IDT中登記(寫入)所需要的中斷門、陷阱門、任務(wù)門等,并且還必須對GDTR、IDTR、LDTR、TR設(shè)置適當(dāng)?shù)臄?shù)值。TR給出TSS段的基址。2TSS描述符和任務(wù)門在任務(wù)切換中,通常用到任務(wù)狀態(tài)段TSS和任務(wù)門。TSS描述符和任務(wù)門在前面已有說明。每一個任務(wù)必須有一個任務(wù)狀態(tài)段TSS與其關(guān)聯(lián)。TSS描述符屬于系統(tǒng)描述符類(屬性字節(jié)中S=0),該描述符包含了TSS在內(nèi)存中的基址和界限。TSS描述符位于GDT中,所以指向TSS描述符的段選擇符的TI位應(yīng)該為0。 COMPUTER SCIENCE AND TECHNOLOGY 49用調(diào)用門實現(xiàn)段間間接轉(zhuǎn)移的特權(quán)級檢查用調(diào)用門實現(xiàn)段
41、間間接轉(zhuǎn)移的特權(quán)級檢查 COMPUTER SCIENCE AND TECHNOLOGY 503任務(wù)切換的方法任務(wù)切換的方法 在進行任務(wù)切換時,要把新任務(wù)的TSS描述符的選擇符傳送到TR的選擇符字段,對TR的選擇符字段有兩種修改方法: (1)直接任務(wù)切換:直接訪問新任務(wù)的TSS描述符,從而得到新任務(wù)的TSS。在直接任務(wù)切換中,段間JMP/CALL指令的操作數(shù)的段選擇符就是新任務(wù)的TSS描述符的選擇符,它被直接加載到TR的選擇符字段,對于執(zhí)行IRET指令的情況(必須NT=1),則是把曾經(jīng)壓入到當(dāng)前執(zhí)行任務(wù)的TSS中的返回鏈(返回鏈就是前一個任務(wù)的TSS描述符的段選擇符,即原來TR中的16位可見部分
42、內(nèi)容),作為TR選擇符字段的修改值。 (2)間接任務(wù)切換:新任務(wù)的TSS描述符的選擇符由任務(wù)門加載。通過任務(wù)門間接訪問新任務(wù)的TSS描述符,從而得到新任務(wù)的TSS。在間接任務(wù)切換中,段間JMP/CALL指令的操作數(shù)的段選擇符是任務(wù)門的選擇符,而任務(wù)門的內(nèi)容包含新任務(wù)的TSS描述符的選擇符,所以,新任務(wù)的TSS描述符的選擇符將由任務(wù)門間接加載到TR的選擇符字段,COMPUTER SCIENCE AND TECHNOLOGY 513任務(wù)切換的方法任務(wù)切換的方法 這樣,對任務(wù)的切換,可以采用以下方法: (1)段間JMP/CALL指令:進行直接任務(wù)切換或間接任務(wù)切換。 (2)INT指令(包括異常中斷和
43、外部中斷):只能進行間接任務(wù)切換。訪問IDT中的任務(wù)門,新任務(wù)的TSS描述符的選擇符由任務(wù)門加載。當(dāng)中斷/異常發(fā)生時,如果IDT的目標(biāo)項是中斷門或陷阱門,則執(zhí)行中斷處理程序。如果目標(biāo)項是任務(wù)門,則進行任務(wù)切換。 (3)IRET指令(當(dāng)NT=1時):只能進行直接任務(wù)切換。EFLAGS寄存器的NT位必須為1,表明是處于任務(wù)嵌套。NT為0時,執(zhí)行IRET指令與正常中斷處理程序最后執(zhí)行IRET指令的結(jié)果相同,即只完成正常的中斷返回,不進行任務(wù)切換。 COMPUTER SCIENCE AND TECHNOLOGY 52任務(wù)間的切換過程示意圖任務(wù)間的切換過程示意圖 COMPUTER SCIENCE AND
44、 TECHNOLOGY 531.4 向保護模式的轉(zhuǎn)換向保護模式的轉(zhuǎn)換 下面的步驟將完成從實地址方式到保護模式的切換: (1)初始化中斷描述符表IDT,使其包含至少前32種中斷類型有效的中斷門描述符。 (2)初始化全局描述符表GDT,使其第0項為一個空描述符,并且使其至少包含一個數(shù)據(jù)段描述符、一個代碼段描述符、一個堆棧段描述符。 (3)進入保護模式的實際方法是通過指令MOV CR0,R/M 使CR0寄存器中的PE位置1。這就使Pentium置為保護模式。 (4)進入保護模式后,執(zhí)行一條段內(nèi)近JMP指令清除內(nèi)部指令隊列并把TSS描述符基址裝入到TR中。 (5)將初始數(shù)據(jù)段選擇符的值裝入到所有的數(shù)據(jù)
45、段寄存器中。 (6)現(xiàn)在Pentium已運行在保護模式下,正在使用GDT和IDT中定義的段描述符。 COMPUTER SCIENCE AND TECHNOLOGY 54另一種適合多任務(wù)操作系統(tǒng)進入保護模式的方法是為裝載所有的寄存器而建立任務(wù)切換。對于多任務(wù)操作系統(tǒng)利用任務(wù)切換來使Pentium進入到保護模式所需的步驟如下:(1)初始化中斷描述符表IDT,以便它用IDT中的至少32個描述符提供有效的中斷描述符。(2)初始化全局描述符表GDT,以便使其最少有兩個任務(wù)狀態(tài)段TSS描述符和初始任務(wù)所需要的原始代碼段及數(shù)據(jù)段描述符。(3)初始化任務(wù)寄存器TR,使它指向一個TSS,當(dāng)初始任務(wù)發(fā)生切換并訪問
46、新的TSS時,當(dāng)前寄存器值將保存在這個原始的TSS中。(4)進入保護模式后,執(zhí)行一條段內(nèi)近JMP指令清除內(nèi)部指令隊列,切換到保護模式下。將當(dāng)前的TSS選擇符裝入到TR寄存器中。(5)用一條遠轉(zhuǎn)移指令裝載TR寄存器,以便訪問新的TSS并保存當(dāng)前狀態(tài)。(6)現(xiàn)在Pentium已運行在保護模式下。 COMPUTER SCIENCE AND TECHNOLOGY 551.5 分頁存儲管理分頁存儲管理 分頁是虛擬存儲器多任務(wù)操作系統(tǒng)另一種存儲器管理方法。段的長度是可變的,而頁的長度是固定的,比如每頁4KB。 分頁方法將程序分成若干個大小相同的頁,各頁與程序的邏輯結(jié)構(gòu)沒有直接的關(guān)系。分頁存儲器的這種固定大
47、小頁有一個缺點,就是存儲管理程序每次分配最少是一個頁(即使它們并不全用)。一頁中未用的存儲器區(qū)域稱為碎片,碎片導(dǎo)致存儲器使用效率降低,但是分頁大大簡化了存儲管理程序的實現(xiàn)。 Pentium微處理器采用二級頁表方法對頁面進行管理,第1級頁表稱作頁目錄,頁目錄中的頁目錄項指明第2級頁表中各頁表的基址。 COMPUTER SCIENCE AND TECHNOLOGY 561.5.1 頁目錄與頁表頁目錄與頁表 1頁目錄基地址寄存器頁目錄存儲在內(nèi)存中,并通過頁目錄基地址寄存器CR3來訪問??刂萍拇嫫鰿R3保存著頁目錄的基地址,該基地址起始于任意4KB的邊界。指令MOV CR3,reg用來對CR3寄存器進
48、行初始化。CR2是頁故障線性地址寄存器,它保存著檢測到的最后引起故障的32位線性地址。2頁目錄頁目錄由頁目錄項組成,頁目錄項包含下一級頁表的基址和有關(guān)頁表的信息。Pentium微處理器中,頁目錄最多包含1024個頁目錄項,每個頁目錄項為4個字節(jié),所以,頁目錄自身占用一個4KB的頁面(存儲頁)。32位線性地址的最高10位(A31-A22)是頁目錄的索引,用于在頁目錄中查找不同的頁目錄項,而頁目錄項中保存著下一級所對應(yīng)的頁表的基地址。3頁表頁表由頁表項組成,頁表項包含頁面(存儲頁)的基址和有關(guān)頁面的信息。Pentium微處理器中,頁表最多包含1024個頁表項,每個頁表項為4個字節(jié),所以,頁表自身也
49、占用一個4KB的頁面(存儲頁)。32位線性地址的10位(A21-A12)是頁表的索引,用于在頁表中查找不同的頁表項,而頁表項中保存著所對應(yīng)的頁面(存儲頁)的基地址,即頁面(存儲頁)的起始地址。 COMPUTER SCIENCE AND TECHNOLOGY 57頁目錄項格式頁目錄項格式 COMPUTER SCIENCE AND TECHNOLOGY 58頁表項格式頁表項格式 COMPUTER SCIENCE AND TECHNOLOGY 591.5.2 分頁轉(zhuǎn)換機制分頁轉(zhuǎn)換機制 1分頁轉(zhuǎn)換的工作過程在分頁轉(zhuǎn)換機制中,當(dāng)要訪問一個操作單元時,32位線性地址轉(zhuǎn)換為32位物理地址是通過兩級查表來實現(xiàn)的。圖1.5.3展示了Pentium微處理器的分頁機制。這里,程序中產(chǎn)生的線性地址00C02098H經(jīng)過分頁機構(gòu)被轉(zhuǎn)換成物理地址00160098H。分頁機制的工作過程如下:(1)4KB長的頁目錄存儲在由CR3寄存器所指定的物理地址。此地址常稱為根地址。假設(shè)要尋址單元的線性地址為:0000000011 0000000010 000010011000B(2)用線性地址中的最高10位(A31-A22)頁目錄索引,即0000000011B(3號頁目錄項),乘以4(每個頁目錄項占4個字節(jié))得到頁目錄中頁目錄項的偏移量00CH,從1024個頁目錄項
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年骨科關(guān)節(jié)用藥合作協(xié)議書
- 2022-2023學(xué)年廣西欽州市四年級(上)期末數(shù)學(xué)試卷
- 2025年逆變式電焊機合作協(xié)議書
- 2025年九年級班主任心得樣本(2篇)
- 2025年買賣協(xié)議參考范文(2篇)
- 2025年五人股東合作的協(xié)議(2篇)
- 2025年代課教師勞動合同標(biāo)準(zhǔn)版本(4篇)
- 2025年代交社會保險協(xié)議(三篇)
- 2025年二年級美術(shù)教學(xué)工作總結(jié)(5篇)
- 2025年買賣房屋定金協(xié)議簡單版(三篇)
- 5.5.1三角恒等變換(第一課時)課件高一上學(xué)期數(shù)學(xué)人教A版
- 中國智慧物流發(fā)展報告
- 導(dǎo)演聘用合同正式(2024版)
- 焊接加工成本算表
- 2024年四川省成都市成華區(qū)中考二診物理試題
- 2024年3月計算機等級考試三級數(shù)據(jù)庫技術(shù)筆試真題及答案
- 無人機飛行原理與性能理論知識考試題庫及答案
- 科研倫理與學(xué)術(shù)規(guī)范(研究生)期末試題庫及答案
- GB/T 43803-2024科研機構(gòu)評估指南
- 場地自行車講解材料
- 《紅樓夢》禮儀研究
評論
0/150
提交評論