<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    存儲管理方法詳解
    ?
    ??? 存儲管理是操作系統(tǒng)的重要組成部分,它負(fù)責(zé)計算機(jī)系統(tǒng)內(nèi)存空間的管理。其目的是充分利用內(nèi)存空間,為多道程序并發(fā)執(zhí)行提供存儲基礎(chǔ),并盡可能地方便用戶使用。
    ?
    ??? 采用多道程序設(shè)計技術(shù),就要在內(nèi)存中同時存放多道程序,這就要求存儲管理解決以下四個重要問題,以達(dá)到盡可能方便用戶使用和充分利用內(nèi)存以提高內(nèi)存利用率的目的:
    ?
    ??? 1.內(nèi)存空間的分配和回收
    ??? 2.內(nèi)存空間的共享與存儲保護(hù)
    ??? 3.地址映射(地址重定位)
    ??? 4.內(nèi)存擴(kuò)充
    ?
    1、連續(xù)分區(qū)存儲管理
    ?
    ??? 這是一種最簡單的存儲管理方式,系統(tǒng)是將整個內(nèi)存除了給操作系統(tǒng)劃分出一塊空間外,其余部分的空間都分配給一個作業(yè)使用。當(dāng)作業(yè)被調(diào)度時,進(jìn)程全部進(jìn)入內(nèi)存,一旦完成,所有主存恢復(fù)空閑。個人機(jī)可采用此種管理方法,它不適宜多道程序設(shè)計系統(tǒng)。
    ?
    ?
    2、固定分區(qū)存儲管理
    ?
    ??? 這是支持多道程序設(shè)計的最簡單存儲管理方法。它的其基本思想是將內(nèi)存劃分成若干固定大小的分區(qū),每個分區(qū)中最多只能裝入一個作業(yè)。當(dāng)作業(yè)申請內(nèi)存時,系統(tǒng)按一定的算法為其選擇一個適當(dāng)?shù)姆謪^(qū),并裝入內(nèi)存運(yùn)行。由于分區(qū)大小是事先固定的,因而可容納作業(yè)的大小受到限制,而且當(dāng)用戶作業(yè)的地址空間小于分區(qū)的存儲空間時,容易產(chǎn)生磁盤碎片,造成存儲空間浪費(fèi)。
    ?
    ?
    3、可重定位分區(qū)存儲管理
    ?
    ??? 這是克服固定分區(qū)碎片問題的一種存儲分配方法,它不是預(yù)先將內(nèi)存劃分分區(qū),而是在作業(yè)裝入內(nèi)存時建立分區(qū),使分區(qū)的大小正好與作業(yè)要求的存儲空間相等。這種處理方式使內(nèi)存分配有較大的靈活性,也提高了內(nèi)存利用率。但是隨著對內(nèi)存不斷地分配、釋放操作會引起存儲碎片的產(chǎn)生。
    ?
    ??? 注:使用首先適應(yīng)/最優(yōu)適應(yīng)/最壞適應(yīng)的方式即這種。
    ?
    ?
    4、非請求分頁式存儲管理
    ?
    ??? 非請求分頁式是指將存儲空間和作業(yè)的地址空間分成若干個等分部分的分頁式,要求把進(jìn)程所需要的頁面全部調(diào)入主存后作業(yè)方能運(yùn)行,因此,當(dāng)內(nèi)存可用空間小于作業(yè)所需的地址空間時,作業(yè)無法運(yùn)行。它克服了分區(qū)存儲管理中碎片多和緊縮處理時間長的缺點(diǎn),支持多道程序設(shè)計,但不支持虛擬存儲
    ?
    ?
    5、請求分頁式存儲管理
    ?
    ??? 與非請求分頁式一樣將存儲空間和作業(yè)的地址空間分成若干個等分部分,當(dāng)進(jìn)程需要用到某個頁面時將該頁面調(diào)入主存,把那些暫時無關(guān)的頁面留在主存外。它支持虛擬存儲,克服了分區(qū)存儲管理中碎片多和緊縮處理時間長的缺點(diǎn),支持多道程序設(shè)計,但是它不能實(shí)現(xiàn)對最自然的以段位單位的共享與存儲保護(hù)。
    ?
    ??? 注1:因?yàn)槌绦蛲ǔJ且远挝粏挝粍澐值模砸远挝粏挝蛔钭匀弧?/font>
    ??? 注2:這里會有先進(jìn)先出調(diào)度算法(FIFO)、最近最少使用調(diào)度算法(LRU)、最近最不經(jīng)常使用調(diào)度算法(LFU)這樣的算法。
    ?
    ?
    6、段頁式存儲管理
    ?
    ??? 這是分段式和分頁式結(jié)合的存儲管理方法,充分利用了分段管理和分頁管理的優(yōu)點(diǎn)。作業(yè)按邏輯結(jié)構(gòu)分段,段內(nèi)分頁,內(nèi)存分塊。作業(yè)只需部分頁裝入即可運(yùn)行,所以支持虛擬存儲,可實(shí)現(xiàn)動態(tài)鏈接和裝配。
    ?
    ??? 注:邏輯地址與物理地址的對應(yīng)關(guān)系。
    ?
    ?
    ?
    ?
    具體的講解可以看以下地址:
    ?
    ?
    ********************************************************************************************************
    ?
    第三章 存儲管理

    ??? 存儲管理是操作系統(tǒng)的重要組成部分,它負(fù)責(zé)計算機(jī)系統(tǒng)內(nèi)存空間的管理。其目的是充分利用內(nèi)存空間,為多道程序并發(fā)執(zhí)行提供存儲基礎(chǔ),并盡可能地方便用戶使用。

    3.1 存儲管理的目的

    ??? 采用多道程序設(shè)計技術(shù),就要在內(nèi)存中同時存放多道程序,這就要求存儲管理解決以下四個重要問題,以達(dá)到盡可能方便用戶使用和充分利用內(nèi)存以提高內(nèi)存利用率的目的。

    ??? 一、內(nèi)存空間的分配和回收

    ??? 二、內(nèi)存空間的共享與存儲保護(hù)

    ??? 三、地址映射(地址重定位)

    ??? 四、內(nèi)存擴(kuò)充

    3.2 單用戶連續(xù)存儲管理

    ??? 這是一種最簡單的存儲管理方式,系統(tǒng)是將整個內(nèi)存除了給操作系統(tǒng)劃分出一塊空間外,其余部分的空間都分配給一個作業(yè)使用。個人機(jī)可采用此種管理方法,它不適宜多道程序設(shè)計系統(tǒng)。

    ??? 可以采用靜態(tài)重定位方式完成地址映射;處理器在執(zhí)行指令時,要檢查其絕對地址是否屬于規(guī)定范圍內(nèi)的地址,如果屬于,則按此地址訪問,否則將產(chǎn)生“地址越界”中斷。

    ??? 某些系統(tǒng)還采用對換技術(shù)(Swapping)讓多個進(jìn)程輪流進(jìn)入內(nèi)存,這種技術(shù)多用于分時系統(tǒng),隨著進(jìn)程調(diào)度,將內(nèi)存中的進(jìn)程暫時移到外存,而把外存中某一進(jìn)程換進(jìn)內(nèi)存。

    3.3 固定分區(qū)存儲管理

    ??? 其基本思想是將內(nèi)存劃分成若干固定大小的分區(qū),每個分區(qū)中最多只能裝入一個作業(yè)。當(dāng)作業(yè)申請內(nèi)存時,系統(tǒng)按一定的算法為其選擇一個適當(dāng)?shù)姆謪^(qū),并裝入內(nèi)存運(yùn)行。由于分區(qū)大小是事先固定的,因而可容納作業(yè)的大小受到限制,而且當(dāng)用戶作業(yè)的地址空間小于分區(qū)的存儲空間時,造成存儲空間浪費(fèi)。

    ??? 一、空間的分配與回收

    ??? 系統(tǒng)設(shè)置一張“分區(qū)分配表”來描述各分區(qū)的使用情況,登記的內(nèi)容應(yīng)包括:分區(qū)號、起始地址、長度和占用標(biāo)志。其中占用標(biāo)志為“ 0 ”時,表示目前該分區(qū)空閑;否則登記占用作業(yè)名(或作業(yè)號)。有了“分區(qū)分配表”,空間分配與回收工作是比較簡單的。

    ??? 二、地址轉(zhuǎn)換和存儲保護(hù)

    ??? 固定分區(qū)管理可以采用靜態(tài)重定位方式進(jìn)行地址映射。

    為了實(shí)現(xiàn)存儲保護(hù),處理器設(shè)置了一對“下限寄存器”和“上限寄存器”。當(dāng)一個已經(jīng)被裝入主存儲器的作業(yè)能夠得到處理器運(yùn)行時,進(jìn)程調(diào)度應(yīng)記錄當(dāng)前運(yùn)行作業(yè)所在的分區(qū)號,且把該分區(qū)的下限地址和上限地址分別送入下限寄存器和上限寄存器中。處理器執(zhí)行該作業(yè)的指令時必須核對其要訪問的絕對地址是否越界。

    ??? 三、多作業(yè)隊列的固定分區(qū)管理

    ??? 為避免小作業(yè)被分配到大的分區(qū)中造成空間的浪費(fèi),可采用多作業(yè)隊列的方法。即系統(tǒng)按分區(qū)數(shù)設(shè)置多個作業(yè)隊列,將作業(yè)按其大小排到不同的隊列中,一個隊列對應(yīng)某一個分區(qū),以提高內(nèi)存利用率。

    3.4 可變分區(qū)

    ??? 可變分區(qū)存儲管理不是預(yù)先將內(nèi)存劃分分區(qū),而是在作業(yè)裝入內(nèi)存時建立分區(qū),使分區(qū)的大小正好與作業(yè)要求的存儲空間相等。這種處理方式使內(nèi)存分配有較大的靈活性,也提高了內(nèi)存利用率。但是隨著對內(nèi)存不斷地分配、釋放操作會引起存儲碎片的產(chǎn)生。

    ??? 一、空間的分配與回收

    ??? 采用可變分區(qū)存儲管理,系統(tǒng)中的分區(qū)個數(shù)與分區(qū)的大小都在不斷地變化,系統(tǒng)利用“空閑區(qū)表”來管理內(nèi)存中的空閑分區(qū),其中登記空閑區(qū)的起始地址、長度和狀態(tài)。當(dāng)有作業(yè)要進(jìn)入內(nèi)存時,在“空閑區(qū)表”中查找狀態(tài)為“未分配”且長度大于或等于作業(yè)的空閑分區(qū)分配給作業(yè),并做適當(dāng)調(diào)整;當(dāng)一個作業(yè)運(yùn)行完成時,應(yīng)將該作業(yè)占用的空間作為空閑區(qū)歸還給系統(tǒng)。

    ??? 可以采用首先適應(yīng)算法、最佳(優(yōu))適應(yīng)算法和最壞適應(yīng)算法三種分配策略之一進(jìn)行內(nèi)存分配。

    ??? 二、地址轉(zhuǎn)換和存儲保護(hù)

    ??? 可變分區(qū)存儲管理一般采用動態(tài)重定位的方式,為實(shí)現(xiàn)地址重定位和存儲保護(hù),系統(tǒng)設(shè)置相應(yīng)的硬件:基址 / 限長寄存器(或上界 / 下界寄存器)、加法器、比較線路等。

    ??? 基址寄存器用來存放程序在內(nèi)存的起始地址,限長寄存器用來存放程序的長度。處理機(jī)在執(zhí)行時,用程序中的相對地址加上基址寄存器中的基地址,形成一個絕對地址,并將相對地址與限長寄存器進(jìn)行計算比較,檢查是否發(fā)生地址越界。

    ??? 三、存儲碎片與程序的移動

    ??? 所謂碎片是指內(nèi)存中出現(xiàn)的一些零散的小空閑區(qū)域。由于碎片都很小,無法再利用。如果內(nèi)存中碎片很多,將會造成嚴(yán)重的存儲資源浪費(fèi)。解決碎片的方法是移動所有的占用區(qū)域,使所有的空閑區(qū)合并成一片連續(xù)區(qū)域,這一技術(shù)稱為移動技術(shù)(緊湊技術(shù))。移動技術(shù)除了可解決碎片問題還使內(nèi)存中的作業(yè)進(jìn)行擴(kuò)充。顯然,移動帶來系統(tǒng)開銷加大,并且當(dāng)一個作業(yè)如果正與外設(shè)進(jìn)行 I/O 時,該作業(yè)是無法移動的。

    3.5 頁式存儲管理

    3.5.1 基本原理

    ??? 1 .等分內(nèi)存

    ??? 頁式存儲管理將內(nèi)存空間劃分成等長的若干區(qū)域,每個區(qū)域的大小一般取 2 的整數(shù)冪,稱為一個物理頁面有時稱為塊。內(nèi)存的所有物理頁面從 0 開始編號,稱作物理頁號。

    ??? 2 .邏輯地址

    ??? 系統(tǒng)將程序的邏輯空間按照同樣大小也劃分成若干頁面,稱為邏輯頁面也稱為頁。程序的各個邏輯頁面從 0 開始依次編號,稱作邏輯頁號或相對頁號。每個頁面內(nèi)從 0 開始編址,稱為頁內(nèi)地址。程序中的邏輯地址由兩部分組成:

    邏輯地址

    頁號p

    頁內(nèi)地址 d

    ??? 3 .內(nèi)存分配

    ??? 系統(tǒng)可用一張“位示圖”來登記內(nèi)存中各塊的分配情況,存儲分配時以頁面(塊)為單位,并按程序的頁數(shù)多少進(jìn)行分配。相鄰的頁面在內(nèi)存中不一定相鄰,即分配給程序的內(nèi)存塊之間不一定連續(xù)。

    ??? 對程序地址空間的分頁是系統(tǒng)自動進(jìn)行的,即對用戶是透明的。由于頁面尺寸為 2 的整數(shù)次冪,故相對地址中的高位部分即為頁號,低位部分為頁內(nèi)地址。

    3.5.2 實(shí)現(xiàn)原理

    ??? 1 .頁表

    ??? 系統(tǒng)為每個進(jìn)程建立一張頁表,用于記錄進(jìn)程邏輯頁面與內(nèi)存物理頁面之間的對應(yīng)關(guān)系。地址空間有多少頁,該頁表里就登記多少行,且按邏輯頁的順序排列,形如:

    邏輯頁號

    主存塊號

    0

    B0

    1

    B1

    2

    B2

    3

    B3

    ??? 2 .地址映射過程

    ??? 頁式存儲管理采用動態(tài)重定位,即在程序的執(zhí)行過程中完成地址轉(zhuǎn)換。處理器每執(zhí)行一條指令,就將指令中的邏輯地址( p,d )取來從中得到邏輯頁號 (p) ,硬件機(jī)構(gòu)按此頁號查頁表,得到內(nèi)存的塊號 B’ ,便形成絕對地址( B’,d , 處理器即按此地址訪問主存。

    ??? 3 .頁面的共享與保護(hù)

    ??? 當(dāng)多個不同進(jìn)程中需要有相同頁面信息時,可以在主存中只保留一個副本,只要讓這些進(jìn)程各自的有關(guān)項(xiàng)中指向內(nèi)存同一塊號即可。同時在頁表中設(shè)置相應(yīng)的“存取權(quán)限”,對不同進(jìn)程的訪問權(quán)限進(jìn)行各種必要的限制。

    3.6 段式存儲管理

    3 6 1 基本原理

    ??? 1.邏輯地址空間

    ??? 程序按邏輯上有完整意義的段來劃分,稱為邏輯段。例如主程序、子程序、數(shù)據(jù)等都可各成一段。將一個程序的所有邏輯段從0開始編號,稱為段號。每一個邏輯段都是從0開始編址,稱為段內(nèi)地址。

    ??? 2.邏輯地址

    ??? 程序中的邏輯地址由段號和段內(nèi)地址(s,d)兩部分組成。

    ??? 3.內(nèi)存分配

    ??? 系統(tǒng)不進(jìn)行預(yù)先劃分,而是以段為單位進(jìn)行內(nèi)存分配,為每一個邏輯段分配一個連續(xù)的內(nèi)存區(qū)(物理段)。邏輯上連續(xù)的段在內(nèi)存不一定連續(xù)存放。

    3.6.2實(shí)現(xiàn)方法

    ??? 1.段表

    ??? 系統(tǒng)為每個進(jìn)程建立一張段表,用于記錄進(jìn)程的邏輯段與內(nèi)存物理段之間的對應(yīng)關(guān)系,至少應(yīng)包括邏輯段號、物理段首地址和該段長度三項(xiàng)內(nèi)容。

    ??? 2.建立空閑區(qū)表

    ??? 系統(tǒng)中設(shè)立一張內(nèi)存空閑區(qū)表,記錄內(nèi)存中空閑區(qū)域情況,用于段的分配和回收內(nèi)存。

    ??? 3.地址映射過程

    段式存儲管理采用動態(tài)重定位,處理器每執(zhí)行一條指令,就將指令中的邏輯地址( s,d )取來從中得到邏輯段號 (s) ,硬件機(jī)構(gòu)按此段號查段表,得到該段在內(nèi)存的首地址 S’ , 該段在內(nèi)存的首地址 S’ 加上段內(nèi)地址 d ,便形成絕對地址( S’+d ),處理器即按此地址訪問主存。

    3 6 3 段頁式存儲管理

    ??? 頁式存儲管理的特征是等分內(nèi)存,解決了碎片問題;段式存儲管理的特征是邏輯分段,便于實(shí)現(xiàn)共享。為了保持頁式和段式上的優(yōu)點(diǎn),結(jié)合兩種存儲管理方案,形成了段頁式存儲管理。

    ??? 段頁式存儲管理的基本思想是:把內(nèi)存劃分為大小相等的頁面;將程序按其邏輯關(guān)系劃分為若干段;再按照頁面的大小,把每一段劃分成若干頁面。程序的邏輯地址由三部分組成,形式如下:

    邏輯地址

    段號 s

    頁號 p

    頁內(nèi)地址 d

    ??? 內(nèi)存是以頁為基本單位分配給每個程序的,在邏輯上相鄰的頁面內(nèi)存不一定相鄰。

    ?? ? 系統(tǒng)為每個進(jìn)程建立一張段表,為進(jìn)程的每一段各建立一張頁表。地址轉(zhuǎn)換過程,要經(jīng)過查段表、頁表后才能得到最終的物理地址。

    3.7 虛擬存儲管理

    ??? 前面介紹的各種存儲管理方案有一點(diǎn)是共同的,即當(dāng)一個參與并發(fā)執(zhí)行的進(jìn)程運(yùn)行時,其整個程序都在內(nèi)存,存在的缺點(diǎn)是:若一個進(jìn)程的尺寸比內(nèi)存可用空間大,則該進(jìn)程無法運(yùn)行;而實(shí)際上由于局部特性,一個進(jìn)程在運(yùn)行的任一階段只使用所占存儲空間的一部分,因此未用到的內(nèi)存區(qū)域就被浪費(fèi)。

    ??? 虛擬存儲管理是當(dāng)進(jìn)程要求運(yùn)行時,不是將它的全部信息裝入內(nèi)存,而是將其一部分先裝入內(nèi)存,另一部分暫時留在外存(通常是磁盤)。進(jìn)程在運(yùn)行過程中,如果要訪問的信息不在內(nèi)存時,發(fā)中斷由操作系統(tǒng)將它們調(diào)入內(nèi)存,以保證進(jìn)程的正常運(yùn)行。

    ??? 虛擬存儲管理分為頁式虛擬存儲管理、段式虛擬存儲管理和段頁式虛擬存儲管理。

    3.7.1頁式虛擬存儲管理

    ??? 一、基本原理

    ??? 基本思想是,在進(jìn)程開始執(zhí)行之前,不是裝入全部頁面,而是只裝入一個或幾個頁面,然后根據(jù)進(jìn)程執(zhí)行的需要,動態(tài)地裝入其他頁面。

    ??? 頁表中將增加若干項(xiàng):標(biāo)志位(又稱駐留位),指示該頁是否裝入內(nèi)存;外存地址給出該頁在外存(磁盤)的地址。

    ??? 地址映射時當(dāng)從頁表標(biāo)志位得知此頁不在內(nèi)存時,發(fā)缺頁中斷。此時暫停進(jìn)程執(zhí)行,CPU轉(zhuǎn)去執(zhí)行缺頁中斷處理程序,負(fù)責(zé)把所需的頁從外存調(diào)入到內(nèi)存某空閑塊中,并把物理頁號填入頁表、更改標(biāo)志位,然后再返回繼續(xù)執(zhí)行被中斷的進(jìn)程。

    ??? 二、頁面淘汰

    ??? 當(dāng)內(nèi)存已無空閑塊而又發(fā)生缺頁中斷時,必須在內(nèi)存中選擇一頁面將其淘汰并寫回到外存,然后再換進(jìn)新的頁面,這一過程稱為頁面調(diào)度,選擇被淘汰頁面的算法稱作頁面調(diào)度算法。如果頁面淘汰算法不合理,可能產(chǎn)生剛被淘汰出去的一頁,又要訪問它,因而又要把它調(diào)入,如此反復(fù),使系統(tǒng)的頁面調(diào)入調(diào)出工作非常頻繁從而降低系統(tǒng)效率,這種現(xiàn)象稱為“顛簸”或“抖動”。

    ??? 常用的頁面調(diào)度算法有:先進(jìn)先出調(diào)度算法(FIFO)、最近最少使用調(diào)度算法(LRU)和最近最不經(jīng)常使用調(diào)度算法(LFU)。

    ?? 注意,對于單用戶連續(xù)、固定分區(qū)、可變分區(qū)存儲管理是不能實(shí)現(xiàn)虛擬存儲管理的,因?yàn)樗鼈兊墓餐c(diǎn)是,在對作業(yè)進(jìn)行內(nèi)存分配時是將整個作業(yè)全部、連續(xù)地放入內(nèi)存。

    ******************************************************************************************************** ?

    posted on 2009-04-25 21:13 decode360 閱讀(170) 評論(0)  編輯  收藏 所屬分類: 01.IT_Base
    主站蜘蛛池模板: 日本一道一区二区免费看| 一级一片免费视频播放| 亚洲日本乱码卡2卡3卡新区| 亚洲人成电影福利在线播放 | 永久免费无码网站在线观看个| 亚洲av无码成人精品国产| 精品亚洲视频在线| 国产成人亚洲综合无| 黄色a三级三级三级免费看| 免费无码婬片aaa直播表情| 一区二区视频在线免费观看| 国产成人自产拍免费视频| 老司机精品免费视频| 七色永久性tv网站免费看| 99热这里有免费国产精品| 999久久久免费精品国产| 毛片免费在线观看网站| 国产免费观看视频| 久久久久亚洲AV成人网| 久久精品国产亚洲av麻豆 | 国产又大又黑又粗免费视频| 亚洲国产精品成人AV无码久久综合影院| 亚洲国产精品丝袜在线观看| 中文亚洲AV片在线观看不卡| 一区二区三区亚洲| 激情内射亚洲一区二区三区爱妻| 亚洲AV无码资源在线观看| 一区二区三区在线观看免费| 日本一道本不卡免费| www.黄色免费网站| 亚洲AV无码乱码在线观看| 亚洲乱码无码永久不卡在线 | 亚洲精品无码鲁网中文电影| 亚洲AV第一页国产精品| 亚洲videosbestsex日本| 色屁屁www影院免费观看视频| 免费无码av片在线观看| 免费A级毛片无码免费视| 亚洲av片一区二区三区| 亚洲国产老鸭窝一区二区三区| 亚洲1区1区3区4区产品乱码芒果 |