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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)

發(fā)布時(shí)間:2025/3/15 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

4、基本地址變換機(jī)構(gòu)

  • 頁式
    • 1、頁式
      • 硬件實(shí)現(xiàn)流程
      • 地址變化步驟
      • 問題
    • 2、頁式+快表
      • 什么是快表?
      • 引入快表后地址變換步驟
      • 引入快表后的硬件實(shí)現(xiàn)
      • 快表無法裝入完整的慢表,達(dá)到高命中率的基礎(chǔ)原理是什么?-------->局部性原理
      • 有無快表的對(duì)比:
    • 3、兩級(jí)頁表
      • 單級(jí)頁表存在的問題
      • 二級(jí)頁表的邏輯地址結(jié)構(gòu)
      • 二級(jí)頁表的硬件實(shí)現(xiàn)(解決第一個(gè)問題)
      • 二級(jí)頁表如何實(shí)現(xiàn)地址轉(zhuǎn)換?
      • 第二個(gè)問題的解決?
      • 什么叫各級(jí)頁表大小不能超過一個(gè)頁面?
  • 段氏
    • 什么叫分段?
    • 如何確定進(jìn)程的每個(gè)段在內(nèi)存中存放的位置?--------->段表
    • 段氏硬件實(shí)現(xiàn)流程
    • 內(nèi)存訪問次數(shù)
    • 分段、分頁管理的對(duì)比
  • 段頁式
    • 段氏和頁式的缺點(diǎn)
    • 如何確定進(jìn)程的每個(gè)段在內(nèi)存中存放的位置?--------->段表+頁表
    • 段頁式管理的邏輯地址結(jié)構(gòu)
    • 段頁氏硬件實(shí)現(xiàn)流程

頁式

1、頁式

硬件實(shí)現(xiàn)流程


需要進(jìn)行倆次內(nèi)存訪問

地址變化步驟

問題

2、頁式+快表

什么是快表?

快表:就是高速緩存cache訪問速度快于內(nèi)存,造價(jià)高于內(nèi)存
所以:cache的容量小于內(nèi)存,
cache和快表(TLB)的區(qū)別:TLB 中只有頁表項(xiàng)的副本,而普通 Cache 中可能會(huì)有其他各種數(shù)據(jù)的副本

引入快表后地址變換步驟

什么叫快表和慢表同時(shí)查找?

就是在訪問快表的同時(shí)也訪問慢表,所以在上面的例子中可以節(jié)省一秒時(shí)間

引入快表后的硬件實(shí)現(xiàn)

假如:
第一次訪問(0,0),檢查越界后查詢快表,未命中,查詢頁表,并將該頁表項(xiàng)復(fù)制到快表,訪問物理地址。(訪問兩次內(nèi)存)
第二次訪問(0,4),檢查越界后查詢快表,命中,直接訪問物理地址(訪問一次內(nèi)存)
第三次訪問(0,8),檢查越界后查詢快表,命中,直接訪問物理地址(訪問一次內(nèi)存)

快表無法裝入完整的慢表,達(dá)到高命中率的基礎(chǔ)原理是什么?-------->局部性原理

有無快表的對(duì)比:

3、兩級(jí)頁表

單級(jí)頁表存在的問題


由于段氏內(nèi)存分配的一個(gè)優(yōu)點(diǎn)就是可以進(jìn)行非連續(xù)的存儲(chǔ),但是當(dāng)我們采用頁式存儲(chǔ)的時(shí)候,邏輯地址與頁表項(xiàng)需要建立一一對(duì)應(yīng)的關(guān)系,當(dāng)邏輯地址太多時(shí),就需要一片很長的連續(xù)空間進(jìn)行頁表存儲(chǔ),這樣就喪失了非連續(xù)存儲(chǔ)的優(yōu)勢(shì)。因此,提出了二級(jí)頁表的概念。

二級(jí)頁表的邏輯地址結(jié)構(gòu)

二級(jí)頁表的硬件實(shí)現(xiàn)(解決第一個(gè)問題)

我們可以類比于一級(jí)頁表,一級(jí)頁表可以將一個(gè)程序分頁存儲(chǔ)到不同不連續(xù)的內(nèi)存單元。那二級(jí)頁表其實(shí)就是將一級(jí)頁表分頁存儲(chǔ)到不同不連續(xù)的內(nèi)存單元,即將一級(jí)頁表再分頁這樣就可以解決第一個(gè)問題了

二級(jí)頁表如何實(shí)現(xiàn)地址轉(zhuǎn)換?

就是先用一級(jí)頁表查到二級(jí)頁表存放的位置,在從二級(jí)頁表查到物理地址。相對(duì)于一級(jí)頁表的方式,就是多了一步頁表查詢的過程。

第二個(gè)問題的解決?

見下篇博客:操作系統(tǒng)之內(nèi)存管理:5、虛擬存儲(chǔ)技術(shù)

什么叫各級(jí)頁表大小不能超過一個(gè)頁面?

其中,二級(jí)頁表在沒有快表時(shí)需要進(jìn)行3次內(nèi)存的訪問才能找到實(shí)際的物理地址。n級(jí)頁表需要訪問n+1次。

段氏

什么叫分段?

1、當(dāng)我們寫一個(gè)程序時(shí)會(huì)有一個(gè)main()函數(shù),已經(jīng)一系列的子函數(shù);那么分段的意思就是:按照完整的自身邏輯結(jié)構(gòu)(比如一個(gè)函數(shù))將一個(gè)程序劃分成多個(gè)塊,然后將不同的塊存儲(chǔ)到不同不連續(xù)的內(nèi)存段中。(如上圖所示),一個(gè)函數(shù)名就對(duì)應(yīng)一個(gè)斷號(hào)。
2、用戶要對(duì)分段存儲(chǔ)的程序進(jìn)行數(shù)據(jù)的訪問時(shí),需要有倆個(gè)參數(shù):第一個(gè)是段名,第二個(gè)是段內(nèi)偏移量,所以稱段氏的地址空間是二維的
3、段是信息的邏輯單位。分頁的主要目的是更好地滿足用戶需求。。分段對(duì)用戶是可見的,用戶編程時(shí)需要顯式地給出段名。

如何確定進(jìn)程的每個(gè)段在內(nèi)存中存放的位置?--------->段表

我們可以通過邏輯地址與段表,段表與物理地址的映射關(guān)系實(shí)現(xiàn)從邏輯地址到物理地址的轉(zhuǎn)化

段氏硬件實(shí)現(xiàn)流程

首先用短號(hào)與段表寄存器對(duì)比查看是否越界;
未越界則查找段表中對(duì)應(yīng)的段表項(xiàng)
然后段內(nèi)地址與段長對(duì)比,判斷是否越界
未越界則查找物理地址
假如現(xiàn)在要查找:(2,1024),未越界則查找到段基址:40K,在加上偏移量:1K,所以最終的物理地址為41K處

內(nèi)存訪問次數(shù)

分段、分頁管理的對(duì)比

假如現(xiàn)在程序有三個(gè)段:0,1,2;第二段可共享;用段氏就很容易實(shí)現(xiàn)共享;若采用頁式:

可能出現(xiàn)一頁中一部分可共享,一部分不可共享的情況。

段頁式

段氏和頁式的缺點(diǎn)

如何確定進(jìn)程的每個(gè)段在內(nèi)存中存放的位置?--------->段表+頁表


段頁式和段氏中的段表存儲(chǔ)字段不同。

段頁式管理的邏輯地址結(jié)構(gòu)

段頁氏硬件實(shí)現(xiàn)流程

不使用快表時(shí)內(nèi)存訪問次數(shù):每次地址轉(zhuǎn)化都需要訪問內(nèi)存3次。

總結(jié)

以上是生活随笔為你收集整理的操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。