国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

操作系統的分頁存儲基本概念

汽車玩家 ? 來源:今日頭條 ? 作者:不一樣的程序猿 ? 2020-03-15 16:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

非連續分配允許一個程序分散地裝入到不相鄰的內存分區中,根據分區的大小是否固定分為分頁存儲管理方式和分段存儲管理方式。

分頁存儲管理方式中,又根據運行作業時是否要把作業的所有頁面都裝入內存才能運行分為基本分頁存儲管理方式和請求分頁存儲管理方式。

1、基本分頁存儲管理方式

固定分區會產生內部碎片,動態分區會產生外部碎片,這兩種技術對內存的利用率都比較低。我們希望內存的使用能盡量避免碎片的產生。這就引入了分頁的思想:把主存空間劃分為大小相等且固定的塊,塊相對較小,作為主存的基本單位。每個進程也以塊為單位進行劃分,進程在執行時,以塊為單位逐個申請主存中的塊空間。

分頁的方法從形式上看賣相分區相等的固定分區技術,分區管理不會產生外部碎片。但它又有本質的區別:塊的大小相對分區要小很多,而且進程也按照塊進行劃分,進程運行時按塊申請主存可用空間并執行。這樣,進程只會在為最后一個不完整的塊申請一個主存塊空間時,才產生主存碎片,所以盡管會產生內部碎片,但是這種碎片相對進程來說也是很小的,每個進程平均產生半個塊大小的內部碎片(也稱頁內碎片)

(1)分頁存儲的幾個基本概念

①頁面和頁面大小

進程中的塊稱為頁(Page),內存中的塊稱為頁框(Page Frame,或頁幀)。外存也以同樣的單位進行劃分,直接稱為塊(Block)。進程在執行時需要申請主存空間,就是要為每個頁面分配主存中的可用頁框,這就產生了頁和頁框的一一對應。

為方便地址轉換,頁面大小應是2的整數冪。同時頁面大小應該適中。如果頁面太小,會使進程中的頁面過多,這樣頁表就過長,占用大量內存,而且會增加硬件地址轉換的開銷,降低頁面換入換出的效率;頁面過大又會使頁內碎片增大,降低內存的利用率。所以頁面的大小應該適中,考慮到內存效率和時間效率的權衡。

②地址結構。分頁存儲管理的邏輯地址結構:

地址結構包含兩部分:前一部分為頁號P,后一部分為頁內偏移量W。地址長度為32位,其中0-11位為頁內地址,即每頁大小為4KB;12-31位為頁號,地址空間最多允許有2^20頁。

③頁表。為了便于在內存中找到進程的每個頁面所對應的物理塊,系統為每個進程建立一張頁表,記錄頁面在內存中對應的物理號,頁表 一般存放在內存中。

在配置了頁表后,進程執行時通過查找該表,即可找到每頁在內存中的物理塊號。可見,頁表的作用是實現頁號到物理塊號的地址映射。

(2)基本地址的變換機構

地址變換機構的任務是將邏輯地址轉換為內存中物理地址,地址變換是借助于頁表實現的。

在系統中通常設置一個頁表寄存器(PTR),存放頁表在內存的始址F和頁表長度M,進程未執行時,頁表的始址和長度存放在進程控制塊中,當進程執行時,才將頁表始址和長度存入頁表寄存器。設頁面大小為L,邏輯地址A到物理地址E的變換過程如下:

①計算頁號P(P=A/L)和頁內偏移量W(w=A%L)

②比較頁號P和頁表長度M,若P>=M,則產生越界中斷,否則繼續執行。

③頁表中P對應的頁表項地址=頁表起始地址F+頁號*頁表項長度,取出該頁表項內容b,即為物理塊號。

④計算E=b*L+W

以上整個地址變換過程均是由硬件自動完成的。

假如,頁面大小L為1K字節,頁號2對應的物理塊為b=8,計算邏輯地址A=2500的物理地址 E的過程如下

p=2500/1K=2;

w=2500%1K=452;

查找得到頁號2對應的物理塊的塊號為8,E=8*1024+452=8644.

下面討論分頁管理方式存在的兩個主要問題:

①每次訪存操作都需要進行邏輯地址到物理地址的轉換,地址轉換過程必須足夠快,否則訪存速度會降低。

②每個進程引入了頁表,用于存儲映射機制,頁表不能太大,否則內存利用率會降低。

(3)具有快表的地址變換機構

由上面介紹的地址變換過程可知。若頁表全部放在內存中,則存取一個數據或一條指令至少要訪問兩次內存

第一次是訪問頁表,確定所存取的數據或指令的物理地址

第二次才根據該地址存取數據或指令。

顯然,這種方法比通常執行指令的速度慢了一半。

為此,在地址變換機構中增設了一個具有并行查找能力的高速緩存存儲器——塊表,又稱為聯想寄存器(TLB),用來存放當前訪問的若干頁表項,以加速地址變換的過程。于此對應,主存中的頁表也常稱為慢表。

在具有快表的分頁機制中,地址的變換過程:

CPU給出邏輯地址后,由硬件地址進行地址轉換并將頁號送入高速地址緩沖寄存器,并將此頁號與快表中的所有頁號進行比較。

②如果找到匹配的頁號, 說明所要訪問的頁表項在塊表中,則直接從中取出該頁所對應的頁框號,與頁內偏移量拼接成物理地址。這樣存取數據僅一次訪存便可實現。

③如果沒有找到,則需要訪問主存中的頁表,在讀出頁表項后,應同時將其存入快表,以便后面可能的再次訪問。但若快表已滿,則必須按照一定的算法對舊的頁表進行替換。

注意:有些處理機設計為塊表和慢表同時查找,如果在塊表中查找成功則終止慢表的查找。

一般塊表的命中率可以達到90%以上,這樣,分頁帶來的速度損失降低到10%以下。快表的有效性是基于局部性原理。這在后面的虛擬內存中將具體討論。

(4)兩級頁表

第二個問題:由于引入了分頁管理,進程在執行時不需要將所有頁調入內存頁框中,而只要將保存有映射關系的頁表調入內存即可。但是我們仍然需要考慮頁表的大小。以32位邏輯空間,頁面大小4KB,頁表項大小4B為例,若要實現進程對全部邏輯空間的映射,則每個進程需要(2^32/4KB)2^20,約100萬個頁表項。也就是說,每個進程僅頁表這一項就需要4MB主存空間,這顯然是不切合實際的。

而即便不考慮對全部邏輯地址空間進行映射的情況,一個邏輯地址空間稍大的進程,其頁表大小也可能是過大的。

①進程舉例(全部放入內存)

以一個40MB的進程為例,頁表項共40KB(40MB/4KB*4B),如果將所有頁表項內容保存在內存中,那么需要(40KB/4KB)10個內存頁框來把保存整個頁表。整個進程大小約為(40MB/4KB)1萬個頁面,而實際執行時只需要幾十個頁面進入內存頁框就可以運行,但如果要求10個頁面大小的頁表必須全部進入內存,這相對實際執行的幾十個進程頁面的大小來說,肯定是降低了內存利用率的;從另一方面來講,這10頁的頁表項也并不需要同時保存在內存中,因為大多數情況下,映射所需要的頁表項都在頁表的同一頁面中。

解決方案:

為了壓縮頁表,我們將頁表映射的思想進一步延伸,就可以得到二級分頁,即使用層次結構的頁表:將頁表的10頁空間也進行地址映射,建立上一級頁表,用于存儲頁表的映射關系。這里對頁表的10個頁面進行映射只需要10個頁表項,所以上一級頁表只需要1頁就足夠(可以存儲2^10=1024個頁表項)。在進程執行時,只需要將1頁的上一級頁表調入內存即可,進程的頁表和進程本身的頁面,可以在后面的執行中再調入內存。

②系統舉例(頁表理論占用最大內存)

以上面提到的條件:32位邏輯地址空間、頁面大小4kB、頁表項大小4B,以字節為編址單位,我們就這個條件來構造一個合適這個條件的頁表結構。頁面大小為4KB,則頁內偏移址為log2 4K=12位,頁號部分為20位,若不采用分級頁表,那么光頁表就要占用2^20*4B/4KB=1024頁(頁框),而這大大超過了許多進程自身需要的頁面,對于內存來說是非常浪費資源的,而且查詢頁表工作也變得十分不便,試想若把這些頁表放在連續的空間中,查詢對應的物理頁號的時候可以通過頁表首頁地址+頁號*4B的形式得到,而這種方法查詢起來雖然相對方便,但是連續的1024頁對于內存的要求實在太高,并且上面說到了其中大多數頁面都是不會用到的,所以這種方法并不具有可行性。

解決方案:

如果不把這些頁表放在連續的空間中,我們就需要一張索引表來告訴我們第幾張應該去哪找,這就能解決頁表的查詢問題,并且不用把所有的頁表都調入內存,只有需要它的時候才調入(虛擬存儲器思想),這就能解決占用內存空間過大的問題。

你也許會發現了這個方案和當初引進頁表機制的方式一模一樣,實際上就是構建一個頁表的頁表,也就是二級頁表。為了查詢的方便,頂級頁表大小設立一個頁面,那么頂級頁表共可以容納4KB/4B=1K個頁表項,則它占用的地址位數為log2 1K=10位,而之前計算過頁內偏移地址占用了12位,那么32位的邏輯地址空間就剩下10位,正好使得二級頁表的大小在一頁之內,這樣我們就得到了路基地址空間的格式:

二級頁表實際上就是在原有頁表結構上再加了一層頁表

建立多級頁表的目的在于建立索引,這樣不用浪費主存空間去存儲無用的頁表項,也不用盲目地順序式查找頁表項,而建立索引的要求是最高一級頁表項不超過一頁的大小。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4787

    瀏覽量

    90057
  • 操作系統
    +關注

    關注

    37

    文章

    7401

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    openKylin賦能國防科大構建操作系統創新型人才培養體系

    國防科技大學操作系統團隊在承擔國家重大科研任務、推進麒麟操作系統研發和推廣應用的過程中,立足工程實踐和科研創新能力培養需求,針對傳統操作系統教學面臨的諸多挑戰,在開放協作、創新競賽、實習實訓等方面
    的頭像 發表于 01-23 13:49 ?384次閱讀

    海格通信加入中關村智能終端操作系統產業聯盟

    近日,海格通信(股票代碼:002465)加入中關村智能終端操作系統產業聯盟。雙方將在智能終端操作系統在技術、應用場景與產業生態層面加強聯合,開啟智能終端操作系統產業協同發展的新篇章。
    的頭像 發表于 01-20 17:04 ?1327次閱讀

    操作系統體系結構

    操作系統的體系結構是一個開放的問題。正如上文所述,操作系統在核心態為應用程序提供公共的服務,那么操作系統在核心態應該提供什么服務、怎樣提供服務?有關這個問題的回答形成了兩種主要的體系結構:大內核和微
    發表于 01-15 08:19

    操作系統的發展及分類

    手工操作階段(此階段無操作系統)   用戶在計算機上算題的所有工作都要人工干預,如程序的裝入、運行、結果的輸出等。隨著計算機硬件的發展,人機矛盾(速度和資源利用)越來越大,必須尋求新的解決辦法
    發表于 01-15 08:00

    操作系統運行機制

    不同的層次上。一些與硬件關聯較緊密的模塊,諸如時鐘管理、中斷處理、設備驅動等處于最底層。其次是運行頻率較髙的程序,諸如進程管理、存儲器管理和設備管理等。這兩部分內容構成了操作系統的內核。這部分內容的指令
    發表于 01-15 07:12

    龍蜥操作系統裝機量突破1000萬

    11月17日,以“生態共融·智驅未來”為主題的2025龍蜥操作系統大會(OpenAnolis Conference)在北京成功舉辦。千余位全球技術大咖、業界精英和行業開發者齊聚一堂,深入探討AI時代下操作系統產業發展的新趨勢、新挑戰與新路徑,共話龍蜥社區引領
    的頭像 發表于 11-20 11:40 ?838次閱讀

    單片機的操作系統

    Linux網絡協議棧和文件系統(如JFFS2),但實時性較弱,需外擴存儲器。 ? ? VxWorks ?:高效實時操作系統,廣泛應用于通信、軍事等領域,支持自定義硬件模塊。 ? 其他選擇 ? Keil
    發表于 11-14 06:18

    嵌入式實時操作系統的特點

    實時嵌入式操作系統(Real-Time Embedded Operating System)是專門設計用于嵌入式系統的實時操作系統。嵌入式系統是一種特殊的計算機
    發表于 11-13 06:30

    如何選擇合適的實時操作系統

    選擇合適的實時操作系統(RTOS,Real-Time Operating System)可能會影響你在不同行業的職業發展路徑。
    的頭像 發表于 09-09 14:47 ?1069次閱讀

    樹莓派操作系統:版本、特性及設置完整指南!

    樹莓派操作系統是什么?樹莓派操作系統是由樹莓派基金會專為樹莓派開發的官方操作系統。它基于DebianLinux發行版,并針對樹莓派的ARM架構進行了專門優化。樹莓派操作系統有多個版本,
    的頭像 發表于 07-28 18:26 ?1415次閱讀
    樹莓派<b class='flag-5'>操作系統</b>:版本、特性及設置完整指南!

    電壓波動與閃變的基本概念

    如果您是電力系統工程師、電氣設備維護人員或者相關專業的學生,應該注意到了有關電能質量的國家標準GB/T 12326-2008是有關電壓波動和閃變的,那這兩個參數的考核意義是什么?國家標準規定這兩個參數如何計算、測量和考核?這篇文章帶您全面了解電壓波動和閃變的基本概念、重要
    的頭像 發表于 07-22 14:10 ?2991次閱讀
    電壓波動與閃變的<b class='flag-5'>基本概念</b>

    第十三章 通訊的基本概念

    本章介紹通訊基本概念,包括串行/并行、全雙工/半雙工/單工、同步/異步通訊,還提及通訊速率中比特率與波特率的概念
    的頭像 發表于 05-22 17:29 ?2062次閱讀
    第十三章 通訊的<b class='flag-5'>基本概念</b>

    鴻道Intewell操作系統:人形機器人底層操作系統

    操作系統的實時性賦能東土科技的鴻道(Intewell)工業操作系統作為國內唯一通過汽車、工業控制、醫療、軌道交通四項功能安全認證的系統,為標準體系中的技術層架構提供了底層支持。其微內核虛擬化架構可將人形機器人電子架構成本降低50
    的頭像 發表于 05-16 14:44 ?765次閱讀

    理想汽車智駕操作系統解讀

    [首發于智駕最前沿微信公眾號]在智能網聯與生成式AI技術深度融合的浪潮下,汽車操作系統已經從最初的簡單資源管理平臺,演化為承載感知決策、執行控制與安全防護的智能化中樞。理想汽車自主研發的星環OS
    的頭像 發表于 05-13 10:54 ?1208次閱讀
    理想汽車智駕<b class='flag-5'>操作系統</b>解讀

    國產操作系統有哪些?政企官方認證的5大國產系統,實測好用才敢推薦!

    近年來,“國產操作系統”這個詞越來越頻繁地出現在政策文件、企業采購清單和行業新聞里。尤其是在“信創”浪潮下,無論是政府機關還是央企國企,都在加速替換國外操作系統。但面對市面上琳瑯滿目的國產系統,很多人難免困惑:國產
    的頭像 發表于 04-17 15:34 ?6676次閱讀
    國產<b class='flag-5'>操作系統</b>有哪些?政企官方認證的5大國產<b class='flag-5'>系統</b>,實測好用才敢推薦!