頁面式存儲管理特點
『壹』 操作系統-04-操作系統的存儲管理和設備管理
早期的計算機由於結構較為簡單,存儲容量小,並不需要過多的的存儲管理。
隨著計算機和程序越來越復雜,使得存儲管理成為必要。
單一連續分配是最簡單的內存分配方式
只能在單用戶、單進程的操作系統中使用
固定分區分配是支持多道程序的最簡單存儲分配方式
內存空間被劃分為若干固定大小的區域
每個分區只提供給一個程序使用,互不幹擾
根據進程實際需要,動態分配內存空間
不需要新建空閑鏈表節點
只需要把空閑區的容量增大為包括回收區的容量即可
將回收區和空閑區合並
新的空閑區使用原來回收區的地址
將兩個空閑區和中間的回收區合並
新的空閑區使用空閑區1的地址
為回收區創建新的空閑節點
將該節點插入到相應的空閑區鏈表中
上面的部分主要是從物理的角度講解內存管理,這部分主要是講解操作系統是怎麼管理進程的內存空間。
字塊 是相對於物理設備的定義, 頁面 是相對邏輯空間的定義。
頁式存儲管理主要是將進程邏輯空間等分成若干大小的頁面,相應的把物理內存空間分成與頁面大小的物理塊,以頁面為單位把進程空間裝進物理內存中分散的物理塊。
頁面大小應該適中,過大難以分配,過小內存碎片過多,通常是512B~8K。
頁表 記錄進程邏輯空間於物理空間的映射
在頁式存儲管理, 頁地址 = 頁號 + 頁內偏移
現代計算機系統中,可以支持非常大的邏輯 地址空間(2 32~2 64),這樣,頁表就 變得非常大,要佔用非常大的內存空間,如, 具有32位邏輯地址空間的分頁系統,規定頁 面大小為4KB,則在每個進程頁表中的頁表 項可達1M(2^20)個,如果每個頁表項佔用 1Byte,故每個進程僅僅頁表就要佔用1MB 的內存空間。
為了解決這個問題,引入了多級頁表。
多級頁表有一個根頁表,每一個字塊指向了內存中的一片空間,這塊空間存儲的是二級頁表。以此類推,最後一級頁表指向的字塊才是進程實際使用的內存。通過這種分級機制,大大減少了進程中頁表數佔用的空間。
段式存儲管理將進程邏輯空間劃分成若干段(非等分),段的長度由連續邏輯的長度決定。
例如一個程序有主函數MAIN、子程序段X、子函數Y等,這個時候會根據每一個函數的邏輯長度來分配邏輯空間。
頁表由 頁號 和 基址 組成,但在段式存儲管理中由於每一段的長度是不固定的,段表由 段號 、 基址 以及 段長 組成。
在段式存儲管理, 段地址 = 段號 + 段內偏移
分頁可以有效提高內存利用率(雖然說存在頁內碎片)
分段可以更好滿足用戶需求
兩者結合,形成段頁式存儲管理
先將邏輯空間按段式管理分成若干段,再把段內空間按頁式管理等分成若干頁。
在段頁式存儲管理中, 段頁地址 = 段號 + 段內頁號 + 頁內地址
有些進程實際需要的內存很大,超過物理內存的容量。
由於操作系統的多道程序設計,使得每個進程可用物理內存更加稀缺。
不可能無限增加物理內存,物理內存總有不夠的時候,於是便有了虛擬內存的概念。
虛擬內存是操作系統內存管理的關鍵技術,使得多道程序運行和大程序運行成為現實,她通過將進程所使用的內存進行劃分,將部分暫時不使用的內存放置在輔存。
根據局部性原理,程序運行時,無需全部裝入內存,裝載部分即可。如果訪問頁不在內存,則發出缺頁中斷,發起頁面置換。
從用戶層面看,程序擁有很大的空間,即是虛擬內存。
虛擬內存實際是對物理內存的補充,速度接近於內存,成本接近於輔存。
置換演算法一般有先進先出演算法(FIFO)、最不經常使用演算法(LFU)、最近最少使用演算法(LRU)。
從計算機組成原理篇章中,我們可以知道,CPU的高速緩存沒有數據時,需要從主存中載入數據。此時若主存中也沒有數據,則需要從輔存中載入頁面數據。
內存替換策略發生在Cache-主存層次、主存-輔存層次。Cache-主存層次的替換策略主要是為了解決 速度問題 ,
主存-輔存層次則。主要是為了解決 容量問題 。
順序文件是指按順序存放在存儲介質中的文件,例如磁帶的存儲特性使得磁帶文件只能存儲順序文件。
順序文件是所有邏輯文件當中存儲效率最高的。
可變長文件不適合使用順序文件格式存儲,索引文件是為了解決可變長文件存儲而發明的一種文件格式,索引文件需要配合索引表完成存儲的操作。
目錄的層級結構是樹狀的,成為目錄樹。
目錄樹中任何文件或目錄都只有唯一路徑。
對CPU而言,凡是對CPU進行數據輸入的都是輸入設備,凡是CPU進行數據輸出的都是輸出設備。
緩沖區主要是解決CPU與IO設備的速率不匹配的問題,減少CPU處理IO請求的頻率,提高CPU與IO設備之間的並行性。
專用緩沖區只適用於特定的IO進程,當這樣的IO進程比較多時,對內存的消耗也很大,所以操作系統劃出可供多個進程使用的公共緩沖區,稱之為緩沖池。
SPOOLing技術是關於慢速字元設備如何與計算機主機交換信息的一種技術,利用高速共享設備將低速的獨享設備模擬為高速的共享設備,邏輯上,系統為每一個用戶都分配了一台獨立的高速獨享設備,是一種虛擬設備技術。
SPOOLing技術把同步調用低速設備改為非同步調用。在輸入、輸出之間增加了排隊轉儲環節(輸入井、輸出井),SPOOLing負責輸入(出)井與低速設備之間的調度,邏輯上,進程直接與高速設備交互,減少了進程的等待時間。
『貳』 內存管理頁式管理和段式管理、段頁式管理的區別
一 頁式管理
1 頁式管理的基本原理將各進程的虛擬空間劃分成若干個長度相等的頁(page),頁式管理把內存空間按頁的大小劃分成片或者頁面(page frame),然後把頁式虛擬地址與內存地址建立一一對應頁表,並用相應的硬體地址變換機構,來解決離散地址變換問題。頁式管理採用請求調頁或預調頁技術實現了內外存存儲器的統一管理。
它分為
1 靜態頁式管理。靜態分頁管理的第一步是為要求內存的作業或進程分配足夠的頁面。系統通過存儲頁面表、請求表以及頁表來完成內存的分配工作。靜態頁式管理解決了分區管理時的碎片問題。但是,由於靜態頁式管理要求進程或作業在執行前全部裝入內存,如果可用頁面數小於用戶要求時,該作業或進程只好等待。而且作業和進程的大小仍受內存可用頁面數的限制。
2 動態頁式管理。動態頁式管理是在靜態頁式管理的基礎上發展起來的。它分為請求頁式管理和預調入頁式管理。
優點: 沒有外碎片,每個內碎片不超過頁大小。一個程序不必連續存放。便於改變程序佔用空間的大小(主要指隨著程序運行而動態生成的數據增多,要求地址空間相應增長,通常由系統調用完成而不是操作系統自動完成)。
缺點:程序全部裝入內存。
要求有相應的硬體支持。例如地址變換機構,缺頁中斷的產生和選擇淘汰頁面等都要求有相應的硬體支持。這增加了機器成本。增加了系統開銷,例如缺頁中斷處理機,請求調頁的演算法如選擇不當,有可能產生抖動現象。 雖然消除了碎片,但每個作業或進程的最後一頁內總有一部分空間得不到利用果頁面較大,則這一部分的損失仍然較大。
二 段式管理的基本思想
把程序按內容或過程(函數)關系分成段,每段有自己的名字。一個用戶作業或進程所包含的段對應一個二維線形虛擬空間,也就是一個二維虛擬存儲器。段式管理程序以段為單位分配內存,然後通過地址影射機構把段式虛擬地址轉換為實際內存物理地址。
程序通過分段(segmentation)劃分為多個模塊,如代碼段、數據段、共享段。其優點是: 可以分別編寫和編譯。 可以針對不同類型的段採取不同的保護。 可以按段為單位來進行共享,包括通過動態鏈接進行代碼共享。
三 段頁式管理的實現原理
1 虛地址的構成
一個進程中所包含的具有獨立邏輯功能的程序或數據仍被劃分為段,並有各自的段號s。這反映相繼承了段式管理的特徵。其次,對於段s中的程序或數據,則按照一定的大小將其劃分為不同的頁。和頁式系統一樣,最後不足一頁的部分仍佔一頁。這反映了段頁式管理中的頁式特徵。從而,段頁式管理時的進程的虛擬地址空間中的虛擬地址由三部分組成:即段號s,頁號P和頁內相對地址d。虛擬空間的最小單位是頁而不是段,從而內存可用區也就被劃分成為著干個大小相等的頁面,且每段所擁有的程序和數據在內存中可以分開存放。分段的大小也不再受內存可用區的限制。
2 段表和頁表
為了實現段頁式管理,系統必須為每個作業或進程建立一張段表以管理內存分配與釋放、缺段處理、存儲保護相地址變換等。另外,由於一個段又被劃分成了若干頁,每個段又必須建立一張頁表以把段中的虛頁變換成內存中的實際頁面。顯然,與頁式管理時相同,頁表中也要有相應的實現缺頁中斷處理和頁面保護等功能的表項。另外,由於在段頁式管理中,頁表不再是屬於進程而是屬於某個段,因此,段表中應有專項指出該段所對應頁表的頁表始址和頁表長度。
3 動態地址變換過程
在一般使用段頁式存儲管理方式的計算機系統中,都在內存中辟出一塊固定的區域存放進程的段表和頁表。因此,在段頁式管理系統中,要對內存中指令或數據進行一次存取的話,至少需要訪問三次以上的內存:
第一次是由段表地址寄存器得段表始址後訪問段表,由此取出對應段的頁表在內存中的地址。
第二次則是訪問頁表得到所要訪問的物理地址。
第三次才能訪問真正需要訪問的物理單元。
顯然,這將使CPU的執行指令速度大大降低。為了提高地址轉換速度,設置快速聯想寄存器就顯得比段式管理或頁式管理時更加需要。在快速聯想寄存器中,存放當前最常用的段號s、頁號p和對應的內存頁面與其它控制用欄目。當要訪問內存空間某一單元時,可在通過段表、頁表進行內存地址查找的同時,根據快速聯想寄存器查找其段號和頁號。如果所要訪問的段或頁在快速聯想寄存器中,則系統不再訪問內存中的段表、頁表而直接把快速聯想寄存器中的值與頁內相對地址d拼接起來得到內存地址。
總之,因為段頁式管理是段式管理的頁式管理方案結合而成的,所以具有它們二者的優點。但反過來說,由於管理軟體的增加,復雜性和開銷也就隨之增加了。另外,需要的硬體以及佔用的內存也有所增加。更重要的是,如果不採用聯想寄存器的方式提高CPU的訪內速度,將會使得執行速度大大下降。
『叄』 操作系統頁式存儲管理的問題
邏輯頁面表示這是一個虛擬的儲存空間,一個邏輯頁面對應一個物理內存的頁框,這個頁框才是真正的物理存儲所在。
『肆』 頁式存儲管理和段式存儲管理的區別
段式與頁式存儲管理的比較如下表所示。
段式
頁式
分段由用戶設計劃分,每段對應一個相應的的程序模塊,有完整的邏輯意義。
分頁用戶看不見,由操作系統為內存管理劃分。
段面是信息的邏輯單位
頁面是信息的物理單位
便於段的共享,執行時按需動態鏈接裝入。
頁一般不能共享
段長不等,可動態增長,有利於新數據增長。
頁面大小相同,位置不能動態增長。
二維地址空間:段名、段中地址;段號、段內單元號
一維地址空間
管理形式上象頁式,但概念不同
往往需要多次缺頁中斷才能把所需信息完整地調入內存
實現頁(段)的共享是指某些作業的邏輯頁號(段號)對應同一物理頁號(內存中該段的起始地址)。頁(段)的保護往往需要對共享的頁面(段)加上某種訪問許可權的限制,如不能修改等;或設置地址越界檢查,對於頁內地址(段內地址)大於頁長(段長)的存取,產生保護中斷。
『伍』 簡述段式存儲管理技術和頁式存儲管理技術的不同之處
存儲管理的基本原理
內存管理方法
內存管理主要包括內存分配和回收、地址變換、內存擴充、內存共享和保護等功能。
下面主要介紹連續分配存儲管理、覆蓋與交換技術以及頁式與段式存儲管理等基本概念和原理。
1.連續分配存儲管理方式
連續分配是指為一個用戶程序分配連續的內存空間。連續分配有單一連續存儲管理和分區式儲管理兩種方式。
(1)單一連續存儲管理
在這種管理方式 中,內存被分為兩個區域:系統區和用戶區。應用程序裝入到用戶區,可使用用戶區全部空間。其特點是,最簡單,適用於單用戶、單任務的操作系統。CP/M和 DOS 2.0以下就是採用此種方式。這種方式的最