全套課件-《操作系統(tǒng)教程》-彭德林_第1頁
全套課件-《操作系統(tǒng)教程》-彭德林_第2頁
全套課件-《操作系統(tǒng)教程》-彭德林_第3頁
全套課件-《操作系統(tǒng)教程》-彭德林_第4頁
全套課件-《操作系統(tǒng)教程》-彭德林_第5頁
已閱讀5頁,還剩401頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

操作系統(tǒng)教程

主要內(nèi)容:

明確計算機操作系統(tǒng)的基本概念、操作系統(tǒng)在計算機系統(tǒng)中的地位和特點,敘述操作系統(tǒng)的功能和分類,簡要介紹幾種典型的操作系統(tǒng)。學習任務:1.1初識操作系統(tǒng)的概念及發(fā)展1.2了解操作系統(tǒng)的分類1.3掌握操作系統(tǒng)的特性和功能1.4認知幾種典型的操作系統(tǒng)

第1章操作系統(tǒng)概述1.1初識操作系統(tǒng)的概念及發(fā)展1.1.1操作系統(tǒng)的基本概念

計算機系統(tǒng)的組成

完整的計算機系統(tǒng)是由計算機硬件系統(tǒng)和軟件系統(tǒng)組成的(如圖1.1所示)1.硬件系統(tǒng)的組成

計算機硬件系統(tǒng)是由運算器、控制器、存儲器、輸入設備和輸出設備組成。2.軟件系統(tǒng)的組成

計算機軟件系統(tǒng)主要由系統(tǒng)軟件和應用軟件組成。系統(tǒng)軟件主要用來管理計算機本身的操作;應用軟件則是計算機提供給用戶用來解決具體問題的工具圖1.1計算機系統(tǒng)組成

操作系統(tǒng)的定義

可見,操作系統(tǒng)是計算機系統(tǒng)中的一個系統(tǒng)軟件,是一些程序和模塊的集合,它們以最有效合理的方式組織和管理計算機的軟硬件資源,合理地組織計算機的工作流程,控制程序的執(zhí)行并向用戶提供各種服務功能,使用戶能夠靈活、方便、有效地使用計算機,使整個計算機系統(tǒng)能高效地運行,從而在計算機與用戶之間起到接口的作用。1.1.2操作系統(tǒng)的發(fā)展

無操作系統(tǒng)階段自1946年第一臺數(shù)字電子計算機的誕生到上個世紀五十年代中期的計算機,都是電子管計算機,此時還沒有操作系統(tǒng),屬于操作系統(tǒng)發(fā)展的第一階段。這一時期操作計算機的主要方式有以下二種:1.人工操作方式:

這種人工操作的特點是:(1)程序設計直接編制二進制目標程序。(2)輸入輸出設備主要是紙帶和卡片(如圖1.4所示)。(3)CPU要等待人工操作,程序員親手上機操作,程序運行和結(jié)果輸出都是以手工方式進行。(4)單用戶方式,用戶獨占CPU和系統(tǒng)資源。2.脫機輸入輸出方式

采用脫機輸入輸出的方式與人工操作方式相比,有如下優(yōu)點:(1)減少了CPU空閑時間。(2)提高了輸入輸出速度。

單道批處理系統(tǒng)階段

從上個世紀五十年代中期至六十年代中期,這一階段是計算機硬件發(fā)展的晶體管時代,此時出現(xiàn)了單道批處理系統(tǒng)。1.單道批處理系統(tǒng)由于系統(tǒng)對作業(yè)的處理是成批進行,并且在內(nèi)存中只保持一道作業(yè),所以也稱為單道批處理系統(tǒng)。

2.單道批處理系統(tǒng)的特征自動性:作業(yè)是被自動處理。順序性:作業(yè)是一個一個被處理的。單道性:內(nèi)存中始終是保持一道作業(yè)。

多道程序設計階段二十世紀六十年代中期至八十年代,是計算機硬件體系結(jié)構(gòu)發(fā)展的集成電路時代,而此時計算機操作系統(tǒng)的發(fā)展,則進入了以多道程序設計技術(shù)為主的階段。

現(xiàn)代操作系統(tǒng)的形成操作系統(tǒng)到20世紀80年代已趨于成熟。批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)是操作系統(tǒng)的三個基本類型。隨著計算機硬件技術(shù)和軟件技術(shù)的發(fā)展,又出現(xiàn)了多處理機操作系統(tǒng)、微機操作系統(tǒng)、網(wǎng)絡操作系統(tǒng)、分布式操作系統(tǒng)以及嵌入式操作系統(tǒng)等多種類型的現(xiàn)代操作系統(tǒng)。1.2操作系統(tǒng)的分類1.2.1批處理操作系統(tǒng)批處理操作系統(tǒng)是隨著計算機硬件的發(fā)展而出現(xiàn)的,是為了提高計算機的工作效率,除去人對計算機系統(tǒng)運行的干預,解決人機矛盾而提出的一種計算機成批處理的操作過程。依據(jù)系統(tǒng)的復雜程度和出現(xiàn)時間的先后,可以把批處理操作系統(tǒng)分類為單道批處理系統(tǒng)和多道批處理系統(tǒng)兩種。

單道批處理系統(tǒng)1.單道批處理系統(tǒng)(SimpleBatchProcessingSystem)的處理過程(如圖所示)把作業(yè)的源程序轉(zhuǎn)換為目標程序源程序有錯嗎?否裝配目標程序是否停止運行目標程序是開始還有作業(yè)嗎?單道批處理系統(tǒng)的處理流程2.單道批處理系統(tǒng)的特征(1)自動性。(2)順序性。(3)單道性。(4)存儲器保護。單道批處理系統(tǒng)的缺點:一次僅能運行一個作業(yè),這對于價格昂貴的計算機系統(tǒng)來說,只有一個部件工作,其余部件均處于閑置狀態(tài),資源利用率很低。

多道批處理系統(tǒng)在批處理系統(tǒng)中引入多道程序設計后,具有以下特征:(1)多道性。(2)并行性。(3)串行性。(4)無序性。(5)調(diào)度性。(6)系統(tǒng)開銷小。多道批處理系統(tǒng)的缺點是:用戶沒有交互能力,用戶一旦把作提交給系統(tǒng)后就失去了對自己作業(yè)的控制,系統(tǒng)將根據(jù)作業(yè)說明書來控制作業(yè)的執(zhí)行,這對程序的修改和調(diào)試是非常不便的。作業(yè)的平均周轉(zhuǎn)時間長,由于作業(yè)要排隊,依次進行處理,因而周轉(zhuǎn)時間較長。特別對于排在隊尾作業(yè)其運行請求會被長期推遲響應。1.2.2分時操作系統(tǒng)

分時系統(tǒng)的提出分時操作系統(tǒng)是在批處理系統(tǒng)的基礎上,采用分時技術(shù)提出的一種新類型的操作系統(tǒng)。

分時的實現(xiàn)

配置了分時操作系統(tǒng)的計算機采用主從式多終端的計算機體系結(jié)構(gòu),一臺主機連接著多個帶有顯示器、鍵盤及控制器的本地或遠程終端,每個用戶可以通過終端以交互方式向系統(tǒng)發(fā)出命令,共享系統(tǒng)資源,請求完成某項工作,系統(tǒng)則分析從終端設備發(fā)來的命令,完成用戶提出的需求,之后,用戶又根據(jù)系統(tǒng)提供的運行結(jié)果,向系統(tǒng)提出下一步請求,就這樣重復上述交互會話過程,直到用戶完成預計的全部工作為止。

分時系統(tǒng)的特征1.交互性2.及時性3.獨占性4.同時性(多路性)1.2.3實時操作系統(tǒng)

實時操作系統(tǒng)是指系統(tǒng)能夠及時(規(guī)定時間內(nèi))對外部輸入的信息(一般為一些隨機事件)進行響應,并以足夠快的速度完成對信息處理的一類操作系統(tǒng)。

實時系統(tǒng)按其使用方式不同可以分為兩類:實時控制系統(tǒng)和實時信息處理系統(tǒng)。

實時控制系統(tǒng)實時控制指微型計算機在實時過程控制和提供環(huán)境監(jiān)督中的應用。過程控制系統(tǒng)是從傳感器獲得輸入的數(shù)字或模擬信息進行分析處理后,激發(fā)一個活動信號,從而改變可控過程,以達到控制的目的。

實時信息處理系統(tǒng)其主要特點是:1.實時響應2.整體性3.高可靠性和安全性1.2.4網(wǎng)絡操作系統(tǒng)網(wǎng)絡操作系統(tǒng)(NOS)可以看作是在網(wǎng)絡環(huán)境下工作的操作系統(tǒng)軟件,可簡單地定義為管理整個網(wǎng)絡資源和方便網(wǎng)絡用戶的軟件集合。網(wǎng)絡操作系統(tǒng)是計算機網(wǎng)絡的心臟和靈魂,是向網(wǎng)絡計算機提供服務的特殊的操作系統(tǒng)。它在計算機操作系統(tǒng)下工作,使計算機操作系統(tǒng)增加了網(wǎng)絡操作所需要的能力。

網(wǎng)絡操作系統(tǒng)的功能網(wǎng)絡操作系統(tǒng)具有網(wǎng)絡通信、資源管理、網(wǎng)絡服務、網(wǎng)絡管理、和相互操作能力等功能。

網(wǎng)絡操作系統(tǒng)的工作模式網(wǎng)絡操作系統(tǒng)運行在稱為服務器的計算機上,并由聯(lián)網(wǎng)的計算機用戶(這類用戶稱為客戶)共享,這就是網(wǎng)絡操作系統(tǒng)的客戶機/服務器(C/S)模式,該模式具有分布處理和集中控制的特征。網(wǎng)絡操作系統(tǒng)的另一種工作模式是具有分布處理特征的對等模式,其中各個客戶機可以看作是訪問其他站點(服務器)的客戶,也可看作是向其他站點(客戶)提供服務的服務器。即網(wǎng)絡服務和控制功能分布于各個站點上,各個站點(客戶)是對等關系。

1.3操作系統(tǒng)的特性和功能1.3.1操作系統(tǒng)的特征不同操作系統(tǒng)有不同的特征,一個操作系統(tǒng)可能包含了多種特征,但大多數(shù)操作系統(tǒng)都具有以下幾種重要特征。1.并發(fā)性(concurrence)2.共享性(sharing)3.虛擬性(virtual)4.異步性(asynchronism)1.3.2操作系統(tǒng)的功能

操作系統(tǒng)具有存儲器管理功能、處理機管理功能、設備管理功能和文件管理功能。

存儲器管理的功能

1.內(nèi)存分配主要任務是為每道程序分配內(nèi)存空間,但要以存儲器利用率最高、減少不可用的內(nèi)存空間為準則,同時允許正在運行的程序申請附加的內(nèi)存空間,以適應程序和數(shù)據(jù)動態(tài)增長的需要。操作系統(tǒng)在實施內(nèi)存分配時可以采用靜態(tài)分配方式和動態(tài)分配方式。

2.內(nèi)存保護主要任務是確保每道用戶程序在自己的內(nèi)存空間中運行,互不干擾,也就是說絕不允許用戶程序訪問操作系統(tǒng)以及其他用戶中的程序和數(shù)據(jù)。3.地址映射在多道程序設計環(huán)境下,地址空間中的邏輯地址和內(nèi)存空間中的物理地址是不可能一致的,因此,存儲器管理必須提供正確的地址映射功能。

4.內(nèi)存擴充

由于物理內(nèi)存的容量有限,有時難以滿足用戶的需要,存儲器管理的任務之一就是在不增加物理內(nèi)存的條件下,借助于虛擬內(nèi)存技術(shù)從邏輯上去擴充內(nèi)存容量,使用戶所感覺到的內(nèi)存容量比實際內(nèi)存容量大得多。

處理機管理的功能

處理機管理的主要任務是對處理機進行分配,并對其運行進行有效的控制和管理。在多道程序環(huán)境下,處理機的分配和運行都是以進程為單位的,所以對處理機的管理可理解為對進程的管理。進程管理包括以下主要內(nèi)容。進程控制包括進程的創(chuàng)建、進程的撤消、控制進程在不同的狀態(tài)間轉(zhuǎn)換。進程控制的實現(xiàn)是通過若干條操作系統(tǒng)提供的進程控制原語和系統(tǒng)功能調(diào)用來實現(xiàn)的。對各個進程的運行進行協(xié)調(diào)有兩種方式。(1)進程互斥方式。(2)進程同步方式。

設備管理的功能

操作系統(tǒng)設備管理的主要任務是完成用戶提出的I/O請求,為用戶分配I/O設備;提高CPU和I/O設備的利用率;方便用戶使用I/O設備。設備管理應具有以下功能。

1.緩沖管理

2.設備分配

3.設備處理

4.共享設備的分配與虛擬設備的分配。

文件管理的功能

文件管理的主要任務是對用戶文件和系統(tǒng)文件進行管理,方便用戶使用,并保證文件的安全性。文件系統(tǒng)應具有對文件存儲空間的管理、目錄管理、文件的讀寫管理、文件的共享與保護等功能。

1.文件存儲空間的管理

其主要任務是為每個文件分配必要的外存空間,并依據(jù)一定的格式建立文件各邏輯塊與物理塊之間的對應關系,即構(gòu)建文件的物理結(jié)構(gòu),為用戶順序或隨機存取文件做好準備,從而盡量提高外存的利用率,提高對文件的存取速度。

2.目錄管理

目錄管理的主要任務是為每個文件建立其目錄項,并對眾多的目錄項加以有效的組織,以實現(xiàn)按名存取。另外,目錄管理還應以鏈接方式實現(xiàn)文件的共享。

3.文件的操作

文件的讀寫管理、文件的共享與保護等功能。

除了上述功能之外,操作系統(tǒng)還要具備中斷處理、錯誤處理等功能。操作系統(tǒng)的各功能之間并非是完全獨立的,它們之間存在著相互依賴的關系。

1.4典型操作系統(tǒng)的簡介

在個人計算機發(fā)展過程中,出現(xiàn)過許多不同的操作系統(tǒng),其中目前使用較多較典型的操作系統(tǒng)有Windows、UNIX、Linux等,下面分別予以簡述。1.4.1Windows操作系統(tǒng)

發(fā)展過程為滿足用戶對操作更方便、直接和靈活的要求,微軟公司推出了一種采用圖形用戶界面(GraphicsUserInterface,GUI)的新穎的操作系統(tǒng),Windows操作系統(tǒng)。在近20年的發(fā)展過程中,微軟主要推出的版本有Windows3.X,Windows9X,WindowsNT,Windows2000,WindowsMe,WindowsXP和Windows2003。Windows操作系統(tǒng)以其靈活、快速、便宜等優(yōu)點,逐漸占據(jù)了PC微型計算機上的主導地位。

主要特點

1.具有豐富多彩的圖形用戶界面,以全新的圖標、菜單和對話框的方式支持用戶操作,使計算機的操作使用更加方便、容易。2.支持多任務運行,多任務之間可方便的切換和交換信息。3.充分利用了硬件的潛在功能,突破了DOS中640KB的用戶可用內(nèi)存限制,提供了虛擬存儲功能等內(nèi)存管理能力。4.提供了方便可靠的用戶操作管理,如資源管理器、文件管理器、打印管理器、控制面板等操作,可完成文件、任務和設備的并行管理。

5.操作系統(tǒng)本身也提供了功能強大的、方便實用的工具軟件和應用軟件,如字處理軟件、繪圖軟件、通信軟件、辦公室用化軟件等。1.4.2Unix操作系統(tǒng)簡介

發(fā)展過程

Unix系統(tǒng)于1969年問世,是一個多用戶、多任務的分時操作系統(tǒng)。最初由貝爾實驗室開發(fā)在PDP-7上實現(xiàn)的。貝爾實驗室和其他一些部門在Unix上的開發(fā)工作,導致一系列Unix版本的產(chǎn)生。后來,又憑借其性能的完善和良好的可移植性,經(jīng)歷不斷的發(fā)展、演變,并廣泛的應用于小型計算機、超級小型計算機乃至大型計算機上。

系統(tǒng)特點由于PC機硬件性能的提高,Unix操作系統(tǒng)又被移植到微型計算機上??梢哉f,Unix是在微型計算機上使用的,功能最完善、安全性能最好的操作系統(tǒng)。它具有以下的一些主要特點。

1.先進完善的系統(tǒng)管理功能

2.系統(tǒng)內(nèi)核短小精悍,便于維護和擴充

3.采用具有典型的樹形結(jié)構(gòu)的文件系統(tǒng)

4.良好的系統(tǒng)可移植性

1.4.3Linux操作系統(tǒng)

發(fā)展過程

Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),Linux系統(tǒng)是由全世界各地的成千上萬的程序員設計和實現(xiàn)的。Linux的出現(xiàn),最早開始于一位名叫LinusTorvalds的計算機業(yè)余愛好者,當時他是芬蘭赫爾辛基大學的學生。他的目的是想設計一個代替Minix的操作系統(tǒng),這個操作系統(tǒng)具有Unix操作系統(tǒng)的全部功能,因而開始了Linux雛形的設計。發(fā)展至今Linux有很多發(fā)行版本,較流行的有:RedHatLinux、DebianLinux、RedFlagLinux等。

Linux的構(gòu)成

Linux由內(nèi)核、Shell、文件結(jié)構(gòu)和實用工具四個主要部組成。1.Linux內(nèi)核內(nèi)核是系統(tǒng)的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序。它從用戶那里接受命令并把命令送給內(nèi)核去執(zhí)行。2.LinuxShell

Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。

3.Linux文件結(jié)構(gòu)

文件結(jié)構(gòu)是文件存放在磁盤等存儲設備上的組織方法。主要體現(xiàn)在對文件和目錄的組織上。Linux目錄采用多級樹形結(jié)構(gòu)。用戶可以瀏覽整個系統(tǒng),可以進入任何一個已授權(quán)進入的目錄,訪問那里的文件。4.Linux實用工具

標準的Linux系統(tǒng)都有一套叫做實用工具的程序,它們是專門的程序?qū)嵱霉ぞ呖煞秩?

編輯器:用于編輯文件。過濾器:用于接收數(shù)據(jù)并過濾數(shù)據(jù)。交互程序:允許用戶發(fā)送信息或接收來自其他用戶的信息。Linux優(yōu)點與優(yōu)勢

1.Linux的優(yōu)點Linux是免費的軟件,你可以自由安裝及任意修改軟件的源代碼。它擁有數(shù)量龐大的經(jīng)世界各地Linux高手所開發(fā)的應用軟件的支持。Linux系統(tǒng)與SystemV及BSDUnix兼容,并符合POSIX1.0規(guī)格。具備現(xiàn)代一切功能完善的Unix系統(tǒng)所具備的全部特征,其中包括真正的多任務、虛擬存儲、共享庫函數(shù)、即時負載、優(yōu)越的存儲管理和TCP/IP網(wǎng)絡支持等。支持Intelx86、680x0、Sparc、Alpha及MIPS等平臺,并廣泛支持各種周邊設備。系統(tǒng)內(nèi)核緊湊高效,對硬件要求低,即使在4MB內(nèi)存的386PC機上,也有非常卓越的表現(xiàn)。2.Linux的優(yōu)勢

Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一是它屬于自由軟件,用戶不用支付任何費用就可以獲得它和它的源代碼,并且可以根據(jù)自己的需要對它進行必要的修改,無償對它使用,無約束地繼續(xù)傳播。另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統(tǒng)或想要學習Unix操作系統(tǒng)的人都可以從Linux中獲益。本章小結(jié)

本章介紹了計算機操作系統(tǒng)的概念及其發(fā)展,從不同角度敘述了計算機操作系統(tǒng)的分類,詳細闡述了操作系統(tǒng)的特性和功能,最后簡要介紹了幾種流行的操作系統(tǒng)的發(fā)展過程及特點。實訓一

1.熟練WindowsServer2003的使用,熟悉Windows操作系統(tǒng)的特點。2.下載、安裝和簡單使用Linux操作系統(tǒng),初步了解該操作系統(tǒng)的優(yōu)點。

2.1進程的基本概念2.2進程控制2.4進程調(diào)度2.3進程互斥、同步和通信2.5死鎖2.6線程2.7WindowsServer2003進程管理

第2章進程管理

2.1進程的基本概念

程序的執(zhí)行與特征進程的概念與特征進程的狀態(tài)及狀態(tài)轉(zhuǎn)換進程控制塊2.1.1程序的執(zhí)行與特征程序順序執(zhí)行程序順序執(zhí)行:一個較大的程序通常都由若干個程序段組成。程序在執(zhí)行時,必須按照某種先后次序逐個執(zhí)行,僅當前一操作執(zhí)行完后,才能執(zhí)行后繼操作。程序順序執(zhí)行時的特征順序性可再現(xiàn)性封閉性在早期的單道程序系統(tǒng)中,程序執(zhí)行時獨占系統(tǒng)資源,數(shù)據(jù)輸入、數(shù)據(jù)處理、結(jié)果輸出這三個程序段只能嚴格按程序規(guī)定的順序一個接一個地順序執(zhí)行。圖2.1所示為程序的順序執(zhí)行,其中,I代表數(shù)據(jù)輸入操作,C代表計算操作,P為打印操作。

I1C1P1I2C2P2作業(yè)1作業(yè)2圖2.1程序的順序執(zhí)行程序并發(fā)執(zhí)行程序并發(fā)執(zhí)行:是指各程序在執(zhí)行時間上是可重疊的。我們把執(zhí)行時間上有重疊的幾個程序稱為并發(fā)程序。程序并發(fā)執(zhí)行時的特征間斷性失去封閉性不可再現(xiàn)性如圖2.2所示,對一個作業(yè)而言,其輸入程序、計算程序和打印程序這三個操作必須順序執(zhí)行;但對一批作業(yè)而言,許多程序之間就有可能并發(fā)執(zhí)行。例如,輸入程序在輸入第一個程序后,在計算程序?qū)υ摮绦蜻M行計算的同時,可由輸入程序再輸入第二個程序,從而使第一個程序的計算操作與第二個程序的輸入操作并發(fā)執(zhí)行。一般說,輸入程序在輸入第I+1個程序時,計算程序可能正在對第I個程序進行計算,而打印程序正在打印第I-1個程序的計算結(jié)果。I1I2I3I4C1C2C3C4P1P2P3P4圖2.2程序并發(fā)執(zhí)行圖2.2表示出了輸入、計算、打印三個程序?qū)σ慌鳂I(yè)進行處理的情況。2.1.2進程的概念與特性進程的概念與特征進程的概念:可并發(fā)執(zhí)行的程序在一個數(shù)據(jù)集合上的運行過程進程和程序是兩個既有聯(lián)系又有區(qū)別的概念,它們的區(qū)別和聯(lián)系可簡述如下:進程是一個動態(tài)概念,而程序則是一個靜態(tài)概念。程序是指令的有序集合,沒有任何執(zhí)行的含義;而進程則強調(diào)執(zhí)行過程,它動態(tài)地被創(chuàng)建,并被調(diào)度執(zhí)行后消亡。進程具有并行特征,而程序沒有。由進程的定義可知,進程具有并行特征的兩個方面,即獨立性和異步性。也就是說,在不考慮資源共享的情況下,各進程的執(zhí)行是獨立的,執(zhí)行速度是異步的。顯然,由于程序不反映執(zhí)行過程,所以不具有并行特征進程是競爭計算機系統(tǒng)資源的基本單位,從而其并行性受到系統(tǒng)自己的制約。這里,制約就是對進程獨立性和異步性的限制。不同的進程可以包含同一程序,只要該程序所對應的數(shù)據(jù)集不同。2.1.3進程的狀態(tài)及狀態(tài)轉(zhuǎn)換

進程的狀態(tài)在進程的生命期內(nèi),一個進程至少具有三種基本狀態(tài),它們是:執(zhí)行狀態(tài)、等待狀態(tài)和就緒狀態(tài)。進程的狀態(tài)轉(zhuǎn)換進程的狀態(tài)反映進程執(zhí)行過程的變化。這些狀態(tài)隨著進程的執(zhí)行和外界條件發(fā)生變化和轉(zhuǎn)換。那么,是什么樣的條件使得進程各狀態(tài)發(fā)生轉(zhuǎn)換呢?圖2.3給出了三個基本狀態(tài),即就緒狀態(tài)、執(zhí)行狀態(tài)與等待狀態(tài)之間的轉(zhuǎn)換關系。圖2.3進程狀態(tài)轉(zhuǎn)換2.1.4進程控制塊PCB

從處理機的活動角度來看,如何識別、描述進程呢?顯然,系統(tǒng)中需要有描述進程存在和能夠反映其變化的物理實體,即進程的靜態(tài)描述。進程的靜態(tài)描述由三部分組成:進程控制塊PCB,有關程序段和該程序段對其進行操作的數(shù)據(jù)結(jié)構(gòu)集。進程控制塊包含了有關進程的描述信息、控制信息以及資源信息,是進程動態(tài)特征的集中反映。系統(tǒng)根據(jù)PCB感知進程的存在和通過PCB中所包含的各項變量的變化,掌握進程所處的狀態(tài)以達到控制進程活動的目的。由于進程的PCB是系統(tǒng)感知進程的唯一實體,因此,在幾乎所有的多道操作系統(tǒng)中,一個進程的PCB結(jié)構(gòu)都是全部或部分常駐內(nèi)存的。一般來說,根據(jù)操作系統(tǒng)的要求不同,進程的PCB所包含的內(nèi)容會多少有所不同,但是下面所示基本內(nèi)容是必需的:(1)描述信息①進程名或進程標識號②用戶名或用戶標識號③家族關系(2)控制信息①進程當前狀態(tài)進程在活動期間可分為就緒態(tài)、執(zhí)行態(tài)和等待狀態(tài)。②進程優(yōu)先級進程優(yōu)先級是選取進程占有處理機的重要依據(jù)。與進程優(yōu)先級有關的PCB表項有:a.占有CPU時間;b.進程優(yōu)先級偏移;c.占據(jù)內(nèi)存時間等。③程序開始地址④各種計時信息給出進程占有和利用資源的有關情況。⑤通信信息通信信息用來說明該進程在執(zhí)行過程中與別的進程所發(fā)生的信息交換情況。(3)資源管理信息PCB中包含最多的是資源管理信息,包括有關存儲器的信息、使用輸入輸出設備的信息、有關文件系統(tǒng)的信息等,這些信息有:①占用內(nèi)存大小及其管理用數(shù)據(jù)結(jié)構(gòu)指針,例如,后述內(nèi)存管理中所用到的進程頁表指針等。②在某些復雜系統(tǒng)中,還有對換或覆蓋用的有關信息,如對換程序段長度,對換外存地址等,這些信息在進程申請、釋放內(nèi)存中使用。③共享程序段大小及起始地址。④輸入輸出設備的設備號,所要傳送的數(shù)據(jù)長度、緩沖區(qū)地址、緩沖區(qū)長度及所用設備的有關數(shù)據(jù)結(jié)構(gòu)指針等。這些信息在進程申請,釋放設備進行數(shù)據(jù)傳輸中使用。⑤指向文件系統(tǒng)的指針及有關標識等。進程可使用這些信息對文件系統(tǒng)進行操作。(4)CPU現(xiàn)場保護結(jié)構(gòu)總之,進程控制塊PCB是系統(tǒng)感知進程存在的唯一實體。

2.2進程控制操作系統(tǒng)內(nèi)核簡介建立進程進程的撤消進程的阻塞進程的喚醒進程的掛起和激活2.2.1操作系統(tǒng)內(nèi)核簡介進程從產(chǎn)生到消亡的整個過程都是由操作系統(tǒng)來控制的,為了實現(xiàn)對進程的有效控制,操作系統(tǒng)必須設置一套控制機制,它應具有創(chuàng)建一個新進程,撤消一個已經(jīng)運行結(jié)束的進程,以及具有改變進程狀態(tài)、實現(xiàn)進程間通信的能力。這樣的機構(gòu)屬于操作系統(tǒng)的內(nèi)核。內(nèi)核中所包含的原語主要有進程控制原語、進程通信原語、資源管理原語以及其他方面的原語。

2.2.2建立進程

在多道程序環(huán)境中,只有(作為)進程(時)才能在系統(tǒng)中運行。因此,為使程序能運行就必須為它創(chuàng)建進程。導致一個進程去創(chuàng)建另一進程的典型事件,可有以下四類:用戶登錄作業(yè)調(diào)度提供服務應用請求一旦操作系統(tǒng)發(fā)現(xiàn)了要求創(chuàng)建進程的事件后,便調(diào)用進程創(chuàng)建原語,按下述步驟創(chuàng)建進程:(1)由系統(tǒng)程序模塊統(tǒng)一創(chuàng)建,例如,在批處理系統(tǒng)中,由操作系統(tǒng)的作業(yè)調(diào)度程序為用戶作業(yè)創(chuàng)建相應的進程以完成用戶作業(yè)所要求的功能。(2)由父進程創(chuàng)建,例如,在層次結(jié)構(gòu)的系統(tǒng)中,父進程創(chuàng)建子進程以完成并行工作。

2.2.3進程的撤消

以下幾種情況導致進程被撤消:該進程已完成所要求的功能而正常終止。由于某種錯誤導致非正常終止。祖先進程要求撤消某個子進程。無論哪一種情況導致進程被撤消,進程都必須釋放它所占用的各種資源和PCB結(jié)構(gòu)本身,以利于資源的有效利用。另外,當一個祖先進程撤消某個子進程時,還需審查該子進程是否還有自己的子孫進程,若有的話,還需撤消其子孫進程的PCB結(jié)構(gòu)和釋放它們所占有的資源。

2.2.4進程的阻塞阻塞原語在一個進程期待某一事件發(fā)生,但發(fā)生條件尚不具備時,被該進程自己調(diào)用來阻塞自己。阻塞原語在阻塞一個進程時,由于該進程正處于執(zhí)行狀態(tài),故應先中斷處理機和保存該進程的CPU現(xiàn)場。然后將被阻塞進程置“阻塞”狀態(tài)后插入等待隊列中,再轉(zhuǎn)進程調(diào)度程序選擇新的就緒進程投入運行。這里,轉(zhuǎn)進程調(diào)度程序是很重要的,否則,處理機將會出現(xiàn)空轉(zhuǎn)而浪費資源。圖2.6阻塞原語圖2.2.5進程的喚醒

當?shù)却犃兄械倪M程所等待的事件發(fā)生時,等待該事件的所有進程都將被喚醒。喚醒一個進程有兩種方法:一種是由系統(tǒng)進程喚醒。另一種是由事件發(fā)生進程喚醒。當由系統(tǒng)進程喚醒等待進程時,系統(tǒng)進程統(tǒng)一控制事件的發(fā)生并將“事件發(fā)生”這一消息通知等待進程。從而使得該進程因等待事件已發(fā)生而進入就緒隊列。由事件發(fā)生進程喚醒時,事件發(fā)生進程和被喚醒進程之間是合作關系。因此,喚醒原語既可被系統(tǒng)進程調(diào)用,也可被事件發(fā)生進程調(diào)用。稱調(diào)用喚醒原語的進程為喚醒進程。喚醒原語首先將被喚醒進程從相應的等待隊列中摘下,將被喚醒進程置為就緒狀態(tài)之后,送入就緒隊列。當把被喚醒進程送入就緒隊列之后,喚醒原語既可以返回原調(diào)用程序,也可以轉(zhuǎn)向進程調(diào)度,以便讓調(diào)度程序有機會選擇一個合適的進程執(zhí)行。圖2.7喚醒原語2.2.6進程的掛起和激活

進程掛起:當出現(xiàn)了引起進程掛起的事件時,系統(tǒng)將利用掛起原語將處于阻塞狀態(tài)的進程掛起。掛起原語的執(zhí)行過程是,檢查被掛起進程的狀態(tài),若正處于活動就緒狀態(tài),便將其改為靜止就緒,對于活動阻塞狀態(tài)的進程,則將其改為靜止阻塞。為了方便用戶或父進程考查該進程的運行情況,而把該進程的PCB復制到某指定的內(nèi)存區(qū)域。最后,如被掛起的進程正在執(zhí)行,則轉(zhuǎn)調(diào)試程序重新調(diào)度。

進程的激活過程:當發(fā)生激活進程的事件時,若進程駐留在外存而內(nèi)存已有足夠的空間,則可將在外存上處于靜止就緒狀態(tài)的進程換入內(nèi)存。這時,系統(tǒng)將利用激活原語將指定進程激活。激活原主先將進程從外存調(diào)入內(nèi)存,檢查該進程的現(xiàn)行狀態(tài),若是靜止就緒便將其改為活動就緒,若為靜止阻塞便將其改為活動阻塞。假如采用的是搶占調(diào)度策略,則每當有新進程進入就緒隊列時,應檢查是否要進行重新調(diào)度,即由調(diào)度程序?qū)⒈患せ钸M程與當前進程進行優(yōu)先級的比較,如果被激活進程的優(yōu)先級更低,就不必重新調(diào)度,否則立即剝奪當前進程的運行,把處理機分配給剛被激活的進程。2.3進程互斥、同步和通信

進程的同步進程的互斥信號量和P、V操作進程通信2.3.1進程的同步把異步環(huán)境下的一組并發(fā)進程,因直接制約而互相發(fā)送消息進行互相合作、互相等待,使得各進程按一定的速度執(zhí)行的過程稱為進程間的同步。具有同步關系的一組并發(fā)進程稱為合作進程,合作進程間互相發(fā)送的信號稱為消息或事件。

2.3.2進程的互斥資源共享所引起的制約臨界區(qū)是由屬于不同并發(fā)進程的程序段共享公用數(shù)據(jù)或公用數(shù)據(jù)變量而引起的,臨界區(qū)不可能用增加硬件的方法來解決。因此,臨界區(qū)也可以被稱為訪問公用數(shù)據(jù)的那段程序。間接制約:把這種由于共享某一公有資源而引起的在臨界區(qū)內(nèi)不允許并發(fā)進程交叉執(zhí)行的現(xiàn)象,稱為由共享公有資源而造成的對并發(fā)進程執(zhí)行速度的間接制約,簡稱間接制約?;コ猓阂唤M并發(fā)進程中的一個或多個程序段,因共享某一公有資源而導致它們必須以一個不允許交叉執(zhí)行的單位執(zhí)行。也就是說,不允許兩個以上的共享該資源的并發(fā)進程同時進入臨界區(qū)稱為互斥。一組并發(fā)進程互斥執(zhí)行時必須滿足如下準則:(1)不能假設各并發(fā)進程的相對執(zhí)行速度。即各并發(fā)進程享有平等的、獨立的競爭共有資源的權(quán)利,且在不采取任何措施的條件下,在臨界區(qū)內(nèi)任一指令結(jié)束時,其他并發(fā)進程可以進入臨界區(qū)(2)并發(fā)進程中的某個進程不在臨界區(qū)時,它不阻止其他進程進入臨界區(qū)。(3)并發(fā)進程中的若干個進程申請進入臨界區(qū)時,只能允許一個進程進入。(4)并發(fā)進程中的某個進程申請進入臨界區(qū)時開始,應在有限時間內(nèi)得以進入臨界區(qū)?;コ獾募渔i實現(xiàn)當某個進程進入臨界區(qū)之后,它將鎖上臨界區(qū),直到它退出臨界區(qū)時為止。并發(fā)進程在申請進入臨界區(qū)時,首先測試該臨界區(qū)是否是上鎖的。如果該臨界區(qū)已被鎖住,則該進程要等到該臨界區(qū)開鎖之后才有可能獲得臨界區(qū)。

2.3.3信號量和P、V操作

信號是鐵路交通管理中的一種常用設備,交通管理人員利用信號顏色的變化來實現(xiàn)交通管理。在操作系統(tǒng)中,信號量sem是一整數(shù)。在sem大于等于零時代表可供并發(fā)進程使用的資源實體數(shù),但sem小于零時則表示正在等待使用臨界區(qū)的進程數(shù)。顯然,用于互斥的信號量sem的初值應該大于零,而建立一個信號量必須經(jīng)過說明所建信號量所代表的意義,和賦初值以及建立相應的數(shù)據(jù)結(jié)構(gòu)以便指向那些等待使用該臨界區(qū)的進程。

信號量的數(shù)值僅能由P,V原語操作改變.采用P,V原語,可以把類名為S的臨界區(qū)描述為WhenSdoP(sem)臨界區(qū)V(sem)od。P原語操作的主要動作是:sem減1;若sem減1后仍大于或等于零,則進程繼續(xù)執(zhí)行;若sem減1后小于零,則該進程被阻塞在與該信號相對應的隊列中,然后轉(zhuǎn)進程調(diào)度。V原語的操作主要動作是:sem加1;若相加結(jié)果大于零,進程繼續(xù)執(zhí)行;若相加結(jié)果小于或等于零,則從該信號的等待隊列中喚醒一等待進程,然后再返回原進程繼續(xù)執(zhí)行或轉(zhuǎn)進程調(diào)度。私用信號量:一般來說,也可以把各進程之間發(fā)送的消息作為信號量看待。與進程互斥時不同的是,這里的信號量只與制約進程及被制約進程有關而不是與整組并發(fā)進程有關。因此,稱該信號量為私用信號量用P,V原語操作實現(xiàn)同步有了私用信號量的概念,可以使用P,V原語操作實現(xiàn)進程間的同步。利用P,V原語實現(xiàn)進程同步的方法與利用wait和signal過程時相同,也是分為三步。首先為各并發(fā)進程設置私用信號量,然后為私用信號量賦初值,最后利用P,V原語和私用信號量規(guī)定各進程的執(zhí)行順序。

用P,V原語實現(xiàn)進程互斥設信號量sem是用于互斥的信號量,且其初值為1表示沒有并發(fā)進程使用該臨界區(qū)。顯然,由上面幾節(jié)的討論可知,只要把臨界區(qū)置于P(sem)和V(sem)之間,即可實現(xiàn)進程間的互斥。當一個進程想要進入臨界區(qū)時,它必須先執(zhí)行P原語操作以將信號量sem減1。在一個進程完成對臨界區(qū)的操作之后,它必須執(zhí)行V原語操作以釋放它所占用的臨界區(qū)。2.3.4進程通信

在單機系統(tǒng)中,進程間通信可分為4種形式:主從式會話式消息或郵箱機制共享存儲區(qū)方式消息緩沖機制發(fā)送進程和接收進程采用消息緩沖機制進行數(shù)據(jù)傳送時,發(fā)送進程在發(fā)送消息前,先在自己的內(nèi)存空間設置一個發(fā)送區(qū),把欲發(fā)送的消息填入其中,然后再用發(fā)送過程將其發(fā)送出去。接收進程則在接收消息之前,在自己的內(nèi)存空間內(nèi)設置相應的接收區(qū),然后用接收過程接收消息。由于消息緩沖機制中所使用的緩沖區(qū)為公用緩沖區(qū),使用消息緩沖機制傳送數(shù)據(jù)時,兩通信進程必須滿足如下條件:在發(fā)送進程把消息寫入緩沖區(qū)和把緩沖區(qū)掛入消息隊列時,應禁止其他進程對該緩沖區(qū)消息隊列的訪問。否則,將引起消息隊列的混亂。同理,當接收進程正從消息隊列中取消息緩沖時,也應禁止其他進程對該隊列的訪問。當緩沖區(qū)中無消息存在時,接收進程不能接收到任何消息。至于發(fā)送進程是否可以發(fā)送消息,則由發(fā)送進程是否申請到緩沖區(qū)決定。郵箱通信就是由發(fā)送進程申請建立一與接收進程鏈接的郵箱。發(fā)送進程把消息送往郵箱,接收進程從郵箱中取出消息,從而完成進程間信息交換。設置郵箱的最大好處就是發(fā)送進程和接收進程之間沒有處理時間上的限制。一個郵箱可考慮成發(fā)送進程與接收進程之間的大小固定的私有數(shù)據(jù)結(jié)構(gòu),它不像緩沖區(qū)那樣被系統(tǒng)內(nèi)所有進程共享。郵箱由郵箱頭和郵箱體組成。其中郵箱頭描述郵箱名稱、郵箱大小、郵箱方向以及擁有該郵箱的進程名等。郵箱體主要用來存放消息,如圖2.14所示。

圖2.14郵箱通信結(jié)構(gòu)2.4進程調(diào)度

進程調(diào)度的基本概念進程調(diào)度的類型進程調(diào)度的算法進程高度的基本概念在進程狀態(tài)的變化中,從就緒到運行的轉(zhuǎn)變是由一個專門的程序來完成的,該程序稱為進程調(diào)度程序。進程調(diào)度程序的具體功能如下:記錄系統(tǒng)中所有進程的狀態(tài)、優(yōu)先數(shù)和資源需求情況確定調(diào)度算法和調(diào)度方式分配處理器給某進程,完成處理器的切換進程調(diào)度的類型進程調(diào)度亦可稱為處理機調(diào)度,它協(xié)調(diào)和控制各進程對CPU的使用。一般來說,處理機調(diào)度可以分為4級:作業(yè)調(diào)度:又稱宏觀調(diào)度,或高級調(diào)度。其主要任務是按一定的原則對外存輸入井上的大量后備作業(yè)進行選擇,給選出的作業(yè)分配內(nèi)存、輸入輸出設備等必要的資源,并建立相應的進程,以使該作業(yè)的進程獲得競爭處理機的權(quán)利。另外,當該作業(yè)執(zhí)行完畢時,還負責回收系統(tǒng)資源。交換調(diào)度:又稱中級調(diào)度。其主要任務是按照給定的原則和策略,將處于外存交換區(qū)中的就緒狀態(tài)或就緒等待狀態(tài)的進程調(diào)入內(nèi)存,或把處于內(nèi)存就緒狀態(tài)或內(nèi)存等待狀態(tài)的進程交換到外存交換區(qū)。交換調(diào)度主要涉及到內(nèi)存管理與擴充。進程調(diào)度:又稱微觀調(diào)度或低級調(diào)度。其主要任務是按照某種策略和方法選取一個處于就緒狀態(tài)的進程占用處理機。在確定了占用處理機的進程后,系統(tǒng)必須進行進程上下文切換以建立與占用處理機進程相適應的執(zhí)行環(huán)境。線程調(diào)度。圖2.17作業(yè)的狀態(tài)及其轉(zhuǎn)換進程調(diào)度算法

先來先服務(FCFS)調(diào)度算法輪轉(zhuǎn)法(roundrobin)多級反饋輪轉(zhuǎn)法優(yōu)先級法最短作業(yè)優(yōu)先法(shortestjobfirst)最高響應比優(yōu)先法(highestresponserationext)2.5死鎖死鎖的概述死鎖的處理2.5.1死鎖的概述死鎖的定義:是指各并發(fā)進程彼此互相等待對方所擁有的資源,且這些并發(fā)進程在得到對方的資源之前不會釋放自己所擁有的資源。從而造成大家都想得到資源而又都得不到資源,各并發(fā)進程不能繼續(xù)向前推進的狀態(tài)。

圖2.21死鎖的概念死鎖的起因死鎖的起因是并發(fā)進程的資源競爭。產(chǎn)生死鎖的根本原因在于系統(tǒng)提供的資源個數(shù)少于并發(fā)進程所要求的該類資源數(shù)。顯然,由于資源的有限性,不可能為所有要求資源的進程無限制地提供資源。但是,可以采用適當?shù)馁Y源分配算法,以達到消除死鎖的目的。為此,先看看產(chǎn)生死鎖的必要條件。產(chǎn)生死鎖的必要條件互斥條件。并發(fā)進程所要求和占有的資源是不能同時被兩個以上進程使用或操作的,進程對它所需要的資源進行排他性控制。不剝奪條件。進程所獲得的資源在未使用完畢之前,不能被其他進程強行剝奪,而只能由獲得該資源的進程自己釋放。部分分配。進程每次申請它所需要的一部分資源,在等待新資源的同時繼續(xù)占用已分配到的資源。環(huán)路條件。存在一種進程循環(huán)鏈,鏈中每一個進程已獲得的資源同時被下一個進程所請求。顯然,只要使上述4個必要條件中的某一個不滿足,則死鎖就可以排除。

2.5.2死鎖的處理

死鎖預防一種方法是打破資源的互斥和不可剝奪這兩個條件,這種方法不能解決訪問那些不允許被同時訪問的資源時所帶來的死鎖問題。另一種方法則是打破資源的部分分配這個死鎖產(chǎn)生的必要條件。即預先分配各并發(fā)進程所需要的全部資源。死鎖避免的一種基本模式是把進程分為多個步,其中每個步所使用的資源是固定的,且在一個步內(nèi),進程所保持的資源數(shù)不變。即進程的資源請求、使用與釋放要依靠不同的步完成。死鎖的檢測和恢復當進程進行資源請求時死鎖檢測算法檢查并發(fā)進程組是否構(gòu)成資源的請求和保持環(huán)路。有限狀態(tài)轉(zhuǎn)移圖和petriNet等技術(shù)都可用來有效地判斷死鎖發(fā)生。死鎖的恢復辦法較多。最簡單的辦法是終止各鎖住進程,或按一定的順序中止進程序列,直至已釋放到有足夠的資源來完成剩下的進程時為止。另外,也可以從被鎖住進程強迫剝奪資源以解除死鎖。2.6線程線程的概念線程與進程的比較引入線程的優(yōu)點線程的概念:線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位。線程自己基本上不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源(如程序計數(shù)器、一組寄存器和棧),但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程;同一進程中的多個線程之間可以并發(fā)執(zhí)行。線程與進程的比較:進程是資源分配的基本單位。進程也是搶占處理機的調(diào)度單位,它擁有一個完整的虛擬地址空間。與進程相對應,線程與資源分配無關,它屬于某一個進程,并與進程內(nèi)的其他線程一起共享進程的資源。再者,當進程發(fā)生調(diào)度時,不同的進程擁有不同的虛擬地址空間,而同一進程內(nèi)的不同線程共享同一地址空間。線程的適用范圍并不是在所有的計算機系統(tǒng)中線程都是適用的。事實上在那些很少做進程調(diào)度和切換的實時系統(tǒng)、個人數(shù)字助理系統(tǒng)中,由于任務的單一性,設置線程相反會占用更多的內(nèi)存空間和寄存器。使用線程的最大好處是在有多個任務需要處理機處理時,減少處理機的切換時間,而且線程的創(chuàng)建和結(jié)束所需要的系統(tǒng)開銷也比進程的創(chuàng)建和結(jié)束要小得多。由此,可以推出最適合使用線程的系統(tǒng)是多處理機系統(tǒng)。在多處理機系統(tǒng)中,同一用戶程序可以根據(jù)不同的功能劃分為不同的線程,放在不同的處理機上執(zhí)行。線程的執(zhí)行特性線程在執(zhí)行時也有它的相關特性。線程的狀態(tài)和同步用來反映線程的這些特性。線程有3個基本狀態(tài),即執(zhí)行、就緒和阻塞。但是線程沒有進程中的掛起狀態(tài)。也就是說,線程是一個只與內(nèi)存和寄存器相關的概念,它的內(nèi)容不會因交換而進入外存。線程的另一個執(zhí)行特性是同步。由于同一進程中的所有線程共享該進程的所有資源和地址空間,任何線程對資源的操作都會對其他相關線程帶來影響。因此,系統(tǒng)必須為線程的執(zhí)行提供同步控制機制,以防止因線程的執(zhí)行而破壞其他的數(shù)據(jù)結(jié)構(gòu)和給其他線程帶來不利的影響。線程中所使用的同步控制機制與進程中所使用的同步控制機制相同。因此,這里不再進一步講述有關線程的同步問題線程的兩個基本類型是:用戶級線程和系統(tǒng)級線程(核心級線型)。用戶級線程的管理過程全部由用戶程序完成,操作系統(tǒng)內(nèi)核只對進程進行管理核心級線程由操作系統(tǒng)內(nèi)核進行管理。2.7WindowsServer2003進程管理

WindowsServer2003的結(jié)構(gòu)WindowsServer2003是基于NT技術(shù)開發(fā)的32位操作系統(tǒng),采用32位內(nèi)核進行系統(tǒng)調(diào)度和內(nèi)存管理,其結(jié)構(gòu)是一種模塊化的層次系統(tǒng)結(jié)構(gòu),主要層次包括:硬件抽象層、內(nèi)核、執(zhí)行體和子系統(tǒng)集。它提供了四個主要功能:線程調(diào)度、陷阱調(diào)度處理和異常處理、多處理機同步、為執(zhí)行體提供內(nèi)核對象。windowsserver2003中的進程windowsserver2003中的每個Win32進程都由一個執(zhí)行體進程塊表示。執(zhí)行體進程塊描述進程的基本信息,并指向其他與進程控制相關的數(shù)據(jù)結(jié)構(gòu)。執(zhí)行體進程塊中的主要內(nèi)容包括:線程塊列表:描述屬于該進程的所有線程的相關信息,以便線程調(diào)度程序進行處理器資源的分配和回收虛擬地址空間描述表:描述進程地址空間各部分屬性,用于虛擬存儲管理。對象句柄列表:當進程創(chuàng)建或打開一個對象時,就會得到一個代表該對象的句柄,用于對象訪問,對象句柄列表維護該項進程正在訪問的所有對象列表。

windowsserver2003中的線程在windowsserver2003中,系統(tǒng)的處理器調(diào)度對象為線程。windowsserver2003把線程狀態(tài)分為以下七種。就緒狀態(tài):線程已獲得除處理器外的所需資源,正等待CPU的處理。備用狀態(tài):已選擇好線程的執(zhí)行處理器,正等待描述表切換,以進入運行狀態(tài)。系統(tǒng)中每個處理器上只能有一個處于備用狀態(tài)的線程。運行狀態(tài):已完成描述表切換,線程進入運行狀態(tài)。線程會一直處于運行,直到被剝奪CPU、時間片用完、線程終止或進入等待狀態(tài)。等待狀態(tài):線程正等待某對象,以同步線程的執(zhí)行。當?shù)却氖录霈F(xiàn)時,結(jié)束等待,并進入就緒狀態(tài)。轉(zhuǎn)換狀態(tài):轉(zhuǎn)換狀態(tài)與就緒狀態(tài)類似,但線程的內(nèi)核堆棧位于外存。當線程等待事件出現(xiàn),而它的內(nèi)核堆棧處于外存時,線程進入轉(zhuǎn)換狀態(tài),當線程內(nèi)核堆棧被調(diào)回內(nèi)存時,線程進入就緒狀態(tài)。終止狀態(tài):線程執(zhí)行完就進入終止狀態(tài)。初始化狀態(tài):線程處于創(chuàng)建過程時的狀態(tài)。WindowsServer2003的線程調(diào)度windowsserver2003中,處理器調(diào)度的調(diào)度對象是線程,并且所采用的調(diào)度策略是優(yōu)先級和時間片算法結(jié)合?;舅枷胧腔趧討B(tài)優(yōu)先級的搶占式調(diào)度,當一個線程被調(diào)度而進入運行狀態(tài)時,可運行一個被稱為時間配額的時間片。時間配額是windowsserver2003中允許一個線程連續(xù)運行的最大時間長度,時間片的時間到,中斷該線程的執(zhí)行,系統(tǒng)會判斷是否需要降低該線程的優(yōu)先級,并查找有否其他高優(yōu)先級或同等優(yōu)先級的就緒線程。由于系統(tǒng)采用了搶占式調(diào)度方式,所以有可能在一個線程時間配額沒有用完時,被進入就緒狀態(tài)的更高優(yōu)先級別的線程搶占CPU。

主要內(nèi)容:存儲器是計算機系統(tǒng)的重要資源之一。本章主要從基本原理、地址轉(zhuǎn)換、分配與回收等幾方面介紹三種常用存儲管理方式的使用,以及虛擬存儲器的意義。并且涉及到了覆蓋、交換、拼接等常用技術(shù)。

學習任務:3.1存儲管理概述3.2連續(xù)分配存儲管理3.3離散分配存儲管理3.4虛擬存儲管理3.5WindowsServer2003存儲管理

第3章存儲管理

3.1存儲管理概述

3.1.1存儲管理的任務和功能

存儲管理的任務

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

存儲管理的功能

存儲管理應實現(xiàn)如下功能:1.存儲分配的功能:2.地址變換的功能:3.“擴充”主存容量的功能:4.存儲保護的功能:3.1.2存儲管理的方式

由于存儲管理主要是對內(nèi)存進行管理,所以根據(jù)管理的方式不同可分為:

1.連續(xù)分配存儲管理

(1)單一連續(xù)分配存儲管理

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

(3)可變分區(qū)存儲管理

2.離散分配存儲管理

(1)頁式存儲管理

(2)段式存儲管理

(3)段頁式存儲管理

3.虛擬存儲管理

(1)請求分頁存儲管理

(2)請求分段存儲管理3.1.3地址重定位

程序的裝入

程序的運行必須先創(chuàng)建一個進程,創(chuàng)建進程的首要任務是將其所對應的程序和數(shù)據(jù)裝入內(nèi)存。將一個用戶的源程序變?yōu)榭稍趦?nèi)存中執(zhí)行的程序需要經(jīng)過:編譯、鏈接、裝入等幾步。

1.編譯:編譯程序可將用戶的源文件編譯成若干個目標模塊。

2.鏈接:由鏈接程序?qū)⒕幾g后形成的一組目標模塊,以及它們所需要的庫函數(shù)鏈接在一起,形成完整的裝入模塊。

3.裝入:由裝入程序?qū)⑿枰b入的模塊裝入內(nèi)存中。

存儲空間

1.邏輯地址(相對地址):.由于用戶在編程時無法預知程序會在內(nèi)存中的位置,所以無法直接使用內(nèi)存地址,于是用戶以0為起點來安排程序指令和數(shù)據(jù)。每條程序指令要訪問的數(shù)據(jù)都有一個對應的地址,這個地址稱為邏輯地址。由于它是相對于0的地址,又稱相對地址、虛地址。2.邏輯地址空間(相對地址空間):每一個完整的用戶作業(yè)都存在著一定的邏輯地址,這些地址形成一個范圍,用戶程序、數(shù)據(jù)、工作區(qū)都包含在該范圍之內(nèi),這就是邏輯地址空間。也就是說邏輯地址空間就是邏輯地址的集合。用戶可以直接對邏輯地址和邏輯地址空間進行訪問和操作。邏輯地址空間又稱為相對地址空間、用戶空間或作業(yè)空間。其大小位于0到邏輯地址最大值之間。3.物理地址(絕對地址):程序(模塊)在內(nèi)存中的實際地址稱為物理地址,又稱絕對地址、實地址。物理地址從0開始,最大值取決于內(nèi)存的大小和內(nèi)存地址寄存器的最大值,二者中較小的那個值為其最大值。4.物理地址空間(絕對地址空間):當作業(yè)進入主存時,其占有的內(nèi)存空間就是物理地址空間,也就是說:當邏輯地址空間被映射到內(nèi)存時所對應的物理地址的集合就是物理地址空間,也稱絕對地址空間。只有當邏輯地址空間存在時,才會有物理地址空間。其最大只能達到內(nèi)存的大小。當然,還要考慮地址空間寄存器的大小。

地址重定位

一個作業(yè)在裝入時分配到的存儲空間和它的地址空間是不一致的。因此,作業(yè)在運行時其CPU所要訪問的指令、數(shù)據(jù)的實際地址和地址空間中的地址是不同的。顯然,如果在作業(yè)執(zhí)行時不對有關的地址進行對應的修改,將導致錯誤的結(jié)果。這是由于一個作業(yè)裝入到與其地址空間不一致的存儲空間所引起的,關于地址改變的過程稱為地址重定位。這是一個變換過程,我們把作業(yè)地址空間中使用的邏輯地址變換成主存中物理地址的過程稱為地址映射。重定位方法:絕對地址=基址+相對地址注:基址是指令在內(nèi)存中的起始地址,也叫始址。其通常存于基址寄存器中。根據(jù)地址變換進行的時間及采用技術(shù)手段的不同,可以把重定位分為靜態(tài)重定位和動態(tài)重定位。1.靜態(tài)重定位(1)定義:靜態(tài)重定位是在程序裝入內(nèi)存后運行前將程序中的所有邏輯地址轉(zhuǎn)換為物理地址,在程序運行過程中不再修改。如圖3.2所示邏輯地址空間重定位MOV[nn]MOV[nn+n]0nn+MM物理地址空間圖3.2靜態(tài)重定位(2)主要優(yōu)點:容易實現(xiàn),無需增加硬件地址變換機構(gòu),只要求為每個程序分配一個連續(xù)的存儲區(qū),由于程序在執(zhí)行期間不能移動,所以不能共享程序和數(shù)據(jù),因而可在一般計算機上實現(xiàn)。(3)主要缺點:①由于要給每個作業(yè)分配連續(xù)的存儲空間,且在作業(yè)的整個執(zhí)行期間不能再移動,因而也就不能實現(xiàn)重新分配主存。不利于主存空間的充分利用。②用戶必須事先確定所需的存儲量,若所需的存儲量超過可用存儲空間,用戶必須考慮覆蓋結(jié)構(gòu)。③用戶之間難以共享主存中的同一程序副本。2.動態(tài)重定位(1)定義:動態(tài)重定位是在程序的運行過程中,當指令需要執(zhí)行時對將要訪問的地址進行修改。修改過程見圖3.3(舉實例說明)。(2)主要優(yōu)點:①用戶作業(yè)不要求分配連續(xù)的存儲空間。②用戶作業(yè)在執(zhí)行過程中,可以動態(tài)申請存儲空間和在主存中移動。③有利于程序段的共享。(3)主要缺點:①需要附加硬件支持。②實現(xiàn)存儲管理的軟件算法比較復雜。

與靜態(tài)重定位相比較,動態(tài)重定位的優(yōu)點是非常明顯的,且現(xiàn)在的計算機在不同程度上都提供有動態(tài)重定位所需的硬件支持,因此動態(tài)重定位方法得到了普遍應用。

1000邏輯地址空oadB500123500LoadB5001231000+基址寄存器邏輯地址物理地址空間圖3.3動態(tài)重定位3.1.4虛擬存儲器

虛擬存儲器是一種存儲管理技術(shù),能夠完成用小的內(nèi)存實現(xiàn)在大的虛擬空間中程序的運行工作。內(nèi)存在計算機中的作用很大,計算機中所有運行的程序都需要經(jīng)過內(nèi)存進行存儲,如果存儲的程序太大或太多,就會導致內(nèi)存消耗殆盡。為了解決這個問題,Windows中運用了虛擬內(nèi)存技術(shù),即拿出一部分硬盤空間來充當內(nèi)存使用,當內(nèi)存占用完時,電腦就會自動調(diào)用硬盤空間來充當內(nèi)存,以緩解內(nèi)存的緊張。即一個大作業(yè)在執(zhí)行時,其一部分地址空間在主存,另一部分在輔存。因此,從效果來看,這樣的系統(tǒng)好像提供了存儲容量比實際主存大得多的存儲器,人們稱這樣的存儲器為虛擬存儲器。一個虛擬存儲器的最大容量是由計算機的地址結(jié)構(gòu)確定的。若CPU給出的有效地址長度為18位,可以尋址范圍為:0—256K。

3.1.5覆蓋與交換

內(nèi)存管理要求用戶作業(yè)一次性裝入內(nèi)存,如果作業(yè)的存儲需求遠遠大于系統(tǒng)提供的整個用戶區(qū),該作業(yè)就無法投入運行,所以內(nèi)存管理要解決小內(nèi)存運行大作業(yè)的問題。覆蓋與交換是在多道環(huán)境下用來擴充內(nèi)存的兩種方法。

覆蓋覆蓋技術(shù)是一種解決小內(nèi)存運行大作業(yè)的方法。在單道系統(tǒng)中,每一時刻只能執(zhí)行一條指令,而事實上一個作業(yè)中若干程序段和數(shù)據(jù)段可以不同時使用。因此,可以把程序劃分為若干個功能上相對獨立的程序段,按照程序的邏輯結(jié)構(gòu)讓那些不會同時執(zhí)行的程序段共享同一塊內(nèi)存區(qū)。一般情況下,這些程序段都被保存在外存中,當一部分程序段執(zhí)行結(jié)束后,再把另一程序段調(diào)入內(nèi)存覆蓋前面的程序段。這就使得用戶看來好像內(nèi)存擴大了,從而達到了擴充內(nèi)存的目的。覆蓋技術(shù)是一種早期的主存擴充的方式,不能實現(xiàn)虛擬存儲器。

交換多道程序環(huán)境下可同時執(zhí)行幾個作業(yè),但是,這些同時存在于內(nèi)存中的作業(yè),有的處于執(zhí)行狀態(tài),有的則處于等待狀態(tài),一般來說,等待時間會比較長。讓這些等待中的進程繼續(xù)駐留內(nèi)存,將會造成存儲空間的浪費。因此,應該把它們換出內(nèi)存。交換技術(shù)就是把暫時不用的某個程序及數(shù)據(jù)部分(或全部)從內(nèi)存移到外存中去,以便騰出必要的內(nèi)存空間;或把指定的程序或數(shù)據(jù)從外存讀到相應的內(nèi)存中,并將控制權(quán)轉(zhuǎn)給它,讓其在系統(tǒng)上運行的一種內(nèi)存擴充技術(shù)。交換進程由換出和換入兩個過程組成,換出是把內(nèi)存中的數(shù)據(jù)和程序換到外存的交換區(qū),而換入則是把外存交換區(qū)的數(shù)據(jù)和程序換到內(nèi)存中。

3.1.6分區(qū)的存儲保護存儲保護是為了防止一個作業(yè)破壞操作系統(tǒng)或其他作業(yè)。常用的存儲保護方法有界限寄存器(包括上、下界寄存器保護法和基址、限長寄存器保護法)和存儲保護鍵方法。1.上、下界寄存器保護法:上界寄存器≤物理地址≤下界寄存器,如超出這個范圍便產(chǎn)生保護性中斷。2.基址、限長寄存器保護法:

基址寄存器≤物理地址≤基址寄存器+限長寄存器,如果超過了限長,則發(fā)出越界中斷信號,并停止作業(yè)的運行。3.存儲保護鍵方法:

系統(tǒng)為每個分區(qū)設一個保護鍵,在程序狀態(tài)字中也設同樣的保護鍵字段,訪問內(nèi)存時檢查鍵的配對情況,如果不匹配則產(chǎn)生保護性中斷。3.2連續(xù)分配存儲管理

3.2.1單一連續(xù)分配存儲管理

單一連續(xù)分配存儲管理基本原理單一連續(xù)分配存儲管理是一種最簡單的存儲管理方式,它只能用于單用戶、單任務的操作系統(tǒng),如在8位和16位微機上CP/M和MS-DOS操作系統(tǒng)。它將內(nèi)存分為兩個區(qū):

①系統(tǒng)區(qū):僅供操作系統(tǒng)使用的主存區(qū),通常設置在內(nèi)存的低地址部分;②用戶區(qū):指除系統(tǒng)區(qū)以外的全部內(nèi)存空間,提供給用戶使用。

存儲空間的分配與釋放內(nèi)存中只有一個用戶可用區(qū)域,當一個作業(yè)申請內(nèi)存空間時,分配程序?qū)⒆鳂I(yè)的大小與內(nèi)存中用戶可用區(qū)域進行比較,如果作業(yè)申請的區(qū)域小于用戶可用區(qū),則進行正常分配,否則提示用戶內(nèi)存不夠無法分配。而作業(yè)一旦進入內(nèi)存,就要等到它執(zhí)行結(jié)束后才能釋放內(nèi)存。因此這種分配方式不支持虛擬存儲器的實現(xiàn)。

地址變換采用靜態(tài)重定位的方式。即作業(yè)在裝入時就一次性對所有指令將要訪問的地址進行修改。

存儲保護采用界地址寄存器保護法。其中,基址寄存器的內(nèi)容是作業(yè)進入內(nèi)存后的首地址,長度寄存器的內(nèi)容是用戶可用區(qū)的長度。

單一連續(xù)分配的主要特點單一連續(xù)分配方式管理簡單,只需要很少的軟件和硬件支持,且便于用戶了解和使用。采用這種存儲分配方式,由于內(nèi)存中只裝入一道作業(yè)運行,從而使各類資源的利用率都不高,容易造成系統(tǒng)資源的浪費。

3.2.2固定分區(qū)(靜態(tài)分區(qū))存儲管理

固定分區(qū)存儲管理基本原理固定式分區(qū)是在作業(yè)裝入之前,內(nèi)存就被劃分成若干個分區(qū)。劃分工作可以由系統(tǒng)管理員完成,也可以由操作系統(tǒng)實現(xiàn)。然而一旦劃分完成,在系統(tǒng)運行期間不再重新劃分,即分區(qū)的個數(shù)不可變,分區(qū)的大小不可變,所以,固定式分區(qū)又稱為靜態(tài)分區(qū)。這種分區(qū)方式一般將內(nèi)存的用戶區(qū)劃分成大小不等的區(qū)域,以適應不同大小的作業(yè)需要。

內(nèi)存分配表用于固定分區(qū)管理的內(nèi)存分配表是一張分區(qū)分配表,按順序每個分區(qū)在分區(qū)分配表中對應一個表目。表目內(nèi)容包括分區(qū)號、分區(qū)大小、分區(qū)起始地址以及使用狀態(tài)。一個程序在運行時,先要根據(jù)其對內(nèi)存的需求量,按一定的分配策略在分區(qū)分配表中查找空閑分區(qū)。若找到需要的分區(qū),就將該分區(qū)分配給程序,并將該分區(qū)分配表中對應的分區(qū)狀態(tài)重新置為空閑狀態(tài)(通常用0表示)。見圖3.5區(qū)號大小始址狀態(tài)120K40K已分240K60K已分380K100K未分4160K180K已分5320K340K未分圖3.5分區(qū)分配表

存儲空間的分配與釋放由于內(nèi)存中存在著不止一個空閑區(qū),因此在給作業(yè)分配內(nèi)存時應有所選擇,可以采用分配算法來分配。常用的分配算法有最佳適應算法、首次適應算法、循環(huán)首次適應算法、最壞適應算法。

地址變換由于作業(yè)被分配進入內(nèi)存后位置不再發(fā)生變化,因此,地址轉(zhuǎn)換可以采用靜態(tài)重定位方法。對每一個作業(yè)進行重定位時要修正基址寄存器的值。

存儲保護存儲保護可以采用界地址寄存器保護方式。

固定分區(qū)存儲的特點

(1)優(yōu)點:固定分區(qū)實現(xiàn)技術(shù)簡單,適用于作業(yè)的大小事先清楚的系統(tǒng)中。

(2)缺點:內(nèi)存的利用率不高,當程序大小小于分區(qū)的大小將會產(chǎn)生一部分非常小的空閑區(qū),這部分空閑區(qū)不可再利用,所以說“零頭”空間不能充分利用。3.2.3可變分區(qū)(動態(tài)分區(qū))存儲管理

可變分區(qū)存儲管理基本原理可變分區(qū)是指在作業(yè)裝入內(nèi)存時,從可用的內(nèi)存中劃出一塊連續(xù)的區(qū)域分配給它,且分區(qū)大小正好等于該作業(yè)的大小。這種存儲管理技術(shù)是固定分區(qū)的改進,既可以獲得較大的靈活性,又能提高內(nèi)存的利用率。

可變分區(qū)采用的數(shù)據(jù)結(jié)構(gòu)

(1)已使用分區(qū)表:描述已被分配的區(qū)域

(2)空閑分區(qū)表:描述內(nèi)存中的空閑區(qū)域,分區(qū)表中的空閑分區(qū)記錄以地址遞增的順序排列。

可變分區(qū)的分配和回收分配時首先找到一個足夠大的空閑分區(qū),即這個空閑區(qū)的大小比作業(yè)要求的要大,系統(tǒng)則將這個空閑分區(qū)分成兩部分:一部分成為已分配的分區(qū),剩余的部分仍作為空閑區(qū)。在回收作業(yè)所使用的分區(qū)時,要檢查回收的分區(qū)是否與前后空閑的分區(qū)相鄰接,若是則加以合并,使之成為一個連續(xù)的大空間。

1.常用分配算法(1)最佳適應算法:空閑分區(qū)表中的空閑分區(qū)要按分區(qū)大小從小到大的進行排序,自表頭開始查找到第一個滿足要求的空閑分區(qū),然后進行分配。(2)首次適應算法:空閑分區(qū)表中的空閑分區(qū)要按地址由低到高進行排序。(3)循環(huán)首次適應算法:

(4)最壞適應法:空閑分區(qū)按大小由大到小排序,每次查找從表頭開始。

2.可變分區(qū)的回收修改情況分以下四種:

(1)要回收區(qū)上、下都沒有相鄰的空閑分區(qū)在空閑分區(qū)表中追加一個空閑分區(qū),其始址和大小即為回收區(qū)的始址和大小。原空閑區(qū)的個數(shù)加1。

(2)要回收區(qū)上方有相鄰的空閑區(qū)在空閑分區(qū)表中找到這個空閑區(qū),修改其始址和大小,始址為仍為原空閑區(qū)的始址,大小為空閑區(qū)與回收區(qū)的大小之和。原空閑區(qū)的個數(shù)不變。

(3)要回收區(qū)下方有相鄰的空閑區(qū)在空閑分區(qū)表中找到這個空閑區(qū),修改其始址和大小,始址為回收區(qū)的始址,大小為回收區(qū)的大小與空閑區(qū)的大小之和。原空閑區(qū)的個數(shù)不變。

(4)要回收區(qū)上、下都有相鄰的空閑分區(qū)在空閑分區(qū)表中找到這兩個空閑區(qū),修改上面相鄰的空閑區(qū)大小,其始址不變。大小改為相鄰兩個空閑區(qū)和回收區(qū)的大小總和。然后從空閑分區(qū)表中刪除后一個相鄰空閑區(qū)的記錄。同時,原空閑區(qū)的個數(shù)減1

地址轉(zhuǎn)換可變分區(qū)采用動態(tài)重定位方式來實現(xiàn)地址映射,這樣即使作業(yè)的首地址發(fā)生變化也不會影響其執(zhí)行。當作業(yè)被選擇運行時,其物理空間起始地址被裝入基址寄存器中,CPU每執(zhí)行一條指令之前重定位硬件對指令要訪問的地址進行修改。

存儲保護

存儲保護采用界地址寄存器保護法,即基址、限長寄存器保護法。系統(tǒng)調(diào)用作業(yè)時先查找內(nèi)存分配表,找到所分配的分區(qū)始址,計算出其物理地址所對應的絕對地址,執(zhí)行一條有關地址的指令,由硬件檢查是否越界,決定繼續(xù)訪問或產(chǎn)生越界中斷處理。具體過程見圖3.8

可變分區(qū)的特點可變分區(qū)使多道程序得以提高,從而提高了內(nèi)存的利用率,但作業(yè)的大小仍然受內(nèi)存容量的限制,會使內(nèi)存產(chǎn)生一些不可再利用的空間。

分區(qū)的始址分區(qū)的終址CPU基址寄存器限長寄存器內(nèi)存+>否是越界中斷邏輯地址物理地址圖3.8可變分區(qū)存儲管理的地址轉(zhuǎn)換3.2.4碎片與拼接技術(shù)

碎片(零頭)在分區(qū)分配方式中經(jīng)過不斷地分配和釋放后,內(nèi)存中空閑分區(qū)會變得越來越多和越來越小,產(chǎn)生了許多碎片。所謂碎片是指內(nèi)存中出現(xiàn)的一些零散的小空閑區(qū)域。由于碎片都很小,故無法再利用。如果內(nèi)存中碎片很多,將會造成嚴重的存儲資源浪費。

拼接(緊湊/緊縮/移動)技術(shù)碎片產(chǎn)生后應及時解決。解決碎片的方法是移動所有的占用區(qū)域,使所有的空閑區(qū)合并成一片連續(xù)區(qū)域,這一技術(shù)稱為移動技術(shù)(拼接)。移動技術(shù)可解決碎片問題,從而提高內(nèi)存的利用率移動技術(shù)可以集中分散的空閑區(qū),便于作業(yè)動態(tài)擴充內(nèi)存3.3離散分配存儲管理

根據(jù)前面的介紹,連續(xù)分配方式會形成許多“碎片”,即使通過“緊湊”方法將碎片拼接成可用的大塊空間,但須為此付出很大開銷。如果將一個進程直接分散到若干個不相鄰的分區(qū)中,就可以不再進行“緊湊”,于是基于這個思想就產(chǎn)生了離散分配存儲管理方式。根據(jù)離散分配時所用基本單位的不同,又可把離散分配方式分以下三種:1.頁式存儲管理2.段式存儲管理3.段頁式存儲管理

3.3.1頁式存儲管理分區(qū)存儲管理方法最大的問題是要求必須把作業(yè)放在一個連續(xù)的存儲區(qū)域中,這樣就會產(chǎn)生“碎片”問題。盡管通過某種方法可以解決這一問題,可將會產(chǎn)生很大代價。而頁式存儲管理可以很好地解決這個問題。

頁式存儲管理的實現(xiàn)思想

1.將用戶作業(yè)的地址空間劃分成若干大小相等的區(qū)域,稱為頁或頁面;

2.將主存空間劃分為與“頁”大小相同的若干區(qū)域,稱為塊或物理塊;

3.操作系統(tǒng)為某作業(yè)分配內(nèi)存空間時,總是以塊為單位來分配,可以將作業(yè)中的任何一頁放到主存中的任意一塊中;

4.在調(diào)度作業(yè)運行時,必須將它的所有頁面一次性調(diào)入內(nèi)存中;若內(nèi)存中無足夠的物理塊,則其必須等待。

頁式存儲的數(shù)據(jù)結(jié)構(gòu)1.頁面和頁框在分頁存儲管理方式中,每一個進程的邏輯地址空間被分成若干個大小相等的片,這些片成為頁面或頁。相應的,主存空間也被分成和頁同樣大小的若干個存儲塊,稱為物理塊或頁框(Frame),如圖3.9所示,在為進程分配內(nèi)存時,以塊為單位給每頁分配一個物理塊,將進程中的若干頁分別裝入若干個不相鄰的塊中,由于頁的大小與塊的大小相同,這樣可以有效地消除零頭。在某些特殊情況下,進程的最后一頁常常裝不滿一塊,而形成不可利用的碎片,稱為“頁內(nèi)碎片”。2.頁表(PageTable)

系統(tǒng)為每個作業(yè)(進程)建立一張頁表,頁表放在內(nèi)存中。作業(yè)地址空間的每一頁與頁表中的一個表項對應,其中記錄了相應頁在內(nèi)存中對應的物理塊號。在頁表的表項中增加一個存取控制字段,當存取字段只有一位時,規(guī)定其內(nèi)容是允許讀/寫、還是只讀;當存取字段為二位時,則可以規(guī)定為讀/寫、只讀或只執(zhí)行。如果程序的操作與存取字段中的內(nèi)容不相符,則引起操作系統(tǒng)的一次中斷,從而實現(xiàn)保護。0123456789…第0頁第1頁第2頁……第n頁用戶作業(yè)02427…………頁表頁號塊號內(nèi)存物理塊圖3.9頁表作用示意圖塊號3.邏輯地址結(jié)構(gòu)邏輯地址由頁號P和頁內(nèi)地址W兩部分組成,圖3.10頁式存儲管理中的邏輯地址結(jié)構(gòu)3112110

頁號P頁內(nèi)位移W

圖中,兩部分的地址長度共為32位,其中0-11位為頁內(nèi)地址,即每頁的大小為4KB;12--31位為頁號,地址空間最多允許有1MB頁。對于某特定的機器,其地址結(jié)構(gòu)是一定的,若給定地

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論