1. 程式人生 > >4.3-4.4記憶體離散分配 分頁、分段

4.3-4.4記憶體離散分配 分頁、分段

一.基本分頁儲存管理方式

1.頁面的概念

記憶體劃分成多個小單元,每個單元K大小,稱(物理)塊。作業也按K單位大小劃分成片,稱為頁面。

a. 物理劃分塊的大小 = 邏輯劃分的頁的大小

b.頁面大小要適中。

  • 太大,(最後一頁)內碎片增大,類似連續分配的問題。
  • 太小的話,頁面碎片總空間雖然小,提高了利用率,但每個程序的頁面數量較多,頁表過長,反而又增加了空間使用。

2.為了找到被離散分配到記憶體中的作業,記錄每個作業各頁對映到哪個物理塊,形成的頁面對映表,簡稱頁表

3.頁表的作用:頁號到物理塊號的地址對映

4.要找到作業A

  à關鍵是找到頁表(PCB)

 b.根據頁表找物理塊

5.若要執行某作業的一條指令,其相對地址是24B (設10B一頁,頁表如右表),其實體地址到底是多少呢?

  • 執行程式A(10B一頁),CPU初始化  

設第1個要執行的地址為相對地址10

  • 針對相對地址計算

  商1、餘0

  對應就是  頁號1、頁內偏移0

  • 根據頁號查頁表,得到物理塊號4#(設4#首地址為c),4#裡存放的就是對應的頁的資料。
  •   得相對地址10的實體地址就是 c+偏移0。

6.規律

  • 作業相對地址在分頁下不同位置的數有一定的意義結構:

  頁號+頁內地址(即頁內偏移)

  • 關鍵的計算是:根據系統頁面大小找到不同意義二進位制位的分界線
  • 從地址中分析出頁號後,地址對映只需要把頁號改為對應物理塊號,偏移不變,即可找到記憶體中實際位置。

5.計算口訣

  • 頁面大小決定偏移量(頁內地址)的位數 n;
  • 作業大小->頁面數量
  • 頁表長度 a
  • 頁號的位數 m(或總位數-頁內位數)
  • 記憶體容量決定塊數,塊數決定編址位數,即頁表項位數 b。

6.分頁系統的地址變換機構:

7.訪問記憶體的有效時間

定義:程序發出邏輯地址的訪問請求,經過地址變換,到記憶體中找到對應的實際實體地址單元並取出資料,所需花費的總時間,稱為記憶體的有效訪問時間EAT(effective access time)

設訪問一次記憶體時間為t,則基本分頁機制下EAT=2t

CPU操作一條指令需訪問記憶體兩次:

  • 訪問記憶體中的頁表(以計算指令所在的實際實體地址)
  • 訪問指令記憶體地址

8.引入快表後的記憶體訪問時間

快表的暫存器單元數量是有限的,不能裝下一個程序的所有頁表項。雖不能完全避免兩次訪問記憶體,但如果命中率a高還是能大幅度提高速度。

設一次查詢訪問快表時間為t' ,則

  EAT= a*t' + (1-a)(t'+t)    +    t

       = 2t +t' -t*a

9.兩級頁表

將頁表分頁,並離散地將頁表的各個頁面分別存放在不同的物理塊中

為離散分配的頁表再建立一張頁表,稱為“外層頁表”,其每個表項記錄了頁表頁面所在的物理塊號。

二.基本分段儲存管理方式

1.程式通過分段(segmentation)劃分為多個模組,每個段定義一組邏輯資訊。如程式碼段(主程式段main,子程式段X)、資料段D、棧段S等。

2.段的特點

  • 每段有自己的名字(一般用段號做名),都從0編址,可分別編寫和編譯。裝入記憶體時,每段賦予各段一個段號。
  • 每段佔據一塊連續的記憶體。(即有離散的分段,又有連續的記憶體使用)
  • 各段大小不等。

3.分段下的相對地址:地址結構:段號 + 段內地址

4.段表:記錄每段實際存放的實體地址

5.段表與地址變換機構

6.分段系統地址變換機構

7.分頁和分段的主要區別

a.需求:分頁是出於系統管理的需要,是一種資訊的物理劃分單位,分段是出於使用者應用的需要,是一種邏輯單位,通常包含一組意義相對完整的資訊。

一條指令或一個運算元可能會跨越兩個頁的分界處,而不會跨越兩個段的分界處。

b.大小:頁大小是系統固定的,而段大小則通常不固定。分段沒有內碎片,但連續存放段產生外碎片,可以通過記憶體緊縮來消除。相對而言分頁空間利用率高。

c.邏輯地址:

分頁是一維的,各個模組在連結時必須組織成同一個地址空間;

分段是二維的,各個模組在連結時可以每個段組織成一個地址空間。

d.其他:通常段比頁大,因而段表比頁表短,可以縮短查詢時間,提高訪問速度。分段模式下,還可針對不同型別採取不同的保護;按段為單位來進行共享

8.分段系統的突出優點

  • 易於實現共享
  • 易於實現保護

三.段頁式儲存管理方式

1.基本原理

  • 將使用者程式分成若干段,併為每個段賦予一個段名。
  • 把每個段分成若干頁
  • 地址結構包括段號、段內頁號和頁內地址三部分

2.地址變換過程

相關推薦

4.3-4.4記憶體離散分配 分段

一.基本分頁儲存管理方式 1.頁面的概念 記憶體劃分成多個小單元,每個單元K大小,稱(物理)塊。作業也按K單位大小劃分成片,稱為頁面。 a. 物理劃分塊的大小 = 邏輯劃分的頁的大小 b.頁面大小要適中。 太大,(最後一頁)內碎片增大,類似連續分配的問題。 太小的

第四章 記憶體離散分配 分段

連續分配方式:一個程序連續的裝進記憶體一個大小合適的區。  “碎片”  “緊湊”  增大開銷 如果允許一個程序直接分散裝入多個不相鄰分割槽中,則無需“緊湊” 產生儲存管理的離散分配方式。

記憶體離散分配 分段

基本分頁儲存管理方式 本部分討論不具備對換功能的純分頁模式,作業執行需要全部裝入記憶體。 離散分配記憶體: 作業規定大小劃分成小份;記憶體也按同樣大小劃分成小份 作業的任一小份可分散放入記憶體任意未使用的小份 (分頁方式下,記憶體的使用率高,浪費少。但不是絕對沒

作業系統第四章記憶體離散分配 分段

記憶體離散分配 分頁、分段 比較連續分配方式 作業邏輯地址空間有M大,就需要向記憶體申請一個M大的連續區域。 分頁的目的是更細粒度的處理空間,減少粗放管理的浪費或開銷問題。 1)頁面的概念 記憶體劃分成多個小單元,每個單元K大小,稱(物理)塊。作業也按K單位大小

記憶體離散分配分段

連續分配方式:一個程序連續的裝進記憶體一個大小合適的區。“碎片”  “緊湊”  增大開銷如果允許一個程序直接分散裝入多個不相鄰分割槽中,則無需“緊湊”產生儲存管理的離散分配方式。 基本分頁儲存管理 比較連續分配方式作業邏輯地址空間有M大,就需要向記憶體申請一個M大的連續區域。分頁的目的是更細粒度的處理

作業系統記憶體分配分段的區別

一. 分頁儲存管理 1.基本思想 使用者程式的地址空間被劃分成若干固定大小的區域,稱為“頁”,相應地,記憶體空間分成若干個物理塊,頁和塊的大小相等。可將使用者程式的任一頁放在記憶體的任一塊中,實現了離散分配。 2. 分頁儲存管理的地址機構 15          12         11    

作業系統 第四章 3 分段式儲存管理 +作業題

一、分頁儲存管理方式 1、(物理)塊:記憶體劃分成多個小單元,每個單元K大小         頁面:作業也按K單位大小劃分成片         物理劃分塊的大小 = 邏輯劃分的頁的大小

作業系統記憶體管理(分段

分段分段本是由於8086是16位匯流排,為定址20位記憶體地址而增加的。在32位作業系統中,分段依然有用。1)段描述符:描述該段的安全屬性,為一個64位長的值。在實地址模式中,只需要使用段暫存器(CS,DS,SS和ES)就可以了,每個段暫存器都是16位的,對應於地址匯流排中的

分段和段式儲存管理方式

1.分頁管理   分頁儲存管理是將一個程序的邏輯地址空間分成若干個大小相等的片,稱為頁面或頁,併為各頁加以編號,從0開始,如第0頁、第1頁等。相應地,也把記憶體空間分成與頁面相同大小的若干個儲存塊,稱為(物理)塊或頁框(frame),也同樣為它們加以編號,如0

Elasticsearch入門二:Elasticsearch.5.4.3+kibana5.4.3+word詞叢集linux搭建

一.軟體版本 jdk-8u191-linux-x64.tar.gz elasticsearch-5.4.3.tar.gz kibana-5.4.3-linux-x86_64.tar.gz word-master.zip 二.環境搭建

netty原始碼解解析(4.0)-23 ByteBuf記憶體管理:分配和釋放

  ByteBuf記憶體分配和釋放由具體實現負責,抽象型別只定義的記憶體分配和釋放的時機。     記憶體分配分兩個階段: 第一階段,初始化時分配記憶體。第二階段: 記憶體不夠用時分配新的記憶體。ByteBuf抽象層沒有定義第一階段的行為,但定義了第二階段的方法:   public abstract

Ubuntu16.04安裝配置opencv3.4.3+opencv_contrib3.4.3

Ubuntu16.04安裝配置opencv3.4.3+opencv_contrib3.4.3 一些廢話:跟著高博的《視覺slam十四講》學slam,到安裝opencv的時候找了好多教程感覺都沒說的太清楚,ubuntu和windows差別還是有點大,於是決定一邊找教程安裝一邊記錄自己的

Angular 4.3 HttpClient (Angular訪問 REST Web 服務) 一Http 請求示例(Get)

連結 開發工具:Visual Studio Code 在Angular 4.3中引入了新的HttpClientModule。 這個新模組可以在@ angular / common / http包中找到,並且可以完全重新實現前一個HttpModule。新的Ht

k8s1.4.3安裝實踐記錄(1)-etcddockerflannel安裝配置

由於剛開始學習k8s,本次軟體的安裝,我們都採用最簡單的方式,能用yum 安裝的儘量採用yum安裝 1、ETCD安裝 ETCD官方文件:https://github.com/coreos/etcd/blob/master/Documentation/docs.md

作業系統之記憶體離散分配

儲存管理的離散分配方式 基本分頁儲存管理方式   1)頁面的概念 記憶體劃分成多個小單元,每個單元K大小,稱(物理)塊。作業也按K單位大小劃分成片,稱為頁面。① 物理劃分塊的大小 = 邏輯劃分的頁的大小②頁面大小要適中。 太大,(最後一頁)內碎片增大,類似連續分配的問題。 太小的話,頁

作業系統 第四章 記憶體離散分配 分段--筆記*2

頁表筆記補充 每個程序一張頁表 一張OS反置頁表+沒程序一張外部頁表 **反置頁表:**站在物理角度,記錄佔用他的已調入記憶體的程序標識和頁號。系統中只需要一張表即可(例如:一個64MB記憶體,若頁面大小4KB[64M/4K=2^16 ,16個物理塊],反置頁

作業系統員動態記憶體分配————式儲存

4.3 知識點3:基本分頁儲存管理方式4.3.1 要點歸納1. 基本分頁儲存管理的原理在分割槽儲存管理中,要求把作業放在一個連續的儲存區中,因而會產生許多碎片,固定分割槽會產生內部碎片,動態分割槽會產生外部碎片。儘管通過拼接技術可以解決碎片問題,但代價較高。分頁儲存管理允許將作業存放到許多不相鄰接的記憶體區域

c# 敏捷3 連線,批量處理,

1 class Program 2 { 3 public class post 4 { 5 public int id { get; set; } 6 public string name { get

list記憶體擷取

 /**      * 設定記憶體分頁資料      * @param begin      * @param end      * @param list      * @return       */     public List setListPageDate(In

Telerik Kendo UI 那點事【3】GridView MVVM前後臺聯動服務端分組過濾(查詢)排序

中文化之後,我們開始具體使用kendo ui元件。經常開發系統的我,通常從最常用的控制元件用起,那就是表格控制元件GridView!現在的軟體系統基本上就是標籤框、文字框、選擇框、樹、表格堆砌而成。因此接觸任何一種UI元件的時候,我通常都最為關注GridView,表格控制元