os學習之每日疑問大總結 11 24

2021-09-01 17:03:10 字數 1629 閱讀 5279

1。為什麼分段會對記憶體有保護作用?

因為記憶體中每乙個段都會對應著乙個段描述符,如下圖:

其dpl(descriptor privilege level)位規定了記憶體段的特權級,當cpu在訪問記憶體段的時候,嚴格受段定義大小及訪問特權級等資訊的控制,任何越限和越權的訪問都將會被拒絕,並引起異常中斷。

2。gdtr和段選擇子之間的區別

段選擇子是存放在乙個暫存器中的,其通過gdt/ldt找到所對應的段描述符,從而得到其段基址,然後於其邏輯位址部分的偏移位址加起來,得到線性位址。

而gdtr是乙個硬體的部件,通過其就能知道gdt在記憶體中的位置。gdt本身不是乙個段,而是線性位址空間中的乙個資料結構。gdt的線性基位址和限長必須被裝載入gdtr暫存器.

3.mmu和分段,分頁之間的關係

mmu由乙個或一組晶元組成,其功能是把邏輯位址對映為實體地址,即進行位址轉換。mmu是一種硬體電路,它包含兩個部件,乙個是分段部件,乙個是分頁部件。

tlb

大部分程式傾向於對較少的頁面進行大量的訪問。因此,只有一小部分頁表項經常被用到,其它的很少被使用。

採取的解決辦法是為計算機裝備乙個不需要經過頁表就能把虛擬位址對映成實體地址的小的硬體裝置,這個裝置叫做tlb(翻譯後援儲存器,translation lookside buffer), 有時也叫做相聯儲存器(associative memory)。

它通常在mmu內部,條目的數量較少,80386有32個。每乙個tlb暫存器的每個條目包含乙個頁面的資訊:有效位,虛頁面號,修改位,保護碼,和頁面所在的物理頁面號,它們和頁面表中的表項一一對應。

當乙個虛位址被送到mmu翻譯時,硬體首先把它和tlb中的所有條目同時(並行地)進行比較,如果它的虛頁號在tlb中,並且訪問沒有違反保護位,它的頁面會直接從tlb中取出而不去訪問頁表,如虛頁面號在tlb但當前指令試圖寫乙個唯讀的頁面,這時將產生乙個缺頁異常,與直接訪問頁表時相同。

如mmu發現在tlb中沒有命中,它將隨即進行一次常規的頁表查詢,然後從tlb中淘汰乙個條目並把它替換為剛剛找到的頁表項。因此如果這個頁面很快再被用到的話,第二次訪問時它就能在tlb中直接找到。

在乙個tlb 條目被淘汰時,被修改的位被複製回在記憶體中的頁表項,其它的值則已經在那裡了。當tlb從頁表裝入時,所有的域都從記憶體中取得。必須明確在分頁機制中,tlb中的資料和頁表中的資料的相關性,不是由處理器進行維護,而是必須由作業系統來維護,快取記憶體的重新整理是通過裝入處理器(80386)中的暫存器cr3來完成的。(見重新整理機制flush_tlb())這裡要還提到命中率,即乙個頁面在tbl中找到的概率。一般來說tlb的尺寸大可增加命中率,但會增加成本和軟體的管理。所以一般都採用8–64個條目的數量。假如命中率是0.85,訪問記憶體時間是120那秒,訪tlb時間是15那秒。那麼訪問時間是:0.85*(15+120)+(1-0.85)*(15+120+120)=153那秒。

4。段暫存器的構成

由16位的段選擇子和64位的段描述符構成

Python學習之基礎總結 1

python的優點 簡單,功能強大,支援物件導向 特點 1,嚴格區分大小寫 2,簡單,易學,支援物件導向 3,開源 4,庫非常豐富 5,跨平台使用 6,解釋性語言 7,高階語言 python的常量與變數 常量主要是指在程式執行中不可變的量 變數是指在程式執行時可以改變的量 常量的乙個特點 一旦繫結,...

艱難嗑鹽路 每日學習總結(week 1)

今日剛被老師批評做事不愛動腦,只做無用功,因此開此部落格記錄每日的收穫和感受,安排每日工作。暑假期間每日15 00 21 00為嗑鹽時間。希望可以高效幹活,不再打時間戰術,每日都朝著目標前進一點點吧,希望下次開會的時候能不被批評 已完成找到了flickr 8k的資料集 看了 的基本框架 存在問題 明...

WebGL程式設計(1) 學習總結之WebGL常用方法

webgl簡介 webgl,是一項使用canvas在網頁上繪製和渲染複雜三維圖形 3d圖形 並允許使用者與之進行互動的技術,webgl的技術規範繼承自免費和開源的opengl標準,而後者在計算機圖形學 電子遊戲 計算機輔助設計等領域已被廣泛使用多年。由於webgl處理的是三維圖形,所以它使用的是三維...