chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分頁(yè)方式中可以每個(gè)進(jìn)程分配一個(gè)頁(yè)表嗎

麥辣雞腿堡 ? 來(lái)源:程序猿阿星 ? 作者:程序猿阿星 ? 2023-10-09 17:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在分頁(yè)方式下,每個(gè)進(jìn)程分配一個(gè)頁(yè)表會(huì)有什么問(wèn)題?

不賣關(guān)子了,每個(gè)進(jìn)程分配一個(gè)頁(yè)表會(huì)有空間上的缺陷,因?yàn)?a target="_blank">操作系統(tǒng)上可以運(yùn)行非常多的進(jìn)程,那不就意味著頁(yè)表數(shù)量非常多!

1B(Byte 字節(jié))=8bit, 1KB (Kilobyte 千字節(jié))=1024B, 1MB (Megabyte 兆字節(jié)簡(jiǎn)稱“兆”)=1024KB, 1GB (Gigabyte 吉字節(jié) 又稱“千兆”)=1024MB

以32 位的環(huán)境為例,虛擬地址空間范圍共有 4GB,假設(shè)一個(gè)頁(yè)的大小是 4KB(2^12),那么就需要大約 100 萬(wàn) (2^20)個(gè)頁(yè),每個(gè)「頁(yè)表項(xiàng)」需要 4 個(gè)字節(jié)大小來(lái)存儲(chǔ),那么整個(gè) 4GB 空間范圍的映射就要有 4MB 的內(nèi)存來(lái)存儲(chǔ)頁(yè)表。

4MB看起來(lái)不大,但是數(shù)量上來(lái)了就很恐怖了,假設(shè) 100 個(gè)進(jìn)程的話,就需要 400MB 的內(nèi)存來(lái)存儲(chǔ)頁(yè)表,這是非常大的內(nèi)存了,更別說(shuō) 64位的環(huán)境了。

為了解決空間上的問(wèn)題,在對(duì)分頁(yè)方式的基礎(chǔ)上,進(jìn)行優(yōu)化,出現(xiàn)了多級(jí)頁(yè)表方式

多級(jí)頁(yè)表

在前面我們知道了,分頁(yè)方式在32位環(huán)境下,以每頁(yè)4KB來(lái)計(jì)算,一共有100萬(wàn)頁(yè),「頁(yè)表項(xiàng)」需要 4
個(gè)字節(jié)大小來(lái)存儲(chǔ),一個(gè)頁(yè)表包含100萬(wàn)個(gè)「頁(yè)表項(xiàng)」,那么每個(gè)進(jìn)程的頁(yè)表需要占用4MB大小,多級(jí)頁(yè)表要如何解決這種問(wèn)題呢?

在頁(yè)表的基礎(chǔ)上做一次二級(jí)分頁(yè),把100萬(wàn)「頁(yè)表項(xiàng)」分為一級(jí)頁(yè)表「1024個(gè)頁(yè)表項(xiàng)」,「一級(jí)頁(yè)表項(xiàng)」下又關(guān)聯(lián)二級(jí)頁(yè)表「1024個(gè)頁(yè)表項(xiàng)」,這樣一級(jí)頁(yè)表的1024個(gè)頁(yè)表項(xiàng)就覆蓋到了4GB的空間范圍映射,并且二級(jí)頁(yè)表按需加載,這樣頁(yè)表占用的空間就大大降低。

做個(gè)簡(jiǎn)單的計(jì)算,假設(shè)只有 20% 的一級(jí)頁(yè)表項(xiàng)被用到了,那么頁(yè)表占用的內(nèi)存空間就只有 4KB(一級(jí)頁(yè)表) + 20% * 4MB(二級(jí)頁(yè)表)=0.804MB,這對(duì)比單級(jí)頁(yè)表的 4MB 是不是一個(gè)巨大的節(jié)約?

圖片

接著思考,在二級(jí)的基礎(chǔ)上是不是又可以繼續(xù)分級(jí)呢,能分二級(jí),必然也能分三級(jí)、四級(jí),在64位操作系統(tǒng)是做了四級(jí)分頁(yè),分為了四個(gè)目錄,分別是

全局頁(yè)目錄項(xiàng)

上層頁(yè)目錄項(xiàng)

中間頁(yè)目錄項(xiàng)

頁(yè)表項(xiàng)

圖片

TBL

多級(jí)頁(yè)表雖然解決了空間上的問(wèn)題,但是我們發(fā)現(xiàn)這種方式需要走多道轉(zhuǎn)換才能找到映射的物理內(nèi)存地址,經(jīng)過(guò)的多道轉(zhuǎn)換造成了時(shí)間上的開銷。

程序是局部性的,即在一段時(shí)間內(nèi),整個(gè)程序的執(zhí)行僅限于程序的某一部分。相應(yīng)的,執(zhí)行所訪問(wèn)的存儲(chǔ)空間也局限于某個(gè)內(nèi)存區(qū)域。

操作系統(tǒng)就利用這一特性,把最多使用的幾個(gè)頁(yè)表項(xiàng)放到TBL緩存, CPU 在尋址時(shí),會(huì)先查 TLB,如果沒(méi)找到,才會(huì)繼續(xù)查常規(guī)的頁(yè)表,TLB的命中率其實(shí)很高的,因?yàn)槌绦蜃畛TL問(wèn)的頁(yè)就那么幾個(gè)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3125

    瀏覽量

    75274
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7152

    瀏覽量

    125601
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    初學(xué)者Linux操作系統(tǒng)的基本結(jié)構(gòu)

    的段后與偏移值進(jìn)行求和.這個(gè)地址(在分頁(yè)機(jī)制開啟的前提下),會(huì)表示頁(yè)個(gè)頁(yè)面,通過(guò)尋找到的
    發(fā)表于 10-01 19:16

    嵌入式Linux內(nèi)存管理的些知識(shí)點(diǎn)總結(jié)

    到硬盤,從硬盤上加載被請(qǐng)求的內(nèi)存, 然后再重新啟動(dòng)您的進(jìn)程。這樣,每個(gè)進(jìn)程都獲得了自己可以使用的地址空間,
    發(fā)表于 11-20 14:46

    嵌入式Linux內(nèi)存管理的些知識(shí)點(diǎn)總結(jié)

    轉(zhuǎn)存到硬盤,從硬盤上加載被請(qǐng)求的內(nèi)存, 然后再重新啟動(dòng)您的進(jìn)程。這樣,每個(gè)進(jìn)程都獲得了自己可以使用的地址空間,
    發(fā)表于 03-24 09:31

    頁(yè)面與地址變換結(jié)構(gòu)

    進(jìn)行標(biāo)號(hào),從0#開始。在為進(jìn)程分配內(nèi)存空間時(shí),以頁(yè)為單位,每個(gè)內(nèi)存的塊存放一頁(yè)用戶作業(yè)。只要內(nèi)
    發(fā)表于 08-02 06:14

    Pads Logic 分頁(yè)符號(hào)圖頁(yè)編號(hào)顯示問(wèn)題

    請(qǐng)教各位大師個(gè)Pads Logic VX2.6的問(wèn)題,分頁(yè)符號(hào)如果打開圖頁(yè)編號(hào),有時(shí)候就疊在起了,如圖所示,很難看,這個(gè)能設(shè)置嗎? 謝謝
    發(fā)表于 07-08 11:08

    淺談對(duì)計(jì)算機(jī)系統(tǒng)內(nèi)存尋址的理解

    轉(zhuǎn)換前地址的話,那么線性地址則對(duì)應(yīng)了硬件頁(yè)式內(nèi)存的轉(zhuǎn)換前地址。用分頁(yè)方法來(lái)分配和管理實(shí)存。即把整個(gè)主存分成大小相等的存儲(chǔ)塊,可裝入作業(yè)的任何一頁(yè)。這樣
    發(fā)表于 08-22 08:00

    Linux內(nèi)存系統(tǒng): Linux 內(nèi)存分配算法

    分配出去(不屬于任何進(jìn)程),但由于太小了無(wú)法分配給申請(qǐng)內(nèi)存空間的新進(jìn)程的內(nèi)存空閑區(qū)域3) 組織結(jié)構(gòu)· 把所有的空閑頁(yè)分組為 11
    發(fā)表于 08-24 07:44

    Linux內(nèi)存系統(tǒng)---走進(jìn)Linux 內(nèi)存

    每個(gè)進(jìn)程都有完全屬于自己的,獨(dú)立的,不***擾的內(nèi)存空間;用戶態(tài)的程序就不能隨意操作內(nèi)核地址空間,具有定的安全保護(hù)作用;內(nèi)核態(tài)線程共享內(nèi)核地址空間; 3、內(nèi)存地址——MMU 地址轉(zhuǎn)換· MMU
    發(fā)表于 08-26 08:05

    鴻蒙內(nèi)核源碼分析(內(nèi)存分配篇):內(nèi)存的分配方式有哪些

    解決物理內(nèi)存滿足不了多進(jìn)程對(duì)內(nèi)存的需要。虛擬內(nèi)存可以遠(yuǎn)大于物理內(nèi)存。虛擬空間是進(jìn)程層面的概念,每個(gè)進(jìn)程都有
    發(fā)表于 11-20 10:07

    鴻蒙內(nèi)核源碼分析(內(nèi)存分配篇):內(nèi)存的分配方式有哪些

    (); } else {return NULL; }}代碼可以看出初始化對(duì)物理內(nèi)存做了幾個(gè)動(dòng)作:1.對(duì)整個(gè)物理內(nèi)存進(jìn)行了分頁(yè),每頁(yè)框4K,存放在大頁(yè)
    發(fā)表于 11-20 17:34

    WCDMA系統(tǒng)物理信道的功率分配方式

    WCDMA系統(tǒng)物理信道的功率分配方式 如下圖所述,每個(gè)信道在調(diào)制前都有個(gè)系數(shù)對(duì)它進(jìn)行功率大小控制。
    發(fā)表于 06-15 12:35 ?2178次閱讀

    操作系統(tǒng)的分頁(yè)存儲(chǔ)基本概念

    非連續(xù)分配允許個(gè)程序分散地裝入到不相鄰的內(nèi)存分區(qū),根據(jù)分區(qū)的大小是否固定分為分頁(yè)存儲(chǔ)管理方式
    的頭像 發(fā)表于 03-15 16:36 ?5052次閱讀

    個(gè)由于MySQL分頁(yè)導(dǎo)致的線上事故

    其實(shí)對(duì)于我們的 MySQL 查詢語(yǔ)句來(lái)說(shuō),整體效率還是可以的,該有的聯(lián)查詢優(yōu)化都有,該簡(jiǎn)略的查詢內(nèi)容也有,關(guān)鍵條件字段和排序字段該有的索引也都在,問(wèn)題在于他一頁(yè)一頁(yè)
    的頭像 發(fā)表于 05-10 15:31 ?977次閱讀

    MMU多級(jí)頁(yè)映射過(guò)程

    物理頁(yè)面大小級(jí)地址總線寬度不同,頁(yè)的級(jí)數(shù)也不同。以AArch64運(yùn)行狀態(tài),4KB大小物理頁(yè)面,48位地址寬度為例,頁(yè)映射的查詢過(guò)程如圖
    的頭像 發(fā)表于 11-26 16:28 ?1425次閱讀
    MMU多級(jí)<b class='flag-5'>頁(yè)</b><b class='flag-5'>表</b>映射過(guò)程

    mybatis邏輯分頁(yè)和物理分頁(yè)的區(qū)別

    MyBatis是個(gè)開源的Java持久層框架,它與其他ORM(對(duì)象關(guān)系映射)框架相比,具有更加靈活和高性能的特點(diǎn)。MyBatis提供了兩種分頁(yè)方式,即邏輯
    的頭像 發(fā)表于 12-03 14:54 ?1266次閱讀