日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步步编写操作系统 36 一级页表与虚拟地址1

發布時間:2023/12/10 windows 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步步编写操作系统 36 一级页表与虚拟地址1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為了給大家說清楚分頁機制,我們先在宏觀上說下cpu地址變換過程,先讓大家有個直觀的印象,如果有不明白的地方也不要著急,適時地不求甚解,有助于從全局上將知識融會貫通(這句話是我即興說的,說得多好啊^^,好吧,無視我吧)。

分頁機制其實是建立在分段機制之上的。這是不是有些讓大家意外呢?其實這并不是說分頁機制依賴于分段機制,只是這內存分段機制屬于intel IA32架構骨子里的東西,改是改不掉的,除非重頭再造個cpu出來,所以分頁機制只能在現有分段機制大局已定的情況下誕生,它們兩者的關系是怎樣的呢,讓我們先從保護模式下的分段機制開始梳理。

盡管在保護模式中段寄存器中的內容已經是選擇子,但選擇子最終就是為了要找到段基址,其內存訪問的核心機制依然是“段基址:段內偏移地址”,這兩個地址在相加之后才是絕對地址,也就是我們所說的線性地址,此線性地址在分段機制下被cpu認為是物理地址,直接拿來就能用,也就是說,此線性地址可以直接送上地址總線。將段基址和段內偏移地址相加求和的工作是由cpu的段部件自動完成的。整個訪問內存的過程如圖:

分頁機制要建立在分段機制的基礎上,也就是說,段部件的工作依然免不了,所以,分頁只能是在分段之后進行的,其過程如圖

cpu在不打開分頁機制的情況下,是按照默認的分段方式進行的,段基址和段內偏移地址經過段部件處理后所輸出的線性地址,cpu就認為是物理地址。如果打開了分頁機制,段部件輸出的線性地址就不再等同于物理地址了,我們稱之為虛擬地址,它是邏輯上的、是假的、不應該被送上地址總線(因為地址只是個數字,任何數字都可以當做地址,這里說的是“不應該”是指應該人為保證送上地址總線上的數字是正確的地址)。cpu必須要拿到物理地址才行,此虛擬地址對應的物理地址需要在頁表中查找,這項查找工作是由頁部件自動完成的。為了要搞清楚頁部件的工作原理,必須要搞清楚這兩件事:

  • 分頁機制的原理
  • 頁表的結構
  • 下面我們將從這兩方面入手,循序漸進地展開分頁機制原理。

    經過段部件處理后,保護模式的尋址空間是4GB,注意啦,這個尋址空間是指線性地址空間,它在邏輯上是連續的。分頁機制的思想是:通過映射,可以使連續的線性地址與任意物理內存地址相關聯,邏輯上連續的線性地址其對應的物理地址可以不連續。

    分頁機制的作用有兩方面:

    • 將線性地址轉換成物理地址
    • 用大小相等的頁代替大小不等的段

    這兩方面的作用如圖:

    由于有了線性地址到真實物理地址的這層映射,故經過段部件輸出的線性地址便有了另外一個名字,虛擬地址。

    總結

    以上是生活随笔為你收集整理的一步步编写操作系统 36 一级页表与虚拟地址1的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。