操作系統宗大華版課后習題答案_第1頁
操作系統宗大華版課后習題答案_第2頁
操作系統宗大華版課后習題答案_第3頁
操作系統宗大華版課后習題答案_第4頁
操作系統宗大華版課后習題答案_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論