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

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

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

3天內不再提示

詳解操作系統的存儲管理

汽車玩家 ? 來源:簡書 ? 作者:deniro ? 2020-05-03 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

存儲器是計算機系統中最重要的資源之一。因為任何程序和數據以及各種控制用的數據結構都必須占有一定的存儲空間,因此,存儲管理直接影響系統性能。

存儲器由內存和外存組成。內存是由系統實際提供的存儲單元(常指字節)組成的一個連續地址空間,處理器可直接存取。外存(輔存)是指軟盤、硬盤、光盤和磁帶等一些外部存儲部件,常用來存放暫不執行的程序和數據。處理器不能直接訪問外存,需通過啟動 I/O(Input/Output,輸入/輸出)設備才能進行內存、外存交換,其訪問速度慢,但價格便宜, 常用作內存的后援設備。

內存大小由系統硬件決定,存儲容量受到實際存儲單元的限制。虛擬存儲器(簡稱虛存)不考慮實際內存的大小和數據存取的實際地址,只考慮相互有關的數據之間的相對位置,其容量由計算機地址的位數決定。

系統中內存的使用一般分成兩部分,一部分為系統空間,存放操作系統本身及相關的系統程序;另一部分為用戶空間,存放用戶的程序和數據。

存儲管理主要是指對內存儲器的管理,負責對內存的分配和回收、內存的保護和內存的擴充。

存儲管理的目的是盡量提高內存的使用效率。

1 地址變換

由進程中的目標代碼 、 數據等的虛擬地址組成的虛擬空間稱為虛擬存儲器,虛擬存儲器允許用戶用比內存容量大得多的地址空間來編程,以運行比內存實際容量大得多的程序。用戶編程所用的地址稱為邏輯地址 ( 虛地址 ) ,而實際的內存地址則稱為物理地址 ( 實地址 ) 。每次訪問內存時都要進行邏輯地址到物理地址的轉換,這種轉換是由硬件完成的,而內存和外存之間的信息動態調度是由硬件和操作系統兩者配合完成的。

靜態重定位 : 靜態重定位是在虛空間程序執行之前由裝配程序完成地址映射工作。靜態重定位的優點是不需要硬件的支持。 缺點是無法實現虛擬存儲器,必須占用連續的內存空間,且難以做到程序和數據的共享。

動態重定位 : 動態重定位是在程序執行過程中,在 CPU 訪問內存之前,將要訪問的程序或數據地址轉換為內存地址。動態重定位依靠硬件地址變換機構完成,其優點主要有 : 可以對內存進行非連續分配,提供了虛擬存儲器的基礎,有利于程序段的共享 。

2 存儲組織

虛擬存儲器可以分為單一連續分區 、 固定分區 、 可變分區 、 可重定位分區 、 頁式 、 段式 、 段頁式 7 種 。

單一連續分區。把所有用戶區都分配給唯一的用戶作業,當作業被調度時,進程全部進入內存,一旦完成,所有內存恢復空閑,因此,它不支持多道程序設計 。

固定分區。這是支持多道程序設計的最簡單的存儲管理方法,它把內存劃分成若干個固定的和大小不同的分區,每個分區能夠裝入一個作業,分區的大小是固定的,算法簡單,但是容易生成較多的存儲器碎片 。

可變分區。引入可變分區后雖然內存分配更靈活,也提高了內存利用率,但是由于系統在不斷地分配和回收中,必定會出現一些不連續的小的空閑區,盡管這些小的空閑區的總和超過某一個作業要求的空間,但是由于不連續而無法分配, 產生了碎片解決碎片的方法是拼接 ( 緊湊 ) ,即向一個方向 ( 如向低地址端 ) 移動已分配的作業,使那些零散的小空閑區在另一方向連成一片。分區的拼接技術,一方面是要求能夠對作業進行重定位,另一方面系統在拼接時要耗費較多的時間。

可重定位分區。這是克服固定分區碎片問題的一種存儲分配方法,它能夠把相鄰的空閑存儲空間合并成一個完整的空區,還能夠整理存儲器內各個作業的存儲位置,以達到消除存儲碎片和緊縮存儲空間的目的。緊縮工作需要花費大量的時間和系統資源。

另外還有三種存儲組織方式:頁式 、 段式 、 段頁式,下面我們將詳細解讀段頁式存儲管理。

2.1 頁式存儲管理

分頁的基本思想是把程序的邏輯空間和內存的物理空間按照同樣的大小劃分成若干頁面,并以頁面為單位進行分配。在頁式存儲管理中,系統中虛地址是一個有序對(頁號,位移)。系統為每一個進程建立一個頁表,其內容包括進程的邏輯頁號與物理頁號的對應關系、狀態等。

頁式系統的動態地址轉換是這樣進行的:當進程運行時,其頁表的首地址已在系統的動態地址轉換機構中的基本地址寄存器中。執行的指令訪問虛存地址( p, d)時,首先根據頁號 p 查頁表,由狀態可知,這個頁是否已經調入內存。若已調入內存,則得到該頁的內存位置 p2,然后,與頁內相對位移 d 組合,得到物理地址 r。如果該頁尚未調入內存,則產生缺頁中斷,以裝入所需的頁,如圖 1 所示。

詳解操作系統的存儲管理

頁式虛擬存儲管理是在頁式存儲管理的基礎上實現虛擬存儲器的。首先把作業信息作為副本存放在磁盤上,作業執行時,把作業信息的部分頁面裝入內存儲器,作業執行時若所訪問的頁面已在內存中,則按頁式存儲管理方式進行地址轉換,得到欲訪問的內存絕對地址,若欲訪問的頁面不在內存中,則產生一個“缺頁中斷”,由操作系統把當前所需的頁面裝入內存。

為此,在裝入作業時,就應在該作業的頁表中指出哪些頁已在內存中,哪些頁還沒有裝入內存。可用一個標志位來指示對應頁是否在內存中,比如假設標志位為 1 表示該頁在內存,而標志位為 0 表示該頁尚未裝入內存。為了能方便地從磁盤上找到作業信息的副本,故在頁表中還可指出每一頁副本在磁盤上的位置。

當要裝入一個當前需要的頁面時,如果內存儲器中無空閑塊,則可選擇一個已在內存中的頁面,把它暫時調出內存。若在執行中該頁面被修改過,則把該頁信息重新寫回到磁盤上,否則不必重新寫回磁盤。當一頁被暫時調出內存后,讓出的內存空間用來存放當前需要使用的頁面。以后再使用被調出的頁面時,可用同樣的方法調出另一個頁面而將其再裝入內存。頁面被調出或裝入之后都要對頁表中的相應表目做修改。

2.2 段式存儲管理

段式存儲管理與頁式存儲管理類似。分段的基本思想是把用戶作業按邏輯上有完整意義的段來進行劃分,并以段為單位作為內外存交換的空間尺度。

一個作業是由若干個具有邏輯意義的段(如主程序、子程序、數據段等)組成。分段系統中,容許程序(作業)占據內存中許多分離的分區。每個分區存儲一個程序分段。這樣,每個作業需要幾對界限地址寄存器來判定訪問地址是否越界,實現復雜。在分段存儲系統中常常利用存儲保護鍵實現存儲保護。分段系統中虛地址是一個有序對(段號,位移)。系統為每個作業建立一個段表,其內容包括段號、段長、內存起始地址和狀態等。狀態指出這個段是否已調入內存,即內存起始地址指出這個段,狀態指出這個段的訪問權限。

分段系統的動態地址轉換是這樣進行的:進程執行時,其段表的首地址已在基本地址寄存器中,執行的指令訪問虛存(s, d)(取指令或取操作數)時,首先根據段號 s 查段表,若段已經調入內存,則得到該段的內存起始地址,然后與段內相對地址(段內偏移量 d)相加,得到實際地址。如果該段尚未調入內存,則產生缺段中斷,以裝入所需要的段。段式存儲與頁式存儲的地址轉換方式類似。

段式虛擬存儲管理仍然以段式存儲管理為基礎,為用戶提供比內存實際容量大的虛擬空間。段式虛擬存儲管理把作業中的各個分段信息都保留在磁盤上,當作業可以投入執行時,做如下操作:

首先把當前需要的一段或幾段裝入內存。

作業執行時,如果要訪問的段已經在內存,則按照“段式存儲管理” 中的方式進行地址轉換;如果要訪問的段不在內存中,則產生一個“缺段中斷”,由操作系統把當前需要的段裝入內存。

因此,在段表中應增設段是否在內存的標志以及各段在磁盤上的位置,已在內存中的段仍要指出該段在內存中的起始地址和占用內存區長度。

作業執行要訪問的段時,由硬件的地址轉換模塊查段表。若該段在內存中,則立即把邏輯地址轉換成絕對地址;若該段不在內存中,則形成“缺段中斷”,由操作系統處理這個中斷。

處理的辦法是,查內存分配表,找出一個足夠大的連續區以容納該分段,如果找不到足夠大的連續區則檢查空閑區的總和,若空閑區總和能滿足該段要求,那么進行適當移動將分散的空閑區集中起來;若空閑區總和不能滿足該段要求,可把內存中的一段或幾段調出,然后把當前要訪問的段裝入內存中。段被移動、調出和裝入后都要對段表中的相應屬性進行修改。新的段被裝入后應讓作業重新執行被中斷的指令,這時就能找到要訪問的段,也可以繼續執行下去。

2.3 段頁式存儲管理

段頁式管理是段式和頁式兩種管理方法結合的產物,綜合了段式組織與頁式組織的特點,根據程序模塊分段,段內再分頁,內存被分劃成定長的頁。段頁式系統中虛地址形式是(段號、 頁號、頁內偏移),如圖 2 所示。系統為每個進程建立一個段表,為每個段建立一個頁表。段頁式管理采用段式分配、頁式使用的方法,便于動態連接和存儲的動態分配。這種存儲管理能提高內存空間的利用率。

詳解操作系統的存儲管理

段式虛擬管理還是以段為單位分配內存空間,整段的調出、裝入,有時還要移動,這些都增加了系統的開銷。如果按段頁式存儲管理的方式,把每一段再分成若干頁面,那么,每一段不必占用連續的存儲空間;甚至當內存塊不夠時,可只將一段中的部分頁面裝入內存,這種管理方式稱為“段頁式虛擬存儲管理”。

段頁式虛擬存儲管理為每一個裝入內存的作業建立一張段表,還要為每一段建立頁表。段表中指出該段的頁表存放位置及長度,頁表中應指出該段的各頁在磁盤上的位置以及頁是否在內存中。若在內存中,則填上占用的內存塊號。作業執行時按段號查段表,找到相應的頁表再根據頁號查頁表,由標志位判定該頁是否已在內存,若是,則進行地址轉換;否則進行頁面調度。地址轉換過程如圖 3 所示。

詳解操作系統的存儲管理

段頁式虛擬存儲管理結合了段式和頁式的優點,但增加了設置表格(段表、頁表)和查表等開銷,段頁式虛擬存儲器一般只在大型計算機系統中使用。

常見的虛存組織比較說明如下:

詳解操作系統的存儲管理

3 存儲管理

在虛擬存儲器的管理中,涉及載入 ( 調入 ) 、 放置 ( 放入分區 ) 和置換 ( swapping ) 等管理內容。

調入策略 : 即何時將一頁或一段從外存中調入內存,通常有兩種策略,一種是請求調入法,即需要使用時才調入;另一種是先行調入法,即將預計要使用的頁 / 段先行調入內存。

放置策略 : 也就是調入后,放在內存中的什么位置,這與內存管理基本上是一致的。

置換策略 : 由于實際內存是小于虛存的,因此可能會發生內存已滿,但需要使用的頁并不在內存中的情況 ( 稱為缺頁中斷 ) 。這時就需要進行置換,即將一些內存中的某些頁放到外存中,騰出空間。這一過程稱為 swapping 。

當內存中無空閑塊時,為了裝入一個頁面而必須按某種算法從已在內存的頁中選擇一頁,將它暫時調出內存,讓出內存空間以存放所需裝入的頁面,這個工作稱為“頁面調度”。

如何選擇調出的頁面是很重要的,如果采用了一個不合適的算法,就會出現這樣的現象:剛被調出的頁面又立即要用,因而又要把它裝入,而裝入不久又被選中調出,調出不久又被裝入,如此反復,使調度非常頻繁。這種現象稱為“抖動”。

一個好的調度算法應減少或避免抖動現象。常用的頁面調度算法(置換算法)有:

最優(OPT)算法。選擇不再使用或最遠的將來才被使用的頁,這是理想的算法,但是難以實現。

隨機(RAND)算法。隨機地選擇需要被淘汰的頁,開銷小,但是可能選中立即就要訪問的頁。

先進先出(FIFO )算法。調出在內存駐留時間最長的頁,但可能淘汰掉頻繁使用的頁。該算法簡單,易實現??梢园蜒b入內存的那些頁的頁號按進入的先后順序排成隊列,每次總是調出隊首的頁,當裝入一個新頁
后,把新頁的頁號排到隊尾。

最近最少使用(Least Recently Used, LRU)算法。選擇離當前時間最近的一段時間內使用得最少的頁。這個算法的主要理論依據是,如果某個頁被訪問了,則它可能馬上就要被訪問;反之,如果某個頁長時間未被訪問,則它在最近一段時間也不會被訪問。

另外,使用 FIFO 算法時,在未給予進程分配足夠的頁面時,有時會出現給予進程的頁面數越多,缺頁次數反而增加的異?,F象,這稱為 Belady 現象。例如,若某個進程訪問頁面的順序 ( 稱頁面訪問序列 ) 是 1,2,3,4,1,2,5,1,2,3,4,5,當進程擁有3個主存頁面時,發生缺頁率比擁有4個主存頁面時要小。

具體分析如下:

當要訪問頁面 1 時,發生缺頁中斷,系統載入頁面 4;

接著,當訪問頁面 2 與 3時,連續發生缺頁中斷,系統載入頁面 2與頁面 3;這時,進程所擁有的三個主存頁都已占滿。

當要訪問頁面 4 時,應用 FIFO 算法,移除最先進入主存的頁面 1,然后載入頁面 4。

之后的頁面,都以 FIFO 算法為基礎,進行類似處理。表 1 中的紅色,就表示發生缺頁中斷時,載入主存的頁號。

詳解操作系統的存儲管理

表 1 使用 FIFO 算法發生的缺頁過程,進程擁有 3 個主存頁

可以發現,訪問 12 個頁面時,共發生 9 次缺頁中斷,缺頁率為 9/12=0.75。

如果進程擁有 4 個主存頁,那么使用 FIFO 算法發生的缺頁過程,分析方法與之前類似:

詳解操作系統的存儲管理

表 2 使用 FIFO 算法發生的缺頁過程,進程擁有 4 個主存頁

可以發現,訪問 12 個頁面時,共發生 10 次缺頁中斷,缺頁率為 10/12=0.833。

也就是說,在這個示例中,給予進程的主存頁面數越多,缺頁中斷次數反而會增加的異?,F象。

Belady 現象的原因是 FIFO 算法的置換特征與進程訪問內存的動態特征是矛盾的,即被置換的頁面并不是進程不會訪問的,因而 FIFO 并不是一個好的置換算法。

4 局部性原理

存儲管理策略的基礎是局部性原理,即進程往往會不均勻地高度局部化地訪問內存。局部性分為時間局部性和空間局部性。

時間局部性是指最近訪問存儲位置,很可能不久的將來還要訪問 ;

空間局部性是指存儲訪問有成組的傾向;當訪問了某個位置后,很可能也要訪問其附近的位置。

根據局部性原理的特征性, Denning 闡述了程序性能的工作集理論。工作集是進程頻繁訪問的頁面的集合。工作集理論指出,為使進程有效地運行,它的頁面工作集應駐留內存中。否則,由于進程頻繁地從外存請求頁面,而出現稱為 “ 顛簸 ” ( 抖動 ) 的過度的頁面調度活動。此時,處理頁面調度的時間超過了程序的執行時間。顯然,此時 CPU 的有效利用率會急速下降。

通常用兩種等價的方法確定進程的工作集,一種是將工作集確定為在定長的頁面訪問序列 ( 工作集窗口 ) 中的頁面集合;另一種是將工作集確定為在定長時間間隔中涉及頁面的集合。

工作集的大小依賴于工作集窗口的大小,在進程執行時,工作集會發生變化。有時,當進程進入另一個完全不同的執行階段時,工作集會出現顯著的變化。不過在一個進程的執行過程中,工作集的大小處于穩定狀態的時間基本上占絕大多數。

另一種控制抖動的技術是控制缺頁率。操作系統規定缺頁率的上下限,當一個進程的缺頁率高于上限時,表明該進程需要更大的內存空間,則分配較多的內存頁面給它,當進程的缺頁率低于下限時,表明該進程占用的內存空間過大,可以適當地收回若干內存頁面。

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

    關注

    39

    文章

    7739

    瀏覽量

    171699
  • 操作系統
    +關注

    關注

    37

    文章

    7402

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    操作系統體系結構

    內核。   大內核系統操作系統的主要功能模塊都作為一個緊密聯系的整體運行在核心態,從而為應用提供高性能的系統服務。因為各管理模塊之間共享信息,能有效利用相互之間的有效特性,所以具
    發表于 01-15 08:19

    操作系統的發展及分類

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

    操作系統運行機制

    不同的層次上。一些與硬件關聯較緊密的模塊,諸如時鐘管理、中斷處理、設備驅動等處于最底層。其次是運行頻率較髙的程序,諸如進程管理存儲管理和設備管理
    發表于 01-15 07:12

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

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

    單片機的操作系統

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

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

    的時間限制內完成,而軟實時任務對時間限制更靈活。 任務調度和優先級:實時嵌入式操作系統通過任務調度器來管理和分配任務,通常采用優先級調度算法,確保高優先級的實時任務得到及時處理。 中斷處理:實時嵌入式
    發表于 11-13 06:30

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

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

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

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

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

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

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

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

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

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

    將樹莓派作為PC使用的5大最佳操作系統!

    如果你喜歡用RaspberryPi構建多個項目,那么僅通過更換microSD卡就能切換發行版這一功能簡直太棒了。此外,RaspberryPi系列兼容眾多操作系統,每個系統都有其獨特的優勢。隨著新款
    的頭像 發表于 03-24 14:50 ?3759次閱讀
    將樹莓派作為PC使用的5大最佳<b class='flag-5'>操作系統</b>!

    在線監測管理系統的智能化功能詳解 多角色權限與多項目管理 多終端適配

    在線監測管理系統的智能化功能詳解 多角色權限與多項目管理 多終端適配 在線監測管理系統采用基于B
    的頭像 發表于 03-19 17:18 ?816次閱讀