2025計(jì)算機(jī)考試四級網(wǎng)絡(luò)工程師高頻考點(diǎn)_第1頁
2025計(jì)算機(jī)考試四級網(wǎng)絡(luò)工程師高頻考點(diǎn)_第2頁
2025計(jì)算機(jī)考試四級網(wǎng)絡(luò)工程師高頻考點(diǎn)_第3頁
2025計(jì)算機(jī)考試四級網(wǎng)絡(luò)工程師高頻考點(diǎn)_第4頁
2025計(jì)算機(jī)考試四級網(wǎng)絡(luò)工程師高頻考點(diǎn)_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章操作系統(tǒng)概 第二章操作系統(tǒng)運(yùn)行機(jī) 第三章進(jìn)程線程模 第四章并發(fā)與同 第五章內(nèi)存管 第六章文件管 第七章I/O設(shè)備管 第八章死 第一章網(wǎng)絡(luò)技術(shù)基 第二章局域網(wǎng)基 第三章Internet基 第四章Internet基本服 第五章新型網(wǎng)絡(luò)應(yīng) 第六章網(wǎng)絡(luò)管理與網(wǎng)絡(luò)安 操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的一個(gè)系統(tǒng)軟件,它是這樣一些程序模塊的集合——它們能有效地組織和管理計(jì)算機(jī)系統(tǒng)中的硬件及軟件資源,合理地組織計(jì)算機(jī)的工作流程,控制程序的執(zhí)行,并向用戶提供各種服務(wù)功能,使用戶能夠靈活、方便、有效地使用計(jì)算機(jī),并使整個(gè)計(jì)算機(jī)系統(tǒng)能高效地運(yùn)行。操作系統(tǒng)作為系統(tǒng)軟件,位于軟件系統(tǒng)的硬件之上,支撐軟件之下。從計(jì)算機(jī)應(yīng)用角度看,操作系統(tǒng)是幾乎人人都要使用的系統(tǒng)界面和接口;而從軟件設(shè)計(jì)和開發(fā)的角度看,操作系統(tǒng)起著系統(tǒng)軟件開發(fā)基礎(chǔ)和工具的作用;而在黑客和網(wǎng)絡(luò)攻擊者看來,操作系統(tǒng)是他們要攻破的第一道防線;機(jī)。在計(jì)算機(jī)系統(tǒng)中,集中了資源管理功能和控制程序執(zhí)行功能的一種軟件,稱為操作系統(tǒng)。并發(fā)性是指在計(jì)算機(jī)系統(tǒng)中同時(shí)存在若干個(gè)運(yùn)行著的程序。①從宏觀上看,這些程序在同時(shí)向前推進(jìn)。②從微觀上看,在單處理器的環(huán)境下,這些同時(shí)運(yùn)行著的程序是交替在中央處理器上運(yùn)行的。在多處理器系統(tǒng)的環(huán)境中,在處理器一級上,程序是并發(fā)執(zhí)行的。共享性是指操作系統(tǒng)程序與多個(gè)用戶程序共用系統(tǒng)中的各種資源。資源的共享性主要針對:①中央處理器:中央處理器是所有程序都必須使用的最重要的資源,操作系統(tǒng)必須采用恰當(dāng)?shù)恼{(diào)度策略,對多個(gè)并發(fā)程序分配處理器資源。②內(nèi)存儲(chǔ)器:任何一個(gè)程序必須首先調(diào)入內(nèi)存之后,才能執(zhí)行。③外存儲(chǔ)器:外存儲(chǔ)器主要用來保存各種程序和數(shù)據(jù)。這些程序和數(shù)據(jù)一般以文件的形式存放在外存儲(chǔ)器上。外存儲(chǔ)器有各種類型,如硬盤、軟盤、磁帶、可讀寫光盤等。④外部設(shè)備:計(jì)算機(jī)系統(tǒng)中的外部設(shè)備是供所有用戶使用的,這些用戶包括操作系統(tǒng)、系統(tǒng)用戶(管理員)和普通用戶。資源的共享一般有兩種形式:互斥共享和同時(shí)共享。①互斥共享:系統(tǒng)中的有些資源比如打印機(jī)、磁帶機(jī)、掃描儀、中央處理器、存儲(chǔ)器等,雖然可以供多個(gè)用戶程序同時(shí)使用,但是在一段特定的時(shí)間內(nèi)只能由某一個(gè)用戶程序使用。該資源正在被使用時(shí),其他程序必須等待,并且在這個(gè)資源被使用完后才由操作系統(tǒng)根據(jù)一定的策略再選擇一個(gè)用戶程序占有該資源。通常把這樣的資源稱為臨界資源。②同時(shí)共享:系統(tǒng)中還有一類資源在同一段時(shí)間內(nèi)可以被多個(gè)程序同時(shí)訪問。典型的可以同時(shí)共享的資源就是硬盤,可以重入的操作系統(tǒng)代碼也是可以被同時(shí)共享的。操作系統(tǒng)的運(yùn)行是在一種隨機(jī)的環(huán)境下進(jìn)行的。隨機(jī)性突出強(qiáng)調(diào)了在進(jìn)行操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)時(shí)要充分考慮各種各樣的可能性。操作系統(tǒng)本身應(yīng)該穩(wěn)定、可靠、安全、高效,實(shí)現(xiàn)程序并發(fā)和資源共享的目的。常見的操作系統(tǒng)體系結(jié)構(gòu)有:整體式結(jié)構(gòu)層次式結(jié)構(gòu)微內(nèi)核(客戶機(jī)/服務(wù)器)①運(yùn)行在核心態(tài)的內(nèi)核:內(nèi)核提供所有操作系統(tǒng)基本都具有的那些操作,如線程調(diào)度、虛擬存儲(chǔ)、消息傳遞、設(shè)備驅(qū)動(dòng)以及內(nèi)核的原語操作集和中斷處理等。又稱微內(nèi)核。②運(yùn)行在用戶態(tài)的并以客戶機(jī)/服務(wù)器方式運(yùn)行的進(jìn)程層:除內(nèi)核部分外,操作系統(tǒng)所有的其他部分被分成若干個(gè)相對獨(dú)立的進(jìn)程,每一個(gè)進(jìn)程實(shí)現(xiàn)一組服務(wù),稱為服務(wù)進(jìn)程(用戶應(yīng)用程序?qū)?yīng)的進(jìn)程,雖然也以客戶機(jī)/服務(wù)器方式活動(dòng)于該層,但不作為操作系統(tǒng)的功能構(gòu)成成分看待。運(yùn)行模式通常分為用戶模式和特權(quán)模式。目態(tài):為用戶服務(wù)的用戶模式;管態(tài):為系統(tǒng)專用的特權(quán)模式。機(jī)器指令被劃分為一般指令和特權(quán)指令。①特權(quán)指令包括輸入輸出指令、停機(jī)指令等,只有監(jiān)控程序才能執(zhí)行特權(quán)指令。②只能在內(nèi)核態(tài)下運(yùn)行。③運(yùn)行在該模式的代碼,可以無限制的對系統(tǒng)存儲(chǔ)、外部設(shè)備進(jìn)行訪問(置程序計(jì)數(shù)器、清指令寄存器、清溢出標(biāo)志)④用戶程序只能執(zhí)行一般指令,在用戶態(tài)下運(yùn)行。⑤一旦用戶程序需要執(zhí)行特權(quán)指令,處理器會(huì)通過特殊的機(jī)制將控制權(quán)移交給監(jiān)控程序。⑥如果用戶程序在用戶態(tài)下執(zhí)行了特權(quán)指令,則引起訪問中斷,這也是CPU由用戶態(tài)向核心態(tài)轉(zhuǎn)換(置移位方向標(biāo)志位)軟件的觀點(diǎn)從軟件的觀點(diǎn)來看,操作系統(tǒng)是一種大型軟件系統(tǒng),它是多種功能程序的集合。作為一種大型軟件系統(tǒng),操作系統(tǒng)有軟件的外在特性和內(nèi)在特性。資源管理的觀點(diǎn)在計(jì)算機(jī)系統(tǒng)中,硬件和軟件資源可以分成以下幾部分:中央處理器、存儲(chǔ)器(內(nèi)存和外存、外部設(shè)備和信息(文件。操作系統(tǒng)就是負(fù)責(zé)記錄誰在使用什么樣的資源,系統(tǒng)中還有哪些資源空閑,當(dāng)前響應(yīng)了誰對資源的要求,以及收回哪些不再使用的資源等。進(jìn)程的觀點(diǎn)采用進(jìn)程的觀點(diǎn),操作系統(tǒng)可看作是由多個(gè)可以同時(shí)獨(dú)立運(yùn)行的程序和一個(gè)對這些程序進(jìn)行協(xié)調(diào)的核心所組成。虛機(jī)器的觀點(diǎn)虛機(jī)器的觀點(diǎn)將操作系統(tǒng)的功能分成若干個(gè)層次,每一層次完成特定的功能,從而構(gòu)成一個(gè)虛機(jī)器,并為上一層次提供支持,構(gòu)成它的運(yùn)行環(huán)境。服務(wù)提供者觀點(diǎn)操作系統(tǒng)提供了一系列的功能和便利的工作環(huán)境為用戶服務(wù),所以可以把操作系統(tǒng)看作是服務(wù)提供者。為用戶使用便利,該服務(wù)提供者提供了一組功能強(qiáng)大、方便、易用的廣義指令(稱為系統(tǒng)調(diào)用。3命令接口:提供一組命令供用戶直接或間接操作。根據(jù)作業(yè)的方式不同,命令接口又分為聯(lián)機(jī)命令接口和脫機(jī)命令接口。程序接口:程序接口由一組系統(tǒng)調(diào)用命令組成,提供一組系統(tǒng)調(diào)用命令供用戶程序使用。圖形界面接口:通過圖標(biāo)、窗口、菜單、對話框及其他元素和文字組合,在桌面上形成一個(gè)直觀易懂,使用方便的計(jì)算機(jī)操作環(huán)境。進(jìn)程管理(處理器管理①進(jìn)程管理的實(shí)質(zhì)是對中央處理器進(jìn)行管理,所以進(jìn)程管理往往又稱為處理器管理。②進(jìn)程管理主要包括進(jìn)程控制、進(jìn)程同步、進(jìn)程間通信和進(jìn)程調(diào)度等幾方面的內(nèi)容。③其中進(jìn)程控制主要處理進(jìn)程的創(chuàng)建、狀態(tài)轉(zhuǎn)換、進(jìn)程撤銷以及相關(guān)的進(jìn)程資源的分配與回收等事務(wù);④進(jìn)程同步主要處理進(jìn)程之間的關(guān)系,包括進(jìn)程的同步和互斥;⑤進(jìn)程間通信主要處理相互協(xié)作進(jìn)程之間信息的交換問題;⑥而進(jìn)程調(diào)度則是按照一定的算法從就緒隊(duì)列中挑選一個(gè)進(jìn)程在處理器中真正執(zhí)行它。存儲(chǔ)管理存儲(chǔ)管理的任務(wù)是管理計(jì)算機(jī)內(nèi)存的資源。存儲(chǔ)管理有3個(gè)方面的功能:①內(nèi)存的分配與回收:操作系統(tǒng)要為每個(gè)進(jìn)程所占據(jù)的內(nèi)存空間,在分配的過程中,還要盡可能提高內(nèi)存資源的使用效能。②存儲(chǔ)保護(hù):必須考慮程序可能發(fā)生越界的情況,保護(hù)整個(gè)用戶及計(jì)算機(jī)系統(tǒng)的程序運(yùn)行。③內(nèi)存擴(kuò)充:借助于虛擬技術(shù)在邏輯上增加進(jìn)程運(yùn)行空間的大小,這個(gè)大小比實(shí)際的物理內(nèi)存大得多。操作系統(tǒng)把正在使用的頁面保持在內(nèi)存中即將使用的頁面調(diào)入到內(nèi)存中,用戶就感受不到空間使用的限制。文件管理文件管理的任務(wù)是有效的支持文件的存儲(chǔ)、檢索和修改等操作,解決文件的共享、保密和保護(hù)問題,以使用戶方便、安全地訪問文件。主要涉及3個(gè)方面:文件存儲(chǔ)空間的管理、目錄管理、文件系統(tǒng)的安全性。①管理磁盤空間和磁盤碎片整理都屬于文件存儲(chǔ)空間的管理;②目錄管理的主要任務(wù)就是給出組織文件的方法,為每個(gè)文件建立目錄項(xiàng),并對眾多的目錄項(xiàng)加以有效的組織,以便為用戶提供方便的按名存??;③安全性包括文件的讀寫權(quán)限以及存取控制。作業(yè)管理設(shè)備管理用戶接口從用戶的觀點(diǎn)來看,操作系統(tǒng)是用戶與計(jì)算機(jī)系統(tǒng)之間的接口。因此,接口管理的任務(wù)是為用戶提供一個(gè)使用系統(tǒng)的良好環(huán)境,使用戶能有效地組織自己的工作流程,并使整個(gè)系統(tǒng)能高效地運(yùn)行。按照用戶界面的使用環(huán)境和功能特征的不同,一般可以把操作系統(tǒng)分為3種基本類型,即批處理系統(tǒng)、分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)。隨著計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展,又出現(xiàn)了許多類型的操作系統(tǒng),它們是個(gè)人操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)、分布式操作系統(tǒng)和嵌入式操作系統(tǒng)。批處理操作系統(tǒng)的特點(diǎn)是成批處理。優(yōu)點(diǎn):批量處理用戶作業(yè),作業(yè)流程自動(dòng)化較高,資源利用率較高,作業(yè)吞吐量大,從而提高了整個(gè)系統(tǒng)效率。缺點(diǎn):用戶不能直接與計(jì)算機(jī)交互,不適合調(diào)試程序??傮w上看,分時(shí)操作系統(tǒng)具有多路性、交互性、獨(dú)占性和及時(shí)性的特點(diǎn)。多路性:指有多個(gè)用戶在同時(shí)使用一臺(tái)計(jì)算機(jī)。從宏觀上看是多個(gè)人同時(shí)使用一個(gè)處理器,從微觀上看是多個(gè)人在不同時(shí)刻輪流使用一個(gè)處理器。獨(dú)占性:指每個(gè)用戶感覺不到計(jì)算機(jī)為其他人服務(wù),就好像整個(gè)系統(tǒng)為他個(gè)人所獨(dú)占一樣。及時(shí)性:指系統(tǒng)能夠?qū)τ脩籼岢龅恼埱蠹皶r(shí)給予響應(yīng)。實(shí)時(shí)操作系統(tǒng)(RealTimeOperatingSystemRTOS)是指使計(jì)算機(jī)能在規(guī)定的時(shí)間內(nèi)及時(shí)響應(yīng)外部事件的請求,同時(shí)完成對該事件的處理,并能夠控制所有實(shí)時(shí)設(shè)備和實(shí)時(shí)任務(wù)協(xié)調(diào)一致地工作的操作系統(tǒng)。實(shí)時(shí)操作系統(tǒng)主要目標(biāo)是:在嚴(yán)格時(shí)間范圍內(nèi),對外部請求作出反應(yīng),系統(tǒng)具有高度可靠性。分布式操作系統(tǒng)是一個(gè)統(tǒng)一的操作系統(tǒng),在系統(tǒng)中的所有主機(jī)使用的是同一個(gè)操作系統(tǒng)。實(shí)現(xiàn)資源的深度共享。在網(wǎng)絡(luò)操作系統(tǒng)中,由于各個(gè)主機(jī)使用不同的操作系統(tǒng),不能隨意地將一個(gè)計(jì)算任務(wù)從一臺(tái)主機(jī)遷移到另一臺(tái)主機(jī)執(zhí)行。而在分布式系統(tǒng)中,通過統(tǒng)一的操作系統(tǒng)的調(diào)度,在某臺(tái)主機(jī)上的一個(gè)計(jì)算任務(wù)可以遷移到另一臺(tái)主機(jī)上執(zhí)行,真正實(shí)現(xiàn)了處理機(jī)資源的共享。透明性:整個(gè)分布式系統(tǒng)在用戶眼里就像是一臺(tái)具有強(qiáng)大功能的計(jì)算機(jī)系統(tǒng)。用戶并不知道該分布式系統(tǒng)運(yùn)行在多少臺(tái)計(jì)算機(jī)上,各個(gè)主機(jī)地理位置上的差異對用戶來講是透明的,分布式操作系統(tǒng)屏蔽了這種差異。相應(yīng)地,在網(wǎng)絡(luò)操作系統(tǒng)中,用戶能夠清晰地感覺到本地主機(jī)和非本地主機(jī)之間的區(qū)別。自治性:處于分布式系統(tǒng)中的各個(gè)主機(jī)都處于平等的地位,各個(gè)主機(jī)之間沒有主從關(guān)系。一個(gè)主機(jī)的失效一般不會(huì)影響整個(gè)分布式系統(tǒng)。分布式系統(tǒng)的優(yōu)點(diǎn)在于它的分布式,分布式系統(tǒng)可以以較低的成本獲得較高的運(yùn)算性能。分布式系統(tǒng)的另一個(gè)優(yōu)勢是它的可靠性。AndroidAndroid是一種基于Linux的自由及開放源代碼的操作系統(tǒng)。主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Goog1e公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。其特點(diǎn)就是支持移動(dòng)應(yīng)用和支持網(wǎng)絡(luò)。①高可靠性:系統(tǒng)服務(wù)或者設(shè)備驅(qū)動(dòng)故障和與它們有關(guān)的運(yùn)行任務(wù)是隔絕的;②高靈活性:當(dāng)運(yùn)行一個(gè)應(yīng)用程序時(shí),只需把選定的系統(tǒng)服務(wù)加載到系統(tǒng)中即可;③適合分布式處理:一個(gè)精煉的微內(nèi)核接口能夠有演繹成更多模塊的系統(tǒng)結(jié)構(gòu);④提高了系統(tǒng)的可擴(kuò)展性;⑤可移植性;⑥適用于對分布式處理的計(jì)算環(huán)境;⑦融入了面向?qū)ο蠹夹g(shù)。在設(shè)備分配算法中,常采用的數(shù)據(jù)結(jié)構(gòu)主要含4張表:①即系統(tǒng)設(shè)備表②設(shè)備控制表③控制器控制表④通道控制表CHCT用一個(gè)專門的寄存器來指示處理器狀態(tài)稱為程序狀態(tài)字(PSW,其包括的狀態(tài)位有:①進(jìn)位標(biāo)志位(②結(jié)果為零標(biāo)志位(③符號標(biāo)志位(④溢出標(biāo)志位(⑤陷阱標(biāo)志位(⑥中斷使能(中斷屏蔽)標(biāo)志位(⑦虛擬中斷標(biāo)志位(⑧虛擬中斷待決標(biāo)志位(⑨IO特權(quán)級別(IOPLwrite()會(huì)把參數(shù)buf所指的內(nèi)存寫入count個(gè)字節(jié)到參數(shù)fd所指的文件內(nèi)。文件讀寫位置也會(huì)隨之移動(dòng)。若用戶編程需要打印輸出,需要系統(tǒng)調(diào)用write(。一般的處理器由運(yùn)算器、控制器、一系列寄存器以及高速緩存構(gòu)成。運(yùn)算器實(shí)現(xiàn)任何指令中的算術(shù)和邏輯運(yùn)算,是計(jì)算機(jī)計(jì)算的核心;控制器負(fù)責(zé)控制程序運(yùn)行的流程,包括取指令、維護(hù)CP?狀態(tài)、CP?與內(nèi)存的交互等;寄存器是指令在CP?內(nèi)部作處理的過程中暫存數(shù)據(jù)、地址以及指令信息的存儲(chǔ)設(shè)備,在計(jì)算機(jī)的存儲(chǔ)系統(tǒng)中它具有最快的訪問速度;高速緩存處于CP?和物理內(nèi)存之間,一般由控制器中的內(nèi)存管理單元(MemoryManagement?nit,MM?)管理,它的訪問速度快于內(nèi)存,低于寄存器,它利用程序局部性原理使得高速指令處理和低速內(nèi)存訪問得以匹配,從而提高CP?的效率。CP?狀態(tài)的轉(zhuǎn)換在系統(tǒng)運(yùn)行過程中,CP?的狀態(tài)是動(dòng)態(tài)改變的,時(shí)而運(yùn)行于管態(tài),時(shí)而運(yùn)行于目態(tài),即管態(tài)和目態(tài)這兩種狀態(tài)可以相互轉(zhuǎn)換。目態(tài)到管態(tài)的轉(zhuǎn)換其轉(zhuǎn)換的途徑是通過中斷或異常。中斷響應(yīng)時(shí)交換中斷向量,新的中斷向量中的PSWCP?狀態(tài)位標(biāo)志為管態(tài)。管態(tài)到目態(tài)的轉(zhuǎn)換可通過設(shè)置PSW指令(修改程序狀態(tài)字,實(shí)現(xiàn)從操作系統(tǒng)向用戶程序的轉(zhuǎn)換。當(dāng)中央處理器處于管態(tài)時(shí)可執(zhí)行包括特權(quán)指令在內(nèi)的一切機(jī)器指令;當(dāng)中央處理器處于目態(tài)時(shí)不允許執(zhí)行特權(quán)指令。系統(tǒng)啟動(dòng)時(shí),CP?的初始狀態(tài)為管態(tài),然后裝入操作系統(tǒng)程序。操作系統(tǒng)退出執(zhí)行時(shí),讓用戶程序在目態(tài)執(zhí)行。用戶可見寄存器通常對所有程序都是可用的,由機(jī)器語言直接使用。它一般包括數(shù)據(jù)寄存器、地址寄存器以及條件碼寄存器。①數(shù)據(jù)寄存器(DataRegister)有時(shí)又稱為通用寄存器,主要用于各種算術(shù)邏輯指令和訪存指令,對具有浮點(diǎn)能力和多媒體能力的處理器來說,浮點(diǎn)處理過程的數(shù)據(jù)寄存器和整數(shù)處理時(shí)的數(shù)據(jù)寄存器一般是分離的。②地址寄存器(AddressRegister)用于存儲(chǔ)數(shù)據(jù)及指令的物理地址、線性地址或者有效地址,用于某種特定方式的尋址。例如變址寄存器(IndexRegister)、段指針(SegmentPointer)、棧指針(StackPointer)等。③條件碼寄存器保存CP?操作結(jié)果的各種標(biāo)記位,例如算術(shù)運(yùn)算產(chǎn)生的溢出、符號等,這些標(biāo)記在條件分支指令中被測試,以控制程序指令的流向。一般來講,條件碼可以被隱式訪問,但不能通過顯式的方式修改。4.中斷與異常的概念中斷是指CP?對系統(tǒng)中或系統(tǒng)外發(fā)生的異步事件的響應(yīng)。中斷是所有要打斷處理器的正常工作次序,并要求其去處理某一事件的一種常用手段。中斷事件或中斷源:引起中斷的那些事件;中斷請求:中斷源向處理器發(fā)出的請求信號;中斷處理程序:處理中斷事件的程序;中斷斷點(diǎn):發(fā)生中斷時(shí)正在執(zhí)行的程序的暫停點(diǎn);中斷響應(yīng):處理器暫停當(dāng)前程序轉(zhuǎn)而處理中斷的過程;中斷返回中斷處理結(jié)束之后恢復(fù)原來程序的執(zhí)行。為了使得中斷裝置可以找到恰當(dāng)?shù)闹袛嗵幚沓绦颍瑢iT設(shè)計(jì)了中斷處理程序入口地址映射表,又稱中斷向量表。表中的每一項(xiàng)稱為一個(gè)中斷向量,主要由程序狀態(tài)字PSW和指令計(jì)數(shù)器PC的值組成。異常最早中斷和異常并沒有區(qū)分,都把它們叫做中斷。隨著它們的發(fā)生原因和處理方式的差別愈發(fā)明顯,才有了現(xiàn)在的中斷和異常之分。中斷系統(tǒng)可以分為兩大組成部分:中斷系統(tǒng)的硬件中斷裝置和軟件中斷處理程序。硬件中斷裝置負(fù)責(zé)捕獲中斷源發(fā)出的中斷請求,并以一定的方式響應(yīng)中斷源,然后將處理器的控制權(quán)移交給特定的中斷處理程序。中斷處理程序則針對中斷事件的性質(zhì)而執(zhí)行相應(yīng)的一系列操作。典型的中斷包括:輸入輸出(I/O)I/O控制器產(chǎn)生,用于通知一個(gè)I/O控制臺(tái)中斷,如系統(tǒng)操作員通過控制臺(tái)發(fā)出命令等。硬件故障中斷,由掉電、存儲(chǔ)器校驗(yàn)錯(cuò)等硬件故障引起等。異常發(fā)生的時(shí)間以及位置具有確定性。典型的異常包括:程序性中斷。在某些條件下由指令執(zhí)行結(jié)果產(chǎn)生,例如算術(shù)溢出、被零除、目態(tài)程序試圖執(zhí)行非法指令、訪問不被允許訪問的存儲(chǔ)位置、虛擬存儲(chǔ)中的缺頁等。訪管指令異常。目的是要求操作系統(tǒng)提供系統(tǒng)服務(wù)。CP?CP?遠(yuǎn)的設(shè)備。8.交互式操作系統(tǒng)交互式操作系統(tǒng)是指用戶交互式地向系統(tǒng)提出命令請求,系統(tǒng)接受每個(gè)用戶的命令,采用時(shí)間片輪轉(zhuǎn)方式處理服務(wù)請求,并通過交互方式在終端上向用戶顯示結(jié)果。FCFS(先來先服務(wù)),最短作業(yè)優(yōu)先,最短剩余時(shí)間優(yōu)先,時(shí)間片輪轉(zhuǎn),最高優(yōu)先級算法,多級反饋隊(duì)列算法和最短進(jìn)程優(yōu)先都適用于交互式操作系統(tǒng)。9.系統(tǒng)調(diào)用為了從操作系統(tǒng)中獲得服務(wù),用戶程序必須使用系統(tǒng)調(diào)用(systemcall),系統(tǒng)調(diào)用陷入內(nèi)核并調(diào)用操作系統(tǒng)。訪管指令把用戶態(tài)切換成內(nèi)核態(tài),并啟用操作系統(tǒng)。當(dāng)有關(guān)工作完成之后,在系統(tǒng)調(diào)用后面的指令把控制權(quán)返回給用戶程序。系統(tǒng)調(diào)用程序被看成是一個(gè)低級的過程,只能由匯編語言直接訪問。系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口。關(guān)閉中斷響應(yīng)指令屬于特權(quán)指令,用戶程序不能直接執(zhí)行,必須要使CP?陷入核心態(tài),由操作系統(tǒng)來執(zhí)行該特權(quán)指令,因此該程序必須先發(fā)起訪管中斷,這是讓CP?由用戶態(tài)向核心態(tài)轉(zhuǎn)換的方法。所謂程序并發(fā)執(zhí)行是指兩個(gè)或兩個(gè)以上程序在計(jì)算機(jī)系統(tǒng)中同處于已開始執(zhí)行且尚未結(jié)束的狀態(tài)。程序并發(fā)執(zhí)行產(chǎn)生了一些和程序順序執(zhí)行時(shí)不同的特性:①并發(fā)程序在執(zhí)行期間具有相互制約關(guān)系;②程序與計(jì)算不在一一對應(yīng);③并發(fā)程序執(zhí)行結(jié)果不可再現(xiàn)。80x86系統(tǒng)是把所有的中斷向量集中起來,按中斷類型號從小到大的順序存放到存儲(chǔ)器的某一區(qū)域內(nèi),這個(gè)存open()進(jìn)程控制塊多道程序設(shè)計(jì)所謂多道程序設(shè)計(jì),就是允許多個(gè)程序同時(shí)進(jìn)入內(nèi)存并運(yùn)行。多道程序設(shè)計(jì)是操作系統(tǒng)所采用的最基本、最重要的技術(shù),其根本目的是提高整個(gè)系統(tǒng)的效率。①②③②①②6.3運(yùn)行中的進(jìn)程可以處于以下3種狀態(tài)之一:運(yùn)行、就緒、等待。在任何時(shí)刻,任何進(jìn)程都處于且僅處于3種狀態(tài)之一。運(yùn)行狀態(tài)(CP?,CP?②在一個(gè)單CP?系統(tǒng)中,最多只有一個(gè)進(jìn)程處于運(yùn)行態(tài)。就緒狀態(tài)(①就緒狀態(tài)是指一個(gè)進(jìn)程已經(jīng)具備運(yùn)行條件,但由于沒有獲得CP?而不能運(yùn)行所處的狀態(tài)。②一旦把CP?分配給它,該進(jìn)程就可運(yùn)行。③處于就緒狀態(tài)的進(jìn)程可以是多個(gè)。等待狀態(tài)(①等待狀態(tài)也稱阻塞狀態(tài)或封鎖狀態(tài)。②是指進(jìn)程因等待某種事件發(fā)生而暫時(shí)不能運(yùn)行的狀態(tài)。③系統(tǒng)中處于等待狀態(tài)的進(jìn)程可以有多個(gè)。五狀態(tài)進(jìn)程模型中,進(jìn)程狀態(tài)被分成下列五種狀態(tài)。進(jìn)程在運(yùn)行過程中主要是在就緒、運(yùn)行和阻塞3種狀態(tài)間進(jìn)行轉(zhuǎn)換。創(chuàng)建狀態(tài)和退出狀態(tài)描述進(jìn)程創(chuàng)建的過程和進(jìn)程退出的過程。①運(yùn)行狀態(tài)(Runing):進(jìn)程占用處理機(jī)資源;處于此狀態(tài)的進(jìn)程的數(shù)目小于等于處理機(jī)的數(shù)目。在沒有其他進(jìn)程可以執(zhí)行時(shí)(如所有進(jìn)程都在阻塞狀態(tài)),通常會(huì)自動(dòng)執(zhí)行系統(tǒng)的空閑進(jìn)程。②就緒狀態(tài)(Ready):進(jìn)程已獲得除處理機(jī)外的所需資源,等待分配處理機(jī)資源;只要分配處理機(jī)就可執(zhí)行。③阻塞狀態(tài)(Blocked):由于進(jìn)程等待I/O操作或進(jìn)程同步等條件而暫停運(yùn)行時(shí)處于阻塞狀態(tài)。④創(chuàng)建狀態(tài)(New):進(jìn)程正在創(chuàng)建過程中,還不能運(yùn)行。⑤結(jié)束狀態(tài)(Exit:進(jìn)程已結(jié)束運(yùn)行,回收除進(jìn)程控制塊之外的其他資源,并讓其他進(jìn)程從進(jìn)程控制塊中收集有關(guān)信息(如記賬和將退出代碼傳遞給父進(jìn)程。七狀態(tài)進(jìn)程模型把原來的就緒狀態(tài)和阻塞狀態(tài)進(jìn)行了細(xì)分,增加了就緒掛起和阻塞掛起兩個(gè)狀態(tài);這時(shí)原來的就緒狀態(tài)和阻塞狀態(tài)的意義也發(fā)生了一些變化:①就緒狀態(tài)(Ready):進(jìn)程在內(nèi)存且可立即進(jìn)入運(yùn)行狀態(tài);②阻塞狀態(tài)(Blocked):進(jìn)程在內(nèi)存并等待某事件的出現(xiàn);③阻塞掛起狀態(tài)(Blocked,Suspend):進(jìn)程在外存并等待某事件的出現(xiàn)。④就緒掛起狀態(tài)(Ready,Suspend):進(jìn)程在外存,但只要進(jìn)入內(nèi)存,即可運(yùn)行;①阻塞到阻塞掛起:沒有進(jìn)程處于就緒狀態(tài)或就緒進(jìn)程要求更多內(nèi)存資源時(shí),會(huì)進(jìn)行這種轉(zhuǎn)換,以提交新進(jìn)②就緒到就緒掛起:當(dāng)有高優(yōu)先級阻塞(系統(tǒng)認(rèn)為會(huì)很快就緒的)進(jìn)程和低優(yōu)先級就緒進(jìn)程時(shí),系統(tǒng)會(huì)選擇③運(yùn)行到就緒掛起:對搶先式分時(shí)系統(tǒng),當(dāng)有高優(yōu)先級阻塞掛起進(jìn)程因事件出現(xiàn)而進(jìn)入就緒掛起時(shí),系統(tǒng)可②阻塞掛起到阻塞:當(dāng)一個(gè)進(jìn)程釋放足夠內(nèi)存時(shí),系統(tǒng)會(huì)把一個(gè)高優(yōu)先級阻塞掛起進(jìn)程激活,系統(tǒng)認(rèn)為會(huì)很進(jìn)程控制塊(ProcessControl程控制塊(ProcessControlBlock,PCBPCBPCBPCB對進(jìn)程進(jìn)行控制①調(diào)度信息供進(jìn)程調(diào)度時(shí)使用,描述了進(jìn)程當(dāng)前所處的狀況,它包括進(jìn)程名、進(jìn)程號、存儲(chǔ)信息、優(yōu)先級、的內(nèi)容。所以,PCB中的現(xiàn)場信息只記錄那些可能會(huì)被其他進(jìn)程改變的寄存器,如程序狀態(tài)字、時(shí)鐘、界地址寄存PCB的現(xiàn)場信息。PCB3PCBPCB,置該進(jìn)程為就緒狀態(tài),最后把它插入就撤銷進(jìn)程的實(shí)質(zhì)是撤銷PCBPCBPCB,,創(chuàng)建一個(gè)新線程花費(fèi)時(shí)間少(結(jié)束亦如此。創(chuàng)建線程不需另行分配資源,因而創(chuàng)建線程的速度比創(chuàng)建進(jìn)程的速度快,且系統(tǒng)的開銷也少。線程能獨(dú)立執(zhí)行,能充分利用和發(fā)揮處理器與外圍設(shè)備并行工作能力。Pthread線程調(diào)用描述創(chuàng)建一個(gè)新線程結(jié)束調(diào)用的線程等待一個(gè)特定的線程退出釋放CP?創(chuàng)建并初始化一個(gè)線程的屬性結(jié)構(gòu)刪除一個(gè)線程的屬性結(jié)構(gòu)執(zhí)行進(jìn)程調(diào)度一般是在下述情況下發(fā)生的:正在執(zhí)行的進(jìn)程()正在執(zhí)行的進(jìn)程()調(diào)用阻塞原語將自己阻塞起來進(jìn)入等待狀態(tài);正在執(zhí)行的進(jìn)程()調(diào)用了阻塞原語操作,并且因?yàn)橘Y源不足而被阻塞;或調(diào)用了喚醒原語操作激活了等待資源的進(jìn)程(線程);時(shí)間片用完;以上都是在CP?為不可搶占方式下的引起進(jìn)程調(diào)度的原因。在CP?方式是可搶占方式時(shí),還有下面的原因:就緒隊(duì)列中的某個(gè)進(jìn)程()的優(yōu)先級高于當(dāng)前運(yùn)行進(jìn)程()的優(yōu)先級時(shí),引發(fā)進(jìn)程()調(diào)度。I/O某些進(jìn)程花費(fèi)了絕大多數(shù)時(shí)間在計(jì)算上,而其他進(jìn)程則在等待I/O上花費(fèi)了絕大多數(shù)時(shí)間。前者稱為計(jì)算密集型(Compute–Bound,也稱為CP?密集型,后者稱為I/O密集型(I/O–Bound),典型的計(jì)算密集型進(jìn)程具有較長時(shí)間的CP?集中使用和較小頻度的I/O等待。運(yùn)行大量批處理作業(yè)的大型計(jì)算中心的管理者們?yōu)榱苏莆掌湎到y(tǒng)的工作狀態(tài),通常檢查3個(gè)指標(biāo):吞吐量、周轉(zhuǎn)時(shí)間以及CP?利用率。對于交互式系統(tǒng),特別是分時(shí)系統(tǒng)和服務(wù)器,則有不同的指標(biāo)。最重要的是最小響應(yīng)時(shí)間和均衡性。實(shí)時(shí)系統(tǒng)有著與交互式系統(tǒng)不一樣的特性,所以有不同的調(diào)度目標(biāo)。實(shí)時(shí)系統(tǒng)的特點(diǎn)是或多或少必須滿足截止時(shí)間。實(shí)時(shí)系統(tǒng)最主要的要求是滿足所有的(或大多數(shù))截止時(shí)間要求。為了避免這些問題,進(jìn)程調(diào)度程序必須是高度可預(yù)測的和有規(guī)律的。①FCFS②③④⑤⑥⑦linux5①②③④⑤①③正在執(zhí)行的進(jìn)程調(diào)用了阻塞原語操作,并且因?yàn)橘Y源不足而被阻塞;或調(diào)用了喚醒原語操作激活了等待資④②0號、1④初始化批處理作業(yè):在初始化批處理作業(yè)時(shí),采用一個(gè)后臺(tái)進(jìn)程以便使新進(jìn)程以并發(fā)的運(yùn)行方式完成特定③④收回處理器:將處理器有關(guān)的寄存器內(nèi)容送入該進(jìn)程的進(jìn)程控制塊內(nèi)相應(yīng)單元,以保護(hù)該進(jìn)程的現(xiàn)場,并,進(jìn)程同步:指多個(gè)進(jìn)程中發(fā)生的事件存在某種時(shí)序關(guān)系,必須協(xié)同動(dòng)作,相互配合,以共同完成一個(gè)任務(wù)。進(jìn)程互斥:指由于共享資源所要求的排他性,進(jìn)程間要相互競爭,以使用這些互斥資源。進(jìn)程互斥的解決有兩種做法:一是由競爭各方平等協(xié)商;二是引入進(jìn)程管理者,由管理者來協(xié)調(diào)競爭各方對互斥資源的使用。3互斥(MutualExclusion:保證資源的互斥使用是指多個(gè)進(jìn)程不能同時(shí)使用同一個(gè)資源,這是正確使用資源的最基本要求;死鎖(Deadlock:避免死鎖是指避免多個(gè)進(jìn)程互不相讓,避免出現(xiàn)都得不到足夠資源的情況,從而保證系統(tǒng)功能的正常運(yùn)行;饑餓(Starvation:避免饑餓是指避免某些進(jìn)程一直得不到資源或得到資源的概率很小,從而保障系統(tǒng)內(nèi)資源使用的公平性。相互感知度劃分:相互感知的程度交互關(guān)系一個(gè)進(jìn)程對其他進(jìn)程的影潛在的控制問題相互不感知(完全不了解其他進(jìn)程的存在)競爭(一個(gè)進(jìn)程的操作對其他進(jìn)程的結(jié)果無影響互斥、死鎖、饑餓間接感知(雙方都與第方交互,如共享資源通過共享進(jìn)行協(xié)一個(gè)進(jìn)程的結(jié)果依賴于從其他進(jìn)程獲得的信息互斥、死鎖、饑餓直接感知(互,如通信)通過通信進(jìn)行協(xié)一個(gè)進(jìn)程的結(jié)果依賴于從其他進(jìn)程獲得的信息死鎖、饑餓進(jìn)入?yún)^(qū)(EntrySection:為了進(jìn)入臨界區(qū)使用臨界資源,在進(jìn)入?yún)^(qū)要檢查可否進(jìn)入臨界區(qū);如果可以進(jìn)入臨界區(qū),通常設(shè)置相應(yīng)的“正在訪問臨界區(qū)”標(biāo)志,以阻止其他進(jìn)程同時(shí)進(jìn)入臨界區(qū)。臨界區(qū)(CriticalSection:進(jìn)程中訪問臨界資源的一段代碼。退出區(qū)(ExittSection剩余區(qū)(RemainderSection:代碼中的其余部分。進(jìn)程同步機(jī)制準(zhǔn)則空閑則入:任何同步機(jī)制都必須保證任何時(shí)刻最多只有一個(gè)進(jìn)程位于臨界區(qū)。當(dāng)有進(jìn)程位于臨界區(qū)時(shí),任何其他進(jìn)程均不能進(jìn)入臨界區(qū)。忙則等待:當(dāng)已有進(jìn)程處于其臨界區(qū)時(shí),后到達(dá)的進(jìn)程只能在進(jìn)入?yún)^(qū)等待。有限等待:為了避免死鎖等現(xiàn)象的出現(xiàn),等待進(jìn)入臨界區(qū)的進(jìn)程不能無限期地“死等”。讓權(quán)等待:因在進(jìn)入?yún)^(qū)等待而不能進(jìn)入臨界區(qū)的進(jìn)程,應(yīng)釋放處理機(jī),轉(zhuǎn)換到阻塞狀態(tài),以使得其他進(jìn)程有機(jī)會(huì)得到處理機(jī)的使用權(quán)。進(jìn)程互斥的硬件方法目前,在平等協(xié)商時(shí)通常利用某些硬件指令來實(shí)現(xiàn)進(jìn)程互斥。硬件方法的主要思路是用一條指令完成讀和寫兩個(gè)操作,因而保證讀操作與寫操作不被打斷。依據(jù)所采用的指令的不同,硬件方法分成TS指令和Swap指令兩種。TS指令的功能是讀出指定標(biāo)志后把該標(biāo)志設(shè)置為TR?E。TS指令的功能可描述成下面的函數(shù)。BooleanTS(Boolean*lock)Booleanold;old=*lock;lock=TR?E;returnold;利用TS指令實(shí)現(xiàn)的進(jìn)程互斥算法是,每個(gè)臨界資源設(shè)置一個(gè)公共布爾變量lock,表示資源的兩種狀TR?E表示正被占用,F(xiàn)ALSE表示空閑,初值為FALSE。在進(jìn)入?yún)^(qū)利用TS進(jìn)行檢查和修改標(biāo)志lock。有進(jìn)程在臨界區(qū)時(shí),重復(fù)檢查,直到其他進(jìn)程退出時(shí)檢查通過。所有要訪問臨界資源的進(jìn)程的進(jìn)入?yún)^(qū)和退出區(qū)代碼是相同的。1②如為01③測試并設(shè)置指令是一條完整的指令,而在一條指令的執(zhí)行中間是不會(huì)被中斷的,保證了鎖的測試和關(guān)閉的0。2)Swap指令(Exchange指令)Swap指令的功能是交換兩個(gè)字()的內(nèi)容??捎孟旅娴暮瘮?shù)描述Swap指令的功能。VoidSWAP(int*a,Inttemp=*a;*a=*b;*bSwap指令實(shí)現(xiàn)的進(jìn)程互斥算法是,每個(gè)臨界資源設(shè)置一個(gè)公共布爾變量lock,初值為FALSE;每個(gè)進(jìn)程設(shè)置一個(gè)私有布爾變量key,用于與lock間的信息交換在進(jìn)入?yún)^(qū)利用Swap指令交換lockkey的內(nèi)容,然后檢查key信號量是由操作系統(tǒng)提供的管理公有資源的有效手段。信號量代表可用資源實(shí)體的數(shù)量。屬于低級通信方法PVPV操作由P操作原語和V操作原語組成(原語是不可中斷的過程)P(SV(SP、V原語的執(zhí)行,不受進(jìn)程調(diào)度和執(zhí)行的打斷,從而很好地解決了原語操作的整體性。PV依據(jù)對臨界區(qū)訪問過程的分析,信號量機(jī)制中P原語相當(dāng)于進(jìn)入?yún)^(qū)操作,V原語相當(dāng)于退出區(qū)操作。下面來分析操作系統(tǒng)對這兩個(gè)原語操作的處理過程。P原語所執(zhí)行的操作可用下面函數(shù)wait(s)來描述。––s.count;//表示申請一個(gè)資源If(s.count<0調(diào)用進(jìn)程進(jìn)入等待隊(duì)列s.queue;阻塞調(diào)用進(jìn)程;V原語所執(zhí)行的操作可用下面函數(shù)signal(s)來描述。++s.count;//表示釋放一個(gè)資源從等待隊(duì)列s.queue中取出頭一個(gè)進(jìn)程P進(jìn)入就緒隊(duì)列;利用操作系統(tǒng)提供的信號量機(jī)制,可實(shí)現(xiàn)臨界資源的互斥訪問。在使用信號量進(jìn)行共享資源訪問控制時(shí),必須成對使用PV原語。P原語則不能保證互斥訪問,遺漏V原語則不能在使用臨界資源之后將其釋放給其他等待的進(jìn)程。P、V原語的使用不能次序錯(cuò)誤、重復(fù)或遺漏。前趨關(guān)系利用操作系統(tǒng)提供的信號量機(jī)制可實(shí)現(xiàn)進(jìn)程間的同步,即所謂的前趨關(guān)系。3共享內(nèi)存在相互通信的進(jìn)程之間設(shè)有一個(gè)公共內(nèi)存區(qū),一組進(jìn)程向該公共內(nèi)存中寫,另一組進(jìn)程從公共內(nèi)存中讀,通過這種方式實(shí)現(xiàn)兩組進(jìn)程間的信息交換。消息機(jī)制進(jìn)程在運(yùn)行過程中,可能需要與其他的進(jìn)程進(jìn)行信息交換,于是進(jìn)程通過某種手段發(fā)出自己的消息或接收其他進(jìn)程發(fā)來的消息。消息緩沖區(qū)通信機(jī)制①消息緩沖區(qū),這是一個(gè)由消息長度、消息正文、發(fā)送者、消息隊(duì)列指針組成的數(shù)據(jù)結(jié)構(gòu)。②消息隊(duì)列首指針m_q,一般保存在PCB中。③互斥信號量m_mutex,初值為1PCB中設(shè)置。④同步信號量m_syn,初值為0PCB中設(shè)置。為實(shí)現(xiàn)消息緩沖通信,要利用發(fā)送消息原語(send)和接收消息原語(receive①發(fā)送消息原語send(receiver,a)發(fā)送進(jìn)程調(diào)用send原語發(fā)送消息,調(diào)用參數(shù)receiver為接收進(jìn)程名,a為發(fā)送進(jìn)程存放消息的內(nèi)存區(qū)的首地址。send原語先申請分配一個(gè)消息緩沖區(qū),將由a指定的消息復(fù)制到緩沖區(qū),然后將它掛入接收進(jìn)程的消息隊(duì)列,最后喚醒可能因等待消息而等待的接收進(jìn)程。send原語描述如下:R找接收進(jìn)程,如果沒找到,則出錯(cuò)返回;申請空緩沖區(qū)P(s_b);取空緩沖區(qū);把消息從M處復(fù)制到空緩沖區(qū);根據(jù)m_q,把緩沖區(qū)掛到接收進(jìn)程的消息鏈鏈尾;②接收消息原語receive(a)receivea為接收進(jìn)程的內(nèi)存消息區(qū)。receive原語從消息隊(duì)列中a所指定的消息區(qū),然后釋放該消息緩沖區(qū)。若消息隊(duì)列為空,則阻塞調(diào)信箱通信以發(fā)送信件以及接收回答信件為進(jìn)程間通信的基本方式。好處:發(fā)送方和接收方不必直接建立聯(lián)系,沒有處理時(shí)間上的限制。發(fā)送方可以在任何時(shí)間發(fā)信,接收方也可以在任何時(shí)間收信。規(guī)則:①若發(fā)送信件時(shí)信箱已滿,則發(fā)送進(jìn)程應(yīng)被置成“等信箱”狀態(tài),直到信箱有空時(shí)才被釋放。②若取信件時(shí)信箱中無信,則接收進(jìn)程應(yīng)被置成“等信件”狀態(tài),直到有信件時(shí)才被釋放。管道通信①管道通信是連接兩個(gè)進(jìn)程之間的一個(gè)打開的共享文件,專用于進(jìn)程之間進(jìn)行數(shù)據(jù)通信。②管道通信的基礎(chǔ)是文件系統(tǒng)。③在對管道文件進(jìn)行讀寫操作的過程中,發(fā)送進(jìn)程和接收進(jìn)程要實(shí)施正確的同步和互斥,以確保通信的正確性。④管道通信具有傳送數(shù)據(jù)量大的優(yōu)點(diǎn),但通信速度較慢。②地址越界可能侵犯其他進(jìn)程的空間,影響其他進(jìn)程的正常運(yùn)行;也可能侵犯操作系統(tǒng)空間,導(dǎo)致系統(tǒng)混②④分區(qū)存儲(chǔ)管理分區(qū)存儲(chǔ)管理是能滿足多道程序運(yùn)行的最簡單的存儲(chǔ)管理方案。其基本思想是把內(nèi)存劃分成若干個(gè)連續(xù)區(qū)域,稱為分區(qū),每個(gè)分區(qū)裝入一個(gè)運(yùn)行程序。分區(qū)的方式可以歸納成固定分區(qū)和可變分區(qū)兩類。固定分區(qū)①固定分區(qū)是指系統(tǒng)先把內(nèi)存劃分成若干個(gè)大小固定的分區(qū),一旦劃分好,在系統(tǒng)運(yùn)行期間便不再重新劃分。②為了滿足不同程序的存儲(chǔ)要求,各分區(qū)的大小可以不同。③由于每一分區(qū)的大小是固定的,就對可容納程序的大小有所限制了。④因此,程序運(yùn)行時(shí)必須提供對內(nèi)存資源的最大申請量;⑤固定分區(qū)方案靈活性差,可接納程序的大小受到了分區(qū)大小的嚴(yán)格限制??勺兎謪^(qū)①可變分區(qū)是指系統(tǒng)不預(yù)先劃分固定分區(qū),而是在裝入程序時(shí)劃分內(nèi)存分區(qū),使為程序分配的分區(qū)的大小正好等于該程序的需求量,且分區(qū)的個(gè)數(shù)是可變的。②顯然,可變分區(qū)有較大的靈活性,較之固定分區(qū)能獲得更好的內(nèi)存利用率。③在可變分區(qū)管理方案中,隨著分配和回收次數(shù)的增加,必然導(dǎo)致碎片的出現(xiàn)。④解決碎片問題的辦法是在適當(dāng)時(shí)刻進(jìn)行碎片整理,通過移動(dòng)內(nèi)存中的程序,把所有空閑碎片合并成一個(gè)連續(xù)的大空閑區(qū)且放在內(nèi)存的一端,而把所有程序占用區(qū)放在內(nèi)存的另一端,這一技術(shù)稱為“移動(dòng)技術(shù)”或“緊湊技術(shù)”或“緊縮技術(shù)”。這里介紹操作系統(tǒng)查找和分配空閑區(qū)的四種分配算法。最先適應(yīng)算法最先適應(yīng)算法,又稱順序分配算法。在這種分配算法中,當(dāng)接到內(nèi)存申請時(shí),順序查找分區(qū)說明表,找到第一個(gè)滿足申請長度的空閑區(qū),將其分割并分配。此算法簡單,可以快速做出分配決定。當(dāng)接到內(nèi)存申請時(shí),查找分區(qū)說明表,找到第一個(gè)能滿足申請長度的最小空閑區(qū),將其分割并分配。此算法最節(jié)約空間,因?yàn)樗M量不分割大的空閑區(qū);其缺點(diǎn)是可能會(huì)形成很多很小的空閑區(qū)域,稱作碎片。最壞適應(yīng)算法當(dāng)接到內(nèi)存申請時(shí),查找分區(qū)說明表,找到能滿足申請要求的最大的空閑區(qū)。基本思想:在大空閑區(qū)中裝入信息后,分割剩下的空閑區(qū)相對也很大,還能用于裝入其他程序。優(yōu)點(diǎn):可以避免形成碎片;缺點(diǎn):分割了大的空閑區(qū)后,如果再遇到較大的程序申請內(nèi)存時(shí),無法滿足要求的可能性較大。下次適應(yīng)算法當(dāng)接到內(nèi)存申請時(shí),查找分區(qū)說明表,從上一次分配的位置開始掃描內(nèi)存,選擇下一個(gè)大小足夠的可用塊。4回收分區(qū)的上鄰分區(qū)是空閑的,需要將兩個(gè)空閑區(qū)合并成一個(gè)更大的空閑區(qū),然后修改空閑區(qū)表。方法如下:如果空閑區(qū)表中第i個(gè)登記欄中的“起始地址+長度”正好等于S,則表明回收區(qū)有一個(gè)上鄰空閑區(qū)。這時(shí)要修改第i欄登記項(xiàng)的內(nèi)容:起始地址不變,長度為原長度加上L,即:度=原長度+L回收分區(qū)的下鄰分區(qū)是空閑的,需要將兩個(gè)空閑區(qū)合并成一個(gè)更大的空閑區(qū),然后修改空閑區(qū)表。方法如下:如果S+L正好等于空閑區(qū)表中某個(gè)登記的欄目(假定為第i欄)所示分區(qū)的起始地址,則表明回收區(qū)有一個(gè)下鄰空閑區(qū)。這時(shí)只要修改第i欄登記項(xiàng)的內(nèi)容:起始地址=S長度=原長度+Li欄指示的空閑區(qū)是回收區(qū)與下鄰空閑區(qū)合并后的一個(gè)大空閑區(qū)?;厥辗謪^(qū)的上鄰分區(qū)和下鄰分區(qū)都是空閑的,需要將3個(gè)空閑區(qū)合并成一個(gè)更大的空閑區(qū),然后修改空閑區(qū)表。如 S=第i欄起始地址+長度S+L=k欄起始地址則表明回收區(qū)既有上鄰空閑區(qū),又有下鄰空閑區(qū)。此時(shí),必須把這3個(gè)區(qū)合并成一個(gè)空閑區(qū)登記入空閑區(qū)表中,只需使用一個(gè)登記欄目。具體修改方法如下:ii欄長度為“i欄中原長度+k欄中長度+L”;第k欄的標(biāo)志應(yīng)修改成“空”狀態(tài)。于是,第t欄中登記的空閑區(qū)就是合并后的空閑區(qū),而第k欄成為空表目了?;厥辗謪^(qū)的上鄰分區(qū)和下鄰分區(qū)都不是空閑的,則直接將空閑分區(qū)記錄在空閑區(qū)表中。這時(shí),應(yīng)找一個(gè)標(biāo)志為“空”的登記欄,把回收區(qū)的起始地址和長度登記入表,且把該欄目中的標(biāo)志位修改成“未分配”,表示該登記欄中指示了一個(gè)空閑區(qū)。覆蓋技術(shù)利用相互獨(dú)立的程序段之間在內(nèi)存空間的相互覆蓋,邏輯上擴(kuò)充了內(nèi)存空間,從而在某種程度上實(shí)現(xiàn)了在小容量內(nèi)存上運(yùn)行較大程序的目的。覆蓋技術(shù)主要用于系統(tǒng)程序的內(nèi)存管理上。交換技術(shù)SwppigAe交換技術(shù)利用外存來邏輯地?cái)U(kuò)充內(nèi)存,它的主要特點(diǎn)是,打破了一個(gè)程序一旦進(jìn)入內(nèi)存便一直運(yùn)行到結(jié)束的限制。頁式存儲(chǔ)管理頁式存儲(chǔ)器提供編程使用的邏輯地址由兩部分組成:頁號和頁內(nèi)地址。其格式為:頁內(nèi)地址頁內(nèi)地址頁號頁式存儲(chǔ)的地址結(jié)構(gòu)確定了內(nèi)存分塊的大小,也就決定了頁面的大小。假定地址用m個(gè)二進(jìn)制表示,其中頁內(nèi)地址部分占用n個(gè)二進(jìn)制位,那么,每一個(gè)塊的長度就是,也就是每一頁有2n個(gè)字節(jié)。這時(shí),頁號部分占用了m–n位,所以,最大的程序可允許有2(m–n)個(gè)頁面。從地址結(jié)構(gòu)來看,邏輯地址是連續(xù)的。頁式存儲(chǔ)管理分配內(nèi)存空間以物理頁面為單位;簡單的內(nèi)存分配表可以用一張“位示圖”構(gòu)成。位示圖中的每一位與一個(gè)內(nèi)存塊對應(yīng),每一位的值可以是01,0表示對應(yīng)的內(nèi)存塊為空閑,1表示已占用。在進(jìn)行內(nèi)存分配時(shí),先查看空閑塊數(shù)是否能滿足程序要求。若不能滿足,則不進(jìn)行分配,程序就不能裝入內(nèi)存;若能滿足,則根據(jù)需求從位示圖中找出一些為0的位,把這些位置成1,并從空閑塊數(shù)中減去本次分配的塊數(shù),然后按照找到的位計(jì)算出對應(yīng)的塊號。當(dāng)找到一個(gè)為0塊號=字號×字長+位號把程序裝入到這些內(nèi)存塊中,并為該程序建立頁表。為實(shí)現(xiàn)頁式存儲(chǔ)管理,系統(tǒng)要提供頁表起始地址寄存器和頁表長度寄存器以及要高速緩沖存儲(chǔ)器的支持。頁表指出該程序邏輯地址中的頁號與所占用的內(nèi)存塊號之間的對應(yīng)關(guān)系;頁表的長度由程序擁有的頁面數(shù)而定;頁表是硬件進(jìn)行地址轉(zhuǎn)換的依據(jù),每執(zhí)行一條指令時(shí)按邏輯地址中的頁號查頁表。若頁表中無此頁號,則產(chǎn)生一個(gè)“地址錯(cuò)”的程序性中斷事件。若頁表中有此頁號,則可得到對應(yīng)的內(nèi)存塊號,按計(jì)算公式可轉(zhuǎn)換成訪問的內(nèi)存的物理地址。物理地址的計(jì)算公式為:物理地址=內(nèi)存塊號×塊長+頁內(nèi)地址根據(jù)二進(jìn)制乘法運(yùn)算的性質(zhì),一個(gè)二進(jìn)制數(shù)乘以2nn位。所以,實(shí)際上是把內(nèi)存塊號作為絕對地址的高位地址,而頁內(nèi)地址作為它的低地址部分。多級頁表當(dāng)系統(tǒng)支持32位的邏輯地址空間時(shí),若頁面大小為4KB1M個(gè)表項(xiàng)。假設(shè)每個(gè)表項(xiàng)由4字節(jié)組成,那么僅僅是為了存儲(chǔ)頁表就要為每個(gè)進(jìn)程分配4MB的物理地址空間。假設(shè)用戶地址空間為2GB4KB,則一個(gè)進(jìn)程最多可以有219頁。若用4字節(jié)表示一頁的物理頁號,則頁表本身就占用2MB512個(gè)頁面存放。存放頁表的頁面為頁表頁。一般來說,頁表頁可以不連續(xù)存放,因此需要對頁表頁的地址進(jìn)行索引。在大多數(shù)操作系統(tǒng)中采用二級頁表,即由頁表頁和頁目錄一起構(gòu)成進(jìn)程頁表。第一級表示頁目錄,保存頁表頁的地址;第二級表示頁表頁,保存物理頁面號(即內(nèi)存塊號)。在Windows操作系統(tǒng)中,頁目錄被稱為頁目錄項(xiàng)(PageDirectoryEntry,PDE),頁表被稱為頁表項(xiàng)(PageTab1eEntryPTE)。散列頁表當(dāng)?shù)刂房臻g大于32位時(shí),一種常見的方法是使用以頁號為散列值的散列頁表。其中每個(gè)表項(xiàng)都包含一個(gè)鏈表,該鏈表中元素的散列值都指向同一個(gè)位置。a)b)c)素的指針。反置頁表在反置頁表中,每個(gè)物理頁框?qū)?yīng)一個(gè)表項(xiàng),每個(gè)表項(xiàng)包含與該頁框相對應(yīng)的虛擬頁面地址以及擁有該頁面進(jìn)程的信息。因此,整個(gè)系統(tǒng)中只存在一個(gè)頁表,并且每個(gè)頁框?qū)?yīng)其中一個(gè)表項(xiàng)。由于一方面系統(tǒng)中只有一個(gè)頁表,而另一方面系統(tǒng)中又存在著多個(gè)映射著物理內(nèi)存的地址空間,因此需要在反置頁表中存放地址空間標(biāo)志符。這樣就保證了一個(gè)特定進(jìn)程的邏輯頁面可以映射到相應(yīng)的物理頁框上。為了提高存取速度,在地址映射機(jī)制中增加一個(gè)小容量的聯(lián)想寄存器(相聯(lián)存儲(chǔ)器)緩沖存儲(chǔ)器組成。利用高速緩沖存儲(chǔ)器存放當(dāng)前訪問最頻繁的少數(shù)活動(dòng)頁面的頁號,這個(gè)高速緩沖器被稱為“快表”,也稱為轉(zhuǎn)換檢測緩沖器(Trans1ationLookasideBufferTLB)??毂碇淮娣女?dāng)前進(jìn)程最活躍的少數(shù)幾頁,隨著進(jìn)程的推進(jìn),快表的內(nèi)容動(dòng)態(tài)進(jìn)行更新。更新原理:當(dāng)某一用戶程序需要存取數(shù)據(jù)時(shí),根據(jù)該數(shù)據(jù)所在的邏輯頁號在快表中找出對應(yīng)的內(nèi)存塊號,然后拼接頁內(nèi)地址,以形成物理地址;如果在快表中沒有相應(yīng)的邏輯頁號,則地址映射仍然通過內(nèi)存中的頁表進(jìn)行;在得到內(nèi)存塊號后需將該塊號填到快表的空閑單元中;若快表中沒有空閑單元,則根據(jù)置換算法置換某一行,再填入新得到的頁號和塊號。查找快表和查找內(nèi)存頁表是并行進(jìn)行的,一旦發(fā)現(xiàn)快表中有與所查頁號一致的邏輯頁號就停止查找內(nèi)存頁表,而直接利用快表中的邏輯頁號。假定訪問內(nèi)存的時(shí)間為200ns,訪問高速緩沖存儲(chǔ)器的時(shí)間為40ns16個(gè)單元時(shí),查快表的命中率為90%。于是,按邏輯地址轉(zhuǎn)換成絕對地址進(jìn)行存取的平均訪問時(shí)間為:(200+40)×90%不使用快表需兩次訪問內(nèi)存的時(shí)間為200×2=400ns。可見使用快表與不使用快表相比,訪問時(shí)間下降了36%。①②④⑤③當(dāng)沒有足夠的內(nèi)存空間時(shí),系統(tǒng)自動(dòng)選擇部分內(nèi)存空間,將其中原有的內(nèi)容交換到磁盤上,并釋放這些頁表增加項(xiàng)在使用虛擬頁式存儲(chǔ)管理時(shí)需要在頁表中增加以下的表項(xiàng):頁號——頁面的編號。有效位——又稱駐留位、存在位或中斷位,表示該頁是在內(nèi)存還是在外存。修改位——表示該頁在內(nèi)存中是否被修改過。保護(hù)位——是否能讀/寫/執(zhí)行。禁止緩存位——采用內(nèi)存映射I/O的機(jī)器中需要的位。其中,訪問位和修改位可以用來決定置換哪個(gè)頁面,具體由頁面置換算法決定。若在頁表中發(fā)現(xiàn)所要訪問的頁面不在內(nèi)存,則產(chǎn)生缺頁中斷。當(dāng)發(fā)生缺頁中斷時(shí),操作系統(tǒng)必須在內(nèi)存中選擇一個(gè)頁面將其移出內(nèi)存,以便為即將調(diào)入的頁面讓出空間。整個(gè)缺頁處理過程簡單闡述如下:①根據(jù)當(dāng)前執(zhí)行指令中的邏輯地址查頁表的駐留位,判斷該頁是否在內(nèi)存。②該頁標(biāo)志為“0”,形成缺頁中斷。保留現(xiàn)場。中斷裝置通過交換PSW讓操作系統(tǒng)的中斷處理程序占用處理器。③操作系統(tǒng)處理缺頁中斷,尋找一個(gè)空閑的頁面。④若有空閑頁,則把磁盤上讀出的信息裝入該頁面中。⑤修改頁表及內(nèi)存分配表,表示該頁已在內(nèi)存。⑥如果內(nèi)存中無空閑頁,則按某種算法選擇一個(gè)已在內(nèi)存的頁面,把它暫時(shí)調(diào)出內(nèi)存。若在執(zhí)行中該頁面已被修改過,則要把該頁信息重新寫回到磁盤上,否則不必重新寫回磁盤。當(dāng)一頁被暫時(shí)調(diào)出內(nèi)存后,讓出的內(nèi)存空間用來存放當(dāng)前需要使用的頁面。頁面被調(diào)出或裝入之后都要對頁表及內(nèi)存分配表作修改。⑦恢復(fù)現(xiàn)場,重新執(zhí)行被中斷的指令。當(dāng)重新執(zhí)行該指令時(shí),由于要訪問的頁面已被裝入內(nèi)存,所以可正常執(zhí)行下去。3虛擬存儲(chǔ)器系統(tǒng)通常定義3種策略進(jìn)行頁面調(diào)度:調(diào)入策略,置頁策略和置換策略。調(diào)入策略虛擬存儲(chǔ)器的調(diào)入策略決定了什么時(shí)候?qū)⒁粋€(gè)頁由外存調(diào)入內(nèi)存之中。在虛擬頁式管理中有兩種常用調(diào)入策略:①請求調(diào)頁(DemandPaging):只調(diào)入發(fā)生缺頁時(shí)所需的頁面。實(shí)現(xiàn)簡單,但易產(chǎn)生較多的缺頁中斷,容易產(chǎn)生抖動(dòng)現(xiàn)象。②預(yù)調(diào)頁(Prepaging):在發(fā)生缺頁需要調(diào)入某頁時(shí),一次調(diào)入該頁以及相鄰的幾個(gè)頁。置頁策略當(dāng)線程產(chǎn)生缺頁中斷時(shí),內(nèi)存管理器還必須確定將調(diào)入的虛擬頁放在物理內(nèi)存的何處。用于確定最佳位置的一組規(guī)則稱為“置頁策略”。選擇頁框應(yīng)使CP?內(nèi)存高速緩存不必要的震蕩最小。置換策略如果缺頁中斷發(fā)生時(shí)物理內(nèi)存已滿,“置換策略”被用于確定哪個(gè)虛頁面必須從內(nèi)存中移出,為新的頁面騰出空位。固定分配局部置換(FixedAllocation,LocalReplacement①可基于進(jìn)程的類型,為每一進(jìn)程分配固定的頁數(shù)的內(nèi)存空間,在整個(gè)運(yùn)行期間都不再改變。②采用該策略時(shí),如果進(jìn)程在運(yùn)行中出現(xiàn)缺頁,則只能從該進(jìn)程的W個(gè)頁面中選出一個(gè)換出,然后再調(diào)入一頁,以保證分配給該進(jìn)程的內(nèi)存空間不變??勺兎峙淙种脫Q(VariableAllocation,GlobalReplacement①采用這種策略時(shí),先為系統(tǒng)中的每一進(jìn)程分配一定數(shù)量的物理塊,操作系統(tǒng)本身也保持一個(gè)空閑物理塊隊(duì)列。②當(dāng)某進(jìn)程發(fā)生缺頁時(shí),由系統(tǒng)的空閑物理塊隊(duì)列中取出一物理塊分配給該進(jìn)程。③但當(dāng)空閑物理塊隊(duì)列中的物理塊用完時(shí),操作系統(tǒng)才從內(nèi)存中選擇一塊調(diào)出。④該塊可能是系統(tǒng)中任意一個(gè)進(jìn)程的頁??勺兎峙渚植恐脫Q(VariableAllocation,LocalReplacement)①同樣基于進(jìn)程的類型,為每一進(jìn)程分配一定數(shù)目的內(nèi)存空間。②但當(dāng)某進(jìn)程發(fā)生缺頁時(shí),只允許從該進(jìn)程的頁面中選出一頁換出,這樣就不影響其他進(jìn)程的運(yùn)行。③如果進(jìn)程在運(yùn)行的過程中頻繁地發(fā)生缺頁中斷,則系統(tǒng)再為該進(jìn)程分配若干物理塊,直到進(jìn)程的缺頁率降低到適當(dāng)程度為止?!岸秳?dòng)”現(xiàn)象如果剛被調(diào)出的頁面又立即要用,因而又要把它裝入,而裝入不久又被選中調(diào)出,調(diào)出不久又被裝入,如此反復(fù),使調(diào)度非常頻繁。這種現(xiàn)象稱為“抖動(dòng)”或稱“顛簸”。FIFO算法簡單,容易實(shí)現(xiàn)。把裝入內(nèi)存的那些頁面的頁號按進(jìn)入的先后次序排好隊(duì)列,每次總是調(diào)出隊(duì)首的頁,當(dāng)裝入一個(gè)新頁后,把新頁的頁號排入隊(duì)尾。由操作系統(tǒng)維護(hù)一個(gè)所有當(dāng)前在內(nèi)存中的頁面的鏈表,最老的頁面在表頭,最新的頁面在表尾。當(dāng)發(fā)生缺頁時(shí),置換表頭的頁面并把新調(diào)入的頁面加到表尾。最近最少使用頁面置換算法(LeastRecentlyLR?最近最少使用頁面置換算法總是選擇距離現(xiàn)在最長時(shí)間內(nèi)沒有被訪問過的頁面先調(diào)出。實(shí)現(xiàn)這種算法的一種方法是在頁表中為每一頁增加一個(gè)“計(jì)時(shí)”標(biāo)志,記錄該頁面自上次被訪問以來所經(jīng)歷的時(shí)間,每被訪問一次都應(yīng)從“0”開始重新計(jì)時(shí)。當(dāng)要裝入新頁時(shí),檢查頁表中各頁的計(jì)時(shí)標(biāo)志,從中選出計(jì)時(shí)值最大的那一頁調(diào)出(段時(shí)間里最長時(shí)間沒有被使用過的頁),并且把各頁的計(jì)時(shí)標(biāo)志全置成“0”,重新計(jì)時(shí)。當(dāng)再一次產(chǎn)生缺頁中斷時(shí),又可找到最近最久未使用過的頁,將其調(diào)出。A:某程序在內(nèi)存中分配3個(gè)頁面,初始為空,所需頁面的走向?yàn)?,32,1,4,3,5,4,3,2,1,5,采用FIFO算法,請計(jì)算整個(gè)缺頁次數(shù)。下面用“時(shí)間長–頁”表示在內(nèi)存時(shí)間最長的頁面,“時(shí)間中–頁”其次,“時(shí)間短–頁”表示在內(nèi)存時(shí)間最短的頁面。x表示缺頁,√表示不缺頁。①開始時(shí),內(nèi)存中3個(gè)頁面初始為空,故產(chǎn)生第1個(gè)缺頁中斷,需要把頁面4調(diào)入。同樣產(chǎn)生第個(gè)缺頁中斷,需要把頁面3調(diào)入。產(chǎn)生第3個(gè)缺頁中斷,需要把頁面2調(diào)入。3個(gè)內(nèi)存頁面全滿。在需要頁面1時(shí),發(fā)現(xiàn)頁面444是產(chǎn)生第6個(gè)缺頁中斷,把頁面2換出,頁面3調(diào)入。接著又需要頁面5,于是產(chǎn)生第7個(gè)缺頁中斷,把頁面1換③下面需要頁面4,正好在內(nèi)存。接著需要頁面3,也正好在內(nèi)存。后面需要頁面28個(gè)缺頁中斷,把頁面4換出,頁面2調(diào)入。接著需要頁面1,于是產(chǎn)生第93換出,頁面1調(diào)入。最后需要頁面5,正好在內(nèi)存。整個(gè)操作結(jié)束,共產(chǎn)生缺頁中斷9次。B:在上述例子中LR?算法同樣,用“時(shí)間長–頁”表示未使用時(shí)間最長的頁面,“時(shí)間中–頁”其次,“時(shí)間短–頁”表示未使用時(shí)間最短的頁面。共缺頁中斷10次。C:在上述例子中采用OPT算法,請計(jì)算整個(gè)缺頁次數(shù)。最長時(shí)間以后才會(huì)用到的頁面,用“時(shí)間長–頁”表示,“時(shí)間中–頁”其次,“時(shí)間短–頁”表示最短時(shí)間會(huì)用到的頁面。共缺頁中斷7次。當(dāng)分配給進(jìn)程的物理頁面數(shù)增加時(shí),缺頁次數(shù)反而增加。這一現(xiàn)象稱為貝萊迪異常(BeladyAnomaly)FIFO頁面置換算法會(huì)產(chǎn)生異?,F(xiàn)象。假定一個(gè)程序共有n頁,系統(tǒng)分配給它的內(nèi)存塊是w塊(m、n有m頁可同時(shí)被裝入內(nèi)存。如果程序執(zhí)行中訪問頁面的總次數(shù)為1其中有F次訪問的頁面尚未裝入內(nèi)存,故產(chǎn)生了F次缺頁中斷?,F(xiàn)定義:f=F/①引入虛擬存儲(chǔ)管理,把內(nèi)存和外存統(tǒng)一管理,其真正目的,是把那些訪問概率非常高的頁放入內(nèi)存,減少內(nèi)外存交換的次數(shù)。在虛存中,頁面可能在內(nèi)存與外存之間頻繁地調(diào)度,有可能出現(xiàn)抖動(dòng)或顛簸。顛簸是由于缺頁率高而引起的。此外,一般進(jìn)程在一段時(shí)間內(nèi)集中訪問一些頁面,稱為“活動(dòng)”頁面,這是與程序的局部性有關(guān)的。如果分配給一個(gè)進(jìn)程的內(nèi)存物理頁面數(shù)太少,使得該進(jìn)程所需要的“活動(dòng)”頁面不能全部裝入內(nèi)存,則進(jìn)程在運(yùn)行過程中可能會(huì)頻繁地發(fā)生缺頁中斷,從而產(chǎn)生顛簸。采用工作集模型,可以解決顛簸問題。系統(tǒng)將內(nèi)存空間動(dòng)態(tài)劃分為若干個(gè)長度不同的區(qū)域,每個(gè)區(qū)域稱作一個(gè)物理段。每個(gè)物理段在內(nèi)存中有一個(gè)起始地址,稱作段首址。將物理段中的所有單元從0開始依次編址,稱為段內(nèi)地址。用戶程序的邏輯地址由段號和段內(nèi)地址兩部分組成。內(nèi)存分配時(shí),系統(tǒng)以段為單位進(jìn)行內(nèi)存分配,為每一個(gè)邏輯段分配一個(gè)連續(xù)的內(nèi)存區(qū)(物理段。邏輯上連續(xù)的段在內(nèi)存中不一定連續(xù)存放。段式存儲(chǔ)管理是為程序的每一個(gè)分段分配一個(gè)連續(xù)的內(nèi)存空間??臻e區(qū)的分配也可以采用首先適應(yīng)算法、最佳適應(yīng)算法、最壞適應(yīng)算法。在進(jìn)行動(dòng)態(tài)地址轉(zhuǎn)換時(shí),硬件提供段表起始地址寄存器、段表長度寄存器等支持。D標(biāo)志。①系統(tǒng)文件②庫函數(shù)文件③用戶文件①普通文件②目錄文件③特殊文件?NIX類操作系統(tǒng)中,文件系統(tǒng)包括3種類型的文件:①普通文件。這是內(nèi)部無結(jié)構(gòu)的一串平滑的字符所組成的文件。②目錄文件。這是由文件目錄項(xiàng)所構(gòu)成的文件。③特殊文件。在?NIXI/O設(shè)備也看成是一種文件——特殊文件。文件系統(tǒng)分類的目的是:對不同文件進(jìn)行管理,提高系統(tǒng)效率;同時(shí),提高文件系統(tǒng)的用戶界面友好性。文件邏輯結(jié)構(gòu)分類可以把文件劃分成3類邏輯結(jié)構(gòu):無結(jié)構(gòu)的字符流式文件、定長記錄文件和不定長記錄文件構(gòu)成的記錄樹,定長記錄文件和不定長記錄文件可以統(tǒng)稱為記錄式文件。流式文件流式文件是有序字符的集合,其長度為該文件所包含的字符個(gè)數(shù),所以又稱為字符流文件。在流式文件中,構(gòu)成文件的基本單位是字符。可以認(rèn)為流式文件就是一串有開頭和結(jié)尾的連續(xù)字符;流式文件無結(jié)構(gòu)。所以用戶對流式文件可以方便地進(jìn)行操作。源程序、目標(biāo)代碼等文件屬于流式文件。?NIX類系統(tǒng)采用的是流式文件結(jié)構(gòu)。記錄式文件記錄式文件是一組有序記錄的集合。在記錄式文件中,構(gòu)成文件的基本單位是記錄。記錄是一個(gè)具有特定意義的信息單位,它由該記錄在文件中的邏輯地址(相對位置)與記錄名所對應(yīng)的一組鍵、屬性及其屬性值所組成,可按鍵進(jìn)行查找。記錄式文件可分為定長記錄文件和不定長記錄文件兩種。在定長記錄文件中,各個(gè)記錄長度相等。在檢索時(shí),可以根據(jù)記錄號i及記錄長度L就可以確定該記錄的邏輯地址。在不定長記錄文件中,各個(gè)記錄的長度不等,在查找時(shí),必須從第一個(gè)記錄起一個(gè)記錄一個(gè)記錄查找,直到找到所需的記錄。記錄式的有結(jié)構(gòu)文件可把文件中的記錄按各種不同的方式排列,構(gòu)成不同的邏輯結(jié)構(gòu),以便用戶對文件中的記錄進(jìn)行修改、追加、查找和管理等操作。文件物理結(jié)構(gòu)分類常用的文件物理結(jié)構(gòu)有順序結(jié)構(gòu)、鏈接結(jié)構(gòu)、索引結(jié)構(gòu)和I節(jié)點(diǎn)結(jié)構(gòu)。順序結(jié)構(gòu)又稱連續(xù)結(jié)構(gòu),它把邏輯上連續(xù)的文件信息依次存放在連續(xù)編號的物理塊中。這是一種邏輯記錄順序核物理記錄順序完全一致的文件。在順序結(jié)構(gòu)中,一個(gè)文件的目錄項(xiàng)中只要指出該文件占據(jù)的總塊數(shù)和起始塊號即可。優(yōu)點(diǎn):①由于從文件的邏輯塊號到物理塊號的變換,知道了文件在文件存儲(chǔ)設(shè)備上的起始塊號和文件長度,就能很快進(jìn)行存取。②且順序結(jié)構(gòu)支持順序存取和隨機(jī)存取。對于順序存取,順序結(jié)構(gòu)的存取速度快。缺點(diǎn):①文件不能動(dòng)態(tài)增長。對于順序結(jié)構(gòu)的文件,不利于文件插入和刪除。②隨著文件不停地被分配和被刪除,空閑空間逐漸被分割為很小的部分,最終導(dǎo)致出現(xiàn)存儲(chǔ)碎片,雖然空間滿足,但由于不連續(xù)且都是小碎片而無法分配。鏈接結(jié)構(gòu)的實(shí)質(zhì)就是為每個(gè)文件構(gòu)造所使用磁盤塊的鏈表。使用這種鏈接結(jié)構(gòu)的文件,將邏輯上連續(xù)的文件分散存放在若干不連續(xù)的物理塊中。WindowsFAT文件系統(tǒng)采用的是鏈接結(jié)構(gòu),但將所有鏈指針集中存放。優(yōu)點(diǎn):①解決存儲(chǔ)碎片問題,有利于文件動(dòng)態(tài)擴(kuò)充;②有利于文件插入和刪除,提高了磁盤空間利用率。③方便鏈接結(jié)構(gòu)的文件動(dòng)態(tài)擴(kuò)充。缺點(diǎn):存取速度慢,不適于隨機(jī)存取文件;①磁盤的磁頭移動(dòng)多,效率相對較低;②存在文件的可靠性問題,比如指針出錯(cuò),文件也就出錯(cuò)了;③鏈接指針需要占用一定的空間。鏈接結(jié)構(gòu)的文件所使用的物理塊是不連續(xù)分配的,所以一個(gè)鏈接結(jié)構(gòu)的文件的所有物理塊在磁盤上是分散分布的。與順序結(jié)構(gòu)的文件相比,在訪問一個(gè)鏈接結(jié)構(gòu)的文件時(shí)需要更多的尋道次數(shù)和尋道時(shí)間。索引結(jié)構(gòu)索引結(jié)構(gòu)的文件把每個(gè)物理盤塊的指針字集中存放在被稱為索引表的數(shù)據(jù)結(jié)構(gòu)中的內(nèi)存索引表中。優(yōu)點(diǎn):①索引文件結(jié)構(gòu)保持了鏈接結(jié)構(gòu)的優(yōu)點(diǎn),又解決了其缺點(diǎn)。②索引結(jié)構(gòu)文件既適于順序存取,也適于隨機(jī)存取。③可以將有關(guān)邏輯塊號和物理塊號的信息全部保存在了一個(gè)集中的索引表中。④索引文件可以滿足文件動(dòng)態(tài)增長的要求,也滿足了文件插入、刪除的要求;⑤索引文件還能充分利用外存空間。缺點(diǎn):①會(huì)引起較多的尋道次數(shù)和尋道時(shí)間;②索引表本身增加了存儲(chǔ)空間的開銷。索引結(jié)構(gòu)的實(shí)例——I節(jié)點(diǎn)I節(jié)點(diǎn)是一種多級索引文件結(jié)構(gòu)。I節(jié)點(diǎn)最早出現(xiàn)在?NIX操作系統(tǒng)中,是多級索引結(jié)構(gòu)文件在?NIX中的具體實(shí)現(xiàn)。掌握了I節(jié)點(diǎn)也就掌握了多級索引文件結(jié)構(gòu)的工作原理。I節(jié)點(diǎn)的基本思想是,給每個(gè)文件賦予一張稱為I節(jié)點(diǎn)的小表,在這張小表中列出了文件屬性和文件中各塊在磁盤上的地址I節(jié)點(diǎn)的文件結(jié)構(gòu),既適合小文件使用,也可供大型文件使用,靈活性比較強(qiáng)。這種文件結(jié)構(gòu)占用的系統(tǒng)空間比一般多級索引結(jié)構(gòu)的文件要少。外存儲(chǔ)設(shè)備通常由驅(qū)動(dòng)部分和存儲(chǔ)介質(zhì)兩部分組成。外存儲(chǔ)設(shè)備存取的過程方式因各種具體存儲(chǔ)設(shè)備而異,不過也有一定共性。外存儲(chǔ)設(shè)備存取的過程大致如下:讀狀態(tài)-置數(shù)據(jù)-置地址-置控制-再讀狀態(tài)。在隨機(jī)存取設(shè)備中,磁盤是一種典型的隨機(jī)存取設(shè)備。磁盤設(shè)備允許文件系統(tǒng)直接存取磁盤上的任意物理塊。磁盤上每個(gè)物理塊的位置可用柱面號(、磁頭號和扇區(qū)號表示,這些地址與物理塊號一一對應(yīng)。其計(jì)算公式如下:①已知物理塊號,則磁盤地址:柱面號=[物理塊號/(磁頭數(shù)×扇區(qū)數(shù)磁頭號=[(物理塊號mod(磁頭數(shù)×扇區(qū)數(shù)扇區(qū)號=(物理塊號mod(磁頭數(shù)×扇區(qū)數(shù)))mod扇區(qū)數(shù)②已知磁盤地址:磁頭臂是沿半徑方向移動(dòng)的。訪問磁盤時(shí),首先要移動(dòng)磁頭臂到相應(yīng)柱面(磁道)上,然后旋轉(zhuǎn)盤片將指定磁頭定位在指定扇區(qū)上,最后控制磁頭對扇區(qū)中的數(shù)據(jù)進(jìn)行讀寫。一次訪盤時(shí)間由尋道時(shí)間、旋轉(zhuǎn)定位時(shí)間和數(shù)據(jù)傳輸時(shí)間組成;尋道時(shí)間由于是機(jī)械動(dòng)作,因而所花費(fèi)的時(shí)間最長,傳輸時(shí)間花費(fèi)時(shí)間最短。在用戶面前,文件呈現(xiàn)的是文件的邏輯結(jié)構(gòu),這與用戶使用文件的方式相適應(yīng);在存儲(chǔ)介質(zhì)面前,文件呈現(xiàn)的是文件的物理結(jié)構(gòu),這與文件所使用存儲(chǔ)介質(zhì)的特性有關(guān);文件的存取方式是文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)之間的映射或變換機(jī)制;文件常用的存取方法有:順序存取和隨機(jī)存取兩種方式。①順序存?。喊磸那暗胶蟮拇涡蛞来卧L問文件的各個(gè)信息項(xiàng)。據(jù)存取命令把讀寫指針移到文件中的指定記錄處讀寫。?NIX類操作系統(tǒng)的文件系統(tǒng)采用了順序存取和隨機(jī)存取兩種方法。在一個(gè)計(jì)算機(jī)系統(tǒng)中保存有許多文件,用戶在創(chuàng)建和使用文件時(shí)只給出文件的名字,由文件系統(tǒng)根據(jù)文件名找到指定文件。為了便于對文件進(jìn)行管理,設(shè)置了文件目錄,用于檢索系統(tǒng)中的所有文件。文件系統(tǒng)的一個(gè)特點(diǎn)是“按名存取”,即用戶只要給出文件的符號名就能方便地存取在外存空間的該文文件目錄塊文件控制塊FCB是系統(tǒng)為管理文件而設(shè)置的一個(gè)描述性數(shù)據(jù)結(jié)構(gòu)。FCB是文件存在的標(biāo)志,它記錄了系統(tǒng)管理文件所需要的全部信息。FCB通常應(yīng)包括以下內(nèi)容:文件名、文件號、用戶名、文件地址、文件長度、文件類型、文件屬性、共享計(jì)數(shù)、文件的建立日期、保存期限、最后修改日期、最后訪問日期、口令、文件邏輯結(jié)構(gòu)、文件物理結(jié)構(gòu),等等,其中文件名、文件大小、文件創(chuàng)建時(shí)間和磁盤起始地址是文件控制塊中必須保存的信息。在文件控制塊中的信息可以分成文件存取控制信息、文件結(jié)構(gòu)信息和文件管理信息。多個(gè)文件的文件控制塊集中在一起組成了文件的目錄。通常,文件目錄以文件的形式保存起來,這個(gè)文件就被稱為目錄文件。目錄文件是長度固定的記錄式文件。在目錄文件中,每個(gè)文件的文件控制塊又稱為目錄文件中的目錄項(xiàng)。有時(shí),為了節(jié)省內(nèi)存的空間,就把目錄文件保存在外存儲(chǔ)器上,在需要時(shí)才把目錄文件調(diào)入內(nèi)存。一級目錄結(jié)構(gòu)在系統(tǒng)中設(shè)置一張線性目錄表,表中包括了所有文件的文件控制塊,每個(gè)文件控制塊指向一個(gè)普通文件,這就是一級目錄結(jié)構(gòu);一級目錄結(jié)構(gòu)是一種最簡單、最原始的文件目錄結(jié)構(gòu)。有了一級目錄,文件系統(tǒng)就可實(shí)現(xiàn)對文件空間的管理和按名存取。一級目錄表中各文件只能按連續(xù)結(jié)構(gòu)或順序結(jié)構(gòu)存放,因此,文件名與文件必須一一對應(yīng),限制了用戶對文件的命名,不能重名。缺點(diǎn):搜索效率較低,文件平均檢索時(shí)間長。二級目錄結(jié)構(gòu)為克服一級目錄結(jié)構(gòu)中文件目錄命名中的可能沖突,并提高對目錄文件的檢索速度,一級目錄被改進(jìn)擴(kuò)充成二級目錄。在二級目錄結(jié)構(gòu)中,目錄被分為兩級:①第一級稱為主文件目錄(MainFi1eDirectoryMFD),給出了用戶名和用戶子目錄所在的物理位置;②第二級稱為用戶文件目錄(?serFi1eDirectory?FD),又稱用戶子目錄,給出了該用戶所有文件的FCB。缺點(diǎn):增加了系統(tǒng)的開銷。樹形目錄把二級目錄的層次關(guān)系加以推廣,就形成了多級目錄,又稱樹形目錄結(jié)構(gòu)。在樹形目錄結(jié)構(gòu)中,最高層為根目錄,最低層為文件。根目錄是唯一的,由它開始可以查找到所有其他目錄文件和普通文件。根目錄一般可放在內(nèi)存。從根結(jié)點(diǎn)出發(fā)到任一個(gè)非葉結(jié)點(diǎn)或葉結(jié)點(diǎn)(文件)都有且僅有一條路徑,該路徑上的全部分支組成了一個(gè)全路徑名。樹形目錄結(jié)構(gòu)的優(yōu)點(diǎn)是便于文件分類,且具有下列特點(diǎn):①層次清楚。②解決了文件重名問題。③查找搜索速度快。全路徑名&相對路徑有兩種根據(jù)路徑名檢索的方法,一種是全路徑名,另一種是相對路徑。全路徑名①使用全路徑名檢索的方法,需要從根目錄開始,列出由根到用戶指定文件的全部有關(guān)子目錄,全路徑名又稱為“絕對路徑名”。相對路徑①用于檢索的路徑名只是從當(dāng)前目錄開始到所要訪問文件的一段路徑,即以當(dāng)前目錄作為路徑的相對參照點(diǎn)。②優(yōu)點(diǎn):檢索路徑縮短,檢索速度提高。為加快目錄檢索可采用目錄項(xiàng)分解法,即把目錄項(xiàng)(FCB)分為符號目錄項(xiàng)()項(xiàng)(主部)符號目錄項(xiàng)包含文件名以及相應(yīng)的文件號;基本目錄項(xiàng)包含了除文件名外文件控制塊的其他全部信息;例子假設(shè)一個(gè)文件控制塊有48字節(jié),符號目錄項(xiàng)占8字節(jié),其中文件名占6字節(jié),文件號占2本目錄項(xiàng)占48–8=40字節(jié)。設(shè)物理塊的大小為512字節(jié)。在進(jìn)行目錄項(xiàng)分解前,一個(gè)物理塊可以存放512/4810個(gè)文件控制塊。在進(jìn)行目錄項(xiàng)分解后,一個(gè)物理塊可以存放512/8=64個(gè)符號目錄項(xiàng),或者512/4012個(gè)基本目錄項(xiàng)。如果一個(gè)目錄文件有128個(gè)目錄項(xiàng),那么分解前128×48/512=12,即需要12個(gè)物理塊存放該目錄文件。在進(jìn)行目錄項(xiàng)分解后,符號目錄文件占128×8/512=2,2128×40/512=10,即需要10個(gè)物理塊存放基本目錄文件。下面,計(jì)算查找一個(gè)文件的平均訪盤次數(shù)。分解前:(1+12)/2=6.5次。分解后:(1+2)/2+1=2.5次。目錄項(xiàng)分解法的優(yōu)點(diǎn):減少了訪問磁盤的次數(shù),提高了文件目錄檢索速度。在設(shè)計(jì)空閑空間登記表的數(shù)據(jù)結(jié)構(gòu)時(shí),一般有四種不同的方案可以考慮,下面分別介紹。1)位示圖位示圖法的基本思想是,利用一串二進(jìn)制位(bit)的值來反映磁盤空間的分配使用情況。在位示圖中,每一個(gè)磁盤中物理塊用一個(gè)二進(jìn)制位對應(yīng),如果某個(gè)物理塊為空閑,則相應(yīng)的二進(jìn)制位為0;如果該物理塊已分配了,則相應(yīng)的二進(jìn)制位為1;在申請磁盤物理塊時(shí),可在位示圖中從頭查找為001,同時(shí)返回該二進(jìn)制位對應(yīng)的物理塊號。在歸還不再使用的物理塊時(shí),則在位示圖中將該物理塊所對應(yīng)的二進(jìn)制位改為0,表示這塊物理塊恢復(fù)為空閑狀態(tài)。優(yōu)點(diǎn):①對空間分配情況的描述能力強(qiáng)。一個(gè)二進(jìn)制位就描述一個(gè)物理塊的狀態(tài);②位示圖占用空間較小,因此可以復(fù)制到內(nèi)存,使查找既方便又快速;③適用于各種文件物理結(jié)構(gòu)的文件系統(tǒng)。2)空閑塊表空閑塊表是專門為空閑塊建立的一張表,該表記錄外存儲(chǔ)器中全部空閑的物理塊,包括每個(gè)空閑塊的第一個(gè)空閑物理塊號和該空閑塊中空閑物理塊的個(gè)數(shù);空閑塊表方式特別適合于文件物理結(jié)構(gòu)為順序結(jié)構(gòu)的文件系統(tǒng)。3)空閑塊鏈表將外存儲(chǔ)器中所有的空閑物理塊連成一個(gè)鏈表,用一個(gè)空閑塊首指針指向第一個(gè)空閑塊,隨后的每個(gè)空閑塊中都含有指向下一個(gè)空閑塊的指針,最后一塊的指針為空,表示鏈尾,這樣就構(gòu)成了一個(gè)空閑塊鏈表;在空閑塊鏈表模式中對空間的申請和釋放是以塊為單位的。申請空間時(shí)從鏈?zhǔn)兹】臻e塊,空間釋放時(shí)將物理塊接入鏈尾??臻e塊鏈表法節(jié)省內(nèi)存,但申請空間和回收空間的速度較慢,實(shí)現(xiàn)效率較低。4)成組鏈接對鏈接表的一個(gè)改進(jìn)方案是將n個(gè)空閑盤塊的地址存放在第一個(gè)空閑塊中,其余n–1個(gè)空閑盤塊是實(shí)際空閑的。假設(shè)每100個(gè)空閑塊為一組。第一組的100個(gè)空閑塊塊號放在第二組的頭一塊中,而第二組的其余99塊是完全空閑的。第二組的100個(gè)塊號又放在第3組的頭一塊中。依此類推,組與組之間形成鏈接關(guān)系。在最后一組的塊號中第2個(gè)單元填“0”,表示該塊中指出的塊號是最后一組的塊號,空閑塊鏈到此結(jié)束。在這個(gè)空閑塊鏈中,不足100塊的那個(gè)組的塊號通常放在內(nèi)存的一個(gè)專用塊中。這種方式稱為成組鏈接?;厥蘸头峙渌惴ǚ峙湟粋€(gè)空閑塊L單元內(nèi)容(當(dāng)空閑塊數(shù)>1i:=L+空閑塊數(shù);從i單元得到一空閑塊號;把該塊分配給申請者;空閑塊數(shù)減1。當(dāng)空閑塊數(shù)=1,取出L+1單元內(nèi)容(0);取值=0,無空閑塊,申請者等待;0,把該塊內(nèi)容復(fù)制到專用塊;該塊分配給申請者;把專用塊內(nèi)容讀到主存L開始的區(qū)域。歸還一塊L單元的空閑塊數(shù);當(dāng)空閑塊數(shù)<1001;j=L+空閑塊數(shù);歸還塊號填入j當(dāng)空閑塊數(shù)=100,把主存中登記的信息寫入歸還塊中;把歸還塊號填入L+1單元;L單元置成1。把若干個(gè)邏輯記錄合成一組存放在一個(gè)物理塊的工作稱為“記錄的成組”,每塊中的邏輯記錄個(gè)數(shù)稱為“塊因子”。由于信息交換以塊為單位,所以要進(jìn)行成組操作時(shí)必須使用內(nèi)存的緩沖區(qū),該緩沖區(qū)的長度等于要進(jìn)行成組的最大邏輯記錄長度乘以成組的塊因子。用戶首先調(diào)用文件系統(tǒng)的“建立文件”操作,在請求調(diào)用該操作時(shí)提供所要?jiǎng)?chuàng)建的文件的文件名及若干參數(shù):用戶名、文件名、存取方式、存儲(chǔ)設(shè)備類型、記錄格式、記錄長度,等等。建立文件系統(tǒng)調(diào)用的一般格式為:create(文件名,訪問權(quán)限,(建立文件的具體步驟如下:①檢查參數(shù)的合法性:文件名是否符合命名規(guī)則,若是,則進(jìn)行下一步②;否則報(bào)錯(cuò),返回。②檢查同一目錄下有無重名文件:若沒有,則進(jìn)行下一步③;否則報(bào)錯(cuò),返回。③在目錄中有無空閑位置:若有,則進(jìn)行下一步④;否則,不成功返回有的系統(tǒng)可能要為此文件申請數(shù)據(jù)塊空間(申請一部分或一次性全部申請④填寫目錄項(xiàng)內(nèi)容:包括:文件名、用戶名、存取權(quán)限、長度置零、首地址等。⑤返回。打開文件,是使用文件的第一步,任何一個(gè)文件使用前都要先打開,即把文件控制塊FCB送到內(nèi)存。打開文件系統(tǒng)調(diào)用的一般格式為:fd=open(文件路徑名,打開方式打開文件時(shí),系統(tǒng)主要完成以下工作:①根據(jù)文件路徑名查目錄,找到FCB主部。②根據(jù)打開方式、共享說明和用戶身份檢查訪問合法性。③根據(jù)文件號查系統(tǒng)打開文件表,看文件是否已被打開。如果是,共享計(jì)數(shù)加1;否則,將外存中的FCB主部等信息填入系統(tǒng)打開文件表空表項(xiàng),共享計(jì)數(shù)置為1。④在用戶打開文件表中取一空表項(xiàng),填寫打開方式等,并指向系統(tǒng)打開文件表對應(yīng)表項(xiàng)。返回信息:文件描述符fd,這是一個(gè)非負(fù)整數(shù),用于以后讀寫文件。打開文件后,就可以讀取文件中的信息。讀文件系統(tǒng)調(diào)用的一般格式為:read(文件名,()隱含參數(shù):文件主。讀寫方式可為讀、寫和既讀又寫等。讀文件時(shí),系統(tǒng)主要完成以下工作:①檢查長度是否為正整數(shù):若是,則進(jìn)行下一步②;否則,轉(zhuǎn)向⑩。②根據(jù)文件名查找目錄,確定該文件在目錄中的位置。③根據(jù)隱含參數(shù)中的文件主和目錄中該文件的存儲(chǔ)權(quán)限數(shù)據(jù),檢查是否有權(quán)讀。若是,則進(jìn)行下一步④;否則,轉(zhuǎn)向⑩。④由文件內(nèi)位置與要讀的長度計(jì)算最末位置,將其與目錄中的文件長度比較,超過否?若是,則轉(zhuǎn)向⑩;否則,進(jìn)行下一步⑤。也可將參數(shù)中的長度修正為目錄中的文件長度。⑤根據(jù)參數(shù)中的位置、長度和目錄中的映射信息,確定物理塊號、需要讀出的塊數(shù)等讀盤參數(shù)(參數(shù)準(zhǔn)備完畢后,進(jìn)行物理的讀盤操作,讀盤操作可能要進(jìn)行多次⑥根據(jù)下一塊號讀塊至內(nèi)存緩沖區(qū)。⑦取出要讀的內(nèi)容,也許要進(jìn)行成組的分解,將取出的內(nèi)容送至參數(shù)中的內(nèi)存目的地址。⑧根據(jù)塊內(nèi)長度或起始塊號+塊數(shù),確定還讀下一塊嗎?同時(shí)確定下一塊塊號:若是,則轉(zhuǎn)向⑤;否則,進(jìn)行下一步⑨。⑨正常返回。⑩錯(cuò)誤返回,返回相應(yīng)錯(cuò)誤號。寫文件系統(tǒng)調(diào)用的一般格式為:write(文件名,記錄鍵,內(nèi)存位置把內(nèi)存中指定單元的數(shù)據(jù)作為指定的一個(gè)記錄寫入指定文件中,系統(tǒng)還將為其分配物理塊,以便把記錄信息寫到外存上。文件關(guān)閉后一般不能存取,若要存取,則必須再次打開。關(guān)閉文件系統(tǒng)調(diào)用的一般格式為:close(文件名系統(tǒng)根據(jù)用戶提供的文件名或文件描述符,在該文件的文件控制塊上做修改。刪除文件系統(tǒng)調(diào)用的一般格式為:delete(文件名系統(tǒng)根據(jù)用戶提供的文件名或文件描述符,檢查此次刪除的合法性,若合法,則收回該文件所占用的文件控制塊及物理塊等資源。指針定位的一般格式為:seek(fd,新指針的位置指針定位時(shí),系統(tǒng)主要完成以下工作:①由fd檢查用戶打開文件表,找到對應(yīng)的入口;②將用戶打開文件表中文件讀寫指針位置設(shè)為新指針的位置,供后續(xù)讀寫命令存取該指針處文件內(nèi)容。文件的保護(hù)文件系統(tǒng)經(jīng)常采用建立副本和定時(shí)轉(zhuǎn)儲(chǔ)的方法來保護(hù)文件。建立副本對文件建立副本,是保護(hù)文件不受破壞的有效方法。一般用于短小且極為重要的文件。定時(shí)轉(zhuǎn)儲(chǔ)定時(shí)轉(zhuǎn)儲(chǔ)的含義是,每隔一定的時(shí)間就把文件轉(zhuǎn)儲(chǔ)到其他的存儲(chǔ)介質(zhì)上。?NIX系統(tǒng)就是釆用定時(shí)轉(zhuǎn)儲(chǔ)的方法保護(hù)文件,以提高文件的可靠性。按照轉(zhuǎn)儲(chǔ)內(nèi)容可分為增量轉(zhuǎn)儲(chǔ)和全量轉(zhuǎn)儲(chǔ)。增量轉(zhuǎn)儲(chǔ)是指備份自上一次轉(zhuǎn)儲(chǔ)以來更改過的文件。按照轉(zhuǎn)儲(chǔ)方式可分為物理轉(zhuǎn)儲(chǔ)和邏輯轉(zhuǎn)儲(chǔ)。①物理轉(zhuǎn)儲(chǔ)是從磁盤的第0塊開始,將全部磁盤塊按序輸出到另一介質(zhì)上,直到最后一塊復(fù)制完畢。②而邏輯轉(zhuǎn)儲(chǔ)是從一個(gè)或幾個(gè)指定的目錄開始,遞歸地轉(zhuǎn)儲(chǔ)其自給定日期(例如,最近一次增量轉(zhuǎn)儲(chǔ)或全量轉(zhuǎn)儲(chǔ)的日期)后有所更改的全部文件和目錄。規(guī)定文件的存取權(quán)限規(guī)定用戶使用文件的權(quán)限的方法有兩種:采用樹形目錄結(jié)構(gòu)。凡能得到某級目錄的用戶就可得到該級目錄所屬的全部目錄和文件,按目錄中規(guī)定的存取權(quán)限使用目錄或文件。存取控制表。列出每個(gè)用戶對每個(gè)文件或子目錄的存取權(quán)限。在存取控制矩陣方式中,系統(tǒng)以一個(gè)二維矩陣來實(shí)施文件的存取控制。在這個(gè)二維矩陣中,其中一維代表所有的用戶,另一維代表所有的文件。兩維交叉點(diǎn)所對應(yīng)的矩陣元素則是某一個(gè)用戶對一個(gè)文件的存取控制權(quán)限,包括讀R、寫W和執(zhí)行E,當(dāng)然,還可以有其他的劃分形式。對文件實(shí)施存取控制的另一種方法是二級存取控制。二級存取控制方法中設(shè)立兩個(gè)存取級別。①在第一級,把用戶按某種關(guān)系劃分為若干用戶組,進(jìn)行對訪問者的識別;②在第二級,進(jìn)行對操作權(quán)限的識別。常用的文件保密措施還有隱蔽文件目錄、設(shè)置口令與使用密碼等。?NIX讀(Read)操作(寫(Write)操作(執(zhí)行(eXecute)操作(X)不能執(zhí)行任何操作(––?NIX系統(tǒng)內(nèi)部使用數(shù)值來表示上述的文件屬性每一個(gè)屬性與文件屬性中的一個(gè)二進(jìn)制位相對應(yīng)。如果該存取權(quán)限設(shè)置了,對應(yīng)的二進(jìn)制位就是1,如果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論