




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 PAGE 34操作系統(tǒng)實訓(xùn)第1章 操作系統(tǒng)概論課后習(xí)題解答 PAGE 33第1章 操作系統(tǒng)概論課后習(xí)題解答1什么是操作系統(tǒng)?它有哪些基本功能與基本特征?【解答】操作系統(tǒng)是一個軟件系統(tǒng),它控制和管理計算機系統(tǒng)內(nèi)各種硬件和軟件資源,提供用戶與計算機系統(tǒng)之間的接口。 操作系統(tǒng)的功能有:(1)提供用戶接口為方便用戶使用計算機系統(tǒng),操作系統(tǒng)提供了用戶接口。操作系統(tǒng)提供兩個級別的接口:作業(yè)控制級接口(通常又稱為命令接口):提供一組命令供用戶直接或間接控制自己的作業(yè);程序級接口:提供一組系統(tǒng)調(diào)用供用戶程序和其他系統(tǒng)程序調(diào)用。(2)管理計算機資源計算機系統(tǒng)中的資源包括硬件資源和軟件資源。硬件資源有:處理機、
2、存儲器、外部設(shè)備;軟件資源有:程序和數(shù)據(jù)?,F(xiàn)代計算機系統(tǒng)一般采用多任務(wù)并發(fā)執(zhí)行方式,而且有的計算機系統(tǒng)由多個用戶同時聯(lián)機使用。這使得計算機的資源不是由一個程序在運行時獨占使用,而是由多個并發(fā)運行的程序共享使用。如果由各并發(fā)運行的程序自己決定如何使用資源,則會各行其是,造成沖突,混亂,使系統(tǒng)無法順利高效運行。因此,要有一個地位高于各應(yīng)用程序之上的軟件來進(jìn)行自動的統(tǒng)一的管理,這個軟件就是操作系統(tǒng)。操作系統(tǒng)的目標(biāo)之一就是統(tǒng)一管理分配計算機系統(tǒng)資源,在保證各并發(fā)執(zhí)行的應(yīng)用程序順利運行的前提下提高資源利用率。包括處理機管理、存儲器管理、設(shè)備管理、文件管理。操作系統(tǒng)的特性有:(1)并發(fā)在單處理機系統(tǒng)中,并
3、發(fā)性是指宏觀上有多道程序在同時運行,但在微觀上是交替執(zhí)行的。多道程序并發(fā)執(zhí)行能提高資源利用率和系統(tǒng)吞吐量。(2)共享共享是指計算機系統(tǒng)中的資源被多個并發(fā)任務(wù)共同使用。(3)異步在多道程序系統(tǒng)中,多進(jìn)程并發(fā)執(zhí)行,但在微觀上,進(jìn)程是交替執(zhí)行的,因此進(jìn)程以“走走停停”的不連續(xù)方式運行。由于并發(fā)運行環(huán)境的復(fù)雜,每個進(jìn)程在什么時候開始執(zhí)行,何時暫停,以怎樣的速度向前推進(jìn),多長時間完成,何時發(fā)生中斷,都是不可預(yù)知的。我們稱此種特征為異步性。(4)虛擬在操作系統(tǒng)中,虛擬指的是通過某種技術(shù)把一個物理實體映射為多個邏輯實體,用戶程序使用邏輯實體。邏輯實體是用戶感覺上的實際不存在的事物。例如在分時系統(tǒng)中,雖然只有
4、一個CPU,但是在分時系統(tǒng)的管理下,每個終端用戶都認(rèn)為自己獨占一臺主機。此時,分時操作系統(tǒng)利用分時輪轉(zhuǎn)策略把一臺物理上的CPU虛擬為多臺邏輯上的CPU。2操作系統(tǒng)發(fā)展的動力是什么?【解答】推動操作系統(tǒng)發(fā)展的主要動力有:(1)不斷提高計算機資源利用率的需要。(2)方便用戶的需要。(3)器件不斷更新?lián)Q代的需要。(4)計算機體系結(jié)構(gòu)不斷發(fā)展的需要。3批處理系統(tǒng)的目標(biāo)是什么?【解答】批處理系統(tǒng)旨在實現(xiàn)作業(yè)步之間以及作業(yè)之間的自動過渡,減少作業(yè)控制及作業(yè)過渡時的手工操作,從而提高計算機系統(tǒng)的工作效率。4為什么要引入多道程序并發(fā)執(zhí)行技術(shù)?【解答】在單道批處理系統(tǒng)中任何時刻只有一道作業(yè)在內(nèi)存中,在一道作業(yè)的
5、運行過程中,輸入輸出和計算操作是串行的,因此導(dǎo)致I/O設(shè)備和CPU串行工作,從而導(dǎo)致總有空閑資源,在I/O設(shè)備工作時CPU空閑,在CPU工作(指進(jìn)行計算工作)時I/O設(shè)備空閑。即使是在脫機批處理系統(tǒng)中,內(nèi)存和輸入輸出磁帶之間的數(shù)據(jù)傳輸與CPU的計算工作也是串行的。為了進(jìn)一步提高資源利用率,從而最終提高系統(tǒng)吞吐量(系統(tǒng)在單位時間內(nèi)完成的總工作量),在60年代中期引入了多道程序并發(fā)執(zhí)行技術(shù),從而形成了多道批處理系統(tǒng)。多道程序并發(fā)執(zhí)行的基本思想是:在內(nèi)存中同時存放多道程序,在操作系統(tǒng)的控制下交替執(zhí)行。在多道批處理系統(tǒng)中,用戶提交的作業(yè)都先存放在外存中并排成一個隊列,稱為后備隊列,然后由作業(yè)調(diào)度程序按
6、一定的策略從后備隊列中選擇若干作業(yè)調(diào)入內(nèi)存,使它們并發(fā)運行,從而共享系統(tǒng)中的各種資源,提高資源利用率,最終提高系統(tǒng)吞吐量。5試分析單道與多道批處理系統(tǒng)的優(yōu)缺點?!窘獯稹颗幚硐到y(tǒng)實現(xiàn)了作業(yè)步之間以及作業(yè)之間的自動過渡,從而提高了計算機系統(tǒng)的工作效率。多道批處理系統(tǒng)使得CPU與外部設(shè)備并行工作,提高了資源利用率。但是批處理系統(tǒng)缺少人機交互,在作業(yè)運行過程中不能人工干預(yù),使得用戶不能靈活控制作業(yè)過程。6為什么要引入分時操作系統(tǒng)?【解答】多道批處理系統(tǒng)充分地提高了計算機資源利用率和系統(tǒng)吞吐量,但是它缺少人機交互能力,即用戶把作業(yè)提交給計算機系統(tǒng)后,就完全脫離了自己的作業(yè),不能干預(yù)作業(yè)的運行,因此不能
7、及時修正作業(yè)運行過程中出現(xiàn)的錯誤,只有當(dāng)作業(yè)運行結(jié)束后才能脫機修正錯誤,因此用戶使用不方便。對一個程序員來說,每當(dāng)他編寫好一個程序時,都需要上機進(jìn)行調(diào)試。由于新編寫的程序難免有些錯誤或不當(dāng)之處,因此希望能夠進(jìn)行人機交互以便能及時地修改錯誤,即用戶希望可以隨意干預(yù)、控制自己作業(yè)的運行流程 。因此,人們開發(fā)出交互式分時操作系統(tǒng)。在分時系統(tǒng)中,一臺主機可以連接若干終端,每個用戶可以通過終端與主機交互。用戶可以方便地編輯和調(diào)試自己的程序,向系統(tǒng)發(fā)出各種控制命令,系統(tǒng)及時地響應(yīng)用戶的請求,輸出計算結(jié)果以及出錯、告警、提示信息。7分時系統(tǒng)是怎樣實現(xiàn)的? 【解答】在分時系統(tǒng)中,雖然若干用戶通過各自的終端共享
8、一臺主機,但是在操作系統(tǒng)的管理下,每個用戶都感覺自己在獨占一臺主機。分時系統(tǒng)采用的策略是:基于主機的高速運行,分時為終端用戶服務(wù)。即主機按一定次序輪流為各終端用戶服務(wù),每個用戶一次僅使用主機很短的一段時間(稱為時間片,毫秒級),在分得的時間片內(nèi)若用戶沒有完成工作則暫時中斷,將處理機分配給下一個用戶。雖然在一個用戶使用主機時其他用戶處于等待狀態(tài),但是等待的時間很短,用戶感覺不到,從而每個用戶的各次請求都能得到快速響應(yīng),給每個用戶的印象是:他獨占一臺計算機。8實時操作系統(tǒng)應(yīng)用在哪些場合?【解答】實時系統(tǒng)應(yīng)用于兩個領(lǐng)域:(1)實時控制當(dāng)把計算機用于生產(chǎn)過程的控制,以形成以計算機為中心的控制系統(tǒng)時,系
9、統(tǒng)要求能實時采集現(xiàn)場數(shù)據(jù),并對所采集的數(shù)據(jù)進(jìn)行及時處理,進(jìn)而自動地控制相應(yīng)的執(zhí)行機構(gòu),使某些(個)參數(shù)(如溫度、壓力、方位等)能按預(yù)定的規(guī)律變化。類似地,也可將計算機用于武器的控制,如火炮的自動控制系統(tǒng)、飛機的自動駕駛系統(tǒng),以及導(dǎo)彈的制導(dǎo)系統(tǒng)等。通常把要求進(jìn)行實時控制的系統(tǒng)稱為實時控制系統(tǒng)。(2)實時信息處理通常,我們把要求對信息進(jìn)行實時處理的系統(tǒng),稱為實時信息處理系統(tǒng)。該系統(tǒng)由一臺或多臺主機通過通信線路連接成百上千個遠(yuǎn)程終端,計算機接收從遠(yuǎn)程終端發(fā)來的服務(wù)請求,對數(shù)據(jù)進(jìn)行檢索和處理,并及時將結(jié)果反饋給用戶。典型的實時信息處理系統(tǒng)有:飛機訂票系統(tǒng)、情報檢索系統(tǒng)。9實時系統(tǒng)有哪些特點?【解答】實
10、時系統(tǒng)的特征:(1)及時性系統(tǒng)對外部實時信號必須能及時響應(yīng),響應(yīng)的時間間隔要足以能夠控制發(fā)出實時信號的那個環(huán)境。(2)可靠性由于實時系統(tǒng)的應(yīng)用環(huán)境特殊,在實時系統(tǒng)中,任何軟硬件故障都可能給系統(tǒng)帶來嚴(yán)重的后果。必須采取相應(yīng)的軟硬件措施,以保證系統(tǒng)高度可靠。常用的硬件措施如采用雙工機制,即準(zhǔn)備兩臺功能相同的計算機,將其中一臺作為主機,另一臺作為后備機。后備機與主機并行工作,但不產(chǎn)生控制輸出,若主機發(fā)生故障,后備機立即代替主機繼續(xù)工作,保證系統(tǒng)不間斷運行。10操作系統(tǒng)的結(jié)構(gòu)有哪些類型?分別闡述。【解答】一般而言,操作系統(tǒng)有兩種結(jié)構(gòu):層次結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)。(1)層次結(jié)構(gòu)層次結(jié)構(gòu)操作系統(tǒng)的設(shè)計思想是:按
11、照操作系統(tǒng)各模塊的功能和相互依存關(guān)系,把系統(tǒng)中的模塊分為若干層次,其中任一層(除底層模塊)都建立在它下面一層的基礎(chǔ)上,每一層僅使用其下層所提供的服務(wù)。(2)微內(nèi)核結(jié)構(gòu)微內(nèi)核結(jié)構(gòu)是20世紀(jì)90年代發(fā)展起來的。其基本思想是:把操作系統(tǒng)中的基本功能模塊組織為微內(nèi)核,其他功能模塊盡量放到核外,通過調(diào)用微內(nèi)核來實現(xiàn)。微內(nèi)核結(jié)構(gòu)是對傳統(tǒng)內(nèi)核的提煉,它有如下優(yōu)點:簡化內(nèi)核代碼維護(hù)工作建構(gòu)靈活安全性高方便移植11處理機管理有哪些主要功能?它們的主要任務(wù)是什么?【解答】(1)處理機調(diào)度要在單處理機系統(tǒng)中并發(fā)運行多道程序,必須按照一定策略對處理機進(jìn)行調(diào)度,就像在一條鐵路上運行多列火車一樣,需要進(jìn)行調(diào)度,要決定在某
12、個時刻把處理機分配給哪個進(jìn)程進(jìn)行計算操作。這是處理機管理的核心任務(wù)。(2)進(jìn)程控制進(jìn)程是程序的一次動態(tài)運行過程,在其生存期內(nèi)從產(chǎn)生到消亡經(jīng)過了一系列狀態(tài)的轉(zhuǎn)換。在多道程序并發(fā)運行的系統(tǒng)中,通常不會讓一道程序獨占計算機全部資源不間斷地運行完畢,而是讓多個進(jìn)程交替運行。這樣進(jìn)程在其生存期內(nèi)肯定有多種狀態(tài),最起碼有運行和不運行兩種狀態(tài)。進(jìn)程的狀態(tài)數(shù)量是操作系統(tǒng)按照一定的管理策略來設(shè)置的,進(jìn)程狀態(tài)轉(zhuǎn)換是操作系統(tǒng)實施進(jìn)程管理的一個基本操作。操作系統(tǒng)提供了一些原語來對進(jìn)程狀態(tài)的轉(zhuǎn)換進(jìn)行控制。(3)進(jìn)程通信在多道程序環(huán)境下,可以由系統(tǒng)為一個應(yīng)用程序建立多個進(jìn)程,這些進(jìn)程相互合作去完成某一共同任務(wù),它們之間要
13、交換信息進(jìn)程通信。為保證進(jìn)程之間正確通信,操作系統(tǒng)提供了一系列通信原語供應(yīng)用進(jìn)程調(diào)用。(4)進(jìn)程同步在多道程序系統(tǒng)中,多個并發(fā)進(jìn)程處在同一運行環(huán)境中,必然存在著某種聯(lián)系,如進(jìn)程之間的資源共享和進(jìn)程之間的協(xié)作。操作系統(tǒng)必須采用一定策略來處理并發(fā)進(jìn)程之間的制約關(guān)系,使各進(jìn)程能順利運行,即使各進(jìn)程同步協(xié)調(diào)運行。操作系統(tǒng)中設(shè)置了同步機制來完成此功能。12內(nèi)存管理有哪些主要功能?它們的主要任務(wù)是什么?【解答】操作系統(tǒng)提供如下存儲管理功能:(1)內(nèi)存分配內(nèi)存分配的任務(wù)是為每道程序分配一定的存儲空間。往往會出現(xiàn)多道程序?qū)?nèi)存的需求總和超過實際內(nèi)存空間,因此在制定分配策略時應(yīng)以提高內(nèi)存利用率為目標(biāo)。(2)地址
14、轉(zhuǎn)換程序必須裝入內(nèi)存才能被CPU訪問到并執(zhí)行,程序指令的操作對象數(shù)據(jù)也必須裝入內(nèi)存才能被程序訪問,程序和數(shù)據(jù)裝入內(nèi)存后占據(jù)一定的物理內(nèi)存地址空間,程序的邏輯地址空間往往和物理地址空間不重合,而程序最終是在物理地址空間中運行,即訪問程序中的指令和數(shù)據(jù)時是按其所在的實際內(nèi)存單元的地址來進(jìn)行的,所以要正確地訪問數(shù)據(jù)和指令,必須把指令中的邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址,這一操作稱為地址轉(zhuǎn)換,又稱為“重定位”。(3)內(nèi)存保護(hù)內(nèi)存保護(hù)的任務(wù)是確保每道用戶程序都在自己的內(nèi)存空間中運行,互不干擾。即,不允許用戶程序訪問操作系統(tǒng)的程序和數(shù)據(jù)(只可以通過系統(tǒng)調(diào)用訪問操作系統(tǒng)),也不允許訪問(存?。┢渌绦虻拇鎯臻g
15、。(4)內(nèi)存擴充在多道程序環(huán)境中,內(nèi)存資源比較緊張,往往會出現(xiàn)多道程序?qū)?nèi)存的需求總和超過實際內(nèi)存容量的情況。因此在采用合適的內(nèi)存分配策略以提高內(nèi)存利用率的基礎(chǔ)上,要采用內(nèi)存擴充技術(shù)來為多道程序運行提供充足的內(nèi)存空間。這里說的內(nèi)存擴充是從邏輯角度而言的,不是指添加物理內(nèi)存,擴充物理內(nèi)存容量。13設(shè)備管理有哪些主要功能?它們的主要任務(wù)是什么?【解答】(1)設(shè)備分配根據(jù)用戶程序的I/O請求,為之分配所需的設(shè)備。如果在I/O設(shè)備和CPU之間還存在著設(shè)備控制器和I/O通道時,還要為分配出去的設(shè)備分配相應(yīng)的控制器和通道。(2)緩沖管理進(jìn)程在運行過程中要和輸入輸出設(shè)備之間傳輸數(shù)據(jù),在進(jìn)程的數(shù)據(jù)存儲區(qū)和I/
16、O設(shè)備控制器之間直接傳輸數(shù)據(jù)效率較低或者無法進(jìn)行,因此操作系統(tǒng)提供了緩沖技術(shù)。緩沖管理的任務(wù)是解決CPU和外設(shè)速度不匹配的矛盾,使它們能充分并行工作,從而提高CPU和I/O設(shè)備的利用率,最終達(dá)到提高系統(tǒng)吞吐量的目的。(3)設(shè)備驅(qū)動設(shè)備驅(qū)動程序?qū)崿F(xiàn)CPU與設(shè)備控制器之間的通信。由CPU向設(shè)備控制器發(fā)出I/O指令,由設(shè)備控制器驅(qū)動相應(yīng)設(shè)備進(jìn)行I/O操作;當(dāng)I/O操作完成時,設(shè)備控制器向CPU發(fā)送中斷信號,由相應(yīng)的中斷處理程序進(jìn)行處理。(4)設(shè)備無關(guān)性又稱設(shè)備獨立性。即用戶編寫的應(yīng)用程序與實際使用的物理設(shè)備無關(guān)。用戶編寫的應(yīng)用程序中不直接指定使用哪臺具體的物理設(shè)備,而是使用操作系統(tǒng)提供的邏輯設(shè)備,然
17、后由操作系統(tǒng)把用戶程序中使用的邏輯設(shè)備映射到具體的物理設(shè)備,實施具體的I/O操作。這樣做的一個明顯好處是用戶應(yīng)用進(jìn)程的運行不取決于某臺具體物理設(shè)備的狀態(tài),而由操作系統(tǒng)為其分配一臺合適的設(shè)備完成I/O操作。這樣會避免出現(xiàn)有設(shè)備可用但進(jìn)程卻無法運行的情況。14文件管理有哪些主要功能?它們的主要任務(wù)是什么?【解答】文件管理具體有如下功能:(1)文件存儲空間的管理為新文件分配所需的外存存儲空間,回收釋放的文件存儲空間。在進(jìn)行文件存儲空間的分配和回收時,要考慮到提高外存空間的利用率和提高文件的存取速度。(2)目錄管理為了能方便地在外存中找到所需要的文件,要為外存中存放的文件建立目錄,每個文件都對應(yīng)著一個
18、目錄項。目錄項包含文件名、文件屬性、文件在外存中的存放位置等用戶和操作系統(tǒng)所需信息。目錄管理的主要任務(wù)是建立外存中文件的目錄結(jié)構(gòu),實現(xiàn)用戶程序?qū)ξ募摹鞍疵嫒 ?。文件目錄項要按一定結(jié)構(gòu)組織起來,以便于操作系統(tǒng)檢索。在UNIX/LINUX中采用了樹型目錄結(jié)構(gòu)。(3)文件操作包括文件的創(chuàng)建、刪除、打開、關(guān)閉、讀、寫等。這其實是一組文件系統(tǒng)功能調(diào)用,在用戶程序中當(dāng)要對文件進(jìn)行操作時,可以調(diào)用文件系統(tǒng)提供的這些文件操作功能。(4)文件的存取權(quán)限控制為了防止系統(tǒng)中的文件被非法竊取和破壞,操作系統(tǒng)提供了文件的存取權(quán)限控制功能,以防止未被授權(quán)的用戶存取文件,防止用戶以不正確的方式存取文件。當(dāng)用戶對某一文件
19、操作時,首先檢查其對該文件的操作權(quán)限,如果該用戶具有對該文件的此種操作權(quán)限,則允許該用戶存取該文件,否則拒絕用戶對該文件的此種操作。15操作系統(tǒng)提供了哪些人機接口?【解答】為方便用戶使用計算機系統(tǒng),操作系統(tǒng)提供了用戶接口。操作系統(tǒng)提供兩個級別的接口:(1)作業(yè)控制級接口(通常又稱為命令接口):提供一組命令供用戶直接或間接控制自己的作業(yè)。作業(yè)級接口由一組用戶可直接使用控制作業(yè)運行的命令和命令解釋器構(gòu)成。如:在DOS系統(tǒng)中有內(nèi)部命令和外部命令,有命令解釋器。該接口又可進(jìn)一步分為聯(lián)機用戶接口和脫機用戶接口。聯(lián)機用戶接口:由一組鍵盤字符命令(或鼠標(biāo)命令)和命令解釋器組成,使用戶可以聯(lián)機交互方式使用計算
20、機。脫機用戶接口:操作命令的形式為作業(yè)控制語言,用戶以脫機批處理方式使用計算機。用戶對作業(yè)流程的控制意圖是利用作業(yè)控制語言書寫成一份作業(yè)說明書來表達(dá)的。程序級接口:提供一組系統(tǒng)調(diào)用供用戶程序和其他系統(tǒng)程序調(diào)用。程序級接口由一組系統(tǒng)功能調(diào)用命令以及完成這些命令的程序模塊組成。為方便用戶編程,提高編程效率,規(guī)范編程,操作系統(tǒng)提供了完成某些通用功能的程序,供用戶在開發(fā)應(yīng)用程序時調(diào)用。不同的操作系統(tǒng)提供了不同的系統(tǒng)功能調(diào)用以及調(diào)用方式。第2章 文件管理習(xí)題解答1什么是文件和文件系統(tǒng)?文件系統(tǒng)有哪些功能?【解答】文件是具有符號名而且在邏輯上具有完整意義的信息項的有序序列。文件系統(tǒng)是指操作系統(tǒng)系統(tǒng)中實現(xiàn)對
21、文件的組織、管理和存取的一組系統(tǒng)程序,它實現(xiàn)對文件的共享和保護(hù),方便用戶“按名存取”。文件系統(tǒng)的功能“(1)文件及目錄的管理。如打開、關(guān)閉、讀、寫等。(2)提供有關(guān)文件自身的服務(wù)。如文件共享機制、文件的安全性等。(3)文件存儲空間的管理。如分配和釋放。主要針對可改寫的外存如磁盤。(4)提供用戶接口。為方便用戶使用文件系統(tǒng)所提供的服務(wù),稱為接口。文件系統(tǒng)通常向用戶提供兩種類型的接口:命令接口和程序接口。不同的操作系統(tǒng)提供不同類型的接口,不同的應(yīng)用程序往往使用不同的接口。2Linux文件可以根據(jù)什么分類?可以分為哪幾類?各有什么特點?【解答】在Linux操作系統(tǒng)中,文件可以根據(jù)內(nèi)部結(jié)構(gòu)和處理方式進(jìn)
22、行分類。在Linux操作系統(tǒng)中,可以將文件分為普通文件、目錄文件、特別文件三類。各類文件的特點是:普通文件:由表示程序、數(shù)據(jù)或正文的字符串構(gòu)成的文件,內(nèi)部沒有固定的結(jié)構(gòu)。 這種文件既可以是系統(tǒng)文件,也可以是庫文件或用戶文件。目錄文件: 由文件目錄構(gòu)成的一類文件。 對它的處理(讀、 寫、 執(zhí)行)在形式上與普通文件相同。特別文件:特指各種外部設(shè)備,為了便于管理,把所有的輸入/輸出設(shè)備都按文件格式供用戶使用。 這類文件對于查找目錄、存取權(quán)限驗證等的處理與普通文件相似,而其他部分的處理要針對設(shè)備特性要求做相應(yīng)的特殊處理。 應(yīng)該指出,按不同的分類方式就有不同的文件系統(tǒng)。3什么是文件的邏輯結(jié)構(gòu)?什么是文件
23、的物理結(jié)構(gòu)?Linux文件系統(tǒng)分別采用什么樣的結(jié)構(gòu)?有什么優(yōu)點和缺點?【解答】文件的邏輯結(jié)構(gòu):用戶對文件的觀察的使用是從自身處理文件中數(shù)據(jù)時采用的組織方式來看待文件組織形式。這種從用戶觀點出發(fā)所見到的文件組織方式稱為文件的邏輯組織。文件的物理結(jié)構(gòu):從系統(tǒng)的角度考察文件在實際存儲設(shè)備上的存放形式,又稱為文件的存儲結(jié)構(gòu)。在Linux系統(tǒng)中,所有文件的邏輯結(jié)構(gòu)都被看作是流式文件,系統(tǒng)不對文件進(jìn)行格式處理。在Linux系統(tǒng)中,文件的物理結(jié)構(gòu)采用的是混合多重索引結(jié)構(gòu),即將文件所占用盤塊的盤塊號,直接或間接地存放在該文件索引結(jié)點的地址項中。在Linux系統(tǒng)中,采用混合索引結(jié)構(gòu)的優(yōu)點是,對于小文件,訪問速度
24、快;對于大中型的文件,其文件系統(tǒng)也能很好的支持;缺點是會帶來因為多次訪問磁盤而影響速度。4目前廣泛用的目錄結(jié)構(gòu)形式是哪種?它有什么優(yōu)點?【解答】廣泛用的目錄結(jié)構(gòu)形式是樹型目錄結(jié)構(gòu)。優(yōu)點:(1)能有效的提高對目錄的檢索速度。(2)允許文件重名。允許用戶在自己的分目錄中,使用與其他用戶相同的文件名。(3)便于實現(xiàn)文件共享。5常見的文件存儲空間管理有哪幾種?各自有什么特點?Linux系統(tǒng)的存儲空間管理采用什么方法?【解答】常見的文件存儲空間管理有:空閑空間表法、空閑塊鏈接法、位示圖法、空閑塊成組鏈接法??臻e空間表法:所有連續(xù)的空閑盤塊在表中占有一項,其中每一個空閑表項包括序號、空閑區(qū)的第一個盤塊號、
25、該區(qū)的空閑盤塊數(shù)及對應(yīng)的空閑物理塊號。利用該表進(jìn)行盤塊的分配和文件刪除時盤塊的回收??臻e塊鏈接法:將磁盤上的所有盤塊拉成一條鏈,用一個指針指向第一個空閑塊,而各個空閑塊中都含有下一個空閑區(qū)的塊號,最后一塊的指針項記為NULL,表示鏈尾。分配和釋放盤塊都在鏈頭進(jìn)行。位示圖法:利用一串二進(jìn)制位的值來反映磁盤空間的分配情況,每個盤塊都對應(yīng)一位。若盤塊空閑,對應(yīng)位為0;若盤塊已分配出去,則對應(yīng)位為1??臻e塊成組鏈接法:把所有空閑盤塊按固定數(shù)量分組,組與組之間形成鏈接關(guān)系,最后一組的塊號通常放在內(nèi)存的一個專用棧中。因而對盤塊的分配和回收都在棧中進(jìn)行。Linux系統(tǒng)的存儲空間管理采用空閑塊成組鏈接法。6內(nèi)
26、存管理和外存管理有何異同?【解答】可以從以下幾個方面進(jìn)行比較:(1)主要任務(wù):內(nèi)存管理的主要任務(wù)是為多道程序的運行提供良好的環(huán)境,使每到程序都能順利運行。外存管理的主要任務(wù)是為文件提供存儲空間。(2)基本功能:內(nèi)存管理的基本功能包含了內(nèi)存空間的分配、回收、保護(hù)、擴充等方面。外存管理的基本功能則只是對外存空間的分配和回收。(3)分配方式:內(nèi)存和外存管理都可采用連續(xù)或離散分配方式,且都以離散分配方式為主。(4)分配算法:對于連續(xù)分配方式,內(nèi)存與外存管理中的分配和回收算法類似,主要有首次適應(yīng)算法、循環(huán)首次適應(yīng)算法等。在離散分配方式中,兩者索采用的機制不同,內(nèi)存管理只要利用頁表或段表;在外存管理中,則
27、主要利用文件分配表。(5)分配單位:內(nèi)存以字節(jié)為單位,外存則以盤塊為單位分配。7為什么要打開文件?敘述在linux文件系統(tǒng),打開文件/home/user01/myfile的過程?【解答】當(dāng)用戶要求對一個文件實施多次讀/寫或其他操作時,每次都要從檢索目錄開始。為了避免多次重復(fù)地檢索目錄,在大多數(shù)OS中都引入了“打開”(open)這一文件系統(tǒng)調(diào)用,當(dāng)用戶第一次請求對某文件進(jìn)行操作時,先利用open系統(tǒng)調(diào)用將該文件打開。在UNIX文件系統(tǒng),打開文件/home/user01/myfile的過程四步:(1)檢索目錄核心先調(diào)用檢索目錄過程namei從根目錄或從當(dāng)前目錄開始,沿目錄樹查找指名文件的索引結(jié)點。
28、在查找時,利用線性檢索法,將文件路徑名中的各分量名,與相應(yīng)目錄文件中的文件名逐一進(jìn)行比較。若未找到該文件名,或者該文件不允許存取,便做出錯處理;否則,進(jìn)入第二步。(2)分配內(nèi)存索引結(jié)點如果該文件已被其他用戶打開,此時只需對在第一步中所找到的i結(jié)點,執(zhí)行其引用計數(shù)加1的操作;否則,應(yīng)為被打開文件分配一個內(nèi)存i結(jié)點,并調(diào)用磁盤讀過程將磁盤i結(jié)點的內(nèi)容拷貝到內(nèi)存 i 結(jié)點中,并設(shè)置i.count為1。(3)分配文件表這是指為已打開的文件分配一個文件表項,使文件表項中的 f. node指向內(nèi)存索引結(jié)點。通常還將讀寫指針f.offset置為 0,以表示從頭開始讀寫此文件;置讀寫標(biāo)志 fflag,及將文件
29、的引用計數(shù)fcount加 1,并記入該表項的首址fp。(4)分配用戶文件描述表項在用戶文件描述表中取得一空表項。若成功,便將fp填入該表項中,并把該表項的序號fd作為文件描述符,寫入調(diào)用進(jìn)程的U區(qū)中。8.在Linux系統(tǒng)中,一個盤塊大小為1KB,每個盤塊號占4B,則一個進(jìn)程要訪問一個相對于文件開始的偏移量為263168B處的數(shù)據(jù)時,計算是直接還是索引訪問,幾級索引?【解答】一次間接。263168B/1024B=257即該地址在第257塊。塊內(nèi)偏移量為:263168-1024*257=0因 10257266故為一次間接。9有一個UNIX文件的權(quán)限為:rwxr_x_ _ _,該文件的文件主為uid
30、=12,gid=1,有一用戶B的uid=6,gid=1,問:系統(tǒng)是否允許用戶B執(zhí)行該文件?為什么?【解答】允許。因為UID為用戶標(biāo)識符。說明用戶B與該文件主為同組用戶。10說明Linux系統(tǒng)磁盤的結(jié)構(gòu)及各部分的功能?!窘獯稹浚?)0號塊1號塊2號塊K號塊(索引結(jié)點區(qū))文件區(qū)(2)0號塊存放引導(dǎo)程序,是引導(dǎo)區(qū),1號塊是超級塊,也叫超級塊,存放文件卷的管理信息,索引節(jié)點區(qū)存放各文件的索引結(jié)點;文件區(qū)存放文件的內(nèi)容。11磁盤容量為1.2GB的硬盤,假設(shè)盤塊大小為1KB,每個盤塊號在FAT表區(qū)占4B,你作為磁盤的設(shè)計人員,應(yīng)設(shè)FAT區(qū)為多長?【解答】1.2GB=1.2M*1KB即 1.2GB/1KB=
31、1.2M磁盤由1.2個磁盤塊組成。1.2*4B=4.8MB所以磁盤的FAT表區(qū)長度應(yīng)為4.8MB12設(shè)在linux中有一進(jìn)程P,P中有一操作需要訪問一文件中偏移量為14000處的數(shù)據(jù);試問linux如何實現(xiàn)地址變換?【解答】(1)核心將14000換為邏輯塊號13及塊內(nèi)偏移量688;(2)判斷,因1013266,故為一次間址;(3)從i.add(10)中取得盤塊號,設(shè)為x;(4)調(diào)用bread過程讀x盤塊;(5)在一次間址中的文件邏輯塊號為3(從0編);(6)從中得實際塊號,設(shè)為y;(7)則該塊中的688即為所求。13多操作系統(tǒng)中提供了文件重命名功能,它能賦予文件一個新名字。若進(jìn)行文件復(fù)制,并給
32、復(fù)制文件起一個名字,然后刪除舊文件,也能達(dá)到給文件重命名的目的。試問這兩種方法在實現(xiàn)上有何不同?【解答】使用文件重命名功能時,用戶必須提供兩個參數(shù):舊文件名,新文件名。實現(xiàn)該功能時,系統(tǒng)使用舊文件名查找文件目錄,若找到舊文件名所對應(yīng)的目錄表目,則 將目錄表中文件名字段對應(yīng)的值改為新文件名值。從實現(xiàn)過程看,文件重命名功能完成的工作是修改目錄表中的文件名字段,除文件名外,文件的其它特性都未改變。在后一種實現(xiàn)方法中,先進(jìn)行文件復(fù)制并給復(fù)制文件起一個新名,此時系統(tǒng)完成了一次物理文件的復(fù)制操作,然后刪除舊文件。雖然這樣也能實現(xiàn)給文件重命名的目的,但其實現(xiàn)過程比前一種方式復(fù)雜,并且新文件與舊文件的物理存放
33、地址肯定不同。14在利用link系統(tǒng)調(diào)用進(jìn)行連接時,如果path1=/usr/zhang/ff.c,path2=/usr/li/message/ff.c,試畫出此時的樹型目錄圖?!窘獯稹吭跇湫臀募到y(tǒng)中,每一個文件都有一路徑名。例如,用戶zhang的文件ff.c的路徑名為/usr/zhang/ff.c。如果用戶li要共享此文件,可利用系統(tǒng)調(diào)用link(path1,path2)與文件ff.c建立連接。其中參數(shù)path1=/usr/zhang/ff.cpath2=/usr/li/message/ff.c,即在li的message目錄文件中創(chuàng)建一個新目錄項。建立連接后的樹型目錄結(jié)構(gòu)圖如下:rootu
34、srZhanglimessageff.c15在實現(xiàn)文件共享時,如果不先進(jìn)行連接,會產(chǎn)生什么后果?【解答】建立連接的目的,一方面是為共享該文件的用戶增加一新的文件路徑名,另一方面是讓系統(tǒng)知道有多少個用戶需要使用該文件。在每次連接時,該文件的索引結(jié)點訪問計數(shù)會增加1。共享該文件時,若無建立連接的操作,系統(tǒng)就無法知道是否還有用戶需要該文件,其后果可能是:當(dāng)用戶要使用該文件時,發(fā)現(xiàn)該文件已被刪除;或者在用戶使用該文件期間,文件突然比刪除。第3章 進(jìn)程管理課后習(xí)題解答1操作系統(tǒng)為什么要引入進(jìn)程的概念?【解答】程序在并發(fā)執(zhí)行方式下,運行時具有異步性的特征。這樣,就需要一個數(shù)據(jù)結(jié)構(gòu)PCB來記錄程序的狀態(tài),以
35、及控制其狀態(tài)轉(zhuǎn)換所需的一些信息。因此,將PCB、程序、數(shù)據(jù)三者組成一個完整的實體,就是進(jìn)程實體。進(jìn)程是程序的一次執(zhí)行,引入進(jìn)程的概念,便于操作系統(tǒng)對于程序的運行進(jìn)行控制。2試比較進(jìn)程和程序的區(qū)別?!窘獯稹窟M(jìn)程和程序之間存在著密切的聯(lián)系,但它們是兩個完全不同的概念。它們之間的主要區(qū)別是:(1)程序是靜態(tài)的概念,本身可以作為一種軟件資源長期保存著;而進(jìn)程則是程序的一次執(zhí)行過程。它是動態(tài)的概念。(2)進(jìn)程是一個能獨立運行的單位,能與其它進(jìn)程并發(fā)執(zhí)行。進(jìn)程是作為資源申請和調(diào)度單位存在的;而通常的程序是不能作為一個獨立運行的單位而并發(fā)執(zhí)行的。(3)程序和進(jìn)程無一一對應(yīng)的關(guān)系。一個程序可由多個進(jìn)程共用;另
36、一方面,一個進(jìn)程在其活動中又可順序地執(zhí)行若干個程序。一個程序,運行一次,便創(chuàng)建了一個進(jìn)程;同一個程序,若運行十次,就產(chǎn)生了十個進(jìn)程。(4)各個進(jìn)程在并發(fā)執(zhí)行過程中會產(chǎn)生相互制約關(guān)系,造成各自前進(jìn)速度的不可預(yù)測性。而程序本身是靜態(tài)的,不存在這種異步特征。3程序并發(fā)執(zhí)行,為什么會失去封閉性和可再現(xiàn)性?【解答】在程序并發(fā)執(zhí)行的環(huán)境下,多個進(jìn)程共享系統(tǒng)中的資源,這些資源是否被使用,及每一時刻由哪個進(jìn)程使用,將由多個進(jìn)程的相互作用而決定。這樣,程序的執(zhí)行就失去了封閉性。某個進(jìn)程的執(zhí)行必然受到其它進(jìn)程的影響。由于進(jìn)程在并發(fā)執(zhí)行的過程中失去了封閉性,當(dāng)下一次再運行該程序時,系統(tǒng)中存在的進(jìn)程及各進(jìn)程的狀態(tài)都可
37、能發(fā)生變化,導(dǎo)致進(jìn)程的執(zhí)行失去可再現(xiàn)性。4什么叫進(jìn)程的并發(fā)性?試舉一個進(jìn)程并發(fā)執(zhí)行的例子?!窘獯稹慷鄠€進(jìn)程在同一時間間隔內(nèi)同時發(fā)生,叫做進(jìn)程的并發(fā)性。例如:我們在Linux系統(tǒng)下使用編輯器vi進(jìn)行編輯,而此時系統(tǒng)正在后臺運行一個編譯程序,此時,兩個進(jìn)程并發(fā)執(zhí)行。5舉一個例子,說明一個程序可能同時屬于多個進(jìn)程?!窘獯稹坷纾撼械氖浙y系統(tǒng)。在每個終端上,收銀員在運行收款程序,因此每個收銀員都在執(zhí)行一個進(jìn)程。超市里同時有很多收款終端,同一個程序被并發(fā)執(zhí)行多次,造成了多個進(jìn)程并發(fā)執(zhí)行。6試說明PCB的作用,為什么說PCB是進(jìn)程存在的惟一標(biāo)志?【解答】PCB的作用是:在一個在多道程序環(huán)境下,集中反映了
38、一個進(jìn)程的動態(tài)特征。在進(jìn)程并發(fā)執(zhí)行時,由于資源共享,帶來各進(jìn)程之間的相互制約。顯然,為了反映這些制約關(guān)系和資源共享關(guān)系,必須使用PCB中的信息,才能對進(jìn)程實施有效的管理和控制。PCB是進(jìn)程實體的一部分,是操作系統(tǒng)中非常重要的數(shù)據(jù)結(jié)構(gòu),存放著進(jìn)程所需的運行信息和控制信息,系統(tǒng)在創(chuàng)建進(jìn)程時,首先創(chuàng)建PCB,然后通過PCB感知進(jìn)程的存在,進(jìn)程在被撤消時,PCB也隨之被撤消。因此,PCB是進(jìn)程存在的惟一標(biāo)志。7說明進(jìn)程由哪幾部分構(gòu)成?【解答】進(jìn)程實體通常就是由程序、數(shù)據(jù)集合和PCB這三部分構(gòu)成,也稱為“進(jìn)程映像”。8什么叫臨界區(qū)?為什么進(jìn)程在進(jìn)入臨界區(qū)之前,要先執(zhí)行申請操作,離開臨界區(qū),要做釋放操作?
39、【解答】將每個進(jìn)程中訪問臨界資源的那段代碼稱為臨界區(qū),因此也可以說:不能被多個進(jìn)程同時進(jìn)入的程序或數(shù)據(jù)區(qū)域叫做臨界區(qū)。因為臨界區(qū)不能由多個進(jìn)程同時進(jìn)入,因此,在進(jìn)入臨界區(qū)之前,要先執(zhí)行申請操作,確保在沒有其它進(jìn)程進(jìn)入的情況下,該進(jìn)程才能進(jìn)入該臨界區(qū);在離開臨界區(qū)之前,要做釋放操作,以便其它進(jìn)程可以進(jìn)入該臨界區(qū)。9試說明進(jìn)程的基本狀態(tài)及轉(zhuǎn)換的原因?!窘獯稹吭诓僮飨到y(tǒng)中,進(jìn)程通常至少有三種基本狀態(tài):就緒狀態(tài)、執(zhí)行狀態(tài)、阻塞狀態(tài)。進(jìn)程狀態(tài)轉(zhuǎn)換的原因是:系統(tǒng)中的進(jìn)程是并發(fā)執(zhí)行的。在系統(tǒng)中,CPU在不同的時間,按一定的算法為不同的進(jìn)程服務(wù);系統(tǒng)中的資源是有限的;各進(jìn)程之間存在相互作用。因此,進(jìn)程并非固定
40、處于某個狀態(tài),它將隨著自身的推進(jìn)和外界條件的變化而發(fā)生變化。對于一個系統(tǒng),處于就緒狀態(tài)的進(jìn)程,在調(diào)度程序為之分配了處理機之后,該進(jìn)程便由就緒態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)。當(dāng)前進(jìn)程,如果因分配給它的時間片已用完而被暫停執(zhí)行時,該進(jìn)程便由執(zhí)行狀態(tài)又回到就緒狀態(tài);一個處在執(zhí)行狀態(tài)的進(jìn)程,因為等待某外部事件發(fā)生,而使該進(jìn)程狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。一個處于阻塞狀態(tài)的進(jìn)程,當(dāng)它所需的外部事件滿足,它應(yīng)由阻塞狀態(tài)變?yōu)榫途w狀態(tài)。10在創(chuàng)建一個進(jìn)程時,所要做的工作有哪些?【解答】操作系統(tǒng)通過進(jìn)程創(chuàng)建原語來創(chuàng)建一個進(jìn)程。創(chuàng)建原語通過下述步驟創(chuàng)建一個進(jìn)程:(1)申請空白PCB。(2)為新進(jìn)程分配資源。(3)初始化進(jìn)程控制塊。(4)
41、將新建進(jìn)程插入就緒態(tài)隊列。11從概念上說明記錄型信號量的構(gòu)成,描述wait原語和 signal 原語所進(jìn)行的操作?!窘獯稹坑涗浶托盘柫康臄?shù)據(jù)結(jié)構(gòu)由兩部分構(gòu)成,即:數(shù)值分量和指針分量。數(shù)值表示系統(tǒng)中可用的該類臨界資源的數(shù)量,而指針分量為進(jìn)程鏈表指針,指向等待該類資源的PCB隊列。申請臨界資源的原語wait操作可描述為:procedure wait(S) var S: semaphore; begin s: =s-1;if s0 then 本進(jìn)程繼續(xù);else 將本進(jìn)程放入阻塞態(tài)隊列;轉(zhuǎn)進(jìn)程調(diào)度 end釋放臨界資源的原語signal操作可描述為: procedure signal(S) var S
42、: semaphore; begin s: =s+1; if s0 then 喚醒指針L所指的阻塞態(tài)進(jìn)程;; end12在生產(chǎn)者消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果將會有何影響?【解答】若缺少釋放資源的原語操作,則會導(dǎo)致生產(chǎn)者或消費者進(jìn)程不能再繼續(xù)工作。如缺少了signal(full),則消費者進(jìn)程可能得不到所需的臨界資源如緩沖區(qū),不能取一件產(chǎn)品;同樣地,如果缺少signal(empty),則生產(chǎn)者進(jìn)程又可能得不到所需的資源,不能存放一件產(chǎn)品。13在生產(chǎn)者消費者問題中,如果兩個wait操作即wait(mutex)和wait(empty)位置互
43、換,會產(chǎn)生什么后果?【解答】如果兩個wait操作即wait(mutex)和wait(empty)位置互換,則有可能產(chǎn)生死鎖。14進(jìn)程的高級通信方式有哪幾種?【解答】高級通信方式可分為三大類:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)和管道通信系統(tǒng)。 在共享存儲器系統(tǒng)中,相互通信的進(jìn)程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲區(qū);消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換以消息為單位,用戶直接利用系統(tǒng)提供的一組通信原語來實現(xiàn)通信,消息傳遞系統(tǒng)可分為消息緩沖通信和信箱通信;管道通信通信的方法是,向管道提供輸入的發(fā)送進(jìn)程以字符流形式將大量的數(shù)據(jù)送入管道,而接受管道輸出的接收進(jìn)程可從管道中接收數(shù)據(jù)。15什么是線程?說明它與進(jìn)程的主要區(qū)別?!?/p>
44、解答】線程是進(jìn)程中執(zhí)行運算的最小單位,亦即執(zhí)行處理機調(diào)度的基本單位。線程與進(jìn)程的的主要區(qū)別:(1)調(diào)度性方面:進(jìn)程是資源分配的基本單位。而線程是分配處理機的基本單位,它與資源分配無關(guān)。即真正在處理機上運行的是線程。(2)擁有資源方面:進(jìn)程是擁有資源的獨立單位,而線程基本是不擁有資源的。同一進(jìn)程的線程共用該進(jìn)程的資源。(3)并發(fā)性方面:進(jìn)程和線程都可以并發(fā)執(zhí)行。但同一個進(jìn)程的線程在并發(fā)執(zhí)行時,狀態(tài)轉(zhuǎn)換速度較快。(4)系統(tǒng)開銷方面:進(jìn)程在創(chuàng)建、狀態(tài)轉(zhuǎn)換、撤消時開銷較大,而對于同樣的工作,線程的開銷較小。16什么是多線程機制?引入它有什么好處?【解答】多線程機制是指操作系統(tǒng)支持在一個進(jìn)程內(nèi)執(zhí)行多個線
45、程的能力。引入線程的好處有以下幾點:(1)易于調(diào)度。由于線程只作為獨立調(diào)度的基本單位,同一進(jìn)程的多個線程共享進(jìn)程的資源,所以線程易于切換。(2)提高了系統(tǒng)的效率。通過線程可方便有效地實現(xiàn)并發(fā)性。進(jìn)程可創(chuàng)建多個線程來執(zhí)行同一程序的不同部分。(3)創(chuàng)建一個線程比創(chuàng)建一個進(jìn)程花費的開銷少,創(chuàng)建速度快。(4)在多處理器的系統(tǒng)中,有利于發(fā)揮多處理器的功能,提高進(jìn)程的并行性。17在讀者寫者問題中,如果修改問題中的同步算法,要求對寫進(jìn)程優(yōu)先,即一旦寫進(jìn)程到達(dá),后續(xù)的讀者進(jìn)程必須等待,而無論是否有讀者進(jìn)程在讀文件。寫出相應(yīng)進(jìn)程的程序段。【解答】增加一個信號量S,用于在寫進(jìn)程到達(dá)后封鎖后續(xù)的讀進(jìn)程。 semap
46、hore S=1;在讀進(jìn)程開頭,增加兩句:P(S);V(S);即所有訪問該文件的進(jìn)程,在申請讀以前,先申請信號量S。如果沒有寫進(jìn)程,則可以直接通過;如果存在寫進(jìn)程,則該信號量S申請不到,該讀者進(jìn)程等待。對于寫進(jìn)程,首先該申請信號量S ,由于讀者進(jìn)程申請到以后接著釋放該信號量,所以寫者進(jìn)程更容易申請到S。寫者進(jìn)程申請到S以后,直到寫操作完成以后才釋放該信號量。因此,讀者進(jìn)程和寫進(jìn)程改為:Var:rmutex, wmutex:semaphore:=1,1; Readcount:integer:=0; begin parbegin讀者進(jìn)程:Reader:begin repeatwait(s);sig
47、nal (s);wait(rmutex); if readcount=0 then wait(wmutex); readcount:=Readcount+1; signal(rmutex); 進(jìn)行讀操作; wait(rmutex); readcount: =readcount-1; if readcount=0 then signal(wmutex); signal(rmutex); until false;end寫者進(jìn)程:writer:begin repeat wait(s);wait(wmutex); 執(zhí)行寫操作; signal(wmutex); signal (s);until fals
48、e;end parend end 18試?yán)糜涗浶托盘柫繉懗鲆粋€不會出現(xiàn)死鎖的哲學(xué)家進(jìn)餐問題的算法。【解答】有多種算法可解決該問題。方法(1)至多只允許有四位哲學(xué)家同時去拿左邊的筷子。實現(xiàn)方法:在每個進(jìn)程的程序段前定義一個信號量S,初值為4,每個哲學(xué)家在使用筷子之前,先申請信號量S,吃完放下筷子后,再釋放S。各進(jìn)程執(zhí)行的程序段為:Pi ( )BeginS:semaphore4Var chopstick: array0, , 4 of semaphore=1,1,1,1,1;repeat wait(s); wait(chopsticki); wait(chopstick(i+1) mod 5);
49、 eat; signal(chopsticki); signal(chopstick(i+1) mod 5); signal(s); think; until false; end方法(2)僅當(dāng)哲學(xué)家的左、右兩只筷子均可用時,才允許他拿起筷子進(jìn)餐。解決的方法:可用AND型信號量。各進(jìn)程執(zhí)行的程序段為:Pi ( )beginVar chopstick: array0, , 4 of semaphore=1,1,1,1,1;repeat wait(chopsticki, chopstick(i+1) mod 5); eat; signal(chopsticki, chopstick(i+1) mo
50、d 5); think; until false; end方法(3)規(guī)定奇數(shù)號哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數(shù)號哲學(xué)家則相反。實現(xiàn)的方法:在第i個哲學(xué)家所執(zhí)行的程序段中判定i的值是偶數(shù)還是奇數(shù),然后再做資源申請。各進(jìn)程執(zhí)行的程序段為:Pi ( )beginVar chopstick: array0, , 4 of semaphore=1,1,1,1,1;repeat if i mod 2=1 then wait(chopsticki); wait(chopstick(i+1) mod 5); else wait(chopstick(i+1) mod 5); wait(cho
51、psticki); eat; signal(chopsticki); signal(chopstick(i+1) mod 5); think; until false; end啟動車輛正常行車到站停車開車門關(guān)車門售票司機進(jìn)程:售票員進(jìn)程:19設(shè)公共汽車上有一位司機和一位售票員,它們的活動如下: 請分析司機與售票員之間的同步關(guān)系,如何用P、V 操作實現(xiàn)。【解答】為了安全起見,顯然要求:關(guān)車門后才能啟動車輛;到站后才能開車門。所以司機和售票員在到站、開門、關(guān)門、啟動車輛這幾個活動之間存在著同步關(guān)系。兩個信號量S1、S2分別表示可以開車和可以開門,S1的初值為1,S2的初值為0。用PV操作實現(xiàn)司機進(jìn)
52、程和售票員進(jìn)程同步的算法描述如下:semaphore s1,s2:=1,0;main()cobegindriver( );busman( );coenddriver()while(1)p(s1);啟動車輛;正常行車;到站停車;V(s2);busman( ) while(1)p(s2);開車門;等待上下乘客;關(guān)車門;V(s1);售票;注:為提高系統(tǒng)的效率,提高進(jìn)程的并發(fā)性,將售票放在汽車行駛的過程中。第4章 存儲管理課后習(xí)題解答1存儲管理的功能是什么?【解答】存儲管理的主要功能是:(1)內(nèi)存分配。內(nèi)存分配的任務(wù)是為每道作業(yè)分配一定的內(nèi)存空間。往往會出現(xiàn)多道程序?qū)?nèi)存的需求總和超過實際內(nèi)存空間,因
53、此,制定分配策略時應(yīng)以提高內(nèi)存利用率為目標(biāo)。(2)地址轉(zhuǎn)換映射。一個應(yīng)用程序經(jīng)編譯后形成很多目標(biāo)程序,這些目標(biāo)程序經(jīng)過連接后形成可執(zhí)行程序。需要把邏輯地址轉(zhuǎn)換成物理地址。(3)內(nèi)存保護(hù)。內(nèi)存保護(hù)的任務(wù)是確保每道用戶程序都在自己的內(nèi)存空間中運行,互不干擾。(4)內(nèi)存擴充。在多道程序環(huán)境中,內(nèi)存資源比較緊張,往往會出現(xiàn)多道程序?qū)?nèi)存的需求總和超過實際容量的情況。這時要進(jìn)行內(nèi)存擴充,擴充的方式采用虛擬存儲器的方式進(jìn)行。2存儲分配的方式有幾種?【解答】存儲分配的方式有連續(xù)存儲分配和非連續(xù)的存儲方式兩大類。連續(xù)的存儲分配的方式包括單連續(xù)存儲分配、固定分區(qū)分配方式、動態(tài)分區(qū)分配方式、可重定位的分區(qū)分配方式
54、。非連續(xù)的存儲分配方式包括分段存儲管理、分頁存儲管理、段頁式存儲管理三種方式。3什么叫虛擬存儲器?【解答】基于局部性的原理,作業(yè)在裝入之前,沒有必要一次性裝入內(nèi)存,僅將要運行的部分裝入到內(nèi)存,其余的仍然放在磁盤上。當(dāng)程序要訪問的頁沒有裝入到內(nèi)存時,將它們裝入到內(nèi)存,繼續(xù)運行。若內(nèi)存已經(jīng)滿,則將內(nèi)存中暫時不用的頁調(diào)出內(nèi)存,釋放所占的內(nèi)存空間,將要訪問的頁調(diào)入內(nèi)存執(zhí)行。這樣就可以在較大的程序調(diào)到一個較小的內(nèi)存空間上運行。從用戶角度看,該系統(tǒng)所具有的內(nèi)存容量比實際的內(nèi)存容量要大的多,人們把這樣的存儲器稱為虛擬存儲器。4簡述目前常用的幾種分區(qū)分配方式?!窘獯稹磕壳俺S玫姆謪^(qū)分配方式有分頁存儲管理、分段
55、存儲管理、段頁式存儲管理、請求分頁式存儲管理、請求分段式存儲管理和請求段頁式存儲管理。5簡述請求頁式存儲管理的實現(xiàn)思想?!窘獯稹空埱蠓猪撌酱鎯芾硎墙⒃陧撌酱鎯芾淼幕A(chǔ)之上的一種存儲管理方式。是一種常用的虛擬存儲方式。它需要軟、硬件的支持。換進(jìn)和換出的基本單位是頁面。6缺頁中斷和一般中斷的區(qū)別是什么?【解答】缺頁中斷作為中斷,同樣要經(jīng)過CPU現(xiàn)場、分析中斷原因、轉(zhuǎn)缺頁中斷處理程序進(jìn)行處理、恢復(fù)CPU現(xiàn)場等步驟。但缺頁中斷又是一種特殊的中斷,它與一般中斷的主要區(qū)別是:(1)在指令執(zhí)行期間產(chǎn)生和處理中斷信號。通常,CPU都是在一條指令執(zhí)行完后去檢查是否有中斷請求到達(dá)。若有則去響應(yīng)中斷;否則繼續(xù)
56、執(zhí)行下一條指令。而缺頁中斷是在指令執(zhí)行期間,發(fā)現(xiàn)所要訪問的指令或數(shù)據(jù)不在內(nèi)存時產(chǎn)生和處理的。(2)一條指令在執(zhí)行期間可能產(chǎn)生多次缺頁中斷。例如,對于一條讀取數(shù)據(jù)的多字節(jié)指令,指令本身跨越兩個頁面,假定指令后一部分所在頁面和數(shù)據(jù)所在的頁面均不在內(nèi)存,則該指令的執(zhí)行至少產(chǎn)生兩次缺頁中斷。7已知頁面走向為1、2、1、3、1、2、4、2、1、3、4,且開始執(zhí)行時主存中沒有頁面。若只給該作業(yè)分配兩個物理塊,當(dāng)采用FIFO頁面淘汰算法時缺頁率為多少?假定現(xiàn)在有一種淘汰算法,該算法淘汰頁面的策略為當(dāng)需要淘汰頁面時,就把剛使用過的頁面作為淘汰對象,試問相同的頁面走向,其缺頁率又為多少?【解答】在進(jìn)行內(nèi)存訪問時
57、,若訪問的頁以在主存,則稱此次訪問成功。若訪問的頁不在主存,則稱此次訪問失敗。并產(chǎn)生缺頁中斷。若程序P在運行過程中訪問頁面的總次數(shù)為s,其中產(chǎn)生缺頁中斷的訪問次數(shù)為f,則其缺頁率為f/s.表4-1采用FIFO淘汰算法的頁面置換的情況如表4-1所示: 頁面走向12131242134物理塊1113322114物理塊222114433缺頁缺缺缺缺缺缺缺缺缺從上面的頁面置換圖可以看出,頁面引用的次數(shù)為11次,缺頁次數(shù)為9次,所以缺頁率為9/11。若采用后一種頁面淘汰策略,其頁面置換的情況為:表4-2頁面走向12131242134物理塊111311134物理塊22224222缺頁缺缺缺缺缺缺缺缺缺從上面
58、的頁面置換算法可以看出:頁面引用次數(shù)為11次,缺頁次數(shù)為8次,所以缺頁率為8/11。8表給出了某系統(tǒng)中的空閑分區(qū)表,系統(tǒng)采用可變分區(qū)存儲管理策略?,F(xiàn)有以下的作業(yè)序列:96k、20K、200K。若用首次適應(yīng)算法和最佳適應(yīng)算法來處理這些作業(yè)序列,試問哪一種算法可以滿足該作業(yè)序列的要求?為什么?表4-3分區(qū)號大小起始地址132k100k210k150k35k200k4218k220k596k530k【解答】首次適應(yīng)算法要求空閑分區(qū)按地址遞增的次序排列,在進(jìn)行內(nèi)存分配時,總是從空閑分區(qū)表首開始順序查找,直到找到第一個能滿足大小要求的空閑分區(qū)為止。然后再按作業(yè)大小,從該分區(qū)劃出一塊內(nèi)存空間分配給請求者。
59、余下的空閑分區(qū)仍然留在空閑分區(qū)表中。最佳適應(yīng)算法要求空閑分區(qū)按大小遞增的次序排列。在進(jìn)行內(nèi)存分配時,總是從空閑分區(qū)首開始順序查尋,直到找到第一個能滿足其大小 的空閑分區(qū)為止。如果該空閑分區(qū)大于作業(yè)的大小,則與首次適應(yīng)算法相同,將剩余空閑區(qū)仍留在空閑分區(qū)表中。表4-4若采用最佳適用算法,在申請96K存儲區(qū)時,選中的是5號分區(qū),5號分區(qū)大小與申請空間大小一致,應(yīng)從空閑分區(qū)表中刪去該表項;接著申請20K時,選中1號分區(qū),分配后2號分區(qū)還剩12K;最后申請200K,選中4號分區(qū),分配后剩18K。顯然采用最佳適應(yīng)算法進(jìn)行內(nèi)存分配,可以滿足該作業(yè)序列的需求。為作業(yè)序列分配了內(nèi)存空間后,空閑分區(qū)表如表4-4
60、所示。分區(qū)號大小起始地址112k100k210k150k35k200k418k220k表4-5分區(qū)號大小起始地址112k100k210k150k35k200k4122k220k596k530k9.在某系統(tǒng)中,采用固定分區(qū)分配管理方式中,內(nèi)存分區(qū)(單位字節(jié))情況如下圖所示?,F(xiàn)有大小為1k,9k,33K ,121k的多個作業(yè)要求進(jìn)入內(nèi)存,試畫出它們進(jìn)入內(nèi)存后的空間分配情況,并說明主存浪費多大?【解答】該題有四個分區(qū),第一分區(qū)大小為8k,第二分區(qū)大小為32k,第三分區(qū)大小為120k,第四分區(qū)大小為332k.該作業(yè)進(jìn)入系統(tǒng)后的內(nèi)存分配情況如下面的圖形所示。操作系統(tǒng)1k的作業(yè)9k的作業(yè)33k的作業(yè)121
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年小學(xué)班主任個人工作總結(jié)范文
- 出售鋼管配件合同范例
- 2024-2025學(xué)年河南省開封市高一上冊10月月考數(shù)學(xué)學(xué)情檢測試題
- 個人工資合同范例
- vip會員合同范例
- 農(nóng)業(yè)運輸雇工合同范例
- Unit 5 Lesson 2 The rhino and the egret2024-2025學(xué)年新教材七年級英語上冊同步教學(xué)設(shè)計(冀教版2024)河北專版
- 供電產(chǎn)品購銷合同范例
- 衛(wèi)浴材料供貨合同范例
- 出租大箱貨車合同范例
- 初中英語《Unit5-Do-you-remember-what-you-were-doing》教學(xué)課件設(shè)計
- 品德家庭小賬本
- 癥狀性大腦中動脈慢性閉塞血管內(nèi)開通治療課件
- 大象版科學(xué)四年級下冊第一單元測試卷(含答案)
- 蘇教版一年級數(shù)學(xué)下冊第二單元《認(rèn)識圖形(二)》教材分析(定稿)
- 小學(xué)班會課件-端午節(jié)主題班會(共19張PPT)通用版 PPT課件
- 約等于計算題100道乘除法
- 水泵站工程施工設(shè)計方案
- 新聞類文體的翻譯(課堂PPT)
- 員工年終述職報告工作總結(jié)PPT模板
- 現(xiàn)代寫作教程筆記
評論
0/150
提交評論