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

jake1036

讀書筆記之五-----保護

                                                         80x86的保護
  

  1段級保護
    包括以下幾種方式 :
     1.1 段界限檢查 
           段描述符中的段限長字段用于防止程序或過程尋址到段外內存位置。段限長的有效值依賴于顆粒度G標志的設置狀態。 

     1.2 段類型TYPE檢查
            
     1.3特權級檢查
         段保護機制提供了四種特權級,0級到3級。
          特權級有以下三種:
          1.3.1 當前特權級 CPL 
                  CPL是當前正在執行程序或任務的特權級。它存放在CS活著SS段寄存器中位0和位1中。 通常CPL等于當前代碼段的特權級。當程序把控制轉移到
                另一個具有不同特權級的代碼段中時,處理器就會改變CPL。 
               當訪問一個一致代碼段的時候,處理器對CPL的設置有所不同,特權級高于或等于一致代碼段DPL的任何段都可以訪問一致代碼段,并且當處理器訪問一個
               特權級不同于CPL的一致代碼段時,CPL不會修改成一致代碼段的DPL 。

          1.3.2 描述符特權級 DPL
                   
                  DPL是一個段或者門的特權級,它存放在段或門的DPL字段中。當執行代碼段試圖訪問一個段或者門的時候,段或者門DPL就會于
                  CPL以及短或者門選擇符中的RPL相比較。 根據被訪問的段或者門的類型不同,DPL也有不同的含義。
                  (1) 數據段 
                        其DPL指出允許訪問本程序段的程序或任務應具有的最大特權級數值。例如,如果數據段的特權級DPL是1,那么只有運行在CPL為0或者1的
                       程序,才可以訪問這個段。
                 
                 (2) 非一致代碼段
                       其DPL指出程序或者任務訪問該段必須具有的特權級。 例如如果某個非一致代碼段的DPL為0 ,那么就只有運行在CPL為0 的程序能夠訪問這個段。
               
                  (3) 調用門
                         與數據段的訪問規則相同。
                    
                  (4) 一致和非一致代碼段(通過調用門訪問)
                       DPL指示允許代碼段的程序或者任務應該具有的最小特權級數值。如果一致代碼段的DPL是2,那么CPL為0的程序段就不能訪問。
                   
                 (5) 任務狀態段 TSS
                       其DPL指出訪問TSS的當前執行程序或任務可處于的最大特權級。與數據段訪問規則相同。
 
                1.3.3 請求特權級 RPL  
                            RPL是一種賦予段選擇符的超越特權級,它存放在選擇符的位0或者位1中。處理器會同時檢查RPL或者CPL 。以確定是否允許訪問一個段。
                            始終取RPL或者CPL之間數值最大的特權級作為訪問段時的最大比較對象。
                
          2  訪問數據段時的特權級檢查
               為了訪問數據段中的操作數,數據段中的段選擇符,必須加載進數據段寄存器中或者堆棧段寄存器中。在把一個段選擇符加載進段寄存器中之前,
                處理器就會進行特權級檢查。
      
                 它會把當前的段描述符的DPL與 當前段選擇符的RPL 和任務的CPL 進行比較,只有DPL大于或者等于 CPL或者RPL 時,CPU才會把選擇符加載進段寄存器。
                 
           3 代碼段之間的轉移控制時的特權級檢查
              當程序的控制權從一個代碼段移到另一個代碼段中時,目標代碼段的段選擇符必須加載進代碼段寄存器,作為這個加載過程的一部分,處理器會檢測目標代碼段的段描述符,并執行各種安全的檢測。如果這些檢查都通過了,那么CPU就會把目標代碼段的選擇符加載進段寄存器,于是程序的控制權就被轉移到新的代碼段中。
               JMP CALL 指令可以利用以下四種方法來引用另外一個代碼段:
                (1) 目標操作數含有目標代碼段的段選擇符。
                (2)目標操作數指向一個調用門描述符,該描述符含有目標代碼段的選擇符。
                (3) 目標操作數指向一個TSS ,而該TSS中含有目標代碼段的選擇符 。
                (4) 目標操作數指向一個任務門,該任務指向一個TSS ,該TSS中含有目標代碼段的選擇符。
                         
    3.1 當不通過門調用把程序控制權轉移到另一個代碼段時,程序會進行以下四種特權級和類型信息。 
         

    目的代碼段中的一致性標志C, 它確定了一個代碼段是非一致代碼段還是一致代碼段。
   當C==0 ,即為非一致代碼段,則調用者的CPL必須等于目的代碼段的DPL ,RPL 則作用不大。RPL在數值上必須小于或者等于調用者的CPL才能使它的
    控制轉移成功。 當非一致代碼的段選擇符被加載進CS寄存器中時,特權級字段并不會改變,它仍然是調用者的CPL ,即使段選擇符的RPL與CPL不同,但是
   仍然是正確的。

         當C == 1 時,即訪問一致代碼段的時候,CPL必須在數值上大于或者等于目的代碼段的DPL,CPU忽略對RPL的檢查。對于一致代碼段,DPL表示調用者對代碼段進行成功調用可以處于的最低數值特權級。

      大多數代碼段都是非一致代碼段,這樣代碼段只能轉移到相同特權級的代碼段上,除非轉移是通過一個調用門來進行的。
   
  

     4 門描述符 
        為了對不同特權級的代碼段進行受控的訪問,處理器提供了稱為門描述符的特殊描述符集。
          有以下四種門描述符:
           (1) 調用門 TYPE = 12
           (2) 陷阱門 TYPE = 15 
           (3) 中斷門 TYPE = 14 
           (4) 任務門 TYPE = 5 。

          
 
            當CPU訪問調用門時,它會使用調用門的段選擇符來定位目的代碼段的段描述符,然后CPU會把代碼段描述符的基地址與調用門中的偏移值進行組合。
            形成代碼段中指定程序的入口點的線性地址。 
           
            通過調用門進行程序控制轉移的時候,CPU會對4種不同的特權級進行檢查。
            (1)當前特權級CPL 。
            (2) 調用門描述符的請求特權級RPL 。
            (3) 調用門描述符特權級DPL 。
            (4) 目的代碼段描述符中的DPL。 
            (5)目的代碼段描述符的DPL 。 
            
     
     5 棧的切換
            
         每當調用門用于把程序控制轉移到一個更高級別的非一致代碼段時,CPU會自動切換到目的代碼段特權級的堆棧去。 
         執行堆棧切換的目的是為了,防止高級特權程序由于堆棧空間不足而引起的崩潰。 同時也為了防止低特權級程序,通過共享堆棧
         而干擾高特權級程序。
      
         每個任務最多定義4個堆棧,一個運行在特權級3的應用程序代碼,其他分別運行在特權級0,1,2上。 
               
       5.1堆棧的具體切換 

          當特權級3的程序在執行時,特權級3的堆棧的段選擇符和棧指針會被存放在SS和ESP中,并且在發生堆棧切換時保存在被調用過程的堆棧上。
           而特權級0、1和2 的堆棧的初始指針都存放在當前運行任務的TSS段中,TSS段中這些指針都是只讀值。當調用更高特權級的時候,CPU才會
           使用它們建立新的堆棧。 當從調用過程返回時,相應的棧就不存在了,下一次調用該過程的時候,就會再次使用TSS中的初始指針建立一個
           新棧。
        
           OS需要負責為所有用到的特權級建立堆棧和堆棧段描述符,并且在任務的TSS中設置初始指針值。

           當通過一個過程調用其他過程時而造成的特權級改變的時候,CPU會執行以下步驟進行切換操作,并開始在新的特權級上執行調用過程。
           (1) 使用目的代碼段的DPL從TSS中選擇新棧的指針,從當前的TSS中讀取新棧的段選擇符和棧指針。
           (2) 檢查棧段描述符特權級和類型是否有效 ,若無效則產生一個無效的TSS 。
           (3) 臨時保存SS和ESP寄存器的當前值,把新棧的段選擇符和棧指針加載到SS中和ESP中。然后把臨時保存的SS和ESP壓入到新棧中。
           (4) 把調用門中描述符中指定參數個數的參數從調用過程棧復制到新棧中。
           (5) 把返回指令指針壓入(即當前CS和EIP內容) 壓入新棧。把新代碼段選擇符加載到CS中,同時把調用門中偏移值加載到EIP中。最后開始執行
                 被調用的過程。
             


         5.2   從被調用過程返回 
         指令RET用于執行近返回、同特權級遠返回、不同特權級遠返回。
         當執行遠返回到一個調用過程時,CPU會執行以下步驟:
         (1) 檢查保存的CS寄存器中RPL字段,以確定在返回時特權級是否需要改變。
         (2) 彈出并使用被調用過程堆棧上的值加載CS和EIP寄存器



    6 頁級保護
        頁目錄和頁表項中的讀寫標志R/W和用戶/超級用戶標志U/S提供了分段機制保護屬性的一個子集。
         超級用戶級為 特權級 0 ,  1 , 2 。 
         普通用戶級為 特權級 3 。

   6.1 頁轉換高速緩沖  TLB
         為了避免每次內存訪問都要訪問駐留在內存中的頁表,最近使用到的線性地址到物理地址的轉換信息被保存在處理器內的
         頁轉換高速緩沖中。只有當前需要的轉換信息不在高速緩存時,才會訪問內存中的頁表。
    
    6.2 組合頁級別和段級保護
          當啟用了分頁機制,CPU會首先執行段級保護,然后再處頁級保護。               

  



    
         




           












           





          
    






        
 














                 







                
   









posted on 2010-09-23 10:21 kahn 閱讀(268) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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久久在免费线| 久久婷婷国产综合国色天香| 国产精品一区亚洲| 亚洲一区二区影院| 蜜桃av一区二区| 亚洲人在线视频| 国产精品乱码一区二三区小蝌蚪| 亚洲欧美制服另类日韩| 亚洲高清不卡一区| 亚洲欧美日韩成人| 亚洲自拍三区| 亚洲第一网站| 亚洲午夜精品久久久久久浪潮| 国产精品二区二区三区| 久久人人97超碰国产公开结果| 欧美激情中文字幕乱码免费| 亚洲欧美一区二区三区久久| 好吊色欧美一区二区三区四区 | 久久久久久免费| 日韩一二三在线视频播| 国产精品嫩草影院一区二区| 国产一区二区高清不卡| 欧美小视频在线| 欧美a级在线| 亚洲女同同性videoxma| 久久大综合网| 中文精品视频| 在线日韩视频| 国产精品一区在线观看| 亚洲国产美女精品久久久久∴| 亚洲视屏一区| 欧美大片在线影院| 麻豆国产精品777777在线| 午夜在线成人av| aa级大片欧美三级| 亚洲精品日韩综合观看成人91| 亚洲免费视频在线观看| 亚洲视频在线观看三级| 老司机午夜免费精品视频| 亚洲视频图片小说| 亚洲图中文字幕| 欧美精品成人91久久久久久久| 国产亚洲精品自拍| 亚洲欧美另类在线| 亚洲欧洲一区二区三区在线观看| 欧美激情一区二区三区不卡| 欧美在线不卡视频| 欧美在线关看| 国产精品欧美精品| 欧美色123| 欧美深夜影院| 中文精品在线| 99热免费精品在线观看| 中文日韩欧美| 国产精品theporn88| 一区二区三区四区蜜桃| 亚洲女与黑人做爰| 亚洲美女中文字幕| 欧美高清自拍一区| 国产精品高潮久久| 亚洲天天影视| 在线一区二区三区做爰视频网站| 欧美日韩精品免费观看视频| 国产精品日韩一区二区三区| 99re成人精品视频| 亚洲精选成人| 久久国产精品网站| 久久综合九色九九| 欧美日韩免费高清| 国产麻豆日韩欧美久久| 欧美一区二区三区精品| 另类av一区二区| 久久久噜噜噜久久久| 国产精品播放| 欧美在线电影| 久久久国产午夜精品| 欧美日韩国语| 午夜精品一区二区三区在线视| 亚洲一区二区三区在线视频| 国产欧美在线观看| 中文日韩在线视频| 亚洲一区二区三区精品在线| 国产日韩欧美视频在线| 欧美激情第六页| 亚洲美女精品一区| 久久久久国产精品人| 亚洲福利在线观看| 欧美日本在线视频| 激情另类综合| 午夜精品999| 香蕉久久精品日日躁夜夜躁| 欧美国产精品| 香蕉久久一区二区不卡无毒影院| 久久福利资源站| 一区二区三区不卡视频在线观看| 亚洲欧美中文日韩在线| 亚洲精品1区2区| 亚洲字幕一区二区| 亚洲精选91| 久久国产主播| 亚洲一区在线视频| 999在线观看精品免费不卡网站| 国产精品五月天| 亚洲国产精品va在线看黑人| 久久精品国产一区二区电影| 99国产精品视频免费观看| 香蕉成人久久| 亚洲私人影吧| 欧美搞黄网站| 女同一区二区| 欧美电影电视剧在线观看| 国内揄拍国内精品少妇国语| 亚洲欧洲一区二区三区在线观看| 国产一区二区中文| 久久成年人视频| 欧美精品一区二区三区久久久竹菊 | 亚洲一区精彩视频| 久久婷婷丁香| 久久成人人人人精品欧| 欧美日韩在线一区| 亚洲欧洲一区二区在线播放| 在线日本成人| 久久九九精品| 久久久一区二区| 国产亚洲女人久久久久毛片| 亚洲一二三四久久| 亚洲无限乱码一二三四麻| 欧美激情亚洲视频| 亚洲国产小视频在线观看| 在线精品视频一区二区三四| 欧美一区二区三区精品电影| 国产日产欧美精品| 在线亚洲观看| 亚洲天堂久久| 国产精品v日韩精品v欧美精品网站| 亚洲青涩在线| 国产日韩专区| 午夜精品久久久久久久久久久| 亚洲欧美日韩国产中文 | 久久综合网hezyo| 国产欧美视频一区二区| 性色av一区二区三区在线观看| 午夜在线视频一区二区区别| 国产精品丝袜久久久久久app| 亚洲一区视频在线| 久久电影一区| 亚洲福利视频网| 欧美国产在线电影| 99pao成人国产永久免费视频| 亚洲欧美日韩直播| 狠狠v欧美v日韩v亚洲ⅴ| 久久综合久久综合九色| 亚洲激情偷拍| 性色av一区二区三区在线观看| 国产亚洲女人久久久久毛片| 久热国产精品视频| 亚洲伦理在线观看| 欧美亚洲视频在线看网址| 国产午夜亚洲精品不卡| 久久精品国产第一区二区三区最新章节 | 一区二区三区www| 国产精品免费在线 | 久久天天躁夜夜躁狠狠躁2022 | 国产日韩免费| 蜜月aⅴ免费一区二区三区 | 欧美三级免费| 久久国产日韩| 亚洲国产小视频在线观看| 亚洲免费一在线| 在线欧美三区| 国产精品日韩欧美综合| 麻豆精品在线播放| a4yy欧美一区二区三区| 久久综合给合| 亚洲综合电影| 91久久精品国产91久久性色tv | 亚洲天天影视| 亚洲国产日韩欧美| 久久国产精品99久久久久久老狼 | 亚洲欧洲在线视频| 国产精品综合| 欧美精品一区二区精品网| 久久激情视频免费观看| 99视频一区二区| 欧美成人午夜激情视频| 午夜精品区一区二区三| 亚洲精品一区久久久久久| 国产永久精品大片wwwapp| 欧美日韩在线亚洲一区蜜芽| 免费的成人av| 久久久一区二区| 香蕉免费一区二区三区在线观看| 亚洲精品免费看| 亚洲第一区在线观看| 国内精品一区二区三区|