1. 程式人生 > >11.連續分配、分頁和分段三種儲存分配機制的優缺點

11.連續分配、分頁和分段三種儲存分配機制的優缺點

連續,設計簡單,直接定址,效率高。缺點:記憶體利用效率最低,有部碎片。分頁設計最複雜,容易產生部碎片,無論資料有多少,都只能按照頁面大小分配,造成浪費。分段程式設計師在程式設計和使用上多方面的要求,缺點,無法利用碎片,必須搬移記憶體,造成效能損失。

一、分割槽儲存管理

  1、固定分割槽:

  優點:易於實現、開銷小  缺點:存在內部碎片(分割槽內未被利用空間)、分割槽總數固定,限制了併發執行的程式數量。

  2、動態建立分割槽:按照程式申請要求分配。

  優點: 沒有內部碎片

  缺點:有外部碎片(難以利用的小空閒分割槽)

  二、頁式儲存管理

  優點: 沒有外部碎片,最後一頁可能有內碎片但不大;

程式不必連續存放;便於改變程式佔用空間大小。

  缺點: 程式仍需要全部裝入記憶體。

分頁和分段系統有許多相似之處。比如,兩者都採用離散分配方式,且都要通過地址對映機構來實現地址變換。但在概念上兩者完全不同,主要表現在下述三個方面。 

(1) 頁是資訊的物理單位,分頁是為了實現非連續分配,以便解決記憶體碎片問題提高記憶體的利用率。或者說,分頁僅僅是由於系統管理的需要而不是使用者的需要。段則是資訊的邏輯單位分段的目的是為了能更好地滿足使用者的需要。 

(2) 頁的大小固定且由系統決定,由系統把邏輯地址劃分為頁號和頁內地址兩部分,是由機器硬體實現的,因而在系統中只能有一種大小的頁面;而段的長度卻不固定,決定於使用者所編寫的程式

,通常由編譯程式在對源程式進行編譯時,根據資訊的性質來劃分。

(3)分頁的作業地址空間是一維的,即單一的線性地址空間,程式設計師只需利用一個記憶符,即可表示一個地址;而分段的作業地址空間則是二維的,程式設計師在標識一個地址時,既需給出段名,又需給出段內地址

相關推薦

11.連續分配分段儲存分配機制優缺點

連續,設計簡單,直接定址,效率高。缺點:記憶體利用效率最低,有內部碎片。分頁,設計最複雜,容易產生外部碎片,無論資料有多少,都只能按照頁面大小分配,造成浪費。分段,程式設計師在程式設計和使用上多方面的要

記憶體離散分配分段

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

mongoDB的Find詳解排序遊標

1.指定返回的鍵    db.[documentName].find ({條件},{鍵指定})         資料準備persons.json var persons = [{  name:"jim",  age:25,  email:"[email prote

springboot-動態查詢排序

/** * 獲取企業集合 * * @return */ public List<Qy> getQy(String qymc, Intege

Entity Framework4.1實現動態多條件查詢排序

EF通用的分頁實現: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2

分段記憶體的區別

今天看了一下linux0.01的核心開發。雖然僅有8000行的程式碼。但涉及的知識面還是有點多。但萬事開頭難嘛。現在和大家分享一下在網上看到的一篇記憶體分頁和分段的區別。感覺看了這篇文章能對這方面有個較為直觀的印象了。一. 分頁儲存管理1.基本思想使用者程式的地址空間被劃分

Lucene之查詢的方式-yellowcong

分頁查詢有三種,一種是直接查詢出這頁及這頁以後的資料,第二種,查詢這頁以前的最後一條資料,然後再查詢這頁之後的資料,這種方式還不如第一種方法快,第三種,是根據一個id來進行分頁,這種方式適合不變更的資料 方法1 思路是將所有的查詢取來,然後取自己當前

的第方式

優點: 1.通用性更好,給為頁碼寫一個類,更符合面向物件的思維 2.程式碼十分簡潔 缺點: 1.不能及使獲取資料庫中資料的變化 封裝進Dao物件,通過一個方法返回一個map,map裡有一個頁碼物件,還有一個頁面資料物件 public class FenyeService

web實現的方式

個人所知的web分頁的三種方式,閒來無事總結一下。1、使用前端表格外掛進行分頁例如用bootstrap的拓展table元件,注意設定其分頁屬性時設定為“client”,即是 sidePagination:"client", //客戶端分頁,如果改成server就是服務端分頁。

Android SQLite查詢的方法

  閒話不多說,直入話題,SQLite分頁查詢有三種方法,它們都是基於SQLite SQL查詢來的,首先我們看下SQLite分頁查詢的SQL語句,有助於我們理解: 1 2 3 4

80386的分段機制機制實體地址的形成

注:本分類下文章大多整理自《深入分析linux核心原始碼》一書,另有參考其他一些資料如《linux核心完全剖析》、《linux c 程式設計一站式學習》等,只是為了更好地理清系統程

操作系統筆記(十)內存管理之分段

分段式內存管理 筆記 關系 代碼 保護 系統 長度 段頁式內存管理 bit 基本內存管理: 進程占用空間必須連續,導致外部碎片以及附加的compaction 整個進程的swap in 和 swap out十分耗時。 解決:分頁 ->內存空間不必連續,無外部碎片,

Layui彈出層日期時間選擇即時通訊

怎樣 其中 日期時間 hub scrip 即時通 http 邏輯 asc Layui彈出層、日期和時間選擇、即時通訊、分頁 彈層組件文檔 - layui.layer 對於彈出層的感覺是:layer 至今仍作為 layui 的代表作,她的受眾廣泛並非偶然,而是這數年來的堅持、

Django 實現搜尋功能功能個人理解

最近在研究django的功能,分頁功能根據官方文件可以簡單的實現,但是如果配合上搜尋,對搜尋結果分頁就要稍微費點周折。 話不多少,先上程式碼。 一、搜尋配合分頁 # 獲取、判斷並封裝關keyword鍵搜尋 kw = request.GET.get("keyword",

DRF之頻率限制解析器渲染器

一、頻率限制 1、頻率限制是做什麼的 開放平臺的API介面呼叫需要限制其頻率,以節約伺服器資源和避免惡意的頻繁呼叫。   2、頻率元件原理 DRF中的頻率控制基本原理是基於訪問次數和時間的,當然我們可以通過自己定義的方法來實現。當我們請求進來,走到我們頻率元件的時候,DRF內部會有一個字典

Rest Framework第五天-版本控制響應器渲染器

頻率:     自定義:         1 定義一個類MyThrottles             allow_request(頻率限制的邏輯)             wait(返回一個數字,給使用者提示,還差多少秒)         2 區域性使用:throttle_

DAY102 - Rest Framework(七)- 手動編寫配置檔案版本控制

一、手動編寫配置檔案 # 預設配置 # conf-->global_setting.py DEBUG = None TIME_ZONE = 'America/Chicago' USE_TZ = False # 使用者配置 # usersetting-->setting.py DEBUG

分段的主要聯絡區別

聯絡:兩者都採用離散分配模式,且都要通過地址對映機構來實現地址變換。區別:(1)分頁僅僅是由於系統管理的需要而不是使用者的需要。分段的目的是為了更好的滿足使用者的需要。          (2)頁的大小固定且由系統決定,而段的長度卻不固定,決定於使用者所編寫的程式。     

記憶體管理分段

記憶體管理 為什麼要有記憶體管理   多道程式作業系統中,程序的併發執行依賴於CPU排程。CPU能訪問的儲存器只有記憶體和(處理器中的)暫存器(機器指令可以用記憶體地址作為引數)。   暫存器價格昂貴且儲存空間小,因此程序執行的指令以及指令使用的資料主

mysql的limit用法邏輯物理

物理分頁為什麼用limit 在講解limit之間,我們先說說分頁的事情。 分頁有邏輯分頁和物理分頁,就像刪除有邏輯刪除和物理刪除。邏輯刪除就是改變資料庫的狀態,物理刪除就是直接刪除資料庫的記錄,而邏輯刪除只是改變該資料庫的狀態。例如 同理,