Posted on 2009-08-17 13:51
Prayer 閱讀(1836)
評論(0) 編輯 收藏 引用 所屬分類:
計算機基礎
一 頁式管理
1 頁式管理的基本原理將各進程的虛擬空間劃分成若干個長度相等的頁(page),頁式管理把內存空間按頁的大小劃分成片或者頁面(page frame),然后把頁式虛擬地址與內存地址建立一一對應頁表,并用相應的硬件地址變換機構,來解決離散地址變換問題。頁式管理采用請求調頁或預調頁技術實現了內外存存儲器的統一管理。
它分為
1 靜態頁式管理。靜態分頁管理的第一步是為要求內存的作業或進程分配足夠的頁面。系統通過存儲頁面表、請求表以及頁表來完成內存的分配工作。靜態頁式管理解決了分區管理時的碎片問題。但是,由于靜態頁式管理要求進程或作業在執行前全部裝入內存,如果可用頁面數小于用戶要求時,該作業或進程只好等待。而且作業和進程的大小仍受內存可用頁面數的限制。
2 動態頁式管理。動態頁式管理是在靜態頁式管理的基礎上發展起來的。它分為請求頁式管理和預調入頁式管理。
優點: 沒有外碎片,每個內碎片不超過頁大小。一個程序不必連續存放。便于改變程序占用空間的大小(主要指隨著程序運行而動態生成的數據增多,要求地址空間相應增長,通常由系統調用完成而不是操作系統自動完成)。
缺點:程序全部裝入內存。
要求有相應的硬件支持。例如地址變換機構,缺頁中斷的產生和選擇淘汰頁面等都要求有相應的硬件支持。這增加了機器成本。增加了系統開銷,例如缺頁中斷處理機,請求調頁的算法如選擇不當,有可能產生抖動現象。 雖然消除了碎片,但每個作業或進程的最后一頁內總有一部分空間得不到利用果頁面較大,則這一部分的損失仍然較大。
二 段式管理的基本思想
把程序按內容或過程(函數)關系分成段,每段有自己的名字。一個用戶作業或進程所包含的段對應一個二維線形虛擬空間,也就是一個二維虛擬存儲器。段式管理程序以段為單位分配內存,然后通過地址影射機構把段式虛擬地址轉換為實際內存物理地址。
程序通過分段(segmentation)劃分為多個模塊,如代碼段、數據段、共享段。其優點是: 可以分別編寫和編譯。 可以針對不同類型的段采取不同的保護。 可以按段為單位來進行共享,包括通過動態鏈接進行代碼共享。
三 段頁式管理的實現原理
1 虛地址的構成
一個進程中所包含的具有獨立邏輯功能的程序或數據仍被劃分為段,并有各自的段號s。這反映相繼承了段式管理的特征。其次,對于段s中的程序或數據,則按照一定的大小將其劃分為不同的頁。和頁式系統一樣,最后不足一頁的部分仍占一頁。這反映了段頁式管理中的頁式特征。從而,段頁式管理時的進程的虛擬地址空間中的虛擬地址由三部分組成:即段號s,頁號P和頁內相對地址d。虛擬空間的最小單位是頁而不是段,從而內存可用區也就被劃分成為著干個大小相等的頁面,且每段所擁有的程序和數據在內存中可以分開存放。分段的大小也不再受內存可用區的限制。
2 段表和頁表
為了實現段頁式管理,系統必須為每個作業或進程建立一張段表以管理內存分配與釋放、缺段處理、存儲保護相地址變換等。另外,由于一個段又被劃分成了若干頁,每個段又必須建立一張頁表以把段中的虛頁變換成內存中的實際頁面。顯然,與頁式管理時相同,頁表中也要有相應的實現缺頁中斷處理和頁面保護等功能的表項。另外,由于在段頁式管理中,頁表不再是屬于進程而是屬于某個段,因此,段表中應有專項指出該段所對應頁表的頁表始址和頁表長度。
3 動態地址變換過程
在一般使用段頁式存儲管理方式的計算機系統中,都在內存中辟出一塊固定的區域存放進程的段表和頁表。因此,在段頁式管理系統中,要對內存中指令或數據進行一次存取的話,至少需要訪問三次以上的內存:
第一次是由段表地址寄存器得段表始址后訪問段表,由此取出對應段的頁表在內存中的地址。
第二次則是訪問頁表得到所要訪問的物理地址。
第三次才能訪問真正需要訪問的物理單元。
顯然,這將使CPU的執行指令速度大大降低。為了提高地址轉換速度,設置快速聯想寄存器就顯得比段式管理或頁式管理時更加需要。在快速聯想寄存器中,存放當前最常用的段號s、頁號p和對應的內存頁面與其它控制用欄目。當要訪問內存空間某一單元時,可在通過段表、頁表進行內存地址查找的同時,根據快速聯想寄存器查找其段號和頁號。如果所要訪問的段或頁在快速聯想寄存器中,則系統不再訪問內存中的段表、頁表而直接把快速聯想寄存器中的值與頁內相對地址d拼接起來得到內存地址。
總之,因為段頁式管理是段式管理的頁式管理方案結合而成的,所以具有它們二者的優點。但反過來說,由于管理軟件的增加,復雜性和開銷也就隨之增加了。另外,需要的硬件以及占用的內存也有所增加。更重要的是,如果不采用聯想寄存器的方式提高CPU的訪內速度,將會使得執行速度大大下降。