版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)的功能處理機(jī)管理 存儲(chǔ)管理 設(shè)備管理 文件管理(無大題) 用戶接口(無大題)功能一、處理機(jī)管理完成處理機(jī)資源的分配調(diào)度等功能,單位可為進(jìn)程。進(jìn)程控制:創(chuàng)建、撤銷、改變進(jìn)程的狀態(tài)進(jìn)程調(diào)度:作業(yè)和進(jìn)程的運(yùn)行切換,以充分利用處理機(jī)資源和提高系統(tǒng)性能;(未必是進(jìn)程控制操作所引起,例如時(shí)間片輪轉(zhuǎn)、I/O操作)進(jìn)程同步:協(xié)調(diào)并發(fā)進(jìn)程之間的推進(jìn)步驟,以協(xié)調(diào)資源共享;(交換信息能力弱)進(jìn)程通信:進(jìn)程之間傳送數(shù)據(jù),以協(xié)調(diào)進(jìn)程間的協(xié)作;(交換信息能力強(qiáng),也可以用來協(xié)調(diào)進(jìn)程之間的推進(jìn))并發(fā)與并行概念并發(fā):兩個(gè)或多個(gè)事件在同一時(shí)間間隔內(nèi)發(fā)生;并行:兩個(gè)或多個(gè)事件在同一時(shí)刻內(nèi)發(fā)生處理機(jī)管理單道與多道資源利用率進(jìn)
2、程與程序的區(qū)別進(jìn)程-動(dòng)態(tài),程序-靜態(tài):作為程序的執(zhí)行,進(jìn)程通常不可在計(jì)算機(jī)之間遷移;作為有序代碼集合,程序?qū)?yīng)的文件是靜態(tài)的和可復(fù)制的。進(jìn)程與程序的組成不同:進(jìn)程的組成包括程序、數(shù)據(jù)和進(jìn)程控制塊(即進(jìn)程狀態(tài)信息)。進(jìn)程能真實(shí)描述并發(fā)執(zhí)行,程序不能:進(jìn)程是獨(dú)立調(diào)度并能和其他進(jìn)程并行執(zhí)行的單位進(jìn)程可以創(chuàng)建其它進(jìn)程,而程序不能;進(jìn)程是暫時(shí)的,程序是永久的:進(jìn)程是一個(gè)狀態(tài)變化的過程,程序可長久保存。進(jìn)程與程序的對(duì)應(yīng)關(guān)系:通過多次執(zhí)行,一個(gè)程序可對(duì)應(yīng)多個(gè)進(jìn)程;通過調(diào)用關(guān)系,一個(gè)進(jìn)程可包括多個(gè)程序。進(jìn)程的組成,基本狀態(tài),三狀態(tài)模型,五狀態(tài)模型進(jìn)程的組成(代碼+PCB+數(shù)據(jù))狀態(tài)運(yùn)行狀態(tài)(Running):
3、占用處理機(jī)資源;暫停狀態(tài)(Not-Running):等待進(jìn)程調(diào)度分配處理機(jī)資源;轉(zhuǎn)換進(jìn)程創(chuàng)建(Enter):系統(tǒng)創(chuàng)建進(jìn)程,形成PCB,分配所需資源,排入暫停進(jìn)程表(可為一個(gè)隊(duì)列);調(diào)度運(yùn)行(Dispatch):從暫停進(jìn)程表中選擇一個(gè)進(jìn)程(要求已完成I/O操作),進(jìn)入運(yùn)行狀態(tài);暫停運(yùn)行(Pause):用完時(shí)間片或啟動(dòng)I/O操作后,放棄處理機(jī),進(jìn)入暫停進(jìn)程表;進(jìn)程結(jié)束(Exit):進(jìn)程運(yùn)行中止;三狀態(tài)模型運(yùn)行和暫停對(duì)應(yīng)的兩狀態(tài)模型無法區(qū)分暫停進(jìn)程表中的就緒和阻塞,運(yùn)行、就緒和阻塞三狀態(tài)模型就是對(duì)暫停狀態(tài)的細(xì)化。就緒態(tài)(Ready): 一個(gè)進(jìn)程已經(jīng)具備運(yùn)行條件,但由于無CPU暫時(shí)不能運(yùn)行的狀態(tài)(當(dāng)調(diào)
4、度給其CPU時(shí),立即可以運(yùn)行)運(yùn)行態(tài)(Running)-執(zhí)行: 當(dāng)進(jìn)程已分配到除CPU以外的所有必要資源時(shí),它便處于就緒狀態(tài),一旦獲得CPU,便立即執(zhí)行。阻塞態(tài)(Blocked): 指進(jìn)程因等待某種事件的發(fā)生而暫時(shí)不能運(yùn)行的狀態(tài)。五狀態(tài)模型-掛起狀態(tài)的加入單純的阻塞狀態(tài)和就緒狀態(tài)在實(shí)際系統(tǒng)當(dāng)中并不是很符合需求。原因如下: (1) 終端用戶的請(qǐng)求:比如,用戶希望進(jìn)程等待一定時(shí)間在執(zhí)行。 (2) 父進(jìn)程請(qǐng)求:比如,程序的設(shè)計(jì)要求父進(jìn)程能決定子進(jìn)程的執(zhí)行狀態(tài)。 (3) 負(fù)荷調(diào)節(jié)的需要:比如,進(jìn)程需要長時(shí)間等待,那操作系統(tǒng)就不希望在進(jìn)程調(diào)度時(shí)被干擾。 (4) 操作系統(tǒng)的需要:比如,某些設(shè)備在相當(dāng)長的時(shí)
5、間內(nèi)不能被用戶進(jìn)程使用。進(jìn)程控制塊和進(jìn)程控制塊的組織方式進(jìn)程控制塊(PCB)一個(gè)專門的數(shù)據(jù)結(jié)構(gòu)目的:系統(tǒng)管理和設(shè)置進(jìn)程。內(nèi)容:描述該進(jìn)程情況和控制進(jìn)程運(yùn)行所需的全部信息。特征:進(jìn)程與PCB是一一對(duì)應(yīng)的特征:OS中存在PCB表,其能存放PCB總數(shù)受到限制。特征:P處于OS核心中,程序不能直接操作,一般需要利用系統(tǒng)調(diào)用來操作。目前常用的組織方式有以下兩種: 按鏈接方式組織PCB (隊(duì)列) 不同狀態(tài)進(jìn)程分別組成隊(duì)列:運(yùn)行隊(duì)列、就緒隊(duì)列、等待隊(duì)列 具有相同狀態(tài)的PCB用其中的鏈接字,鏈接成一個(gè)隊(duì)列。按索引方式組織PCB (表) 對(duì)具有相同狀態(tài)的進(jìn)程,分別設(shè)置各自的PCB索引表,表明PCB在PCB表中的
6、地址其他方式:線性表或鏈表原語在操作系統(tǒng)中,某些調(diào)用操作具有不可中斷的需要,否則就會(huì)引發(fā)操作錯(cuò)誤,并造成系統(tǒng)混亂。原語:是由若干條機(jī)器指令構(gòu)成的用于完成特定功能的一段程序。不可分割或不可中斷(斷電等高級(jí)中斷例外)是原語的根本屬性,即原子操作。實(shí)現(xiàn)某個(gè)特定功能是原語的需求,例如建立和撤消原語、改變進(jìn)程狀態(tài)原語、實(shí)現(xiàn)進(jìn)程同步和通信的原語等。線程的概念以及和進(jìn)程的區(qū)別線程的基本概念:線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度的基本單位。線程自己基本上不擁有系統(tǒng)資源,只留有幾個(gè)寄存器,但它可以與同屬同一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。線程又被稱為輕權(quán)進(jìn)程(Light weight process:L
7、WP)。進(jìn)程和線程的比較1、進(jìn)程是資源分配的基本單位。線程與資源分配無關(guān),它只屬于某一個(gè)進(jìn)程,并與進(jìn)程內(nèi)其他線程一起共享進(jìn)程的資源。2、進(jìn)程發(fā)生調(diào)度時(shí),不同的進(jìn)程擁有不同的虛擬地址空間,而同一進(jìn)程內(nèi)的不同線程共享同一地址空間。3、進(jìn)程包含了PCB,用戶地址空間和堆棧。線程只由相關(guān)的堆棧(用戶棧和系統(tǒng)棧)、寄存器和線程控制表TCB組成。4、進(jìn)程切換時(shí)將涉及到有關(guān)資源指針的保存以及地址空間的變化等問題。線程切換時(shí),由于同一進(jìn)程內(nèi)的線程共享資源和地址空間,將不涉及上述內(nèi)容的保存,故減少了操作系統(tǒng)的開銷時(shí)間。5、進(jìn)程的調(diào)度與切換都是由操作系統(tǒng)內(nèi)核完成,而線程則既可由操作系統(tǒng)內(nèi)核完成,也可由用戶程序進(jìn)行
8、。進(jìn)程調(diào)度:分配處理機(jī)是由進(jìn)程調(diào)度程序完成的。它是操作系統(tǒng)設(shè)計(jì)的中心問題之一高中低三級(jí)調(diào)度高級(jí)調(diào)度:對(duì)于分時(shí)操作系統(tǒng)來說,高級(jí)調(diào)度決定:是否接受一個(gè)終端用戶的連接;一個(gè)程序能否被計(jì)算機(jī)系統(tǒng)接納并構(gòu)成進(jìn)程;一個(gè)新建態(tài)的進(jìn)程是否能夠加入就緒進(jìn)程隊(duì)列。有的分時(shí)操作系統(tǒng)雖沒有配置高級(jí)調(diào)度程序,但上述的調(diào)度功能是必須提供的。中級(jí)調(diào)度:引進(jìn)目的:提高內(nèi)存利用率和作業(yè)吞吐量功能:決定那些進(jìn)程被允許參與競(jìng)爭(zhēng)處理器資源,起到短期調(diào)整系統(tǒng)負(fù)荷的作用。使用方法:通過把一些進(jìn)程換出主存,從而使之進(jìn)入“掛起”狀態(tài),不參與進(jìn)程調(diào)度,起到滑系統(tǒng)的作用低級(jí)調(diào)度:又稱進(jìn)程調(diào)度、短程調(diào)度。低級(jí)調(diào)度主要功能是按照某種原則把處理器分
9、配給就緒進(jìn)程或內(nèi)核級(jí)線程。進(jìn)程調(diào)度程序是操作系統(tǒng)最為核心的部分,進(jìn)程調(diào)度策略的優(yōu)劣直接影響到整個(gè)系統(tǒng)的性能。五種調(diào)度算法:FIFO、最短CPU運(yùn)行期、優(yōu)先權(quán)調(diào)度、時(shí)間片輪轉(zhuǎn)法 、多級(jí)反饋隊(duì)列 先進(jìn)先出(FIFO)算法先來先服務(wù)算法是按照進(jìn)程進(jìn)入就緒隊(duì)列的先后次序來分配處理器。先進(jìn)入就緒隊(duì)列的進(jìn)程優(yōu)先被挑選,運(yùn)行進(jìn)程一旦占有處理器將一直運(yùn)行下去直到運(yùn)行結(jié)束或阻塞。這種算法容易實(shí)現(xiàn),但效率不高,顯然不利于I/O頻繁的進(jìn)程。優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單缺點(diǎn):沒考慮進(jìn)程的優(yōu)先級(jí)最短CPU運(yùn)行期優(yōu)先調(diào)度算法該算法從就緒隊(duì)列中選出“下一個(gè)CPU執(zhí)行期”最短的進(jìn)程,為之分配處理機(jī)。該算法雖可獲得較好的調(diào)度性能,但難以準(zhǔn)確
10、地知道下一個(gè)CPU執(zhí)行期,而只能根據(jù)每一個(gè)進(jìn)行的執(zhí)行歷史來預(yù)測(cè)。最高優(yōu)先權(quán)優(yōu)先調(diào)度算法該算法總是把處理機(jī)分配給就緒隊(duì)列中具有最高優(yōu)先權(quán)的進(jìn)程。常用以下兩種方法來確定進(jìn)程的優(yōu)先權(quán)(優(yōu)先級(jí)根據(jù)優(yōu)先數(shù)來決定):1、靜態(tài)優(yōu)先數(shù)法靜態(tài)優(yōu)先數(shù)法:靜態(tài)優(yōu)先權(quán)是在創(chuàng)建進(jìn)程時(shí)確定的,在整個(gè)運(yùn)行期間不再改變。依據(jù)有:2、動(dòng)態(tài)優(yōu)先數(shù)法動(dòng)態(tài)優(yōu)先數(shù)法:在進(jìn)程創(chuàng)建時(shí)創(chuàng)立一個(gè)優(yōu)先數(shù),但在其生命周期內(nèi)優(yōu)先數(shù)可以動(dòng)態(tài)變化。(如等待時(shí)間長優(yōu)先數(shù)可改變)時(shí)間片輪轉(zhuǎn)法把CPU劃分成若干時(shí)間片,并且按順序賦給就緒隊(duì)列中的每一個(gè)進(jìn)程,進(jìn)程輪流占有CPU,當(dāng)時(shí)間片用完時(shí),即使進(jìn)程未執(zhí)行完畢,系統(tǒng)也剝奪該進(jìn)程的CPU,將該進(jìn)程排在就緒隊(duì)列末
11、尾,同時(shí)系統(tǒng)選擇另一個(gè)進(jìn)程運(yùn)行。臨界資源、臨界區(qū)、臨界區(qū)訪問臨界資源(critical resource ):一次僅供一個(gè)進(jìn)程使用的資源。在進(jìn)程中涉及到臨界資源的程序段叫臨界區(qū)臨界區(qū)的訪問過程進(jìn)入?yún)^(qū)(entry section):在進(jìn)入臨界區(qū)之前,檢查可否進(jìn)入臨界區(qū)的一段代碼。如果可以進(jìn)入臨界區(qū),通常設(shè)置相應(yīng)“正在訪問臨界區(qū)”標(biāo)志臨界區(qū)(critical section):進(jìn)程中訪問臨界資源的一段代碼。退出區(qū)(exit section):用于將"正在訪問臨界區(qū)"標(biāo)志清除。剩余區(qū)(remainder section):代碼中的其余部分。使用臨界區(qū)的原則空閑讓進(jìn):當(dāng)無進(jìn)程在臨界
12、區(qū)時(shí),任何有權(quán)使用臨界區(qū)的進(jìn)程可進(jìn)入忙則等待:不允許兩個(gè)以上的進(jìn)程同時(shí)進(jìn)入臨界區(qū)多中擇一:當(dāng)沒有進(jìn)程在臨界區(qū),而同時(shí)有多個(gè)進(jìn)程要求進(jìn)入臨界區(qū),只能讓其中之一進(jìn)入臨界區(qū),其他進(jìn)程必須等待有限等待:任何進(jìn)入臨界區(qū)的要求應(yīng)在有限的時(shí)間內(nèi)得到滿足讓權(quán)等待:處于等待狀態(tài)的進(jìn)程應(yīng)放棄占用CPU,以使其他進(jìn)程有機(jī)會(huì)得到CPU的使用權(quán)同步與互斥同步進(jìn)程之間的一種通信方式,有時(shí)序上的制約關(guān)系,或者說是進(jìn)程之間為了協(xié)同工作而存在的一種等待關(guān)系。互斥進(jìn)程之間對(duì)臨界資源的一種競(jìng)爭(zhēng)關(guān)系,排他性地對(duì)資源的訪問方式。鎖同步工具鎖操作法實(shí)現(xiàn)互斥的一種軟件方法是采用鎖機(jī)制,即提供一對(duì)上鎖(Lock)和開鎖(UnLock)原語,
13、以及一個(gè)鎖變量X。鎖有兩種狀態(tài): X =0 表示鎖已打開; X =1 表示鎖被關(guān)閉。 P/V:s值的含義,信號(hào)量代表可用資源實(shí)體的數(shù)量。信號(hào)量:semaphore是一個(gè)數(shù)據(jù)結(jié)構(gòu)定義如下: struc semaphore int value; pointer_PCB queue; ;信號(hào)量說明: s:semaphore;P、V操作為原語操作 執(zhí)行必須是連續(xù)的,在執(zhí)行過程中不允許被中斷 實(shí)現(xiàn):開關(guān)中斷信號(hào)量的使用: 必須置一次且只能置一次初值;初值不能為負(fù)數(shù);只能執(zhí)行P、V操作設(shè)s(semaphore)代表一個(gè)可共享的存儲(chǔ)單元,s的初始值為1S=-3,為等待3次信號(hào)量的物理含義:S>0表示有
14、S個(gè)資源可用S=0表示無資源可用S<0則| S |表示S等待隊(duì)列中的進(jìn)程個(gè)數(shù)信號(hào)量的初值應(yīng)該大于等于0當(dāng)為互斥操作時(shí),同處于同一進(jìn)程當(dāng)為同步操作時(shí),不在同一進(jìn)程中出現(xiàn)P.V操作必須成對(duì)出現(xiàn),有一個(gè)P操作就一定有一個(gè)V操作當(dāng)為互斥操作時(shí),它們同處于同一進(jìn)程當(dāng)為同步操作時(shí),則不在同一進(jìn)程中出現(xiàn)如果P(S1)和P(S2)兩個(gè)操作在一起,那么P操作的順序至關(guān)重要,一個(gè)同步P操作與一個(gè)互斥P操作在一起時(shí)同步P操作在互斥P操作前而兩個(gè)V操作無關(guān)緊要管道管程的組成局部于該管程的共享數(shù)據(jù),數(shù)據(jù)表示相應(yīng)資源的狀態(tài);局部于該管程的若干過程,每個(gè)過程完成關(guān)于上述數(shù)據(jù)的某種規(guī)定操作。條件變量:每個(gè)獨(dú)立的條件變量
15、是和進(jìn)程需要等待的某種原因(或說條件)相聯(lián)系的,當(dāng)定義一個(gè)條件變量時(shí),系統(tǒng)就建立一個(gè)相應(yīng)的等待隊(duì)列。兩種操作:wait(x)和signal(x),其中x為條件變量。wait把調(diào)用者進(jìn)程掛在與x相應(yīng)的等待隊(duì)列上,signal喚醒相應(yīng)等待隊(duì)列上的一個(gè)進(jìn)程。消息緩沖消息緩沖通訊技術(shù)是由Hansen首先提出的,其基本思想是:根據(jù)“生產(chǎn)者-消費(fèi)者”原理,利用內(nèi)存中公用消息緩沖區(qū)實(shí)現(xiàn)進(jìn)程的信息交換。系統(tǒng)負(fù)責(zé)管理公用消息緩沖區(qū)以及消息的傳遞。進(jìn)程使用消息緩沖區(qū)。一個(gè)進(jìn)程可以給若干個(gè)進(jìn)程發(fā)送消息,反之,一個(gè)進(jìn)程可以接收不同進(jìn)程發(fā)來的消息。進(jìn)程中關(guān)于消息隊(duì)列的操作是臨界區(qū)。死鎖的概念和結(jié)論如果在一個(gè)進(jìn)程集合中的
16、每個(gè)進(jìn)程都在等待只能由該集合中的其他一個(gè)進(jìn)程才能引發(fā)的事件,則稱這一組進(jìn)程或系統(tǒng)此時(shí)發(fā)生了死鎖。一組進(jìn)程中,每個(gè)進(jìn)程都在無限等待被該組進(jìn)程中另一個(gè)進(jìn)程所占有的永遠(yuǎn)不會(huì)釋放的資源,這種現(xiàn)象稱系統(tǒng)處于死鎖狀態(tài),簡(jiǎn)稱死鎖。處于死鎖狀態(tài)的進(jìn)程就稱為死鎖進(jìn)程.結(jié)論:參與死鎖的進(jìn)程最少是兩個(gè)(或是兩個(gè)以上進(jìn)程)參與死鎖的進(jìn)程至少有兩個(gè)已經(jīng)占有資源參與死鎖的所有進(jìn)程都在等待資源如果死鎖發(fā)生,會(huì)浪費(fèi)大量系統(tǒng)資源,甚至導(dǎo)致系統(tǒng)崩潰。死鎖的四個(gè)必要條件原因:系統(tǒng)資源不足;進(jìn)程推進(jìn)順序不合適;必要條件 : 互斥控制(資源獨(dú)占) 非剝奪控制(不可剝奪)請(qǐng)求和保持(部分分配,占有申請(qǐng)) 環(huán)路條件(循環(huán)等待)預(yù)防死鎖:靜
17、態(tài),資源有序靜態(tài)資源分配(第一個(gè)必要條件)解決方法:要求每一個(gè)進(jìn)程在開始執(zhí)行前就申請(qǐng)它所需要的全部資源,僅當(dāng)系統(tǒng)能滿足進(jìn)程的資源申請(qǐng)要求且把資源分配給進(jìn)程后,該進(jìn)程才能開始執(zhí)行。 進(jìn)程在執(zhí)行過程中不再申請(qǐng)資源,故不可能出現(xiàn)占有了某些資源再等待其他資源的情況,即能使得“占有并等待”的條件不成立,從而防止死鎖的發(fā)生缺陷:降低資源的利用率。資源有序分配法(第四個(gè)必要條件)解決方法:把系統(tǒng)中所有資源排序加以全局編號(hào),進(jìn)程申請(qǐng)資源時(shí)必須嚴(yán)格按資源編號(hào)的遞增次序進(jìn)行,否則操作系統(tǒng)不予分配。具體為,低優(yōu)先級(jí)的資源申請(qǐng)高于高級(jí)資源,釋放資源的順序和申請(qǐng)資源的次序相反。占用高級(jí)資源時(shí),若要申請(qǐng)低級(jí)資源,則高級(jí)資
18、源需要先行釋放。缺陷:進(jìn)程實(shí)際使用資源的順序不一定與資源的編號(hào)一致,會(huì)造成資源浪費(fèi)。安全狀態(tài)和不安全狀態(tài)如果系統(tǒng)能按某種順序?yàn)槊總€(gè)進(jìn)程分配其所需的資源,直至所有進(jìn)程都能運(yùn)行完成,稱系統(tǒng)處于安全狀態(tài)。若不存在這樣一個(gè)安全序列稱系統(tǒng)處于不安全狀態(tài)。銀行家算法功能二、存儲(chǔ)管理目標(biāo):提高利用率、方便用戶使用、提供足夠的存儲(chǔ)空間、方便進(jìn)程并發(fā)運(yùn)行。存儲(chǔ)分配與存儲(chǔ)無關(guān)性:地址重定位(地址映射)存儲(chǔ)保護(hù):保證進(jìn)程間互不干擾、相互保密;如:訪問合法性檢查等,必須有硬件提供支持;存儲(chǔ)擴(kuò)充(覆蓋、交換和虛擬存儲(chǔ)):提高主存利用率、擴(kuò)大進(jìn)程的主存空間;存儲(chǔ)機(jī)構(gòu)的基本問題:分配、再定位、共享、保護(hù)、擴(kuò)充。存儲(chǔ)分配問題
19、。 重點(diǎn)是研究存儲(chǔ)共享和各種分配算法。地址再定位問題。 研究各種地址變換機(jī)構(gòu), 以及靜態(tài)和動(dòng)態(tài)再定位方法。存儲(chǔ)共享問題。 研究多個(gè)進(jìn)程如何共享內(nèi)存。存儲(chǔ)保護(hù)問題。 研究保護(hù)各類程序、 數(shù)據(jù)區(qū)的方法。存儲(chǔ)擴(kuò)充問題。 主要研究虛擬存儲(chǔ)器問題及其各種調(diào)度算法。 分配算法:連續(xù)性-離散性;駐留性-交換性;一次性-多次性連續(xù)性 離散性駐留性 交換性一次性 多次性防止地址越界:兩個(gè)寄存器地址再定位:靜態(tài)、動(dòng)態(tài)靜態(tài)分配和靜態(tài)再定位程序中列出各個(gè)需要重定位的地址單元和相對(duì)地址值。當(dāng)用戶程序被裝入內(nèi)存時(shí),一次性實(shí)現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換,以后不再轉(zhuǎn)換(一般在裝入內(nèi)存時(shí)由軟件完成)。即:裝入時(shí)根據(jù)所定位的內(nèi)存地
20、址去修改每個(gè)重定位地址項(xiàng),添加相應(yīng)偏移量。動(dòng)態(tài)分配和動(dòng)態(tài)再定位在程序執(zhí)行過程中,占用的存儲(chǔ)空間大小與位置均是可變的。程序中虛擬內(nèi)存地址,裝入和執(zhí)行時(shí)通過硬件地址變換機(jī)構(gòu),完成虛擬地址到實(shí)際內(nèi)存地址的變換。虛擬存儲(chǔ)的概念虛擬存儲(chǔ)器的基本思想是把作業(yè)地址空間和實(shí)際主存的存儲(chǔ)空間,視為兩個(gè)不同的概念。一個(gè)計(jì)算機(jī)系統(tǒng)采用一定技術(shù)為程序員提供了一個(gè)足夠大的地址空間,而完全不必考慮實(shí)際主存的大小。根據(jù)地址空間結(jié)構(gòu)不同, 虛擬存儲(chǔ)器有兩種形式。 單段式虛存多段式虛存五種存儲(chǔ)方式單一連續(xù) 分區(qū):固定,變動(dòng),再定位,多重分頁 分段 段頁式工作原理和差異性分配算法首次適應(yīng)算法(First Fit: FF)-簡(jiǎn)單將
21、自由區(qū)按存貯順序鏈成一個(gè)隊(duì)列,用一指針指向隊(duì)首,分配時(shí)將找到的第一個(gè)滿足要求的空白區(qū)分配給它。循環(huán)首次適應(yīng)(Next fit: NF)將自由區(qū)組成環(huán)狀隊(duì)列,按循環(huán)順序?qū)ふ易杂蓞^(qū)。(與FF區(qū)別,頭指針從低地址開始向高地址循環(huán)移動(dòng))NF特點(diǎn):使得小的自由區(qū)均勻分布,易于與其它自由區(qū)合并。最佳適應(yīng)算法(Best fit: BF)將自由區(qū)按大小排成隊(duì)列,尋找時(shí)總是以最小的自由區(qū)開始,找到第一個(gè)合適的分區(qū)。特點(diǎn):最佳地利用分區(qū),查找效率低,碎片多而小。要求:有四塊自由區(qū),為一程序分配19k內(nèi)存。最壞適應(yīng)算法(Worst fit: WF)將自由區(qū)排序(按從大到小),并尋找最大自由區(qū)域進(jìn)行分配。BF特點(diǎn):不
22、會(huì)出現(xiàn)小的自由區(qū)。名空間 邏輯空間 存儲(chǔ)空間程序 邏輯地址(相對(duì)地址,虛地址) 物理地址(絕對(duì)地址,實(shí)地址)地址映射將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)行時(shí)由機(jī)器直接尋址的物理地址。當(dāng)程序裝入內(nèi)存時(shí), 操作系統(tǒng)要為該程序分配一個(gè)合適的內(nèi)存空間,由于程序的邏輯地址與分配到內(nèi)存物理地址不一致, 而CPU執(zhí)行指令時(shí),是按物理地址進(jìn)行的,所以要進(jìn)行地址轉(zhuǎn)換。內(nèi)存緊縮將各個(gè)占用分區(qū)向內(nèi)存一端移動(dòng)。使各個(gè)空閑分區(qū)聚集在另一端,然后將各個(gè)空閑分區(qū)合并成為一個(gè)空閑分區(qū)。對(duì)占用分區(qū)進(jìn)行內(nèi)存數(shù)據(jù)搬移占用CPU時(shí)間如果對(duì)占用分區(qū)中的程序進(jìn)行"浮動(dòng)",則其重定位需要硬件支持。緊縮時(shí)機(jī):每個(gè)分區(qū)釋放后,或
23、內(nèi)存分配找不到滿足條件的空閑分區(qū)時(shí)覆蓋引入:其目標(biāo)是在較小的可用內(nèi)存中運(yùn)行較大的程序。常用于多道程序系統(tǒng),與分區(qū)存儲(chǔ)管理配合使用。原理:一個(gè)程序的幾個(gè)代碼段或數(shù)據(jù)段,按照時(shí)間先后來占用公共的內(nèi)存空間。將程序必要部分(常用功能)的代碼和數(shù)據(jù)常駐內(nèi)存;可選部分(不常用功能)在其他程序模塊中實(shí)現(xiàn),平時(shí)存放在外存中(覆蓋文件),在需要時(shí)才裝入到內(nèi)存;不存在調(diào)用關(guān)系的模塊不必同時(shí)裝入到內(nèi)存,從而可以相互覆蓋。(即不同時(shí)用的模塊可共用一個(gè)分區(qū))缺點(diǎn):編程時(shí)必須劃分程序模塊和確定程序模塊之間的覆蓋關(guān)系,增加編程復(fù)雜度。從外存裝入覆蓋文件,以時(shí)間延長來換取空間節(jié)省。交換引入:多個(gè)程序并發(fā)執(zhí)行,可以將暫時(shí)不能執(zhí)
24、行的程序送到外存中,從而獲得空閑內(nèi)存空間來裝入新程序,或讀入保存在外存中而目前到達(dá)就緒狀態(tài)的進(jìn)程。交換單位為整個(gè)進(jìn)程的地址空間。原理:暫停執(zhí)行內(nèi)存中的進(jìn)程,將整個(gè)進(jìn)程的地址空間保存到外存的交換區(qū)中,而將外存中由阻塞變?yōu)榫途w的進(jìn)程的地址空間讀入到內(nèi)存中,并將該進(jìn)程送到就緒隊(duì)列。優(yōu)點(diǎn):增加并發(fā)運(yùn)行的程序數(shù)目,并且給用戶提供適當(dāng)?shù)捻憫?yīng)時(shí)間;編寫程序時(shí)不影響程序結(jié)構(gòu);缺點(diǎn):對(duì)換入和換出的控制增加處理機(jī)開銷;程序整個(gè)地址空間都進(jìn)行傳送,沒有考慮執(zhí)行過程中地址訪問的統(tǒng)計(jì)特性。與覆蓋技術(shù)相比,交換技術(shù)不要求用戶給出程序段之間的邏輯覆蓋結(jié)構(gòu);而且,交換發(fā)生在進(jìn)程或作業(yè)之間,而覆蓋發(fā)生在同一進(jìn)程或作業(yè)內(nèi)。此外,
25、覆蓋只能覆蓋那些與覆蓋段無關(guān)的程序段。頁面變換表列出了作業(yè)的邏輯地址與其在主存中的物理地址間的對(duì)應(yīng)關(guān)系快表訪問主存,首先必須訪問頁表,讀出表目,之后根據(jù)形成的實(shí)際地址再訪問主存。提高效率,加快速度-一組硬件寄存器,塊表(相聯(lián)存儲(chǔ)器)目的:存放當(dāng)前訪問過的頁的表目,保存正在運(yùn)行進(jìn)程的頁表的子集(部分表項(xiàng))。每次訪問主存時(shí),首先查找快表,若找到所需的表目,則快速形成物理地址。否則從頁表中查找后形成物理地址,同時(shí)把頁描述子寫入快表。如果設(shè)計(jì)得當(dāng),快表的命中率可以很高置換算法當(dāng)要放一頁面到全滿的主存塊時(shí),系統(tǒng)需淘汰一頁。用來選取淘汰哪一頁的規(guī)則,叫置換算法。先進(jìn)先出置換算法 最近最久未用置換算法(LR
26、U) 近似的LRU算法(NRU算法)顛簸(抖動(dòng)) 在虛存中,頁面在內(nèi)存與外存之間頻繁調(diào)度,以至于調(diào)度頁面所需時(shí)間比進(jìn)程實(shí)際運(yùn)行的時(shí)間還多,此時(shí)系統(tǒng)效率急劇下降,甚至導(dǎo)致系統(tǒng)崩潰。這種現(xiàn)象稱為顛簸或抖動(dòng)原因:頁面淘汰算法不合理分配給進(jìn)程的物理頁面數(shù)太少功能三、設(shè)備管理目標(biāo):方便設(shè)備使用、提高CPU與I/O設(shè)備利用率;設(shè)備無關(guān)性:提供統(tǒng)一的I/O設(shè)備接口,使應(yīng)用程序獨(dú)立于物理設(shè)備,提高可適應(yīng)性;設(shè)備分配與回收:在多用戶間共享I/O設(shè)備資源。設(shè)備分配的三種方式:獨(dú)享、共享、虛擬技術(shù)。虛擬設(shè)備:設(shè)備由多個(gè)進(jìn)程共享,每個(gè)進(jìn)程如同獨(dú)占。設(shè)備的傳輸控制:利用設(shè)備驅(qū)動(dòng)程序(通常在內(nèi)核中)完成對(duì)設(shè)備的操作。緩沖
27、區(qū)管理:匹配CPU和外設(shè)的速度,提高兩者的利用率。(SPOOLING技術(shù))I/O性能經(jīng)常成為系統(tǒng)性能的瓶頸CPU性能不等于系統(tǒng)性能:響應(yīng)時(shí)間也是一個(gè)重要因素CPU性能越高,與I/O差距越大 彌補(bǔ):更多的進(jìn)程進(jìn)程切換多,系統(tǒng)開銷大操作系統(tǒng)龐大復(fù)雜的原因操作系統(tǒng)龐大復(fù)雜的原因之一:資源多、雜,并發(fā),均來自I/O外設(shè)種類繁多,結(jié)構(gòu)各異輸入輸出數(shù)據(jù)信號(hào)類型不同速度差異很大設(shè)備管理的主要任務(wù)1) 選擇和分配設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;2) 控制設(shè)備和CPU(或內(nèi)存)之間交換數(shù)據(jù);3) 為用戶提供一個(gè)友好的透明接口;4) 提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間以及進(jìn)程和進(jìn)程之間的并行操作度,以使操作系統(tǒng)獲得最
28、佳效率。設(shè)備的分類:分類的方式,虛設(shè)備(3)按資源分配角度分 獨(dú)占設(shè)備 在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,一般為低速I/O設(shè)備(如打印機(jī),磁帶等) 共享設(shè)備 在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,多個(gè)進(jìn)程以交叉的方式來使用設(shè)備,其資源利用率高(如硬盤) 虛設(shè)備 在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備 目的:將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶可共享的設(shè)備,提高設(shè)備的利用率(實(shí)例:SPOOLing技術(shù),利用虛設(shè)備技術(shù) 用硬盤模擬輸入輸出設(shè)備)設(shè)備控制器的組成:I/O邏輯(4)從數(shù)據(jù)傳輸率角度分 低速設(shè)備 指其傳輸速率僅為每秒鐘幾個(gè)字節(jié)
29、至數(shù)百個(gè)字節(jié)的一類設(shè)備。如鍵盤、 鼠標(biāo)器、語音的輸入和輸出等設(shè)備。中速設(shè)備 指其傳輸速率在每秒鐘數(shù)千個(gè)字節(jié)至數(shù)萬個(gè)字節(jié)的一類設(shè)備。如行式打印機(jī)、激光打印機(jī)等。高速設(shè)備 指其傳輸速率在數(shù)百萬個(gè)字節(jié)至數(shù)十兆字節(jié)的一類設(shè)備。如磁帶機(jī)、 磁盤機(jī)、 光盤機(jī)等。通道獨(dú)立于中央處理器,專門負(fù)責(zé)數(shù)據(jù)I/O傳輸?shù)奶幚頇C(jī)它對(duì)外設(shè)實(shí)現(xiàn)統(tǒng)一代替CPU對(duì)I/O操作進(jìn)行控制使CPU和外設(shè)可以并行工作通道又稱為I/O處理機(jī)引入通道的目的:為了使CPU從I/O事務(wù)中解脫出來同時(shí)為了提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行度DMA輸入/輸出軟件的層次結(jié)構(gòu):中斷處理程序設(shè)備驅(qū)動(dòng)程序與設(shè)備無關(guān)的I/O軟件用戶層的輸入/輸出軟件數(shù)據(jù)傳
30、送控制方式:程序直接控制方式中斷方式DMA方式通道控制方式程序直接控制方式由處理器提供I/O相關(guān)指令來實(shí)現(xiàn)I/O處理單元處理請(qǐng)求并設(shè)置I/O狀態(tài)寄存器相關(guān)位不中斷處理器,也不給處理器警告信息處理器定期輪詢I/O單元的狀態(tài),直到處理完畢I/O軟件包含直接操縱I/O的指令控制指令: 用于激活外設(shè),并告訴它做什么狀態(tài)指令: 用于測(cè)試I/O控制中的各種狀態(tài)和條件數(shù)據(jù)傳送指令: 用于設(shè)備和主存之間來回傳送數(shù)據(jù)主要缺陷:處理器必須關(guān)注I/O處理單元的狀態(tài),因而耗費(fèi)大量時(shí)間輪詢信息,嚴(yán)重地降低了系統(tǒng)性能中斷方式為了解決程序控制I/O方法的主要問題,應(yīng)該讓處理器從輪詢?nèi)蝿?wù)中解放出來,使I/O操作和指令執(zhí)行并行
31、起來。 具體作法:當(dāng)I/O處理單元準(zhǔn)備好與設(shè)備交互的時(shí)候,通過物理信號(hào)通知處理器,即中斷處理器。DMA方式通道控制方式通道相當(dāng)于一個(gè)功能簡(jiǎn)單的處理機(jī),包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序控制方式的工作流程和差異設(shè)備驅(qū)動(dòng)程序:地位設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序中,每個(gè)設(shè)備驅(qū)動(dòng)程序處理一種設(shè)備類型每一個(gè)控制器都設(shè)有一個(gè)或多個(gè)設(shè)備寄存器,用來存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)釋放這些命令,并監(jiān)督它們正確執(zhí)行設(shè)備驅(qū)動(dòng)程序的任務(wù)是接收來自與設(shè)備無關(guān)的上層軟件的抽象請(qǐng)求,并執(zhí)行這個(gè)請(qǐng)求。在設(shè)備驅(qū)動(dòng)程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩種處
32、理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動(dòng)程序的進(jìn)程必須等待命令完成,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時(shí)將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成設(shè)備獨(dú)立的軟件:范圍,功能,接口沒有標(biāo)準(zhǔn)的和有標(biāo)準(zhǔn)的驅(qū)動(dòng)程序接口應(yīng)用:1.獨(dú)立于設(shè)備的軟件的基本任務(wù)是實(shí)現(xiàn)所有設(shè)備都需要的功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的接口2.如何給文件和設(shè)備這樣的對(duì)象命名是操作系統(tǒng)中的一個(gè)主要課題。獨(dú)立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的符號(hào)名映射到正確的設(shè)備驅(qū)動(dòng)上(linux上文件映射)3.設(shè)備保護(hù):系統(tǒng)防止無權(quán)存取設(shè)備的用戶存取設(shè)備4.不同的磁盤可以采用不同的扇區(qū)尺寸。設(shè)備獨(dú)立軟件向較高層軟件掩蓋這一事實(shí)并提
33、供大小統(tǒng)一的塊尺寸。它可將若干扇區(qū)合成一個(gè)邏輯塊。較高層的軟件只與抽象設(shè)備打交道,獨(dú)立于物理扇區(qū)的尺寸而使用等長的邏輯塊5.緩沖技術(shù) 6.設(shè)備分配 7.出錯(cuò)處理用戶層的IO軟件盡管大部分IO軟件都包含在操作系統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫過程,甚至完全由運(yùn)行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括IO系統(tǒng)調(diào)用,通常由庫過程實(shí)現(xiàn)這些過程所做的工作只是將系統(tǒng)調(diào)用時(shí)所用的參數(shù)放在合適的位置,由其它的IO過程實(shí)際實(shí)現(xiàn)真正的操作設(shè)備分配:設(shè)備分配與回收 當(dāng)某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換強(qiáng)調(diào) 設(shè)備獨(dú)立性
34、即:不能因?yàn)樵O(shè)備的忙碌、故障或更換而影響程序的運(yùn)行, 向用戶屏蔽物理設(shè)備, 呈現(xiàn)給用戶一個(gè)操作簡(jiǎn)單的邏輯設(shè)備強(qiáng)調(diào) 抽象的I/O 操作 即:設(shè)計(jì)一類通用的I/O指令,它們的含義對(duì)不同類型設(shè)備作不同解釋,而且,在操作系統(tǒng)中,提供了若干I/O系統(tǒng)調(diào)用,由系統(tǒng)將抽象的I/O 操作映射到專門的設(shè)備驅(qū)動(dòng)程序流程:設(shè)備控制表DCT、系統(tǒng)設(shè)備表SDT、控制器表COCT、通道控制表CHCTI/O控制和緩沖技術(shù):速度不匹配I/O控制過程在系統(tǒng)中可以按三種方式實(shí)現(xiàn)作為請(qǐng)求I/O操作的進(jìn)程的一部分實(shí)現(xiàn)作為當(dāng)前進(jìn)程的一部分實(shí)現(xiàn)I/O控制由專門的系統(tǒng)進(jìn)程 I/O進(jìn)程完成:每類(個(gè))設(shè)備設(shè)一專門的I/O進(jìn)程,且該進(jìn)程只能在
35、系統(tǒng)態(tài)下執(zhí)行整個(gè)系統(tǒng)設(shè)一I/O進(jìn)程,全面負(fù)責(zé)系統(tǒng)的數(shù)據(jù)傳送工作每類(個(gè))設(shè)備設(shè)一個(gè)專門的I/O進(jìn)程,但該進(jìn)程既可在用戶態(tài)也可在系統(tǒng)態(tài)下執(zhí)行(1) 緩沖技術(shù)的引入: 凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)在操作系統(tǒng)中采用緩沖是為了實(shí)現(xiàn)數(shù)據(jù)的I/O操作,以緩解CPU與外部設(shè)備之間速度不匹配的矛盾,提高資源利用率減少了I/O設(shè)備對(duì)處理器的中斷請(qǐng)求次數(shù)簡(jiǎn)化了中斷機(jī)制節(jié)省了系統(tǒng)開銷(2)緩沖的種類 單緩沖 當(dāng)用戶進(jìn)程發(fā)出I/O請(qǐng)求時(shí),操作系統(tǒng)在主存的系統(tǒng)空間為該操作分配一個(gè)緩沖區(qū),可以實(shí)現(xiàn)預(yù)讀和滯后寫 雙緩沖 可以實(shí)現(xiàn)用戶數(shù)據(jù)區(qū)緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)外設(shè)之間交換數(shù)據(jù)的并行 多緩沖: 多個(gè)
36、緩沖區(qū)連接起來組成兩部分(輸入和輸出) 緩沖池: (又稱循環(huán)緩沖) 多個(gè)緩沖區(qū)連接起來統(tǒng)一管理,既可輸入,也可輸出功能四、文件管理目標(biāo):解決軟件資源的存儲(chǔ)、共享、保密和保護(hù)。文件存儲(chǔ)空間管理:解決如何存放信息,以提高空間利用率和讀寫性能。目錄管理:解決信息檢索問題,方便用戶按名存取。文件的讀寫管理和存取控制:解決信息安全問題。系統(tǒng)設(shè)口令"哪個(gè)用戶"、用戶分類"哪個(gè)用戶組"、文件權(quán)限"針對(duì)用戶或用戶組的讀寫權(quán)"軟件管理:軟件的版本、相互依賴關(guān)系、安裝和拆除等文件和目錄:文件是指具有符號(hào)名的數(shù)據(jù)信息的集合結(jié)構(gòu):字節(jié)序列,記錄序列,樹類型:
37、可執(zhí)行文件,存檔文件存儲(chǔ):順序存取(sequential access):不允許跳過一部分內(nèi)容,也不能不順序存取。例如,磁帶。隨機(jī)存取(random access):可直接訪問文件任意位置,read給出具體位置,seek操作設(shè)定當(dāng)前位置。例如,數(shù)據(jù)庫操作:文件系統(tǒng)不應(yīng)要求用戶必須了解文件的物理組織才能使用文件,而應(yīng)方便用戶,提供給用戶按其邏輯組織形式來使用文件。分類:按文件用途分類系統(tǒng)文件、庫文件、用戶文件按文件中數(shù)據(jù)分類源文件、目標(biāo)文件、可執(zhí)行文件按文件保護(hù)方式分類只讀文件、讀寫文件、不保護(hù)文件按文件保存時(shí)間分類臨時(shí)文件、永久文件文件的轉(zhuǎn)儲(chǔ)和恢復(fù)文件系統(tǒng)中不論是硬件還是軟件都會(huì)發(fā)生損壞和錯(cuò)誤
38、,為使至關(guān)重要的系統(tǒng)文件萬無一失,應(yīng)對(duì)保存在外存中的系統(tǒng)文件采取一些保護(hù)措施,如: “定期轉(zhuǎn)儲(chǔ)”。全量轉(zhuǎn)儲(chǔ)(backup)增量轉(zhuǎn)儲(chǔ)文件的恢復(fù)利用轉(zhuǎn)儲(chǔ)的文件進(jìn)行恢復(fù)。(restore)物理轉(zhuǎn)儲(chǔ):從磁盤的第0塊開始,將全部磁盤塊按順序輸出到存儲(chǔ)設(shè)備上,直到最后一塊復(fù)制完畢。邏輯轉(zhuǎn)儲(chǔ):從一個(gè)或幾個(gè)指定的目錄開始,并遞歸的轉(zhuǎn)儲(chǔ)其自給定基準(zhǔn)日期后,有所更改的全部文件和目錄。目錄的分級(jí):一級(jí),二級(jí),多級(jí),目的。(1)一級(jí)目錄結(jié)構(gòu) 為所有文件建立一個(gè)目錄文件(組成一線性表)優(yōu)點(diǎn):簡(jiǎn)單,易實(shí)現(xiàn)缺點(diǎn):限制了用戶對(duì)文件的命名文件平均檢索時(shí)間長限制了對(duì)文件的共享(2)二級(jí)目錄結(jié)構(gòu) 為改變一級(jí)目錄文件目錄命名沖突,并
39、提高對(duì)目錄文件檢索速度而改進(jìn) 目錄分為兩級(jí):一級(jí)稱為主文件目錄,給出用戶名,用戶子目錄所在的物理位置;二級(jí)稱為用戶文件目錄(又稱用戶子目錄),給出該用戶所有文件的FCB文件的結(jié)構(gòu):物理結(jié)構(gòu),邏輯結(jié)構(gòu)優(yōu)點(diǎn):解決了文件的重名問題和文件共享問題 用戶名|文件名 查找時(shí)間降低缺點(diǎn):增加了系統(tǒng)開銷(3)多級(jí)目錄結(jié)構(gòu)(樹型目錄)優(yōu)點(diǎn): 層次結(jié)構(gòu)清晰,便于管理和保護(hù);有利于文件分類;解決重名問題;提高文件檢索速度;能進(jìn)行存取權(quán)限的控制 缺點(diǎn):查找一個(gè)文件按路徑名逐層檢查,由于每個(gè)文件都放在外存,多次訪盤影響速度連續(xù)、隨機(jī)、串聯(lián)的保存方式從系統(tǒng)的角度來看文件,從文件在物理介質(zhì)上的存放方式來研究文件(1)連續(xù)文
40、件(順序結(jié)構(gòu)) 文件的信息存放在若干連續(xù)的物理塊中 優(yōu)點(diǎn): 簡(jiǎn)單 支持順序存取和隨機(jī)存取 順序存取速度快 所需的磁盤尋道次數(shù)和尋道時(shí)間最少缺點(diǎn): 文件不能動(dòng)態(tài)增長 預(yù)留空間:浪費(fèi) 重新分配和移動(dòng)不利于文件插入和刪除外部碎片問題 存儲(chǔ)壓縮技術(shù)(2)串聯(lián)文件(鏈接結(jié)構(gòu)) 一個(gè)文件的信息存放在若干不連續(xù)的物理塊中,各塊之間通過指針連接,前一個(gè)物理塊指向下一個(gè)物理塊 優(yōu)點(diǎn):提高了磁盤空間利用率,不存在外部碎片問題 有利于文件插入和刪除 有利于文件動(dòng)態(tài)擴(kuò)充缺點(diǎn):存取速度慢,不適于隨機(jī)存取 可靠性問題,如指針出錯(cuò) 更多的尋道次數(shù)和尋道時(shí)間 鏈接指針占用一定的空間鏈接結(jié)構(gòu)的一個(gè)變形:文件分配表FAT(3)隨
41、機(jī)文件(索引結(jié)構(gòu)) 直接地址結(jié)構(gòu)、索引地址結(jié)構(gòu)、計(jì)算尋址結(jié)構(gòu) 一個(gè)文件的信息存放在若干不連續(xù)物理塊中,系統(tǒng)為每個(gè)文件建立一個(gè)專用數(shù)據(jù)結(jié)構(gòu)-索引表,并將這些塊的塊號(hào)存放在一個(gè)索引表中 一個(gè)索引表就是磁盤塊地址數(shù)組,其中第i個(gè)條目指向文件的第i塊優(yōu)點(diǎn): 保持了鏈接結(jié)構(gòu)的優(yōu)點(diǎn),又解決了其缺點(diǎn)即能順序存取,又能隨機(jī)存取滿足了文件動(dòng)態(tài)增長、插入刪除的要求能充分利用外存空間缺點(diǎn):較多的尋道次數(shù)和尋道時(shí)間索引表本身帶來了系統(tǒng)開銷,如內(nèi)外存空間,存取時(shí)間FCB,磁盤空間管理管理手段:空白盤區(qū)鏈 ,空白盤區(qū)目錄 ,位示圖安全性和保護(hù)機(jī)制文件存取控制矩陣 ,文件存取控制表,用戶權(quán)限表 ,文件口令 ,文件加密磁盤存
42、儲(chǔ)器管理:主要任務(wù)分配空間提高磁盤儲(chǔ)存空間的利用率提高I/O速度保證文件系統(tǒng)的可靠性磁盤調(diào)度算法:先來先服務(wù)思想:根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度。優(yōu)點(diǎn):簡(jiǎn)單,公平,不會(huì)出現(xiàn)長期得不到滿足的情況。缺點(diǎn):平均尋道距離較大。效率不高,相臨兩次請(qǐng)求可能會(huì)造成最內(nèi)到最外的柱面尋道,使磁頭反復(fù)移動(dòng),增加了服務(wù)時(shí)間,對(duì)機(jī)械也不利。最短尋道時(shí)間優(yōu)先思想:優(yōu)先選擇距當(dāng)前磁頭最近的訪問請(qǐng)求進(jìn)行服務(wù),主要考慮尋道優(yōu)先。優(yōu)點(diǎn):每次尋道時(shí)間最短,改善了磁盤平均服務(wù)時(shí)間。缺點(diǎn):饑餓現(xiàn)象,造成某些訪問請(qǐng)求長期等待得不到服務(wù)掃描算法思想:當(dāng)設(shè)備無訪問請(qǐng)求時(shí),磁頭不動(dòng);當(dāng)有訪問請(qǐng)求時(shí),磁頭按一個(gè)方向移動(dòng),在移動(dòng)過程中對(duì)
43、遇到的訪問請(qǐng)求進(jìn)行服務(wù),然后判斷該方向上是否還有訪問請(qǐng)求,如果有則繼續(xù)掃描;否則改變移動(dòng)方向,并為經(jīng)過的訪問請(qǐng)求服務(wù),如此反復(fù)。優(yōu)點(diǎn):克服了最短尋道優(yōu)先的缺點(diǎn),既考慮了距離,同時(shí)又考慮了方向。循環(huán)掃描算法思想:總是從0號(hào)柱面開始向里掃描按照各自所要訪問的柱面位置的次序去選擇訪問者移動(dòng)臂到達(dá)最后個(gè)一個(gè)柱面后,立即帶動(dòng)讀寫磁頭快速返回到0號(hào)柱面返回時(shí)不為任何的等待訪問者服務(wù)返回后可再次進(jìn)行掃描廉價(jià)冗余磁盤陣列:五種,使用的技術(shù)RAID0 數(shù)據(jù)分條技術(shù) 整個(gè)邏輯盤的數(shù)據(jù)被分散分布在多個(gè)物理盤上,并行讀寫。(沒有冗余能力) 至少兩個(gè)盤RAID1把一個(gè)磁盤的數(shù)據(jù)鏡像到另一個(gè)磁盤上。(兩個(gè)盤上實(shí)施,數(shù)據(jù)冗余)50%RAID0+1 4個(gè)盤 RAID3 3個(gè)盤(一個(gè)專為校驗(yàn)盤) RAID5 無專門校驗(yàn)盤,校驗(yàn)數(shù)據(jù)分布在多個(gè)盤上 至少3個(gè)盤,(N-1)/N 一個(gè)磁盤故障時(shí),控制器可從其他尚存的磁盤上重新恢復(fù)/生成丟失的數(shù)據(jù)而不影響數(shù)據(jù)的可用性功能五、用戶接口目標(biāo):提供一個(gè)友好的用戶訪問操作系統(tǒng)的接口。系統(tǒng)命令:供用戶用于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年安徽省中考英語試題含解析
- 心理健康教育習(xí)題
- 協(xié)方差相關(guān)系數(shù)
- 高中語文專題三雜記第3課越州趙公救災(zāi)記課件蘇教版選修唐宋八大家散文蚜
- 2014-2020年鋼軌行業(yè)咨詢報(bào)告
- 2013-2015年中國公路治安卡口系統(tǒng)行業(yè)市場(chǎng)調(diào)查分析及生產(chǎn)技術(shù)工藝研究報(bào)告
- 2024至2030年中國微型直流風(fēng)扇行業(yè)投資前景及策略咨詢研究報(bào)告
- 緩和醫(yī)療科普
- 2024至2030年中國尼龍縫紉線數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024至2030年中國多股漆包絞線數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年廣西國際商務(wù)職業(yè)技術(shù)學(xué)院招聘42人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2024全球智能家居市場(chǎng)深度研究報(bào)告
- 2023年中央機(jī)關(guān)遴選筆試真題及解析(B卷)
- 中華民族共同體概論課件專家版6第六講 五胡入華與中華民族大交融(魏晉南北朝)
- 2024年食品安全考試題庫及答案
- 全國導(dǎo)游考試(面試)200問及面試內(nèi)容(附答案)
- 手機(jī)攝影PPT學(xué)習(xí)課件(攝影的七大要素)
- 華科版五年級(jí)全冊(cè)信息技術(shù)教案(共24課時(shí))
- 刀具更換作業(yè)指導(dǎo)書
- 臨床護(hù)理技術(shù)操作常見并發(fā)癥的預(yù)防和處理規(guī)范(完整版)
- 六年級(jí)科學(xué)期中質(zhì)量分析
評(píng)論
0/150
提交評(píng)論