精選操作系統(tǒng)(宗大華版)課后習(xí)題答案_第1頁
精選操作系統(tǒng)(宗大華版)課后習(xí)題答案_第2頁
精選操作系統(tǒng)(宗大華版)課后習(xí)題答案_第3頁
精選操作系統(tǒng)(宗大華版)課后習(xí)題答案_第4頁
精選操作系統(tǒng)(宗大華版)課后習(xí)題答案_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精選操作系統(tǒng)(宗大華版)課后習(xí)題答案第1章操作系統(tǒng)概述二、選擇1.操作系統(tǒng)是一種B。A.通用軟件 B.系統(tǒng)軟件 C.應(yīng)用軟件 D.軟件包2.操作系統(tǒng)是對C進行管理的軟件。A系統(tǒng)軟件 B.系統(tǒng)硬件 C.計算機資源 D.應(yīng)用程序3.操作系統(tǒng)中采用多道程序設(shè)計技術(shù),以提高CPU和外部設(shè)備的A。A.利用率 B.可靠性 C.穩(wěn)定性 D.兼容性4.計算機系統(tǒng)中配置操作系統(tǒng)的目的是提高計算機的B和方便用戶使用。A.速度 B.利用率 C.靈活性 D.兼容性5.C操作系統(tǒng)允許多個用戶在其終端上同時交互地使用計算機。A.批處理 B.實時 C.分時 D.多道批處理6.如果分時系統(tǒng)的時間片一定,那么D,響應(yīng)時間越長。A.用戶數(shù)越少 B.內(nèi)存越少 C.內(nèi)存越多 D.用戶數(shù)越多三、問答1.什么是“多道程序設(shè)計〞技術(shù)?它對操作系統(tǒng)的形成起到什么作用?答:所謂“多道程序設(shè)計〞技術(shù),即是通過軟件的手段,允許在計算機內(nèi)存中同時存放幾道相互獨立的作業(yè)程序,讓它們對系統(tǒng)中的資源進行“共享〞和“競爭〞,以使系統(tǒng)中的各種資源盡可能地滿負荷工作,從而提高整個計算機系統(tǒng)的使用效率?;谶@種考慮,計算機科學(xué)家開始把CPU、存儲器、外部設(shè)備以及各種軟件都視為計算機系統(tǒng)的“資源〞,并逐步設(shè)計出一種軟件來管理這些資源,不僅使它們能夠得到合理地使用,而且還要高效地使用。具有這種功能的軟件就是“操作系統(tǒng)〞。所以,“多道程序設(shè)計〞的出現(xiàn),加快了操作系統(tǒng)的誕生。2.怎樣理解“虛擬機〞的概念?答:拿操作系統(tǒng)來說,它是在裸機上加載的第一層軟件,是對計算機硬件系統(tǒng)功能的首次擴充。從用戶的角度看,計算機配置了操作系統(tǒng)后,由于操作系統(tǒng)隱蔽了硬件的復(fù)雜細節(jié),用戶會感到機器使用起來更方便、容易了。這樣,通過操作系統(tǒng)的作用使展現(xiàn)在用戶面前的是一臺功能經(jīng)過擴展了的機器。這臺“機器〞不是硬件搭建成的,現(xiàn)實生活中并不存在具有這種功能的真實機器,它只是用戶的一種感覺而已。所以,就把這樣的機器稱為“虛擬機〞。3.對于分時系統(tǒng),怎樣理解“從宏觀上看,多個用戶同時工作,共享系統(tǒng)的資源;從微觀上看,各終端程序是輪流運行一個時間片〞?答:在分時系統(tǒng)中,系統(tǒng)把CPU時間劃分成許多時間片,每個終端用戶可以使用由一個時間片規(guī)定的CPU時間,多個用戶終端就輪流地使用CPU。這樣的效果是每個終端都開始了自己的工作,得到了及時的響應(yīng)。也就是說,“從宏觀上看,多個用戶同時工作,共享系統(tǒng)的資源〞。但實際上,CPU在每一時刻只為一個終端效勞,即“從微觀上看,各終端程序是輪流運行一個時間片〞。第2章習(xí)題解答一、填空1.進程在執(zhí)行過程中有3種根本狀態(tài),它們是運行態(tài)、就緒態(tài)和阻塞態(tài)。2.系統(tǒng)中一個進程由程序、數(shù)據(jù)集合和進程控制塊〔PCB〕三局部組成。3.在多道程序設(shè)計系統(tǒng)中,進程是一個動態(tài)概念,程序是一個靜態(tài)概念。4.在一個單CPU系統(tǒng)中,假設(shè)有5個用戶進程。假設(shè)當(dāng)前系統(tǒng)為用戶態(tài),那么處于就緒狀態(tài)的用戶進程最多有4個,最少有0個。注意,題目里給出的是假設(shè)當(dāng)前系統(tǒng)為用戶態(tài),這說明現(xiàn)在有一個進程處于運行狀態(tài),因此最多有4個進程處于就緒態(tài)。也可能除一個在運行外,其他4個都處于阻塞。這時,處于就緒的進程一個也沒有。5.總的來說,進程調(diào)度有兩種方式,即不可剝奪方式和剝奪方式。6.進程調(diào)度程序具體負責(zé)中央處理機〔CPU〕的分配。7.為了使系統(tǒng)的各種資源得到均衡使用,進行作業(yè)調(diào)度時,應(yīng)該注意CPU忙碌作業(yè)和I/O忙碌作業(yè)的搭配。8.所謂系統(tǒng)調(diào)用,就是用戶程序要調(diào)用操作系統(tǒng)提供的一些子功能。9.作業(yè)被系統(tǒng)接納后到運行完畢,一般還需要經(jīng)歷后備、運行和完成三個階段。10.假定一個系統(tǒng)中的所有作業(yè)同時到達,那么使作業(yè)平均周轉(zhuǎn)時間為最小的作業(yè)調(diào)度算法是短作業(yè)優(yōu)先調(diào)度算法。11.在引入線程的操作系統(tǒng)中,所謂“線程〞,是指進程中實施處理機調(diào)度和分配的根本單位。12.有了線程概念后,原來的進程就屬于是單線程的進程情形。二、選擇1.在進程管理中,當(dāng)C時,進程從阻塞狀態(tài)變?yōu)榫途w狀態(tài)。A.進程被調(diào)度程序選中 B.進程等待某一事件發(fā)生C.等待的事件出現(xiàn) D.時間片到2.在分時系統(tǒng)中,一個進程用完給它的時間片后,其狀態(tài)變?yōu)锳。A.就緒 B.等待 C.運行 D.由用戶設(shè)定3.下面對進程的描述中,錯誤的選項是D。A.進程是動態(tài)的概念 B.進程的執(zhí)行需要CPUC.進程具有生命周期 D.進程是指令的集合4.操作系統(tǒng)通過B對進程進行管理。A.JCB B.PCB C.DCT D.FCB5.一個進程被喚醒,意味著該進程D。A.重新占有CPU B.優(yōu)先級變?yōu)樽畲?C.移至等待隊列之首 D.變?yōu)榫途w狀態(tài)6.由各作業(yè)JCB形成的隊列稱為C。A.就緒作業(yè)隊列 B.阻塞作業(yè)隊列 C.后備作業(yè)隊列 D.運行作業(yè)隊列7.既考慮作業(yè)等待時間,又考慮作業(yè)執(zhí)行時間的作業(yè)調(diào)度算法是A。A.響應(yīng)比高者優(yōu)先 B.短作業(yè)優(yōu)先 C.優(yōu)先級調(diào)度 D.先來先效勞8.作業(yè)調(diào)度程序從處于D狀態(tài)的隊列中選取適當(dāng)?shù)淖鳂I(yè)投入運行。A.就緒 B.提交 C.等待 D.后備9.A是指從作業(yè)提交系統(tǒng)到作業(yè)完成的時間間隔。A.周轉(zhuǎn)時間 B.響應(yīng)時間 C.等待時間 D.運行時間10.計算機系統(tǒng)在執(zhí)行C時,會自動從目態(tài)變換到管態(tài)。A.P操作 B.V操作 C.系統(tǒng)調(diào)用 D.I/O指令11.進程狀態(tài)由就緒變?yōu)檫\行,是由于C引起的。 A.中斷事件 B.進程狀態(tài)變遷 C.進程調(diào)度 D.為作業(yè)創(chuàng)立進程三、問答1.在多道程序設(shè)計系統(tǒng)中,如何理解“內(nèi)存中的多個程序的執(zhí)行過程交織在一起,大家都在走走停停〞這樣一個現(xiàn)象?答:在多道程序設(shè)計系統(tǒng)中,內(nèi)存中存放多個程序,它們以交替的方式使用CPU。因此,從宏觀上看,這些程序都開始了自己的工作。但由于CPU只有一個,在任何時刻CPU只能執(zhí)行一個進程程序。所以這些進程程序的執(zhí)行過程是交織在一起的。也就是說,從微觀上看,每一個進程一會兒在向前走,一會兒又停步不前,處于一種“走走停停〞的狀態(tài)之中。2.什么是“原語〞、“特權(quán)指令〞、“系統(tǒng)調(diào)用命令〞和“訪管指令〞?它們之間有無一定的聯(lián)系?答:特權(quán)指令和訪管指令都是CPU指令系統(tǒng)中的指令,只是前者是一些只能在管態(tài)下執(zhí)行的指令,后者是一條只能在目態(tài)下執(zhí)行的指令。原語和系統(tǒng)調(diào)用命令都是操作系統(tǒng)中的功能程序,只是前者執(zhí)行時不能被其他程序所打斷,后者沒有這個要求。操作系統(tǒng)中有些系統(tǒng)調(diào)用命令是以原語的形式出現(xiàn)的,例如創(chuàng)立進程就是一條原語式的系統(tǒng)調(diào)用命令。但并不是所有系統(tǒng)調(diào)用命令都是原語。因為如果那樣的話,整個系統(tǒng)的并發(fā)性就不可能得到充分地發(fā)揮。3.操作系統(tǒng)是如何處理源程序中出現(xiàn)的系統(tǒng)調(diào)用命令的?答:編譯程序總是把源程序中的系統(tǒng)調(diào)用命令改寫成為一條訪管指令和相應(yīng)的參數(shù)。這樣在程序?qū)嶋H被執(zhí)行時,就通過訪管指令進入操作系統(tǒng),到達調(diào)用操作系統(tǒng)功能子程序的目的。4.系統(tǒng)調(diào)用與一般的過程調(diào)用有什么區(qū)別?答:系統(tǒng)調(diào)用是指在用戶程序中調(diào)用操作系統(tǒng)提供的功能子程序;一般的過程調(diào)用是指在一個程序中調(diào)用另一個程序。因此它們之間有如下三點區(qū)別?!?〕一般的過程調(diào)用,調(diào)用者與被調(diào)用者都運行在相同的CPU狀態(tài),即或都處于目態(tài)〔用戶程序調(diào)用用戶程序〕,或都處于管態(tài)〔系統(tǒng)程序調(diào)用系統(tǒng)程序〕;但發(fā)生系統(tǒng)調(diào)用時,發(fā)出調(diào)用命令的調(diào)用者運行在目態(tài),而被調(diào)用的對象那么運行在管態(tài),即調(diào)用者與被調(diào)用者運行在不同的CPU狀態(tài)。〔2〕一般的過程調(diào)用,是直接通過轉(zhuǎn)移指令轉(zhuǎn)向被調(diào)用的程序;但發(fā)生系統(tǒng)調(diào)用時,只能通過訪管指令提供的一個統(tǒng)一的入口,由目態(tài)進入管態(tài),經(jīng)分析后,才轉(zhuǎn)向相應(yīng)的操作系統(tǒng)命令處理程序?!?〕一般的過程調(diào)用,在被調(diào)用者執(zhí)行完后,就徑直返回斷點繼續(xù)執(zhí)行;但系統(tǒng)調(diào)用可能會導(dǎo)致進程狀態(tài)的變化,從而引起系統(tǒng)重新分配處理機。因此,系統(tǒng)調(diào)用處理結(jié)束后,不一定是返回調(diào)用者斷點處繼續(xù)執(zhí)行。5.試述創(chuàng)立進程原語的主要功能。答:創(chuàng)立進程原語的主要功能有以下三項?!?〕為新建進程申請一個PCB。〔2〕將創(chuàng)立者〔即父進程〕提供的新建進程的信息填入PCB中。〔3〕將新建進程設(shè)置為就緒狀態(tài),并按照所采用的調(diào)度算法,把PCB排入就緒隊列中。6.處于阻塞狀態(tài)的一個進程,它所等待的事件發(fā)生時,就把它的狀態(tài)由阻塞改變?yōu)榫途w,讓它到就緒隊列里排隊,為什么不直接將它投入運行呢?答:只要是涉及管理,就應(yīng)該有管理的規(guī)那么,沒有規(guī)那么就不成方圓。如果處于阻塞狀態(tài)的一個進程,在它所等待的事件發(fā)生時就徑直將它投入運行〔也就是把CPU從當(dāng)前運行進程的手中搶奪過來〕,那么系統(tǒng)就無法控制對CPU這種資源的管理和使用,進而也就失去了設(shè)置操作系統(tǒng)的作用。所以,阻塞狀態(tài)的進程在它所等待的事件發(fā)生時,必須先進入就緒隊列,然后再去考慮它使用CPU的問題。7.作業(yè)調(diào)度與進程調(diào)度有什么區(qū)別?答:作業(yè)調(diào)度和進程調(diào)度〔即CPU調(diào)度〕都涉及到CPU的分配。但作業(yè)調(diào)度只是選擇參加CPU競爭的作業(yè),它并不具體分配CPU。而進程調(diào)度是在作業(yè)調(diào)度完成選擇后的根底上,把CPU真正分配給某一個具體的進程使用。8.系統(tǒng)中的各種進程隊列都是由進程的PCB鏈接而成的。當(dāng)一個進程的狀態(tài)從阻塞變?yōu)榫途w狀態(tài)時,它的PCB從哪個隊列移到哪個隊列?它所對應(yīng)的程序也要跟著移來移去嗎?為什么?答:當(dāng)一個進程的狀態(tài)從阻塞變?yōu)榫途w時,它的PCB就從原先在的阻塞隊列移到就緒隊列里。在把進程的PCB從這個隊列移到另一個隊列時,只是移動進程的PCB,進程所對應(yīng)的程序是不動的。這是因為在進程的PCB里,總是記錄有它的程序的斷點信息。知道了斷點的信息,就能夠知道程序當(dāng)前應(yīng)該從哪里開始往下執(zhí)行了。這正是保護現(xiàn)場所起的作用。9.為什么說響應(yīng)比高者優(yōu)先作業(yè)調(diào)度算法是對先來先效勞以及短作業(yè)優(yōu)先這兩種調(diào)度算法的折中?答: 先來先效勞的作業(yè)調(diào)度算法,重點考慮的是作業(yè)在后備作業(yè)隊列里的等待時間,因此對短作業(yè)不利;短作業(yè)優(yōu)先的作業(yè)調(diào)度算法,重點考慮的是作業(yè)所需的CPU時間〔當(dāng)然,這個時間是用戶自己估計的〕,因此對長作業(yè)不利。“響應(yīng)比高者優(yōu)先〞作業(yè)調(diào)度算法,總是在需要調(diào)度時,考慮作業(yè)已經(jīng)等待的時間和所需運行時間之比,即:該作業(yè)已等待時間/該作業(yè)所需CPU時間不難看出,這個比值的分母是一個不變的量。隨著時間的推移,一個作業(yè)的“已等待時間〞會不斷發(fā)生變化,也就是分子在不斷地變化。顯然,短作業(yè)比擬容易獲得較高的響應(yīng)比。這是因為它的分母較小,只要稍加等待,整個比值就會很快上升。另一方面,長作業(yè)的分母雖然很大,但隨著它等待時間的增加,比值也會逐漸上升,從而獲得較高的響應(yīng)比。根據(jù)這種分析,可見“響應(yīng)比高者優(yōu)先〞的作業(yè)調(diào)度算法,既照顧到了短作業(yè)的利益,也照顧到了長作業(yè)的利益,是對先來先效勞以及短作業(yè)優(yōu)先這兩種調(diào)度算法的一種折中。10.短作業(yè)優(yōu)先調(diào)度算法總能得到最小的平均周轉(zhuǎn)時間嗎?為什么?答:短作業(yè)優(yōu)先調(diào)度算法只有在所有作業(yè)同時到達后備作業(yè)隊列時,才能得到最小的平均周轉(zhuǎn)時間。如果各作業(yè)不是同時到達,這個結(jié)論是不成立的。可以用反例說明,例如,教材上舉有如下例子:考慮有5個作業(yè)A到E,運行時間分別是2、4、1、1、1;到達時間分別是0、0、3、3、3。按照短作業(yè)優(yōu)先的原那么,最初只有A和B可以參與選擇,因為其他3個還沒有到達。于是,運行順序應(yīng)該是A、B、C、D、E。它們每個的周轉(zhuǎn)時間分別是2、6、4、5、6,平均周轉(zhuǎn)時間是4.6。但如果按照順序B、C、D、E、A來調(diào)度,它們每一個的周轉(zhuǎn)時間成為9、4、2、3、4,平均周轉(zhuǎn)時間是4.4。結(jié)果比短作業(yè)優(yōu)先調(diào)度算法好。之所以會這樣,就是因為這5個作業(yè)并沒有同時到達。四、計算1.有三個作業(yè):作業(yè)到達時間所需CPU時間10.0820.4431.01分別采用先來先效勞和短作業(yè)優(yōu)先作業(yè)調(diào)度算法。試問它們的平均周轉(zhuǎn)時間各是什么?你是否還可以給出一種更好的調(diào)度算法,使其平均周轉(zhuǎn)時間優(yōu)于這兩種調(diào)度算法?解:〔1〕采用先來先效勞作業(yè)調(diào)度算法時的實施過程如下。作業(yè)到達時間所需CPU時間開始時間完成時間周轉(zhuǎn)時間10.080.08.08.020.448.012.011.631.0112.013.012.0這時,作業(yè)的調(diào)度順序是1→2→3。其平均周轉(zhuǎn)時間為:〔8+11.6+12〕/3=10.53〔2〕采用短作業(yè)優(yōu)先作業(yè)調(diào)度算法時的實施過程如下。作業(yè)到達時間所需CPU時間開始時間完成時間周轉(zhuǎn)時間10.080.08.08.031.018.09.08.020.449.013.012.6這里要注意,在作業(yè)1運行完畢進行作業(yè)調(diào)度時,作業(yè)2和3都已經(jīng)到達。由于是實行短作業(yè)優(yōu)先作業(yè)調(diào)度算法,因此先調(diào)度作業(yè)3運行,最后調(diào)度作業(yè)2運行。所以,這時的作業(yè)調(diào)度順序是1→3→2。其平均周轉(zhuǎn)時間為:〔8+8+12.6〕/3=9.53〔3〕還可以有更好的作業(yè)調(diào)度算法,使其平均周轉(zhuǎn)時間優(yōu)于這兩種調(diào)度算法。例如,如果知道在作業(yè)1后面會來兩個短作業(yè),那么作業(yè)1到達后,先不投入運行。而是等所有作業(yè)到齊后,再按照短作業(yè)優(yōu)先作業(yè)調(diào)度算法進行調(diào)度,具體實施過程如下。作業(yè)到達時間所需CPU時間開始時間完成時間周轉(zhuǎn)時間31.011.02.01.020.442.06.05.610.086.014.014.0這時的作業(yè)調(diào)度順序是3→2→1。其平均周轉(zhuǎn)時間為:〔1+5.6+14〕/3=6.872.設(shè)有一組作業(yè),它們的到達時間和所需CPU時間如下所示。作業(yè)號到達時間所需CPU時間19:0070分鐘29:4030分鐘39:5010分鐘410:105分鐘分別采用先來先效勞和短作業(yè)優(yōu)先作業(yè)調(diào)度算法。試問它們的調(diào)度順序、作業(yè)周轉(zhuǎn)時間以及平均周轉(zhuǎn)時間各是什么?解:〔1〕采用先來先效勞作業(yè)調(diào)度算法時的實施過程如下。作業(yè)號到達時間所需CPU時間開始時間完成時間周轉(zhuǎn)時間19:0070分鐘9:0010:1070分鐘29:4030分鐘10:1010:4060分鐘39:5010分鐘10:4010:5060分鐘410:105分鐘10:5010:5545分鐘這時,作業(yè)的調(diào)度順序是1→2→3→4。其平均周轉(zhuǎn)時間為:〔70+60+60+45〕/4=58.75〔2〕采用短作業(yè)優(yōu)先作業(yè)調(diào)度算法時的實施過程如下。作業(yè)號到達時間所需CPU時間開始時間完成時間周轉(zhuǎn)時間19:0070分鐘9:0010:1070分鐘410:105分鐘10:1010:155分鐘39:5010分鐘10:1510:2535分鐘29:4030分鐘10:2510:5575分鐘這時,作業(yè)的調(diào)度順序是1→4→3→2。其平均周轉(zhuǎn)時間為:〔70+5+35+75〕/4=46.253.某系統(tǒng)有三個作業(yè):作業(yè)號到達時間所需CPU時間18.81.529.00.439.51.0系統(tǒng)確定在它們?nèi)康竭_后,開始采用響應(yīng)比高者優(yōu)先調(diào)度算法,并忽略系統(tǒng)調(diào)度時間。試問對它們的調(diào)度順序是什么?各自的周轉(zhuǎn)時間是多少?解:三個作業(yè)是在9.5時全部到達的。這時它們各自的響應(yīng)比方下:作業(yè)1的響應(yīng)比=〔9.5–8.8〕/1.5=0.46作業(yè)2的響應(yīng)比=〔9.5–9.0〕/0.4=1.25作業(yè)3的響應(yīng)比=〔9.5–9.5〕/1.0=0因此,最先應(yīng)該調(diào)度作業(yè)2運行,因為它的響應(yīng)比最高。它運行了0.4后完成,這時的時間是9.9。再計算作業(yè)1和3此時的響應(yīng)比:作業(yè)1的響應(yīng)比=〔9.9–8.8〕/1.5=0.73作業(yè)3的響應(yīng)比=〔9.9–9.5〕/1.0=0.40因此,第二個應(yīng)該調(diào)度作業(yè)1運行,因為它的響應(yīng)比最高。它運行了1.5后完成,這時的時間是11.4。第三個調(diào)度的是作業(yè)3,它運行了1.0后完成,這時的時間是12.4。整個實施過程如下。作業(yè)號到達時間所需CPU時間開始時間完成時間周轉(zhuǎn)時間29.00.911.42.639.51.011.412.42.9作業(yè)的調(diào)度順序是2→1→3。各自的周轉(zhuǎn)時間為:作業(yè)1為0.9;作業(yè)2為2.6;作業(yè)3為2.9。第3章〔大本〕習(xí)題解答一、填空1.將作業(yè)相對地址空間的相對地址轉(zhuǎn)換成內(nèi)存中的絕對地址的過程稱為地址重定位。2.使用覆蓋與對換技術(shù)的主要目的是提高內(nèi)存的利用率。3.存儲管理中,對存儲空間的浪費是以內(nèi)部碎片和外部碎片兩種形式表現(xiàn)出來的。4.地址重定位可分為靜態(tài)重定位和動態(tài)重定位兩種。5.在可變分區(qū)存儲管理中采用最正確適應(yīng)算法時,最好按尺寸法來組織空閑分區(qū)鏈表。6.在分頁式存儲管理的頁表里,主要應(yīng)該包含頁號和塊號兩個信息。7.靜態(tài)重定位在程序裝入時進行,動態(tài)重定位在程序執(zhí)行時進行。8.在分頁式存儲管理中,如果頁面置換算法選擇不當(dāng),那么會使系統(tǒng)出現(xiàn)抖動現(xiàn)象。9.在請求分頁式存儲管理中采用先進先出〔FIFO〕頁面淘汰算法時,增加分配給作業(yè)的塊數(shù)時,缺頁中斷的次數(shù)有可能會增加。10.在請求分頁式存儲管理中,頁面淘汰是由于缺頁引起的。11.在段頁式存儲管理中,每個用戶作業(yè)有一個段表,每段都有一個頁表。二、選擇1.虛擬存儲器的最大容量是由B決定的。A.內(nèi)、外存容量之和 B.計算機系統(tǒng)的地址結(jié)構(gòu) C.作業(yè)的相對地址空間 D.作業(yè)的絕對地址空間2.采用先進先出頁面淘汰算法的系統(tǒng)中,一進程在內(nèi)存占3塊〔開始為空〕,頁面訪問序列為1、2、3、4、1、2、5、1、2、3、4、5、6。運行時會產(chǎn)生D次缺頁中斷。A.7 B.8 C.9 D.10從圖3-1中的“缺頁計數(shù)〞欄里可以看出應(yīng)該選擇D。圖3-1選擇題2配圖3.系統(tǒng)出現(xiàn)“抖動〞現(xiàn)象的主要原因是由于A引起的。A.置換算法選擇不當(dāng) B.交換的信息量太大C.內(nèi)存容量缺乏 D.采用頁式存儲管理策略4.實現(xiàn)虛擬存儲器的目的是D。A.進行存儲保護 B.允許程序浮動C.允許程序移動 D.?dāng)U充主存容量5.作業(yè)在執(zhí)行中發(fā)生了缺頁中斷,那么經(jīng)中斷處理后,應(yīng)返回執(zhí)行B指令。A.被中斷的前一條 B.被中斷的那條 C.被中斷的后一條 D.程序第一條6.在實行分頁式存儲管理系統(tǒng)中,分頁是由D完成的。A.程序員 B.用戶 C.操作員 D.系統(tǒng)7.下面的A頁面淘汰算法有時會產(chǎn)生異常現(xiàn)象。A.先進先出 B.最近最少使用 C.最不經(jīng)常使用 D.最正確8.在一個分頁式存儲管理系統(tǒng)中,頁表的內(nèi)容為:頁號塊號021127頁號塊號021127A.8192 B.4096 C.2048 D.1024注意,相對地址0肯定是第0頁的第0個字節(jié)。查頁表可知第0頁存放在內(nèi)存的第2塊?,F(xiàn)在塊的尺寸是4KB,因此第2塊的起始地址為8192。故相對地址0所對應(yīng)的絕對地址〔即物理地址〕是8192。9.下面所列的存儲管理方案中,A實行的不是動態(tài)重定位。A.固定分區(qū) B.可變分區(qū) C.分頁式 D.請求分頁式10.在下面所列的諸因素中,不對缺頁中斷次數(shù)產(chǎn)生影響的是C。A.內(nèi)存分塊的尺寸 B.程序編制的質(zhì)量C.作業(yè)等待的時間 D.分配給作業(yè)的內(nèi)存塊數(shù)11.采用分段式存儲管理的系統(tǒng)中,假設(shè)地址用24位表示,其中8位表示段號,那么允許每段的最大長度是B。A.224 B.216 C.28 D.232三、問答1.什么是內(nèi)部碎片?什么是外部碎片?各種存儲管理中都可能產(chǎn)生何種碎片?答:所謂“內(nèi)部碎片〞,是指系統(tǒng)已經(jīng)分配給用戶使用、用戶自己沒有用到的那局部存儲空間;所謂“外部碎片〞,是指系統(tǒng)無法把它分配出去供用戶使用的那局部存儲空間。對于教材而言,單一連續(xù)區(qū)存儲管理、固定分區(qū)存儲管理、分頁式存儲管理和請求頁式存儲管理都會出現(xiàn)內(nèi)部碎片。只是前兩種存儲管理造成的內(nèi)部碎片比擬大,浪費較為嚴重;后兩種頁式存儲管理,平均來說每個作業(yè)都會出現(xiàn)半頁的內(nèi)部碎片。教材中,只有可變分區(qū)存儲管理會產(chǎn)生外部碎片。2.表達靜態(tài)重定位與動態(tài)重定位的區(qū)別。答:靜態(tài)重定位是一種通過軟件來完成的地址重定位技術(shù)。它在程序裝入內(nèi)存時,完成對程序指令中地址的調(diào)整。因此,程序經(jīng)過靜態(tài)重定位以后,在內(nèi)存中就不能移動了。如果要移動,就必須重新進行地址重定位。3.一個虛擬地址結(jié)構(gòu)用24個二進制位表示。其中12個二進制位表示頁面尺寸。試問這種虛擬地址空間總共多少頁?每頁的尺寸是多少?答:如以下圖所示,由于虛擬地址中是用12個二進制位表示頁面尺寸〔即頁內(nèi)位移〕,所以虛擬地址空間中表示頁號的也是12個二進制位。這樣,這種虛擬地址空間總共有:212=4096〔頁〕每頁的尺寸是:212=4096=4K〔字節(jié)〕4.什么叫虛擬存儲器?怎樣確定虛擬存儲器的容量?答:虛擬存儲器實際是一種存儲擴充技術(shù)。它把作業(yè)程序存放在輔助存儲器里,運行時只裝入程序的一局部。遇到不在內(nèi)存的程序時,再把所需要的局部裝入。這樣在內(nèi)存和輔存之間調(diào)入、調(diào)出的做法,使用戶的作業(yè)地址空間無需顧及內(nèi)存的大小。給用戶造成的印象是,無論程序有多大,它在這個系統(tǒng)上都可以運行。這種以輔助存儲器作為后援的虛幻存儲器,就稱為虛擬存儲器。虛擬存儲器的大小是由系統(tǒng)的地址結(jié)構(gòu)確定的。5.為什么請求分頁式存儲管理能夠向用戶提供虛擬存儲器?答:請求分頁式存儲管理的根本思想是:操作系統(tǒng)按照存儲塊的尺寸,把用戶作業(yè)地址空間劃分成頁,全部存放在磁盤上。作業(yè)運行時,只先裝入假設(shè)干頁。運行過程中遇到不在內(nèi)存的頁時,操作系統(tǒng)就把它從磁盤調(diào)入內(nèi)存。這樣一來,用戶的作業(yè)地址空間無需顧及內(nèi)存的大小。這與虛擬存儲器的思想是完全吻合的。所以,請求分頁式存儲管理能夠向用戶提供虛擬存儲器。6.在請求分頁式存儲管理中,為什么既有頁表,又有快表?答:在分頁式或請求頁式存儲管理中,通常是利用內(nèi)存儲器構(gòu)成頁表的。當(dāng)CPU執(zhí)行到某條指令、要對內(nèi)存中的某一地址訪問時,因為這個地址是相對地址,所以先要根據(jù)這個地址所在的頁號去查頁表〔訪問一次內(nèi)存〕,然后才能由所形成的絕對地址去真正執(zhí)行指令〔第二次訪問內(nèi)存〕??梢?,由于頁表在內(nèi)存,降低了CPU的訪問速度。為了提高相對地址到絕對地址的變換速度,人們想到用一組快速存放器來代替頁表。這時查頁表是以并行的方式進行,立即就能輸出與該頁號匹配的塊號,這樣做無疑比內(nèi)存式的頁表要快得多。但是,快速存放器的價格昂貴,由它來組成整個頁表是不可取的??紤]到程序運行時具有局部性,因此實際系統(tǒng)中總是一方面采用內(nèi)存頁表、另一方面用極少幾個快速存放器組成快表來共同完成地址的變換工作。這時的地址變換過程,如教材中的圖3-22所示。7.試述缺頁中斷與頁面淘汰之間的關(guān)系。答:在請求頁式存儲管理中,當(dāng)根據(jù)虛擬地址查頁表而發(fā)現(xiàn)所要訪問的頁不在內(nèi)存時,就會產(chǎn)生缺頁中斷。系統(tǒng)響應(yīng)中斷后,就由操作系統(tǒng)到輔存把所需要的頁讀入內(nèi)存。這時,內(nèi)存可能有空閑的塊,也可能沒有。只有當(dāng)內(nèi)存中沒有空閑塊時,才會出現(xiàn)將內(nèi)存現(xiàn)有頁面淘汰出去的問題,即要進行頁面淘汰。所以,缺頁中斷和頁面淘汰之間的關(guān)系是:頁面淘汰一定是由缺頁中斷所引起;但缺頁中斷那么不一定引起頁面淘汰。8.試述缺頁中斷與一般中斷的區(qū)別。答:在計算機系統(tǒng)中,由于某些事件的出現(xiàn),打斷了當(dāng)前程序的運行,而使CPU去處理出現(xiàn)的事件,這稱為“中斷〞。通常,計算機的硬件結(jié)構(gòu)都是在執(zhí)行完一條指令后,去檢查有無中斷事件發(fā)生的。如果有,那么就暫停當(dāng)前程序的運行,而讓CPU去執(zhí)行操作系統(tǒng)的中斷處理程序,這叫“中斷響應(yīng)〞。CPU在處理完中斷后,如果不需要對CPU重新進行分配,那么就返回被中斷進程的程序繼續(xù)運行;如果需要進行CPU的重新分配,那么操作系統(tǒng)就會去調(diào)度新進程。由上面的講述可以看出,缺頁中斷與一般中斷的區(qū)別如下。〔1〕兩種中斷產(chǎn)生的時刻不同:缺頁中斷是在執(zhí)行一條指令中間時產(chǎn)生的中斷,并立即轉(zhuǎn)去處理;而一般中斷那么是在一條指令執(zhí)行完畢后,當(dāng)硬件中斷裝置發(fā)現(xiàn)有中斷請求時才去響應(yīng)和處理?!?〕處理完畢后的歸屬不同:缺頁中斷處理完后,仍返回到原指令去重新執(zhí)行,因為那條指令并未執(zhí)行;而一般中斷那么是或返回到被中斷進程的下一條指令去執(zhí)行,因為上一條指令已經(jīng)執(zhí)行完了,或重新調(diào)度,去執(zhí)行別的進程程序。9.怎樣理解把相對地址劃分成數(shù)對:〔頁號,頁內(nèi)位移〕的過程對于用戶是“透明〞的?答:在操作系統(tǒng)中,所謂“透明〞,即指用戶不知道的意思。對于分頁式存儲管理來說,用戶向系統(tǒng)提供的相對地址空間,是一個一維的連續(xù)空間。系統(tǒng)接受了這個作業(yè)后,在內(nèi)部把這個相對地址空間劃分成假設(shè)干頁。由于這種劃分對于用戶來說是根本不知道的,所以說把相對地址劃分成數(shù)對:〔頁號,頁內(nèi)位移〕的過程對于用戶是“透明〞的。圖3-2各種存儲管理策略的適用場合圖3-2各種存儲管理策略的適用場合答:教材共介紹了5種存儲管理策略,它們適用于不同的場合,如圖3-2所示。圖中,在單一連續(xù)分區(qū)存儲管理與固定分區(qū)存儲管理之間畫了一條線,那說明位于線以上的存儲管理策略只適用于單道程序設(shè)計,以下的適用于多道程序設(shè)計;在可變分區(qū)存儲管理與分頁式存儲管理之間畫了一條線,那說明位于線以上的存儲管理策略都要求為進入內(nèi)存的作業(yè)分配一個連續(xù)的存儲區(qū),以下的存儲管理策略打破了連續(xù)性的要求;在分頁式存儲管理與請求頁式存儲管理之間畫了一條線,那說明位于線以上的存儲管理策略都要求使作業(yè)程序全部進入內(nèi)存,而以下的存儲管理策略打破了全部的要求,只要局部裝入內(nèi)存就可以了。由此可見,每一種存儲管理的出現(xiàn),都是在原有存儲管理根底上的一次開展和提高。它們從簡單到復(fù)雜,從不完善到逐漸完善。11.試述分頁式系統(tǒng)與分段式系統(tǒng)的主要區(qū)別。答:從形式上看,分頁式系統(tǒng)與分段式系統(tǒng)有許多相似之處,比方兩者都不要求作業(yè)在內(nèi)存中連續(xù)存放。但在概念上,兩者卻完全不同。主要表現(xiàn)在以下幾個方面?!?〕把用戶作業(yè)進行分頁,是系統(tǒng)的一種行為,對用戶是透明的。所以,頁是信息的物理單位。分段是為了滿足用戶的需要,每段在邏輯上都有完整的意義,因此是信息的邏輯單位。〔2〕頁的大小固定,且由系統(tǒng)決定。將邏輯地址劃分成數(shù)對〔頁號,頁內(nèi)位移〕,是由機器硬件實現(xiàn)的。段的長度不固定,取決于用戶所編寫的程序結(jié)構(gòu),通常由編譯程序在對源程序進行編譯時根據(jù)信息的性質(zhì)來劃分?!?〕分頁時,作業(yè)的地址空間是一維的;分段時,作業(yè)的地址空間是二維的。四、計算1.在可變分區(qū)存儲管理中,按地址法組織當(dāng)前的空閑分區(qū),其大小分別為:10KB,4KB,20KB,18KB,7KB,9KB,12KB和15KB?,F(xiàn)在依次有3個存儲請求為:12KB,10KB,9KB。試問使用最先適應(yīng)算法時的分配情形如何?那么最正確適應(yīng)、最壞適應(yīng)呢?解:我們用表來說明實行各種分配算法時的情形。〔1〕最先適應(yīng)算法請求隊列最先適應(yīng)算法初始10K4K20K18K7K9K12K15K12K10K4K8K18K7K9K12K15K10K04K8K18K7K9K12K15K9K04K8K9K7K9K12K15K〔2〕最正確適應(yīng)算法請求隊列最正確適應(yīng)算法初始10K4K20K18K7K9K12K15K12K10K4K20K18K7K9K015K10K04K20K18K7K9K015K9K04K20K18K7K0015K〔3〕最壞適應(yīng)算法請求隊列最壞適應(yīng)算法初始10K4K20K18K7K9K12K15K12K10K4K8K18K7K9K12K15K10K10K4K8K8K7K9K12K15K9K10K4K8K8K7K9K12K6K可見,分配算法不同,選擇的分配對象也不一樣。2.系統(tǒng)內(nèi)存被劃分成8塊,每塊4KB。某作業(yè)的虛擬地址空間共劃分成16個頁面。當(dāng)前在內(nèi)存的頁與內(nèi)存塊的對應(yīng)關(guān)系如下表所示,未列出的頁表示不在內(nèi)存。頁號塊號頁號塊號02441153269530117試指出對應(yīng)于以下虛擬地址的絕對地址:〔a〕20 〔b〕4100 〔c〕8300解:〔a〕虛擬地址20對應(yīng)的頁號是0,頁內(nèi)位移是20。用0去查頁表,知道第0頁現(xiàn)在存放在內(nèi)存的第2塊。由于每塊的長度是4KB,所以第2塊的起始地址為8192。因此,虛擬地址20所對應(yīng)的絕對地址是:8192+20=8212〔b〕虛擬地址4100對應(yīng)的頁號是:4100/4096=1〔“/〞是整除運算符〕對應(yīng)的頁內(nèi)位移是:4100%4096=4〔“%〞是求余運算符〕用1去查頁表,知道第1頁現(xiàn)在存放在內(nèi)存的第1塊。第1塊的起始地址為4096。因此,虛擬地址4100所對應(yīng)的絕對地址是:4096+4=4100〔c〕虛擬地址8300對應(yīng)的頁號是:8300/4096=2〔“/〞是整除運算符〕對應(yīng)的頁內(nèi)位移是:8300%4096=108〔“%〞是求余運算符〕用2去查頁表,知道第2頁現(xiàn)在存放在內(nèi)存的第6塊。第6塊的起始地址為6×4K=24576因此,虛擬地址8300所對應(yīng)的絕對地址是24576+108=246843.某請求分頁式存儲管理系統(tǒng),接收一個共7頁的作業(yè)。作業(yè)運行時的頁面走向如下:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6假設(shè)采用最近最久未用〔LRU〕頁面淘汰算法,作業(yè)在得到2塊和4塊內(nèi)存空間時,各會產(chǎn)生出多少次缺頁中斷?如果采用先進先出〔FIFO〕頁面淘汰算法時,結(jié)果又如何?解:〔1〕采用最近最久未用〔LRU〕頁面淘汰算法,作業(yè)在得到2塊內(nèi)存空間時所產(chǎn)生的缺頁中斷次數(shù)為18次,如圖3-3〔a〕所示;在得到4塊內(nèi)存空間時所產(chǎn)生的缺頁中斷次數(shù)為10次,如圖3-3〔b〕所示。圖3-3LRU時的情形〔2〕采用先進先出〔FIFO〕頁面淘汰算法,作業(yè)在得到2塊內(nèi)存空間時所產(chǎn)生的缺頁中斷次數(shù)為18次,如圖3-4〔a〕所示;在得到4塊內(nèi)存空間時所產(chǎn)生的缺頁中斷次數(shù)為14次,如圖3-4〔b〕所示。圖3-4FIFO時的情形關(guān)于先進先出〔FIFO〕頁面淘汰算法,在給予作業(yè)更多的內(nèi)存塊時,缺頁中斷次數(shù)有可能上升,這是所謂的異常現(xiàn)象。但要注意,并不是在任何情況下都會出現(xiàn)異常。是否出現(xiàn)異常,取決于頁面的走向。此題所給的頁面走向,在FIFO頁面淘汰算法下,并沒有引起異常:2塊時缺頁中斷次數(shù)為18次,4塊時缺頁中斷次數(shù)為14次。4.在一個分段式存儲管理中,有段表如下:段號段長基址02105001235020210090313505904193895試求邏輯地址[0,430]、[1,10]、[2,500]、[3,400]、[4,112]、[5,32]所對應(yīng)的物理地址。 解:〔1〕邏輯地址[0,430]的物理地址是210+430=640; 〔2〕邏輯地址[1,10]的物理地址是2350+10=2360; 〔3〕由于第2段的基址是100,段長是90,所以邏輯地址[2,500]為非法; 〔4〕邏輯地址[3,400]的物理地址是1350+400=1750; 〔5〕由于第4段的基址是1938,段長是95,所以邏輯地址[4,112]為非法; 〔6〕由于該作業(yè)不存在第5段,所以邏輯地址[5,32]為非法。第4章習(xí)題解答一、填空1.磁帶、磁盤這樣的存儲設(shè)備都是以塊為單位與內(nèi)存進行信息交換的。2.根據(jù)用戶作業(yè)發(fā)出的磁盤I/O請求的柱面位置,來決定請求執(zhí)行順序的調(diào)度,被稱為移臂調(diào)度。3.DMA控制器在獲得總線控制權(quán)的情況下能直接與內(nèi)存儲器進行數(shù)據(jù)交換,無需CPU介入。4.在DMA方式下,設(shè)備與內(nèi)存儲器之間進行的是成批數(shù)據(jù)傳輸。5.通道程序是由通道執(zhí)行的。6.通道是一個獨立與CPU的、專門用來管理輸入/輸出操作的處理機。7.緩沖的實現(xiàn)有兩種方法:一種是采用專門硬件存放器的硬件緩沖,一種是在內(nèi)存儲器里開辟一個區(qū)域,作為專用的I/O緩沖區(qū),稱為軟件緩沖。8.設(shè)備管理中使用的數(shù)據(jù)結(jié)構(gòu)有系統(tǒng)設(shè)備表〔SDT〕和設(shè)備控制塊〔DCB〕。9.基于設(shè)備的分配特性,可以把系統(tǒng)中的設(shè)備分為獨享、共享和虛擬三種類型。10.引起中斷發(fā)生的事件稱為中斷源。 二、選擇1.在對磁盤進行讀/寫操作時,下面給出的參數(shù)中,C是不正確的。A. 柱面號 B.磁頭號 C.盤面號 D.扇區(qū)號2.在設(shè)備管理中,是由B完成真正的I/O操作的。A.輸入/輸出管理程序 B.設(shè)備驅(qū)動程序C.中斷處理程序 D.設(shè)備啟動程序3.在以下磁盤調(diào)度算法中,只有D考慮I/O請求到達的先后次序。A.最短查找時間優(yōu)先調(diào)度算法 B.電梯調(diào)度算法C.單向掃描調(diào)度算法 D.先來先效勞調(diào)度算法4.下面所列的內(nèi)容里,C不是DMA方式傳輸數(shù)據(jù)的特點。A.直接與內(nèi)存交換數(shù)據(jù) B.成批交換數(shù)據(jù)C.與CPU并行工作 D.快速傳輸數(shù)據(jù)5.在CPU啟動通道后,由A執(zhí)行通道程序,完成CPU所交給的I/O任務(wù)。A. 通道 B.CPU C.設(shè)備 D.設(shè)備控制器6.利用SPOOL技術(shù)實現(xiàn)虛擬設(shè)備的目的是A。A.把獨享的設(shè)備變?yōu)榭梢怨蚕? B.便于獨享設(shè)備的分配C.便于對獨享設(shè)備的管理 D.便于獨享設(shè)備與CPU并行工作7.通常,緩沖池位于C中。A.設(shè)備控制器 B.輔助存儲器 C.主存儲器 D.存放器8.B是直接存取的存儲設(shè)備。A.磁帶 B.磁盤 C.打印機 D.鍵盤顯示終端9.SPOOLING系統(tǒng)提高了A的利用率。A.獨享設(shè)備 B.輔助存儲器 C.共享設(shè)備 D.主存儲器10.按照設(shè)備的D分類,可將系統(tǒng)中的設(shè)備分為字符設(shè)備和塊設(shè)備兩種。A.附屬關(guān)系 B.分配特性 C.操作方式 D.工作特性三、問答1.基于設(shè)備的附屬關(guān)系,可以把設(shè)備分為系統(tǒng)設(shè)備與用戶設(shè)備兩類。根據(jù)什么來區(qū)分一個設(shè)備是系統(tǒng)設(shè)備還是用戶設(shè)備呢?答:所謂“系統(tǒng)設(shè)備〞,是指在操作系統(tǒng)生成時就已被納入系統(tǒng)管理范圍的設(shè)備;所謂“用戶設(shè)備〞是指在完成應(yīng)用任務(wù)過程中,用戶特殊需要的設(shè)備。因此,判定一個設(shè)備是系統(tǒng)設(shè)備還是用戶設(shè)備,依據(jù)是它在系統(tǒng)生成時,是否已經(jīng)納入了系統(tǒng)的管理范圍。如果是,它就是系統(tǒng)設(shè)備;如果不是,它就是用戶設(shè)備。2.設(shè)備管理的主要功能是什么?答:設(shè)備管理的主要功能是:〔1〕提供一組I/O命令,以便用戶進程能夠在程序中提出I/O請求,這是用戶使用外部設(shè)備的“界面〞;〔2〕記住各種設(shè)備的使用情況,實現(xiàn)設(shè)備的分配與回收;〔3〕對緩沖區(qū)進行管理,解決設(shè)備與設(shè)備之間、設(shè)備與CPU之間的速度匹配問題;〔4〕按照用戶的具體請求,啟動設(shè)備,通過不同的設(shè)備驅(qū)動程序,進行實際的I/O操作;I/O操作完成之后,將結(jié)果通知用戶進程,從而實現(xiàn)真正的I/O操作。3.試分析最短查找時間優(yōu)先調(diào)度算法的“不公平〞之處。例如例4-1里,原來磁臂移到16柱面后,下一個被處理的I/O請求是柱面1。假定在處理16柱面時,到達一個對柱面8的I/O新請求,那么下一個被處理的就不是柱面1而是柱面8了。這有什么弊端存在?答:最短查找時間優(yōu)先調(diào)度算法,只考慮各I/O請求之間的柱面距離,不去過問這些請求到達的先后次序。這樣一來,可能會出現(xiàn)的弊端是磁頭總是照顧?quán)徑腎/O請求,冷待了早就到達的、位于磁盤兩頭的I/O請求。這對于它們來說,當(dāng)然是“不公平〞的。4.總結(jié)設(shè)備和CPU在數(shù)據(jù)傳輸?shù)?種方式中,各自在“啟動、數(shù)據(jù)傳輸、I/O管理以及善后處理〞各個環(huán)節(jié)所承當(dāng)?shù)呢?zé)任。答:使用“程序循環(huán)測試〞的方式來進行數(shù)據(jù)傳輸,不僅啟動、I/O管理和藹后處理等工作要由CPU來承當(dāng),即使在數(shù)據(jù)傳輸時,CPU也要做諸如從控制器的數(shù)據(jù)存放器里取出設(shè)備的輸入信息,送至內(nèi)存;將輸出的信息,從內(nèi)存送至控制器的數(shù)據(jù)存放器,以供設(shè)備輸出等工作。因此,在這種方式下,CPU不僅要花費大量時間進行測試和等待,并且只能與設(shè)備串行工作,整個計算機系統(tǒng)的效率發(fā)揮不出來。使用“中斷〞的方式來進行數(shù)據(jù)傳輸,啟動、I/O管理以及善后處理等工作仍然要由CPU來承當(dāng),但在設(shè)備進行數(shù)據(jù)傳輸時,CPU和外部設(shè)備實行了并行工作。在這種方式下,CPU的利用率有了一定的提高。使用“直接存儲器存取〔DMA〕〞的方式來進行數(shù)據(jù)傳輸,I/O的啟動以及善后處理是CPU的事情,數(shù)據(jù)傳輸以及I/O管理等事宜均由DMA負責(zé)實行。不過,DMA方式是通過“竊取〞總線控制權(quán)的方法來工作的。在它工作時,CPU被掛起,所以并非設(shè)備與CPU在并行工作。因此,在一定程度上影響了CPU的效率。使用“通道〞方式來進行數(shù)據(jù)傳輸,在用戶發(fā)出I/O請求后,CPU就把該請求全部交由通道去完成。通道在整個I/O任務(wù)結(jié)束后,才發(fā)出中斷信號,請求CPU進行善后處理。這時CPU對I/O請求只去做啟動和藹后處理工作,輸入/輸出的管理以及數(shù)據(jù)傳輸?shù)仁乱?,全部由通道獨立完成,并且真正實現(xiàn)了CPU與設(shè)備之間的并行操作。5.用戶程序中采用“設(shè)備類,相對號〞的方式使用設(shè)備有什么優(yōu)點?答:在用戶程序中采用“設(shè)備類,相對號〞的方式使用設(shè)備的優(yōu)點是:第一,用戶不需要記住系統(tǒng)中每一臺設(shè)備的具體設(shè)備號,這是非常麻煩的事情;第二,在多道程序設(shè)計環(huán)境下,用戶并不知道當(dāng)前哪一臺設(shè)備已經(jīng)分配,哪一臺設(shè)備仍然空閑。通過“設(shè)備類,相對號〞來提出對設(shè)備的使用請求,系統(tǒng)就可以根據(jù)當(dāng)前的具體情況來分配,從而提高設(shè)備的使用效率;第三,用戶并不知道設(shè)備的好壞情況。如果是用“絕對號〞指定具體的設(shè)備,而該設(shè)備正好有故障時,這次I/O任務(wù)就不可能完成,程序也就無法運行下去。但通過“設(shè)備類,相對號〞來提出對設(shè)備的使用請求,系統(tǒng)就可以靈活處理這種情況,把好的設(shè)備分配出去。6.啟動磁盤執(zhí)行一次輸入/輸出操作要花費哪幾局部時間?哪個時間對磁盤的調(diào)度最有影響?答:的運動速度相對于磁盤軸的旋轉(zhuǎn)來講較緩慢。因此,查找時間對磁盤調(diào)度的影響更為主要。7.解釋通道命令字、通道程序和通道地址字。答:所謂“通道命令字〞,是指通道指令系統(tǒng)中的指令。只是為了與CPU的指令相區(qū)別,才把通道的指令改稱為“通道命令字〞。假設(shè)干條通道命令字聚集在一起,就構(gòu)成了一個“通道程序〞,它規(guī)定了設(shè)備應(yīng)該執(zhí)行的各種操作和順序。通常,通道程序存放在通道自己的存儲部件里。當(dāng)通道中沒有存儲部件時,就存放在內(nèi)存儲器里。這時,為了使通道能取得通道程序去執(zhí)行,必須把存放通道程序的內(nèi)存起始地址告訴通道。存放這個起始地址的內(nèi)存固定單元,被稱為“通道地址字〞。8.何為DMA?通道與DMA有何區(qū)別?答:所謂“DMA〞,是指“直接存儲器存取〞的數(shù)據(jù)傳輸方式,其最大特點是能使I/O設(shè)備直接和內(nèi)存儲器進行成批數(shù)據(jù)的快速傳輸。適用于一些高速的I/O設(shè)備,如磁帶、磁盤等。通道方式與DMA方式之間的區(qū)別如下。〔1〕在DMA方式下,數(shù)據(jù)傳輸?shù)姆较?、傳輸長度和地址等仍然需要由CPU來控制。但在通道方式下,所需的CPU干預(yù)大大減少。〔2〕在DMA方式下,每臺設(shè)備要有一個DMA控制器。當(dāng)設(shè)備增加時,多個DMA控制器的使用,顯然不很經(jīng)濟;但在通道方式下,一個通道可以控制多臺設(shè)備,這不僅節(jié)省了費用,而且減輕了CPU在輸入/輸出中的負擔(dān)?!?〕在DMA方式下傳輸數(shù)據(jù)時,是采用“竊取〞總線控制權(quán)的方法來工作的。因此,CPU與設(shè)備之間并沒有實現(xiàn)真正的并行工作;在通道方式下,CPU把I/O任務(wù)交給通道后,它就與通道就真正并行工作。9.解釋記錄的成組與分解。為什么要這樣做?答:往磁帶、磁盤上存放信息時,經(jīng)常是把假設(shè)干個記錄先在內(nèi)存緩沖區(qū)里拼裝成一塊,然后再寫到磁帶或磁盤上。存儲設(shè)備與內(nèi)存儲器進行信息交換時,就以塊為單位。這個把記錄拼裝成塊的過程,被稱為是“記錄的成組〞。從磁帶、磁盤上讀取記錄時,先是把含有那個記錄的塊讀到內(nèi)存的緩沖區(qū)中,在那里面挑選出所需要的記錄,然后把它送到內(nèi)存存放的目的地。這個把記錄從緩沖區(qū)里挑選出來的過程,被稱為是“記錄的分解〞。之所以這樣做,一是為了提高存儲設(shè)備的存儲利用率;二是減少內(nèi)、外存之間信息交換次數(shù),提高系統(tǒng)的效率。10.試述SPOOL系統(tǒng)中的3個組成軟件模塊各自的作用。答:SPOOLING系統(tǒng)中的3個軟件模塊是預(yù)輸入程序、緩輸出程序和井管理程序。它們各自的作用如下?!?〕預(yù)輸入程序預(yù)先把作業(yè)的全部信息輸入到磁盤的輸入井中存放,以便在需要作業(yè)信息以及作業(yè)運行過程中需要數(shù)據(jù)時,可以直接從輸入井里得到,而無需與輸入機交往,防止了等待使用輸入機的情況發(fā)生。〔2〕緩輸出程序總是查看“輸出井〞中是否有等待輸出的作業(yè)信息。如果有,就啟動輸出設(shè)備〔如打印機〕進行輸出。因此,由于作業(yè)的輸出是針對輸出井進行的,所以不會出現(xiàn)作業(yè)因為等待輸出而阻塞的現(xiàn)象。〔3〕井管理程序分為“井管理讀程序〞和“井管理寫程序〞。當(dāng)作業(yè)請求輸入設(shè)備工作時,操作系統(tǒng)就調(diào)用井管理讀程序,把讓輸入設(shè)備工作的任務(wù),轉(zhuǎn)換成從輸入井中讀取所需要的信息;當(dāng)作業(yè)請求打印輸出時,操作系統(tǒng)就調(diào)用井管理寫程序,把讓輸出設(shè)備工作的任務(wù),轉(zhuǎn)換成為往輸出井里輸出。四、計算1.在例4-1里,對電梯調(diào)度算法只給出了初始由外往里移動磁臂時的調(diào)度結(jié)果。試問如果初始時假定是由里往外移動磁臂,那么調(diào)度結(jié)果又是什么?解:這時調(diào)度的順序是11→9→1→12→16→34→36,總共劃過的柱面數(shù)是:2+8+11+4+18+2=452.磁盤請求以10、22、20、2、40、6、38柱面的次序到達磁盤驅(qū)動器。移動臂移動一個柱面需要6ms,實行以下磁盤調(diào)度算法時,各需要多少總的查找時間?假定磁臂起始時定位于柱面20?!瞐〕先來先效勞;〔b〕最短查找時間優(yōu)先;〔c〕電梯算法〔初始由外向里移動〕。解:〔a〕先來先效勞時,調(diào)度的順序是20→10→22→20→2→40→6→38,總共劃過的柱面數(shù)是:10+12+2+18+38+34+32=146因此,總的查找時間為:146×6=876ms?!瞓〕最短查找時間優(yōu)先時,調(diào)度的順序是20→22→10→6→2→38→40〔由于磁臂起始時定位于柱面20,所以可以把后面第20柱面的訪問立即進行〕,總共劃過的柱面數(shù)是:2+12+4+4+36+2=60因此,總的查找時間為:60×6=360ms。〔c〕電梯算法〔初始由外向里移動〕時,調(diào)度的順序是20→22→38→40→10→6→2〔由于磁臂起始時定位于柱面20,所以可以把后面第20柱面的訪問立即進行〕,總共劃過的柱面數(shù)是:2+16+2+30+4+4=58因此,總的查找時間為:58×6=348ms。3.假定磁盤的移動臂現(xiàn)在處于第8柱面。有如下表所示的6個I/O請求等待訪問磁盤,試列出最省時間的I/O響應(yīng)次序。序號柱面號磁頭號扇區(qū)號1963275631520649445209567152解:由于移動臂現(xiàn)在處于第8柱面,如果按照“先來先效勞〞調(diào)度算法,對這6個I/O的響應(yīng)次序應(yīng)該是8→9→7→15→9→20→7;如果是按照“最短查找時間優(yōu)先〞調(diào)度算法,對這6個I/O的響應(yīng)次序可以有兩種,一是8→9→7→15→20〔到達9時完成1和4的請求,到達7時完成2和6的請求〕,二是8→7→9→15→20〔到達7時完成2和6的請求,到達9時完成1和4的請求〕;如果按照“電梯〞調(diào)度算法,對這6個I/O的響應(yīng)次序可以有兩種,一是8→9→15→20→7〔由里往外的方向,到達9時完成1和4的請求,到達7時完成2和6的請求〕,二是8→7→9→15→20〔由外往里的方向,到達7時完成2和6的請求,到達9時完成1和4的請求〕;如果按照“單向掃描〞調(diào)度算法,對這6個I/O的響應(yīng)次序是8→9→15→20→0→7。比照后可以看出,實行8→7→9→15→20的響應(yīng)次序會得到最省的時間,因為這時移動臂的移動柱面數(shù)是:1+2+6+5=14第5章習(xí)題解答一、填空1.一個文件的文件名是在創(chuàng)立該文件時給出的。2.所謂“文件系統(tǒng)〞,由與文件管理有關(guān)的那局部軟件、被管理的文件以及管理所需要的數(shù)據(jù)結(jié)構(gòu)三局部組成。3.塊是輔助存儲器與內(nèi)存之間進行信息傳輸?shù)膯挝弧?.在用位示圖管理磁盤存儲空間時,位示圖的尺寸由磁盤的總塊數(shù)決定。5.采用空閑區(qū)表法管理磁盤存儲空間,類似于存儲管理中采用可變分區(qū)存儲管理方法管理內(nèi)存儲器。6.操作系統(tǒng)是通過文件控制塊〔FCB〕感知一個文件的存在的。7.按用戶對文件的存取權(quán)限將用戶分成假設(shè)干組,規(guī)定每一組用戶對文件的訪問權(quán)限。這樣,所有用戶組存取權(quán)限的集合稱為該文件的存取控制表。8.根據(jù)在輔存上的不同存儲方式,文件可以有順序、鏈接和索引三種不同的物理結(jié)構(gòu)。9.如果把文件視為有序的字符集合,在其內(nèi)部不再對信息進行組織劃分,那么這種文件的邏輯結(jié)構(gòu)被稱為“流式文件〞。10.如果用戶把文件信息劃分成一個個記錄,存取時以記錄為單位進行,那么這種文件的邏輯結(jié)構(gòu)稱為“記錄式文件〞。二、選擇1.下面的B不是文件的存儲結(jié)構(gòu)。A.索引文件 B.記錄式文件 C.串聯(lián)文件 D.連續(xù)文件2.有一磁盤,共有10個柱面,每個柱面20個磁道,每個盤面分成16個扇區(qū)。采用位示圖對其存儲空間進行管理。如果字長是16個二進制位,那么位示圖共需A字。A.200 B.128 C.256 D.1003.操作系統(tǒng)為每一個文件開辟一個存儲區(qū),在它的里面記錄著該文件的有關(guān)信息。這就是所謂的B。A.進程控制塊 B.文件控制塊C.設(shè)備控制塊 D.作業(yè)控制塊4.文件控制塊的英文縮寫符號是C。A.PCB B.DCB C.FCB D.JCB5.一個文件的絕對路徑名總是以C打頭。A.磁盤名 B.字符串 C.分隔符 D.文件名6.一個文件的絕對路徑名是從B開始,逐步沿著每一級子目錄向下,最后到達指定文件的整個通路上所有子目錄名組成的一個字符串。A.當(dāng)前目錄 B.根目錄C.多級目錄 D.二級目錄7.從用戶的角度看,引入文件系統(tǒng)的主要目的是D。A.實現(xiàn)虛擬存儲 B.保存用戶和系統(tǒng)文檔 C.保存系統(tǒng)文檔 D.實現(xiàn)對文件的按名存取8.按文件的邏輯結(jié)構(gòu)劃分,文件主要有兩類:A。A.流式文件和記錄式文件 B.索引文件和隨機文件C.永久文件和臨時文件 D.只讀文件和讀寫文件9.位示圖用于B。A.文件目錄的查找 B.磁盤空間的管理C.主存空間的共享 D.文件的保護和保密10.用戶可以通過調(diào)用C文件操作,來歸還文件的使用權(quán)。A.建立 B.翻開 C.關(guān)閉 D.刪除三、問答1.試說出MS-DOS或Windows對文件名的命名規(guī)那么。舉幾個例子,說明哪個文件名起得是對的,哪個文件名起得是不符合命名規(guī)那么的。答:例如MS-DOS,它的文件名由兩局部組成:文件名和擴展名。文件名由1~8個字符組成;在文件名的后面,可以跟隨擴展名〔可選〕。擴展名總是以一個點開始,然后是1~3個字符。組成文件名和擴展名的字符可以如下。英文字母:A~Z,a~z,共52個〔不區(qū)分大小寫〕。數(shù)字符號:0~9。特殊符號:$、#、&、@等。不能使用的字符有*、?等。例如:test.txt abc.obj等都是正確的文件名;而:abcdefhgijk.txty是不正確的文件名。對于Windows,文件名最多可以有256個字符,其他與MS-DOS類同。2.試說出在MS-DOS里打印機的文件名。舉一個包含有這個名字的MS-DOS命令,它的含義是什么?答:在MS-DOS里,可以把打印機視為只寫文件來處理,這時打印機的文件名是:PRN。例如命令:COPY\USER\FILE1PRN說明是把文件“\USER\FILE1〞拷貝到文件PRN,也就是把文件“\USER\FILE1〞在打印機上打印出來。3.為什么位示圖法適用于分頁式存儲管理和對磁盤存儲空間的管理?如果在存儲管理中采用可變分區(qū)存儲管理方案,也能采用位示圖法來管理空閑區(qū)嗎?為什么?答:無論是分頁式存儲管理還是磁盤存儲空間的管理,它們面對的管理對象——存儲塊〔內(nèi)存塊或磁盤塊〕的數(shù)量,在系統(tǒng)的運行過程中是固定不變的。因此,可以很方便地用相同數(shù)量的二進制位來對應(yīng)管理它們。但如果在存儲管理中采用可變分區(qū)存儲管理方案,那么在系統(tǒng)運行時,分區(qū)的數(shù)目是變化的。因此,也就無法用位示圖法來管理這些分區(qū)的使用情況。4.有些操作系統(tǒng)提供系統(tǒng)調(diào)用命令RENAME給文件重新命名。同樣,也可以通過把一個文件復(fù)制到一個新文件、然后刪除舊文件的方法到達給文件重新命名的目的。試問這兩種做法有何不同?答:使用RENAME命令給文件重新命名時,用戶要提供兩個參數(shù):舊文件名,新文件名。RENAME命令將根據(jù)舊文件名找到文件的目錄項,把里面登記的舊文件名改為新文件名。所以,文件重新命名的功能就是修改該文件目錄里的文件名,其他特性不變。后一種方法是先對文件進行復(fù)制,為其起一個新的名字,然后再刪除舊的文件。這時,復(fù)制過程猶如創(chuàng)立一個文件,新文件除了名字與以前不同外,文件的某些特性也改變了,例如存放的地址不同了。所以,采用這種方法雖然也能夠到達給文件重新命名的目的,但顯得要比前一種方法復(fù)雜一些。5.“文件目錄〞和“目錄文件〞有何不同?答:“文件目錄〞是指一個文件的目錄項,里面存放著文件的有關(guān)數(shù)據(jù)信息?!澳夸浳募暷敲词侵溉绻募芏?,那么文件目錄項的數(shù)量也就很多。為此,操作系統(tǒng)經(jīng)常把這些目錄項聚集在一起,作為一個文件來加以管理,這就是所謂的“目錄文件〞。因此,“文件目錄〞和“目錄文件〞是兩個不同的概念,不能混為一談。6.一個文件的絕對路徑名和相對路徑名有何不同?答:在樹型目錄結(jié)構(gòu)中,用戶要訪問一個文件,必須使用文件的路徑名來標(biāo)識文件。從根目錄出發(fā)、一直到所要訪問的文件,將所經(jīng)過的目錄名字用分隔符連接起來,所形成的字符串,就是該文件的絕對路徑名。如果是從當(dāng)前目錄出發(fā),一直到所要訪問的文件,將所經(jīng)過的目錄名字用分隔符連接起來,所形成的字符串,就是該文件的相對路徑名。可以看出,絕對路徑名是文件的全名,必須從根目錄開始。所以,一個文件的絕對路徑名是惟一的。相對路徑名總是從當(dāng)前目錄往下,所以文件的相對路徑名與當(dāng)前位置有關(guān),是不惟一的。7.試述“創(chuàng)立文件〞與“翻開文件〞兩個系統(tǒng)調(diào)用在功能上的不同之處。答:所謂“創(chuàng)立文件〞,表示原先該文件并不存在。所以創(chuàng)立文件時,最主要的功能是在磁盤上為其開辟存儲空間,建立起該文件的FCB。文件創(chuàng)立后,有了它的FCB,系統(tǒng)才真正感知到它的存在;“翻開文件〞是這個文件已經(jīng)存在,只是它的有關(guān)信息不在內(nèi)存。因此,翻開文件最主要的功能是把該文件FCB中的信息復(fù)制到內(nèi)存中,以便為隨后對文件的操作帶來便利。8.試述“刪除文件〞與“關(guān)閉文件〞兩個系統(tǒng)調(diào)用在功能上的不同之處。答:“刪除文件〞最主要的功能是把該文件的FCB收回。文件沒有了FCB,系統(tǒng)也就無法感知到它的存在了。所以,在執(zhí)行了刪除文件的命令后,這個文件就在系統(tǒng)里消失了;而“關(guān)閉文件〞最主要的功能是把復(fù)制到內(nèi)存活動目錄表里的該文件的FCB信息取消。這樣一來,在內(nèi)存活動目錄表里沒有了該文件的信息,就不能夠?qū)@個文件進行讀、寫了。所以,關(guān)閉一個文件后,這個文件還存在,只是不能對它操作了。如果要操作,就必須再次將它翻開〔即把FCB里的信息復(fù)制到內(nèi)存的活動目錄表〕,然后再進行操作。9.為什么在使用文件之前,總是先將其翻開后再用?答:有關(guān)文件的信息都存放在該文件的FCB里,只有找到文件的FCB,才能獲得它的一切信息。但FCB是在磁盤里。因此,只要對文件進行操作,就要到磁盤里去找它的FCB。這種做法,無疑影響了文件操作的執(zhí)行速度。正因為如此,操作系統(tǒng)才考慮在對文件進行操作前,先將其翻開,把文件的FCB內(nèi)容復(fù)制到內(nèi)存中來。這樣,查找文件的FCB,就不必每次都要去訪問磁盤。10.如果一個文件系統(tǒng)沒有提供顯式的翻開命令〔即沒有OPEN命令〕,但又希望有翻開的功能,以便在使用文件時能減少與磁盤的交往次數(shù)。那么應(yīng)該把這一功能安排在哪個系統(tǒng)調(diào)用里適宜?如何安排?答:文件系統(tǒng)中設(shè)置翻開命令的根本目的,是減少文件操作時與磁盤的交往次數(shù)。如果系統(tǒng)沒有提供顯式的翻開命令,但又要能減少與磁盤的交往次數(shù),那么只需把這一功能安排在讀或?qū)懴到y(tǒng)調(diào)用命令里。這時,在讀、寫命令功能前面添加這樣的處理:總是先到內(nèi)存的活動目錄表里查找該文件的FCB。如果找到,那么說明在此前文件已經(jīng)被翻開,于是就可以立即進行所需要的讀、寫操作;如果沒有找到,那么說明在此前文件還沒有翻開。于是應(yīng)該先按照文件名,到磁盤上去查找該文件的FCB,把它復(fù)制到內(nèi)存的活動目錄表里,然后再進行對它的操作。四、計算1.我們知道,可以用位示圖法或成組鏈接法來管理磁盤空間。假定表示一個磁盤地址需要D個二進制位,一個磁盤共有B塊,其中有F塊空閑。在什么條件下,成組鏈接法占用的存儲空間少于位示圖?解:依題意,該磁盤共有B塊,這意味采用位示圖法來管理磁盤空間時,共需要B個二進制位構(gòu)成位示圖的存儲空間;另一方面,現(xiàn)在共有F個空閑塊,而表示一個磁盤地址〔即一個空閑塊〕需要D個二進制位。所以在當(dāng)前條件下,用成組鏈接法來管理磁盤空間中的F個空閑塊時,要用F×D個二進制位的存儲空間來管理它們。因此,只要題中所給的D、B、F三者之間滿足關(guān)系:B>F×D就可以保證使用成組鏈接法占用的存儲空間少于位示圖。2.假定磁帶的存儲密度為每英寸800個字符,每個邏輯記錄長為160個字符,記錄間隙為0.6英寸?,F(xiàn)在有1000個邏輯記錄需要存儲到磁帶上。分別答復(fù):〔1〕不采用記錄成組技術(shù),這時磁帶存儲空間的利用率是多少?〔2〕〔3〕假設(shè)希望磁帶存儲空間的利用率大于50%,應(yīng)該多少個邏輯記錄為一組?解:〔1〕如果不采用記錄成組技術(shù),存放一個邏輯記錄,就要有一個記錄間隙。因為磁帶的存儲密度為每英寸800個字符,每個邏輯記錄長為160個字符。所以一個邏輯記錄占用的磁帶長度是:160/800=0.2〔英寸〕一個記錄間隙所需要的磁帶長度為0.6英寸。所以,磁帶存儲空間的利用率是:0.2/〔0.2+0.6〕=0.25=25%〔2〕采用以5個邏輯記錄為一組的成組技術(shù)進行存放,表示存放5個邏輯記錄后,有一個記錄間隙。5個邏輯記錄占用的磁帶長度是:0.2×5=1〔英寸〕1/〔1+0.6〕=0.625=62.5%〔3〕假設(shè)希望磁帶存儲空間的利用率大于50%,假定應(yīng)該x個邏輯記錄為一組。這就是說,存放x個邏輯記錄后,有一個記錄間隙。x個邏輯記錄占用的磁帶長度是:0.2×x〔英寸〕;這時一個記錄間隙所需要的磁帶長度仍為0.6英寸。所以,磁帶存儲空間的利用率是:x/〔x+0.6〕=0.5解這個一元一次方程式,x=3。也就是說,當(dāng)把3個以上的邏輯記錄組成一組時,磁帶存儲空間的利用率將大于50%。3.假定有一個名為MYFILE的文件,共有10個邏輯記錄,每個邏輯記錄長為250個字節(jié)。磁盤塊尺寸為512字節(jié),磁盤地址需要2個字節(jié)表示。把MYFILE采用鏈接結(jié)構(gòu)存儲在磁盤上?!?〕畫出該文件在磁盤上的鏈接結(jié)構(gòu)圖〔磁盤塊號自定〕?!?〕現(xiàn)在用戶要讀文件上包含第1425個字符的邏輯記錄。給出完成這一請求的主要工作步驟。解:〔1〕由于每個邏輯記錄長為250個字節(jié),磁盤塊尺寸為512字節(jié)。所以,每個磁盤塊里可以存放兩個邏輯記錄,余下的字節(jié)用于存放指針,文件總共需要5塊。假定系統(tǒng)分配給該文件的磁盤塊號是:25、33、10、56、4。于是,該文件在磁盤上的鏈接結(jié)構(gòu)圖如圖5-1所示。圖5-1計算題3的圖示〔2〕首先要知道包含第1425字節(jié)的邏輯記錄應(yīng)該放在鏈接結(jié)構(gòu)的第幾塊。因為一個邏輯記錄是250個字節(jié),2個邏輯記錄放在一個磁盤塊里。所以1425/〔250×2〕=2〔“/〞表示整除運算〕即包含第1425字節(jié)的邏輯記錄應(yīng)該放在鏈接結(jié)構(gòu)的第3塊〔注意,由于是用整除,所以第1塊應(yīng)該是0〕。其次,文件系統(tǒng)沿著指針,把第3塊〔也就是塊號為56的塊〕讀入內(nèi)存緩沖區(qū)中。最后,由1425%〔250×2〕=425 〔“%〞表示求余運算〕且250×1<425<250×2所以把緩沖區(qū)里的第2個記錄讀到用戶指定的內(nèi)存區(qū)里。第6章習(xí)題解答一、填空1.信號量的物理意義是當(dāng)信號量值大于零時表示可分配資源的個數(shù);當(dāng)信號量值小于零時,其絕對值為等待使用該資源的進程的個數(shù)。2.所謂臨界區(qū)是指進程程序中需要互斥執(zhí)行的程序段。3.用P、V操作管理臨界區(qū)時,一個進程在進入臨界區(qū)前應(yīng)對信號量執(zhí)行P操作,退出臨界區(qū)時應(yīng)對信號量執(zhí)行V操作。4.有m個進程共享一個臨界資源。假設(shè)使用信號量機制實現(xiàn)對臨界資源的互斥訪問,那么該信號量取值最大為1,最小為?〔m?1〕。注意,無論有多少個進程,只要它們需要互斥訪問同一個臨界資源,那么管理該臨界資源的信號量初值就是1。當(dāng)有一個進程進入臨界區(qū)時,信號量的值就變?yōu)?。隨后再想進入的進程只能等待。最多的情況是讓一個進程進入后,其余〔m?1〕個進程都在等待進入。于是這時信號量取到最小值:?〔m?1〕。5.對信號量S的P操作原語中,使進程進入相應(yīng)信號量隊列等待的條件是Vs<0。6.死鎖是指系統(tǒng)中多個進程無休止地等待永遠不會發(fā)生的事件出現(xiàn)。7.產(chǎn)生死鎖的4個必要條件是互斥、非剝奪、局部分配和循環(huán)等待。8.在銀行家算法中,如果一個進程對資源提出的請求將會導(dǎo)致系統(tǒng)從平安的狀態(tài)進入到不平安的狀態(tài)時,就暫時拒絕這一請求。9.信箱在邏輯上被分為信箱頭和信箱體兩局部。10.在操作系統(tǒng)中進程間的通信可以分為低級通信與高級通信兩種。二、選擇1.P、V操作是A。A.兩條低級進程通信原語 B.兩條高級進程通信原語C.兩條系統(tǒng)調(diào)用命令 D.兩條特權(quán)指令2.進程的并發(fā)執(zhí)行是指假設(shè)干個進程B。A.共享系統(tǒng)資源 B.在執(zhí)行的時間上是重疊的C.順序執(zhí)行 D.相互制約3.假設(shè)信號量S初值為2,當(dāng)前值為?1,那么表示有B個進程在與S相關(guān)的隊列上等待。A.0 B.1 C.2 D.34.用P、V操作管理相關(guān)進程的臨界區(qū)時,信號量的初值應(yīng)定義為C。A.?1 B.0 C.1 D.隨意5.用V操作喚醒一個等待進程時,被喚醒進程的狀態(tài)變?yōu)锽。A.等待 B.就緒 C.運行 D.完成6.假設(shè)兩個并發(fā)進程相關(guān)臨界區(qū)的互斥信號量MUTEX現(xiàn)在取值為0,那么正確的描述應(yīng)該是B。A.沒有進程進入臨界區(qū)B.有一個進程進入臨界區(qū)C.有一個進程進入臨界區(qū),另一個在等待進入臨界區(qū)D.不定7.在系統(tǒng)中采用按序分配資源的策略,將破壞產(chǎn)生死鎖的D條件。A.互斥 B.占有并等待 C.不可搶奪 D.循環(huán)等待8.某系統(tǒng)中有3個并發(fā)進程,都需要4個同類資源。試問該系統(tǒng)不會產(chǎn)生死鎖的最少資源總數(shù)應(yīng)該是B。A.9 B.10 C.11 D.129.銀行家算法是一種A算法。A.死鎖防止 B.死鎖防止 C.死鎖檢測 D.死鎖解除10.信箱通信是進程間的一種B通信方式。A.直接 B.間接 C.低級 D.信號量三、問答1.試說出圖6-1〔即教材中第2章的圖2-2〕所給出的監(jiān)視程序A和計數(shù)程序B之間表達出一種什么關(guān)系,是“互斥〞還是“同步〞?為什么?圖6-1對兩個程序的描述答:圖6-1〔即教材中第2章的圖2-2〕所給出的監(jiān)視程序A和計數(shù)程序B之間表達出的是一種互斥關(guān)系,因為在監(jiān)視程序A里,要對共享變量COUNT進行操作: COUNT=COUNT+1;在計數(shù)程序B里要對共享變量COUNT進行操作: 打印COUNT的值; COUNT=0;這兩段程序是不能交叉進行的,不然就會出現(xiàn)與時間有關(guān)的錯誤。2.模仿教材中的圖6-4,畫出COPY和PUT之間的直接依賴關(guān)系。然后把兩個圖聚集在一起,體會它們?nèi)咧g正確的同步關(guān)系。再模仿教材中的圖6-8,能用信號量及P、V操作來正確處理GET、COPY和PUT三者之間的協(xié)同工作關(guān)系嗎?答:圖6-2給出了GET、COPY和PUT三者間正確的同步關(guān)系:GET在向COPY發(fā)“可以拷貝〞的消息后,要等待COPY發(fā)來“拷貝結(jié)束〞的消息。因為這個消息意味著輸入緩沖區(qū)R已經(jīng)被COPY騰空,GET可以再次向里面存放從文件F里取出的記錄了;COPY在等到GET發(fā)來的“可以拷貝〞的消息后,才能夠把輸入緩沖區(qū)R里的記錄拷貝到輸出緩沖區(qū)T中。完成這個動作后,表示輸入緩沖區(qū)R已經(jīng)被COPY騰空,因此應(yīng)該立即向GET發(fā)消息,告訴它輸入緩沖區(qū)R又可以使用了。隨后,向PUT發(fā)送“可以打印〞的消息,等待PUT發(fā)來“打印結(jié)束〞的消息;PUT在等到COPY發(fā)來“可以打印〞的消息后,才能夠從輸出緩沖區(qū)T里取出記錄打印。打印完畢后,向COPY發(fā)送“打印完畢〞的消息。這個消息意味著輸出緩沖區(qū)T已經(jīng)被PUT騰空,COPY又可以再次去等待GET發(fā)送的“可以拷貝〞的消息,從輸入緩沖區(qū)R里取出記錄存入輸出緩沖區(qū)T了。圖6-2GET、COPY和PUT三者間的工作關(guān)系于是,GET、COPY和PUT三者間有4個同步問題:在GET的標(biāo)號為3的地方是一個同步點;在COPY的標(biāo)號為1和5的地方是兩個同步點;在PUT的標(biāo)號為1的地方是一個同步點。因此,共要設(shè)置4個同步信號量:S1——控制COPY與GET取得同步,初值=0;S2——控制GET與COPY取得同步,初值=0;S3——控制PUT與COPY取得同步,初值=0;S4——控制COPY與PUT取得同步,初值=0。圖6-3表述了用信號量及P、V操作來正確處理GET、COPY和PUT三者之間的協(xié)同工作關(guān)系。圖6-3用P、V操作保證GET、COPY和PUT三者的正確協(xié)作3.在圖6-4〔a〕〔即教材中圖6-8〕GET里,是先安放V(S1),再安放P(S2)的。能把它們兩個的安放順序顛倒過來變成圖6-4〔b〕嗎?為什么?圖6-4安放V(S1)和P(S2)的兩種方法答:圖6-4〔b〕里是先安放P(S2),再安放V(S1)。這種安放順序是不行的。因為安放P(S2),表示要在此等待COPY發(fā)來的消息〔即希望COPY執(zhí)行V(S2)操作〕,在接到了COPY的消息后,才執(zhí)行V(S1)〔即向COPY發(fā)消息〕。但是,根據(jù)COPY的安排,不接到GET發(fā)來的消息〔即執(zhí)行P(S1)操作〕,是不會向COPY發(fā)消息的〔即執(zhí)行V(S2)操作〕。于是,GET和COPY就陷入了循環(huán)等待:GET等待COPY發(fā)消息,COPY等待GET發(fā)消息。產(chǎn)生兩個死鎖了。4.進程A和B共享一個變量,因此在各自的程序里都有自己的臨界區(qū)?,F(xiàn)在進程A在臨界區(qū)里。試問進程A的執(zhí)行能夠被別的進程打斷嗎?能夠被進程B打斷嗎〔這里,“打斷〞的含義是調(diào)度新進程運行,使進程A暫停執(zhí)行〕?答:當(dāng)進程A在自己的臨界區(qū)里執(zhí)行時,能夠被別的進程打斷,沒有任何的限制。當(dāng)進程A在自己的臨界區(qū)里執(zhí)行時,也能夠被進程B打斷,不過這種打斷是有限制的。即當(dāng)進程B執(zhí)行到要求進入自己的臨界區(qū)時,就會被阻塞。這是因為在它打斷進程A時,A正在臨界區(qū)里還沒有出來,既然A在臨界區(qū),B當(dāng)然就無法進入自己的臨界區(qū)。5.信號量上的P、V操作只是對信號量的值進行加1或減1操作嗎?在信號量上還能夠執(zhí)行除P、V操作外的其他操作嗎?答:根據(jù)信號量的定義可知,P、V操作并非只是對信號量進行減1或加1操作,更重要的是在減1或加1后,還要判斷運算的結(jié)果。對于P操作,判定后調(diào)用進程自己有可能繼續(xù)運行,也可能阻塞等待。對于V操作,判定后調(diào)用進程自己最后總是繼續(xù)運行,但之前可能會喚醒在信號量隊列上等待的進程。在信號量上除了能執(zhí)行P、V操作外,不能執(zhí)行其他任何操作。6.系統(tǒng)有輸入機和打印機各一臺,均采用P-V操作來實現(xiàn)分配和釋放。現(xiàn)在有兩個進程都要使用它們。這會發(fā)生死鎖嗎?試說明理由。答:采用信號量上的P、V操作,只能正確地完成對設(shè)備的申請與釋放,但不能控制進程對設(shè)備的申請、釋放順序。因此,當(dāng)進程申請和釋放設(shè)備的順序不當(dāng)時,仍會發(fā)生死鎖。例如,進程A使用輸入機和打印機的順序是:請求打印機〔Ar1〕→請求輸入機〔Ar2〕→釋放打印機〔Ar3〕→釋放輸入機〔Ar4〕進程B使用輸入機和打印機的順序是:請求輸入機〔Br1〕→請求打印機〔Br2〕→釋放輸入機〔Br3〕→釋放打印機〔Br4〕其中圓括號里標(biāo)注的字母,表示某進程對設(shè)備的某種使用。例如,Ar1表示進程A請求打印機。由于A和B都是進程,它們的執(zhí)行可以交叉進行。執(zhí)行順序:Ar1→Ar2→Ar3→Ar4→Br1→Br2→Br3→Br4或Ar1→Ar2→Br1→Ar3→Ar4→Br2→Br3→Br4都是合理的交叉。但是,以Ar1→Br1開始的執(zhí)行就無法再往下進行了。因為進程A執(zhí)行了Ar1,說明它占用了打印機。接著進程B執(zhí)行了Br1,說明它占用了輸入機。這樣一來,不管后面是執(zhí)行Ar2〔進程A申請輸入機〕還是執(zhí)行Br2〔進程B申請打印機〕,都不可能得到滿足,兩個進程先后被阻塞:進程A占據(jù)著打印機而等待輸入機,進程B占據(jù)著輸入機而等待打印機。這就產(chǎn)生了死鎖。7.現(xiàn)有4個進程A、B、C、D,共享10

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論