1. 程式人生 > >作業系統儲存管理之分段儲存

作業系統儲存管理之分段儲存

需求

從固定分割槽到動態分割槽,從分割槽方式到分頁方式發展提高了主存空間利用率。
而分段儲存管理的引入,則滿足使用者(程式設計師)程式設計和使用上的要求,這些要求其它各種儲存管理技術難以滿足。

需求解析:

  • 在分頁儲存管理中,經連結編輯處理得到了一維地址結構的可裝配模組,這是從0開始編址的一個單一連續的邏輯地址空間,雖然作業系統可把程式劃分成頁面,但頁面與源程式無邏輯關係,也就難以實現對源程式以模組為單位進行分配、共享和保護。
  • 而程式還存在一種分段結構:
    1. 一個程式由若干程式段(模組)組成,例如由一個主程式段、若干子程式段、陣列段和工作區段所組成
    2. 每個段都從“0”開始編址,每個段都有模組名,且具有完整的邏輯意義。
    3. 段與段之間的地址不連續,而段內地址是連續的。使用者程式中可用符號形式(指出段名和入口)呼叫某段的功能,程式在編譯或彙編時給每個段再定義一個段號。
    4. 可見這是一個二維地址結構,分段方式的程式被裝入實體地址空間後,仍應保持二維,這樣才能滿足使用者模組化程式設計的需要。
      具體分段圖如下所示:
      這裡寫圖片描述

基本原理

  1. 段式儲存管理是以段為單位進行儲存分配,為此提供如下形式的兩維邏輯地址:
    段號:段內地址
  2. 在分頁式儲存管理中,頁的劃分——即邏輯地址劃分為頁號和單元號是使用者不可見的,連續的使用者地址空間將根據頁框架(塊)的大小自動分頁;而在分段式儲存管理中,地址結構是使用者可見的,即使用者知道邏輯地址如何劃分為段號和單元號,使用者在程式設計時,每個段的最大長度受到地址結構的限制,進一步,每一個程式中允許的最多段數也可能受到限制.
    例如,PDP-11/45的段址結構為:段號佔3位,單元號佔 13 位,也就是一個作業最多可分8段,每段的長度可達 8K 位元組。

類似於頁表及其作業表,段表及其作業表如下所示:
這裡寫圖片描述

地址轉換與儲存保護

流程圖如下所示:
這裡寫圖片描述
段表表目實際上起到了基址/限長暫存器的作用。作業執行時通過段表可將邏輯地址轉換成絕對地址。由於每個作業都有自己的段表,地址轉換應按各自的段表進行。類似於分頁儲存器那樣,分段儲存器也設定一個段表控制暫存器,用來存放當前佔用處理器的作業的段表始址和長度。

在分段式儲存管理中,由於每個作業可以有幾個段組成,所以可以實現段的共享,以存放共享的程式和常數。所謂段的共享,事實上就是共享分割槽,為此計算機系統要提供多對基址/限長暫存器。於是,幾道作業共享的例行程式就可放在一個公共的分割槽中,只要讓各道的共享部分有相同的基址 /限長值就行了。

相關推薦

作業系統儲存管理分段儲存

需求 從固定分割槽到動態分割槽,從分割槽方式到分頁方式發展提高了主存空間利用率。 而分段儲存管理的引入,則滿足使用者(程式設計師)程式設計和使用上的要求,這些要求其它各種儲存管理技術難以滿足。 需求解析: 在分頁儲存管理中,經連結編輯處理得到了一維

作業系統儲存管理頁式儲存管理深入淺出

用分割槽方式管理的儲存器,每道程式總是要求佔用主存的一個或幾個連續儲存區域,作業或程序的大小仍受到分割槽大小或記憶體可用空間的限制,因此,有時為了接納一個新的作業而往往要移動已在主存的資訊。這不僅不方便,而且開銷不小。採用分頁儲存器既可免去移動資訊的工作,又可儘

作業系統儲存管理分段式與段頁式虛擬儲存系統

分段式虛擬儲存系統 分段式虛擬儲存系統把作業的所有分段的副本都存放在輔助儲存器中,當作業被排程投入執行時,首先把當前需要的一段或幾段裝入主存,在執行過程中訪問到不在主存的段時再把它們裝入。因此,在段表中必須說明哪些段已在主存,存放在什麼位置,段長是多少。哪些段

作業系統-1-儲存管理LFU頁面置換演算法(leetcode460)

LFU快取 題目:請你為 最不經常使用(LFU)快取演算法設計並實現資料結構。它應該支援以下操作:get 和 put。    get(key) - 如果鍵存在於快取中,則獲取鍵的值(總是正數),否則返回 -1。    put(key, value) - 如果鍵不存在,請

Linux儲存管理磁碟加密

 《Linux_管理系統儲存》這篇文章講解了如何劃分分割槽,通過這篇文章可以瞭解到儲存裝置要能被使用必須掛載到目錄下。我們可以理解為U盤必須插在電腦上才能寫入內容。只要裝置可以被使用,任何人都可以將該裝置掛載後進行操作,所以為了安全起見,可以對磁碟進行加密,只有

儲存管理頁式、段式、段頁式儲存

首先看一下“基本的儲存分配方式”種類:        1.  離散分配方式的出現 由於連續分配方式會形成許多記憶體碎片,雖可通過“緊湊”功能將碎片合併,但會付出很大開銷。於是出現離散分配方式

軟考(四)——儲存管理頁式儲存

       之前在總結作業系統這部分知識點的時候,發現儲存這部分的東西比較有意思,所以想把它單拿出來整理下,以便之後的學習,其實很簡單,下面我們來看下它是有多簡單的呢? 儲存管理        作業

儲存管理分配演算法

作業系統之儲存管理 分配演算法: 1.最佳適應法 最佳適應演算法要求空閒區按大小遞增的次序排列.在進行記憶體分配時,從空閒分割槽表首開始順序查詢,直到找到第一個能滿足其大小要求的空閒區為止,如果該空閒區大於請求表中的請求長度,則將剩餘空閒區留在可用表中

儲存管理分頁儲存管理方式C語言模擬(實驗五)

       分頁儲存管理方式,將程式劃分為若干個大小固定的區域(頁),也把實體記憶體劃分為大小和頁相等的塊,通過頁表完成頁到塊的對映。 分頁儲存管理之C語言模擬: #include <stdio.h> #include <string.h> #i

儲存管理頁式、段式、段頁式儲存 以及 優缺點

記憶體管理方式主要分為:頁式管理、段式管理和段頁式管理。 頁式管理的基本原理是將各程序的虛擬空間劃分為若干個長度相等的頁。把記憶體空間按頁的大小劃分為片或者頁面,然後把頁式虛擬地址與記憶體地址建立一一對應的頁表,並用相應的硬體地址轉換機構來解決離散地址變換問題。頁式管理採用

bp(net core)+easyui+efcore實現倉儲管理系統——入庫管理儲存過程(三十九)

abp(net core)+easyui+efcore實現倉儲管理系統目錄 abp(net core)+easyui+efcore實現倉儲管理系統——ABP總體介紹(一) abp(net core)+easyui+efcore實現倉儲管理系統——解決方案介紹(二

Android五種資料儲存方式檔案儲存 內部儲存 外部儲存 檔案讀取儲存操作封裝

檔案儲存 前言 檔案儲存 記憶體 內部儲存 外部儲存 內部儲存操作 API 讀寫操作 外部儲存操作 公共目錄 私有目錄

儲存管理3-虛擬儲存技術

覆蓋技術(程序內部) 通常與分割槽儲存一起 程式劃分為功能上相對獨立的塊,共享一塊記憶體區域,只把當前所需指令資料放入記憶體,其他的儲存在外存 缺點:手工分塊,程式設計複雜度高,時間換空間;交換技術(

作業系統記憶體管理 ---堆和棧的區別

一、預備知識—程式的記憶體分配 一個由C/C++編譯的程式佔用的記憶體分為以下幾個部分 (從上到下,從記憶體高地址到記憶體低地址) 1、棧區(stack) — 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。

作業系統--記憶體管理連續分配管理方式

連續分配方式,是指為一個使用者程式分配一個連續的記憶體空間。它主要包括單一連續分配、固定分割槽分配和動態分割槽分配。 1單一連續分配 記憶體在此方式下分為系統區和使用者區,系統區僅提供給作業系統使用,通常在低地址部分;使用者區是為使用者提供的、除系統區之外的記憶體空間。這

作業系統記憶體管理 內部碎片vs外部碎片

“碎片的記憶體”描述一個系統中所有不可用的空閒記憶體。這些資源之所以仍然未被使用,是因為負責分配記憶體的分配器使這些記憶體無法使用。這一問題通常都會發生,原因在於空閒記憶體以小而不連續方式出現在不同的位置。由於分 配方法決定記憶體碎片是否是一個問題,因此記憶體分配器在保證

spark儲存模組記憶體儲存--MemeoryStore

MemeoryStore 上一節,我們對BlockManager的主要寫入方法做了一個整理,知道了BlockMananger的主要寫入邏輯,以及對於塊資訊的管理。但是,由於spark的整個儲存模組是在是很龐大,而且很多細節的邏輯錯綜複雜,如果對於每個細節都刨根問底,一來精力有限,二來感覺也沒有太大的必要,當然

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

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

作業系統虛擬儲存管理

  虛擬儲存器 邏輯上擴充記憶體 1. 虛擬儲存器的基本概念    所謂“虛擬儲存器”,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。          (1) 虛擬儲存管理下 &nbs

作業系統儲存管理

今天我們來看一下作業系統的儲存管理。 目的 儲存器是計算機結構中必不可少的一部分,每個使用者程式都需要向作業系統申請儲存資源,那麼作業系統在儲存管理髮揮怎樣的作用呢? 主要有一下三點: 1、為使用者使用儲存空間提供方便。使用者只需要在自己的邏輯空間內