計算機操作系統(tǒng)習題答案_第1頁
計算機操作系統(tǒng)習題答案_第2頁
計算機操作系統(tǒng)習題答案_第3頁
計算機操作系統(tǒng)習題答案_第4頁
計算機操作系統(tǒng)習題答案_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機操作系統(tǒng)習題答案第一章os引論1.設計現(xiàn)代OS的主要目標是什么?方便性,有效性,可擴充性和開放性.2.OS的作用可表現(xiàn)為哪幾個方面?a.OS作為用戶與計算機硬件系統(tǒng)之間的接口;b.OS作為計算機系統(tǒng)資源的管理者;c.OS作為擴充機器.4.試說明推動多道批處理系統(tǒng)形成和發(fā)展的主要動力是什么?不斷提高計算機資源利用率和系統(tǒng)吞吐量的需要;5.何謂脫機I/O和聯(lián)機I/O?a.脫機輸入輸出方式(Off-LineI/O)是為了解決人機矛盾及CPU和I/O設備之間速度不匹配而提出的.它減少了CPU的空閑等待時間,提高了I/O速度.具體內(nèi)容是將用戶程序和數(shù)據(jù)在一臺外圍機的控制下,預先從低速輸入設備輸入到磁帶上,當CPU需要這些程序和數(shù)據(jù)時,在直接從磁帶機高速輸入到內(nèi)存,從而大大加快了程序的輸入過程,減少了CPU等待輸入的時間,這就是脫機輸入技術(shù);當程序運行完畢或告一段落,CPU需要輸出時,無需直接把計算結(jié)果送至低速輸出設備,而是高速把結(jié)果輸出到磁帶上,然后在外圍機的控制下,把磁帶上的計算結(jié)果由相應的輸出設備輸出,這就是脫機輸出技術(shù).b.若這種輸入輸出操作在主機控制下進行則稱之為聯(lián)機輸入輸出方式.6.試說明推動分時系統(tǒng)形成和發(fā)展的主要動力是什么?用戶的需要.即對用戶來說,更好的滿足了人-機交互,共享主機以及因為程序在并發(fā)執(zhí)行過程中存在相互制約性.4.程序并發(fā)執(zhí)行時為什么會失去封閉性和可再現(xiàn)性?因為程序并發(fā)執(zhí)行時,多個程序共享系統(tǒng)中的各種資源,資源狀態(tài)需要多個程序來改變,即存在資源共享性使程序失去封閉性;而失去了封閉性導致程序失去可再現(xiàn)性.5.在操作系統(tǒng)中為什么要引入進程的概念?它會產(chǎn)生什么樣的影響?為了使程序在多道程序環(huán)境下能并發(fā)執(zhí)行,并能對并發(fā)執(zhí)行的程序加以控制和描述,而引入了進程概念.影響:使程序的并發(fā)執(zhí)行得以實行.6.試從動態(tài)性,并發(fā)性和獨立性上比較進程和程序.a.動態(tài)性是進程最基本的特性,可表現(xiàn)為由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,因得不到資源而暫停執(zhí)行,以及由撤銷而消亡,因而進程由一定的生命期;而程序只是一組有序指令的集合,是靜態(tài)實體.b.并發(fā)性是進程的重要特征,同時也是OS的重要特征.引入進程的目的正是為了使其程序能和其它進程的程序并發(fā)執(zhí)行,而程序是不能并發(fā)執(zhí)行的.c.獨立性是指進程實體是一個能獨立運行的基本單位,同時也是系統(tǒng)中獨立獲得資源和獨立調(diào)度的基本單位.而對于未建立任何進程的程序,都不能作為一個獨立的單位參加運行.7.試說明PCB的作用?為什么說PCB是進程存在的唯一標志?a.PCB是進程實體的一部分,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu).PCB中記錄了操作系統(tǒng)所需的用于描述進程情況及控制進程運行所需的全部信息.因而它的作用是使一個在多道程序環(huán)境下不能獨立運行的程序(含數(shù)據(jù)),成為一個能獨立運行的基本單位,一個能和其它進程并發(fā)執(zhí)行的進程.b.在進程的整個生命周期中,系統(tǒng)總是通過其PCB對進程進行控制,系統(tǒng)是根據(jù)進程的PCB而不是任何別的什么而感知到該進程的存在的,所以說,PCB是進程存在的唯一標志.8.試說明進程在三個基本狀態(tài)之間轉(zhuǎn)換的典型原因.a.處于就緒狀態(tài)的進程,當進程調(diào)度程序為之分配了處理機后,該進程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài).b.當前進程因發(fā)生某事件而無法執(zhí)行,如訪問已被占用的臨界資源,就會使進程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài).c.當前進程因時間片用完而被暫停執(zhí)行,該進程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài).9.為什么要引入掛起狀態(tài)?該狀態(tài)具有哪些性質(zhì)?a.引入掛起狀態(tài)處于5中需要:終端用戶的需要,父進程的需要,操作系統(tǒng)的需要,對換的需要和負荷調(diào)節(jié)的需要.b.處于掛起狀態(tài)的進程不能接收處理機調(diào)度.10在進行進程切換時,所要保存的處理機狀態(tài)信息主要有哪些?a.進程當前暫存信息;b.下一條指令地址信息;c.進程狀態(tài)信息;d.過程和系統(tǒng)調(diào)用參數(shù)及調(diào)用地址信息.11試說明引起進程創(chuàng)建的主要事件.a.用戶登陸;b.作業(yè)調(diào)度;c.提供服務;d.應用請求.12試說明引起進程撤消的主要事件.a.正常結(jié)束;b.異常結(jié)束;c.外界干預;13在創(chuàng)建一個進程時,需完成的主要工作是什么?a.操作系統(tǒng)發(fā)現(xiàn)請求創(chuàng)建新進程事件后,調(diào)用進程創(chuàng)建原語Creat();b.申請空白PCB;c.為新進程分配資源;d.初始化進程控制塊;e.將新進程插入就緒隊列.14在撤消一個進程時,需完成的主要工作是什么?a.OS調(diào)用進程終止原語;b.根據(jù)被終止進程的標志符,從PCB集合中檢索出該進程的PCB,從中讀出該進程的狀態(tài);c.若被終止進程正處于執(zhí)行狀態(tài),應立即中止該進程的執(zhí)行,并設置調(diào)度標志為真;d.若該進程還有子孫進程,還應將其所有子孫進程予以終止;e.將該進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統(tǒng);f.將被終止進程(它的PCB)從所在隊列(或鏈表)中移出,等待其它程序來搜集信息.15試說明引起進程阻塞或被喚醒的主要事件是什么?a.請求系統(tǒng)服務;b.啟動某種操作;c.新數(shù)據(jù)尚未到達;d.無新工作可做.17.為什么進程在進入臨界區(qū)之前,應先執(zhí)行"進入?yún)^(qū)"代碼,在退出臨界區(qū)后又執(zhí)行"退出區(qū)"代碼?為了實現(xiàn)多個進程對臨界資源的互斥訪問,必須在臨界區(qū)前面增加一段用于檢查欲訪問的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區(qū)對資源進行訪問,并設置正被訪問標志,如果正被訪問,則本進程不能進入臨界區(qū),實現(xiàn)這一功能的代碼成為"進入?yún)^(qū)"代碼;在退出臨界區(qū)后,必須執(zhí)行"退出區(qū)"代碼,用于恢復未被訪問標志.18.同步機構(gòu)應遵循哪些基本準則?為什么?a.空閑讓進.b.忙則等待.c.有限等待.d.讓權(quán)等待.20.你認為整型信號量機制和記錄型信號量機制,是否完全遵循了同步機構(gòu)的四條準則?a.在整型信號量機制中,未遵循"讓權(quán)等待"的準則.b.記錄型信號量機制完全遵循了同步機構(gòu)的"空閑讓進,忙則等待,有限等待,讓權(quán)等待"四條準則.23.在生產(chǎn)者-消費者問題中,如果缺少了signal(full)或signal(empty),對執(zhí)行結(jié)果會有何影響?生產(chǎn)者-消費者問題可描述如下:varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,...,n-1]ofitem;in,out:integer:=0,0;beginparbeginproducer:duceaniteminnextp;..wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1)modn;signal(mutex);/****************/signal(full);/****************/untilfalse;endconsumer:beginrepeatwait(full);wait(mutex);nextc:=buffer(out);out:=(out+1)modn;signal(mutex);/****************/signal(empty);/****************/consumetheiteminnextc;untilfalse;endparendend可見,生產(chǎn)者可以不斷地往緩沖池送消息,如果緩沖池滿,就會覆蓋原有數(shù)據(jù),造成數(shù)據(jù)混亂.而消費者始終因wait(full)操作將消費進程直接送入進程鏈表進行等待,無法訪問緩沖池,造成無限等待.24.在生產(chǎn)者-消費者問題中,如果將兩個wait操作即wait(full)和wait(mutex)互換位置;或者是將signal(mutex)與signal(full)互換位置結(jié)果會如何?varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,...,n-1]ofitem;in,out:integer:=0,0;beginparbeginproducer:duceaniteminnextp;..wait(empty);wait(mutex);buffer(in):=nextp;in:=(in+1)modn;/*******************/signal(full);signal(mutex);/*******************/untilfalse;endconsumer:beginrepeat/******************/wait(mutex);wait(full);/******************/nextc:=buffer(out);out:=(out+1)modn;signal(mutex);signal(empty);consumetheiteminnextc;untilfalse;endparendendwait(full)和wait(mutex)互換位置后,因為mutex在這兒是全局變量,執(zhí)行完wait(mutex),則mutex賦值為0,倘若full也為0,則該生產(chǎn)者進程就會轉(zhuǎn)入進程鏈表進行等待,而生產(chǎn)者進程會因全局變量mutex為0而進行等待,使full始終為0,這樣就形成了死鎖.而signal(mutex)與signal(full)互換位置后,從邏輯上來說應該是一樣的.25.我們?yōu)槟撑R界區(qū)設置一把鎖W,當W=1時,表示關(guān)鎖;W=0時,表示鎖已打開.試寫出開鎖原語和關(guān)鎖原語,并利用它們?nèi)崿F(xiàn)互斥.開鎖原語:unlock(W):W=0;關(guān)鎖原語:lock(W);if(W==1)dono_op;W=1;利用開關(guān)鎖原語實現(xiàn)互斥:varW:semaphore:=0;beginparbeginprocess:beginrepeatlock(W);criticalsectionunlock(W);remaindersectionuntilfalse;endparend26.試修改下面生產(chǎn)者-消費者問題解法中的錯誤:producer:duceraniteminnextp;wait(mutex);wait(full);/*應為wait(empty),而且還應該在wait(mutex)的前面*/buffer(in):=nextp;/*緩沖池數(shù)組游標應前移:in:=(in+1)modn;*/signal(mutex);/*signal(full);*/untilfalse;endconsumer:beginrepeatwait(mutex);wait(empty);/*應為wait(full),而且還應該在wait(mutex)的前面*/nextc:=buffer(out);out:=out+1;/*考慮循環(huán),應改為:out:=(out+1)modn;*/signal(mutex);/*signal(empty);*/consumeriteminnextc;untilfalse;end27.試利用記錄型信號量寫出一個不會出現(xiàn)死鎖的哲學家進餐問題的算法.設初始值為1的信號量c[I]表示I號筷子被拿(I=1,2,3,4,...,2n),其中n為自然數(shù).send(I):BeginifImod2==1then{P(c[I]);P(c[I-1mod5]);Eat;V(c[I-1mod5]);V(c[I]);}else{P(c[I-1mod5]);P(c[I]);Eat;V(c[I]);V(c[I-1mod5]);}End28.在測量控制系統(tǒng)中的數(shù)據(jù)采集任務,把所采集的數(shù)據(jù)送一單緩沖區(qū);計算任務從該單緩沖中取出數(shù)據(jù)進行計算.試寫出利用信號量機制實現(xiàn)兩者共享單緩沖的同步算法.intmutex=1;intempty=n;intfull=0;intin=0;intout=0;main(){cobeginsend();obtain();coend}send(){while(1){..collectdatainnextp;..wait(empty);wait(mutex);buffer(in)=nextp;in=(in+1)modn;signal(mutex);signal(full);}}//sendobtain(){while(1){wait(full);wait(mutex);nextc:=buffer(out);out:=(out+1)modn;signal(mutex);signal(empty);culculatethedatainnextc;}//while}//obtain29.畫圖說明管程由哪幾部分組成?為什么要引入條件變量?管程由三部分組成:局部于管程的共享變量說明;對該數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程;對局部于管程的數(shù)據(jù)設置初始值的語句.(圖見P80)因為調(diào)用wait原語后,使進程等待的原因有多種,為了區(qū)別它們,引入了條件變量.30.如何利用管程來解決生產(chǎn)者-消費者問題?(見P82)31.什么是AND信號量?試利用AND信號量寫出生產(chǎn)者-消費者問題的解法.為解決并行所帶來的死鎖問題,在wait操作中引入AND條件,其基本思想是將進程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋放.解決生產(chǎn)者-消費者問題可描述如下:varmutex,empty,full:semaphore:=1,n,0;buffer:array[0,...,n-1]ofitem;in,out:integer:=0,0;beginparbeginproducer:duceaniteminnextp;..wait(empty);wait(s1,s2,s3,...,sn);//s1,s2,...,sn為執(zhí)行生產(chǎn)者進程除empty外其余的條件wait(mutex);buffer(in):=nextp;in:=(in+1)modn;signal(mutex);signal(full);signal(s1,s2,s3,...,sn);untilfalse;endconsumer:beginrepeatwait(full);wait(k1,k2,k3,...,kn);//k1,k2,...,kn為執(zhí)行消費者進程除full外其余的條件wait(mutex);nextc:=buffer(out);out:=(out+1)modn;signal(mutex);signal(empty);signal(k1,k2,k3,...,kn);consumetheiteminnextc;untilfalse;endparendend33.試比較進程間的低級通信工具與高級通信工具.用戶用低級通信工具實現(xiàn)進程通信很不方便,因為其效率低,通信對用戶不透明,所有的操作都必須由程序員來實現(xiàn).而高級通信工具則可彌補這些缺陷,用戶可直接利用操作系統(tǒng)所提供的一組通信命令,高效地傳送大量的數(shù)據(jù).34.當前有哪幾種高級通信機制?a.共享存儲器系統(tǒng)通信方式;b.消息傳遞系統(tǒng)通信方式;c.管道通信方式.第三章1.高級調(diào)度與低級調(diào)度的主要任務是什么?為什么要引入中級調(diào)度?a.作業(yè)調(diào)度又稱宏觀調(diào)度或高級調(diào)度,其主要任務是按一定的原則對外存上處于后備狀態(tài)的作業(yè)進行選擇,給選中的作業(yè)分配內(nèi)存,輸入輸出設備等必要的資源,并建立相應的進程,以使該作業(yè)的進程獲得競爭處理機的權(quán)利.b.進程調(diào)度又稱微觀調(diào)度或低級調(diào)度,其主要任務是按照某種策略和方法選取一個處于就緒狀態(tài)的進程,將處理機分配給它.c.為了提高內(nèi)存利用7.在選擇調(diào)度方式和調(diào)度算法時,應遵循的準則是什么?a.面向用戶的準則有周轉(zhuǎn)時間短,響應時間快,截止時間的保證,以及優(yōu)先權(quán)準則.b.面向系統(tǒng)的準則有系統(tǒng)吞吐量高,處理機利用率好,各類資源的平衡利用.13.為什么說多級反饋隊列能較好地滿足各種用戶的需要?a.對于終端型作業(yè)用戶,由于終端型作業(yè)用戶所提交的作業(yè),大都屬于交互型作業(yè),系統(tǒng)只要能使這些作業(yè)(進程)在第一隊列所規(guī)定的時間片內(nèi)完成,便可使終端型作業(yè)用戶都感到滿意.b.對于短批處理作業(yè)用戶,很短的批處理型作業(yè)如果僅在第一隊列中執(zhí)行一個時間片即可完成,便可獲得與終端型作業(yè)一樣的相應時間.對于稍長的作業(yè),通常也只需在第二隊列和第三隊列中各執(zhí)行-一個時間片即可完成,其周轉(zhuǎn)時間仍然很短.c.對于長批處理作業(yè)用戶,用戶也不必擔心其作業(yè)長期得不到處理.18.何謂死鎖?產(chǎn)生死鎖的原因和必要條件是什么?a.死鎖是指多個進程因競爭資源而造成的一種僵局,若無外力作用,這些進程都將永遠不能再向前推進;b.產(chǎn)生死鎖的原因有二,一是競爭資源,二是進程推進順序非法;c.必要條件是:互斥條件,請求和保持條件,不剝奪條件和環(huán)路等待條件.19.在解決死鎖問題的幾個方法中,哪種方法最容易實現(xiàn)?哪種方法使資源的利用率最高?a.解決死鎖可歸納為四種方法:預防死鎖,避免死鎖,檢測死鎖和解除死鎖;b.其中,預防死鎖是最容易實現(xiàn)的;c.避免死鎖使資源的利用率最高.20.請詳細說明可通過哪些途徑預防死鎖.a.擯棄"請求和保持"條件,就是如果系統(tǒng)有足夠的資源,便一次性地把進程所需的所有資源分配給它;b.擯棄"不剝奪"條件,就是已經(jīng)保持了資源的進程,當它提出新的資源請求而不能立即得到滿足時,必須釋放它已經(jīng)保持的所有資源,待以后需要時再重新申請;c.擯棄"環(huán)路等待"條件,就是將所有資源按類型排序標號,所有進程對資源的請求必須嚴格按序號遞增的次序提出.21.在銀行家算法的例子中,如果P0發(fā)出的請求向量由Request0(0,2,0)改為Request0(0,1,0),問系統(tǒng)可否將資源分配給它?可以.首先,Request0(0,1,0)<=Need0(7,4,3),Request0(0,1,0)<=Available(2,3,0);分配后可修改得一資源數(shù)據(jù)表(表略),進行安全性檢查,可以找到一個安全序列{P1,P4,P3,P2,P0},或{P1,P4,P3,P0,P2},因此,系統(tǒng)是安全的,可以立即將資源分配給P0.第四章2.可采用哪幾種方式將程序裝入內(nèi)存?它們分別適用于何種場合?a.首先由編譯程序?qū)⒂脩粼创a編譯成若干目標模塊,再由鏈接程序?qū)⒕幾g后形成的目標模塊和所需的庫函數(shù)鏈接在一起,組成一個裝入模塊,再由裝入程序?qū)⒀b入模塊裝入內(nèi)存;b.裝入模塊的方式有:絕對裝入方式,可重定位方式和動態(tài)運行時裝入方式;c.絕對裝入方式適用于單道程序環(huán)境下;d.可重定位方式適用于多道程序環(huán)境下;e.動態(tài)運行時裝入方式也適用于多道程序環(huán)境下.3.何謂靜態(tài)鏈接及裝入時動態(tài)鏈接和運行時的動態(tài)鏈接?a.靜態(tài)鏈接是指事先進行鏈接形成一個完整的裝入模塊,以后不再拆開的鏈接方---式;b.裝入時動態(tài)鏈接是指目標模塊在裝入內(nèi)存時,邊裝入邊鏈接的鏈接方式;c.運行時的動態(tài)鏈接是將某些目標模塊的鏈接推遲到執(zhí)行時才進行.4.在進行程序鏈接時,應完成哪些工作?a.對相對地址進行修改;b.變換外部調(diào)用符號.4.在動態(tài)分區(qū)分配方式中,可利用哪些分區(qū)分配算法?a.首次適應算法;b.循環(huán)首次適應算法;c.最佳適應算法.5.在動態(tài)分區(qū)分配方式中,應如何將各空閑分區(qū)鏈接成空閑分區(qū)鏈?應在每個分區(qū)的起始地址部分,設置一些用于控制分區(qū)分配的信息,以及用于鏈接各分區(qū)的前向指針;在分區(qū)尾部則設置一后向指針,通過前,后向指針將所有的分區(qū)鏈接成一個雙向鏈.6.為什么要引入動態(tài)重定位?如何實現(xiàn)?a.為了在程序執(zhí)行過程中,每當訪問指令或數(shù)據(jù)時,將要訪問的程序或數(shù)據(jù)的邏輯地址轉(zhuǎn)換成物理地址,引入了動態(tài)重定位.b.可在系統(tǒng)中增加一個重定位寄存器,用它來裝入(存放)程序在內(nèi)存中的起始地址,程序在執(zhí)行時,真正訪問的內(nèi)存地址是相對地址與重定位寄存器中的地址相加而形成的,從而實現(xiàn)動態(tài)重定位.7.在采用首次適應算法回收內(nèi)存時,可能出現(xiàn)哪幾種情況?應怎樣處理這些情況?a.回收區(qū)與插入點的前一個分區(qū)相鄰接,此時可將回收區(qū)與插入點的前一分區(qū)合并,不再為回收分區(qū)分配新表項,而只修改前鄰接分區(qū)的大?。籦.回收分區(qū)與插入點的后一分區(qū)相鄰接,此時合并兩區(qū),然后用回收區(qū)的首址作為新空閑區(qū)的首址,大小為兩者之和;c.回收區(qū)同時與插入點的前后兩個分區(qū)鄰接,此時將三個分區(qū)合并,使用前鄰接分區(qū)的首址,大小為-三區(qū)之和,取消后鄰接分區(qū)的表項;d.回收區(qū)沒有鄰接空閑分區(qū),則應為回收區(qū)單獨建立一個新表項,填寫回收區(qū)的首址和大小,并根據(jù)其首址,插入到空閑鏈中的適當位置.10.在系統(tǒng)中引入對換后可帶來哪些好處?能將內(nèi)存中暫時不運行的進程或暫時不用的程序和數(shù)據(jù),換到外存上,以騰出足夠的內(nèi)存空間,把已具備運行條件的進程或進程所需的程序和數(shù)據(jù)換入內(nèi)存,從而大大地提高了內(nèi)存的利用率.11.為實現(xiàn)對換,系統(tǒng)應具備哪幾方面功能?a.對對換空間的管理;b.進程的換出;c.進程的換入.12.在以進程為單位進行對換時,每次是否都將整個進程換出?為什么?a.以進程為單位進行對換時,每次都將整個進程換出;b.目的為了解決內(nèi)存緊張的問題,提高內(nèi)存的利用率.14.較較詳細地說明引入分段存儲管理是為了滿足用戶哪幾方面的需要.a.方便了編程;b.實現(xiàn)了分段共享;c.實現(xiàn)了分段保護;d.實現(xiàn)了動態(tài)鏈接;e.實現(xiàn)了動態(tài)增長.15.在具有快表的段頁式存儲管理方式中,如何實現(xiàn)地址變換?首先,必須配置一段表寄存器,在其中存放段表始址和段長TL.進行地址變換時,先利用段號S,與段長TL進行比較,若S<TL,表示未越界,(若S>=TL,表示段號太大,訪問越界,產(chǎn)生越界中斷信號)于是利用段表始址和段號來求出該段對應的段表項在段表中的位置,從中求出該段的頁表始址,并利用邏輯地址中的段內(nèi)頁號P來獲得對應頁的頁表項位置,從中讀出該頁所在的物理塊號b,再用塊號b和頁內(nèi)地址構(gòu)成物理地址.16.為什么說分段系統(tǒng)較之分頁系統(tǒng)更易于實現(xiàn)信息共享和保護?a.對于分頁系統(tǒng),每個頁面是分散存儲的,為了實現(xiàn)信息共享和保護,則頁面之間需要一一對應起來,為此需要建立大量的頁表項;b.而對于分段系統(tǒng),每個段都從0開始編址,并采用一段連續(xù)的地址空間,這樣在實現(xiàn)共享和保護時,只需為所要共享和保護的程序設置一個段表項,將其中的基址與內(nèi)存地址一一對應起來即可.17.分頁和分段存儲管理有何區(qū)別?a.分頁和分段都采用離散分配的方式,且都要通過地址映射機構(gòu)來實現(xiàn)地址變換,這是它們的共同點;b.對于它們的不同點有三,第一,從功能上看,頁是信息的物理單位,分頁是為實現(xiàn)離散分配方式,以消減-內(nèi)存的外零頭,提高內(nèi)存的利用率,即滿足系統(tǒng)管理的需要,而不是用戶的需要;而段是信息的邏輯單位,它含有一組其意義相對完整的信息,目的是為了能更好地滿足用戶的需要;c.頁的大小固定且由系統(tǒng)確定,而段的長度卻不固定,決定于用戶所編寫的程序;d.分頁的作業(yè)地址空間是一維的,而分段的作業(yè)地址空間是二維的.18.試全面比較連續(xù)分配和離散分配方式.a.連續(xù)分配是指為一個用戶程序分配一個連續(xù)的地址空間,包括單一連續(xù)分配方式和分區(qū)式分配方式,前者將內(nèi)存分為系統(tǒng)區(qū)和用戶區(qū),系統(tǒng)區(qū)供操作系統(tǒng)使用,用戶區(qū)供用戶使用,是最簡單的一種存儲方式,-但只能用于單用戶單任務的操作系統(tǒng)中;分區(qū)式分配方式分為固定分區(qū)和動態(tài)分區(qū),固定分區(qū)是最簡單的多道程序的存儲管理方式,由于每個分區(qū)的大小固定,必然會造成存儲空間的浪費;動態(tài)分區(qū)是根據(jù)進程的實際需要,動態(tài)地為之分配連續(xù)的內(nèi)存空間,常用三種分配算法:首次適應算法FF,該法容易留下許多難以利用的小空閑分區(qū),加大查找開銷;循環(huán)首次適應算法,該算法能使內(nèi)存中的空閑分區(qū)分布均勻,但會致使缺少大的空閑分區(qū);最佳適應算法,該算法也易留下許多難以利用的小空閑區(qū);b.離散分配方式基于將一個進程直接分散地分配到許多不相鄰的分區(qū)中的思想,分為分頁式存儲管理,分段存儲管理和段頁式存儲管理.分頁式存儲管理旨在提高內(nèi)存利用率,滿足系統(tǒng)管理的需要,分段式存儲管理則旨在滿足用戶(程序員)的需要,在實現(xiàn)共享和保護方面優(yōu)于分頁式存儲管理,而段頁式存儲管理則是將兩者結(jié)合起來,取長補短,即具有分段系統(tǒng)便于實現(xiàn),可共享,易于保護,可動態(tài)鏈接等優(yōu)點,又能像分頁系統(tǒng)那樣很好的解決外部碎片的問題,以及為各個分段可離散分配內(nèi)存等問題,顯然是一種比較有效的存儲管理方式;c.綜上可見,連續(xù)分配方式和離散分配方式各有各自的特點,應根據(jù)實際情況加以改進和利用.22.在請求分頁系統(tǒng)中,頁表應包括哪些數(shù)據(jù)項?每項的作用是什么?a.在請求分頁系統(tǒng)中,其頁表項中包含的數(shù)據(jù)項有頁號,物理塊號,狀態(tài)位P,訪問字段A,修改位M和外存地址;b.其中狀態(tài)位P指示該頁是否調(diào)入內(nèi)存,供程序訪問時參考;c.訪問字段A用于記錄本頁在一段時間內(nèi)被訪問的次數(shù),或最近已有多長時間未被訪問,提供給置換算法-選擇換出頁面時參考;d.修改位M表示該頁在調(diào)入內(nèi)存后是否被修改過;e.外存地址用于指出該頁在外存上的地址,通常是物理塊號,供調(diào)入該頁時使用.2.一個計算機系統(tǒng)的虛擬存儲器,其最大容量和實際容量分別由什么決定?a.最大容量由內(nèi)存和外存之和決定;b.實際容量由內(nèi)存決定.19.虛擬存貯器有那些特征?其中最本質(zhì)的特征是什么?a.虛擬存儲器具有離散性,多次性,對換性和虛擬性的特征;b.其中最本質(zhì)的特征是離散性,在此基礎上又形成了多次性和對換性,所表現(xiàn)出來的最重要的特征是虛擬性.20.實現(xiàn)虛擬存儲器要那些硬件支持?a.對于為實現(xiàn)請求分頁存儲管理方式的系統(tǒng),除了需要一臺具有一定容量的內(nèi)存及外存的計算機外,還需要有頁表機制,缺頁中斷機構(gòu)以及地址變換機構(gòu);b.對于為實現(xiàn)請求分段存儲管理方式的系統(tǒng),除了需要一臺具有一定容量的內(nèi)存及外存的計算機外,還需要有段表機制,缺段中斷機構(gòu)以及地址變換機構(gòu)23.在請求分頁系統(tǒng)中,應從何處將所需頁面調(diào)入內(nèi)存?a.在進行地址變換時,首先去檢索快表,試圖從中找出所要訪問的頁,若找到,便修改頁表項中的訪問位,對于寫指令,還須將修改位置1,然后利用頁表項中給出的物理塊號和頁內(nèi)地址,形成物理地址;b.如果在快表中未找到該頁的頁表項,則應再到內(nèi)存中去查找頁表,再從找到的頁表項中的狀態(tài)位來了解該頁是否已調(diào)入內(nèi)存,如果該頁已調(diào)入內(nèi)存,應將此頁的頁表項寫入快表,當快表已滿時,應先調(diào)出按某種算法所確定的頁的頁表項,然后再寫入該頁的頁表項;c.如果該頁尚未調(diào)入內(nèi)存,這時便應產(chǎn)生缺頁中斷,請求OS從外存中把該頁調(diào)入內(nèi)存;d.外存分為文件區(qū)和對換區(qū),若系統(tǒng)有足夠的對換區(qū)空間,可在進程運行前,將與該進程有關(guān)的文件-拷貝到對換區(qū),需要時從對換區(qū)調(diào)入;e.若系統(tǒng)缺少足夠的對換區(qū)空間,則凡是不會被修改的文件,可直接從文件區(qū)調(diào)入,需換出時可不必寫入外存,但對于可能被修改的部分,在將它們換出時,便須調(diào)到對換區(qū),以后需要時再從對換區(qū)-調(diào)入.24.在請求分頁系統(tǒng)中,常采用哪幾種頁面置換算法?a.最佳置換算法;b.先進先出算法;c.最近最久未使用LRU置換算法;d.Clock置換算法;e.此外,還有最少使用置換算法和頁面緩沖算法25.在請求分頁系統(tǒng)中,通常采用哪種頁面分配方式?為什么?a.在請求分頁系統(tǒng)中,有固定和可變分配兩種分配方式;b.采用固定分配方式是基于進程的類型(交互型)或根據(jù)程序員,系統(tǒng)管理員的建議,為每個進程分配固定頁數(shù)的內(nèi)存空間,在整個運行期間不再改變;c.采用可變分配方式有全局置換和局部置換兩種,前者易于實現(xiàn),后者效率高.11在一個請求分頁系統(tǒng)中,采用LRU頁面置換算法時,假如一個作業(yè)的頁面走向為4,3,2,1,4,3,5,4,3,2,1,5,當分配給該作業(yè)的物理塊數(shù)M分別為3和4時,試計算訪問過程中所發(fā)生的缺頁次數(shù)和缺頁率?比較所得結(jié)果?a.當分配給該作業(yè)的物理塊數(shù)M為3時,所發(fā)生的缺頁率為7,缺頁率為:7/12=0.583;b.當分配給該作業(yè)的物理塊數(shù)M為4時,所發(fā)生的缺頁率為4,缺頁率為:4/12=0.333.27.實現(xiàn)LRU算法所需的硬件支持是什么?a.寄存器,用于記錄某進程在內(nèi)存中各頁的使用情況;b.棧,用于保存當前使用的各個頁面的頁面號.28.試說明改進型Clock置換算法的基本原理.a.因為對于修改過的頁面在換出時所付出的開銷將比未被修改過的頁面的開銷大,所以在改進型Clock算法中,出了須考慮到頁面的使用情況外,還須再增加一個置換代價這一因素;b.在選擇頁面作為淘汰頁面時,把同時滿足未使用過和未被修改作為首選淘汰頁面.30.如何實現(xiàn)分段共享?a.可在每個進程的段表中,用相應的表項來指向共享段在內(nèi)存中起始地址;b.配置相應的數(shù)據(jù)結(jié)構(gòu)作為共享段表,可在段表項中設置共享進程計數(shù)Count,每調(diào)用一次該共享段,Count指增1,每當一個進程釋放一個共享段時,Count執(zhí)行減1操作,若減為0,則由系統(tǒng)回收該共享段的物理內(nèi)存,以及取消在共享段表中該段所對應的表項;c.對于一個共享段,應給不同的進程以不同的存取權(quán)限;d.不同的進程可以使用不同的段號去共享該段.第五章1.試說明設備控制器的組成.設備控制器的組成如圖所示:由上圖可見,設備控制器由以下三部分組成:(1)設備控制器與處理機的接口,該接口用于實現(xiàn)CPU與設備控制器之間的通信,提供有三類信號線:數(shù)據(jù)線、地址線和控制線。(2)設備控制器與設備的接口,可以有一個或多個接口,且每個接口連接一臺設備。每個接口都存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號。(3)I/O邏輯,用于實現(xiàn)對設備的控制。其通過一組控制線與處理機交互,處理機利用該邏輯向控制器發(fā)送I/O命令,I/O邏輯對收到的命令進行譯碼。2.為了實現(xiàn)CPU與設備控制器之間的通信,設備控制器應具有哪些功能?為了實現(xiàn)CPU與設備控制器之間的通信,設備控制器應具有如下功能:(1)接受和識別命令。CPU可以向控制器發(fā)送多種不同的命令,設備控制器應能接收并識別這些命令。設置控制寄存器來存放所接收的命令和參數(shù)。(2)數(shù)據(jù)交換,指實現(xiàn)CPU與控制器之間、控制器與設備之間的數(shù)據(jù)交換。設置數(shù)據(jù)寄存器來存放有關(guān)數(shù)據(jù)。(3)設備狀態(tài)的了解和報告??刂破饔涗浵滤B接設備的狀態(tài)以供CPU了解。為此,要在控制器中設置一狀態(tài)寄存器,用其中的每一位反映設備的某一狀態(tài)。(4)地址識別。配置地址譯碼器以便于正確識別設備地址。3.什么是字節(jié)多路通道?什么是數(shù)組選擇通道和數(shù)組多路通道?①字節(jié)多路通道含有許多非分配型子通道分別連接在低、中速I/O設備上,子通道按時間片輪轉(zhuǎn)方式共享主通道,按字節(jié)方式進行數(shù)據(jù)傳送。具體而言,當?shù)谝粋€子通道控制其I/O設備完成一個字節(jié)的交換后,便立即騰出字節(jié)多路通道(主通道),讓給第二個子通道使用;當?shù)诙€子通道也交換完一個字節(jié)后,又依樣把主通道讓給第三個子通道使用,以此類推。轉(zhuǎn)輪一周后,重又返回由第一個子通道去使用主通道。②數(shù)組選擇通道只含有一個分配型子通道,一段時間內(nèi)只能執(zhí)行一道通道程序、控制一臺設備按數(shù)組方式進行數(shù)據(jù)傳送。通道被某臺設備占用后,便一直處于獨占狀態(tài),直至設備數(shù)據(jù)傳輸完畢釋放該通道,故而通道利用率較低,主要用于連接多臺高速設備。③數(shù)組多路通道是將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道分時并行操作的優(yōu)點相結(jié)合而形成的一種新通道。其含有多個非分配型子通道分別連接在高、中速I/O設備上,子通道按時間片輪轉(zhuǎn)方式共享主通道,按數(shù)組方式進行數(shù)據(jù)傳送,因而既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。4.如何解決因通道不足而產(chǎn)生的瓶頸問題?解決因通道不足而產(chǎn)生的瓶頸問題的最有效方法是增加設備到主機間的通路而不是增加通道。換言之,就是把一個設備連接到多個控制器上,而一個控制器又連接到多個通道上。這種多通路方式不僅可以解決該瓶頸問題,而且能夠提高系統(tǒng)的可靠性,也即不會因為個別通道或控制器的故障而使設備與存儲器之間無法建立通路進行數(shù)據(jù)傳輸。6.試說明推動I/O控制發(fā)展的主要因素是什么?推動I/O控制發(fā)展的主要動力在于盡量減少主機對I/O控制的干預,把主機從繁雜的I/O控制事務中解脫出來,以有更多的時間和精力去完成其數(shù)據(jù)處理任務。同時,中斷機制在計算機系統(tǒng)中的引入、DMA控制器的出現(xiàn)和通道研制的成功使I/O控制的發(fā)展具備了技術(shù)支持和成為可能。7.有哪幾種I/O控制方式?有四種I/O控制方式,即程序I/O控制方式、中斷驅(qū)動I/O控制方式、直接存儲器訪問DMA控制方式及I/O通道控制方式。8.試說明DMA的工作流程.以從磁盤讀入數(shù)據(jù)為例來說明DMA方式的工作流程:當CPU要從磁盤讀入一數(shù)據(jù)塊時,便向磁盤控制器發(fā)送一條讀命令,該命令被送入DMA控制器的命令寄存器CR中。同時,還需發(fā)送本次要將數(shù)據(jù)讀入的內(nèi)存起始目標地址,該地址被送入DMA控制器的內(nèi)存地址寄存器MAR中;本次要讀的字(節(jié))數(shù)則送至DMA控制器的數(shù)據(jù)計數(shù)器DC中。另外,還需將磁盤中數(shù)據(jù)讀取的源地址直接送到DMA控制器的I/O控制邏輯上。然后,啟動DMA控制器進行數(shù)據(jù)傳送。此后,CPU便可去處理其它任務,而整個的數(shù)據(jù)傳送便由DMA控制器負責控制。當DMA控制器已從磁盤中讀入一個字(節(jié))的數(shù)據(jù),并送入DMA控制器的數(shù)據(jù)寄存器DR后,再挪用一個存儲器周期,將該字(節(jié))傳送到MAR所指示的內(nèi)存單元中。接著,便對MAR內(nèi)容加1和將DC內(nèi)容減1。若DC內(nèi)容減1后不為0,表示傳送未完,便準備再傳送下一個字(節(jié)),否則,由DMA控制器發(fā)出中斷請求。參圖所示:9.引入緩沖的主要原因是什么?操作系統(tǒng)引入緩沖機制的主要原因可歸結(jié)為以下幾點:(1)緩和CPU與I/O設備間速度不匹配的矛盾;(2)減少對CPU的中斷頻率,放寬對中斷響應時間的限制;(3)提高CPU與I/O設備之間的并行性。10.在單緩沖情況下,為什么系統(tǒng)對一塊數(shù)據(jù)的處理時間為max(C,T)+M?在塊設備輸入時,先從磁盤把一塊數(shù)據(jù)輸入到緩沖區(qū),耗時為T;然后由操作系統(tǒng)將緩沖區(qū)數(shù)據(jù)傳送給用戶區(qū),耗時為M;接下來便由CPU對這一塊數(shù)據(jù)進行計算,耗時為C。在單緩沖情況下,磁盤把數(shù)據(jù)輸入到緩沖區(qū)的操作和CPU對數(shù)據(jù)的計算過程可以并行展開,所以系統(tǒng)對每一整塊數(shù)據(jù)的處理時間為max(C,T)+M。11.為什么在雙緩沖情況下,系統(tǒng)對一塊數(shù)據(jù)的處理時間為max(C,T)?該方式又稱緩沖對換方式。寫入者花費時間T將數(shù)據(jù)寫滿一個緩沖區(qū)后再寫另一個緩沖區(qū);讀出者花費時間M將一個緩沖區(qū)數(shù)據(jù)送到用戶區(qū)后再傳送另一個緩沖區(qū)數(shù)據(jù),運算者讀出用戶區(qū)進行處理。由于將數(shù)據(jù)從緩沖區(qū)傳送到用戶區(qū)操作必須與讀用戶區(qū)數(shù)據(jù)進行處理串行進行,而且它們又可以與從外存?zhèn)魉蛿?shù)據(jù)填滿緩沖區(qū)的操作并行。因此耗時大約為max(C+M,T)。考慮到M是內(nèi)存中數(shù)據(jù)塊的“搬家”耗時,非常短暫可以省略,因此近似地認為是:max(C,T)。12.試繪圖說明把多緩沖用于輸出時的情況。把多緩沖用于輸出時的情況如圖所示:13.試說明收容輸入工作緩沖區(qū)和提取輸出工作緩沖區(qū)的工作情況。①收容輸入工作緩沖區(qū)的工作情況為:在輸入進程需要輸入數(shù)據(jù)時,調(diào)用GetBuf(EmptyQueue)過程,從EmptyQueue隊列的隊首摘下一個空緩沖區(qū),把它作為收容輸入工作緩沖區(qū)Hin。然后,把數(shù)據(jù)輸入其中,裝滿后再調(diào)用PutBuf(InputQueue,Hin)過程,將該緩沖區(qū)掛在輸入隊列InputQueue的隊尾。②提取輸出工作緩沖區(qū)的工作情況為:當要輸出數(shù)據(jù)時,調(diào)用GetBuf(OutputQueue)過程,從輸出隊列的隊首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū)作為提取輸出的工作緩沖區(qū)Sout。在數(shù)據(jù)提取完后,再調(diào)用PutBuf(EmptyQueue,Sout)過程,將該緩沖區(qū)掛到空緩沖隊列EmptyQueue的隊尾。14.什么是安全分配方式和不安全分配方式?①所謂安全分配方式,是指每當進程發(fā)出I/O請求后,便進入阻塞狀態(tài),直到其I/O操作完成時才被喚醒。在采用這種分配策略時,一旦進程已經(jīng)獲得某種設備(資源)后便阻塞,使它不可能再請求任何資源,而在它運行時又不保持任何資源。因此,這種分配方式已經(jīng)摒棄了造成死鎖的四個必要條件之一的“請求和保持”條件,所以分配是安全的。其缺點是進程進展緩慢,即CPU與I/O設備是串行工作的。②所謂不安全分配方式,是指進程發(fā)出I/O請求后仍繼續(xù)執(zhí)行,需要時又可發(fā)出第二個I/O請求、第三個I/O請求。僅當進程所請求的設備已被另一個進程占有時,進程才進入阻塞狀態(tài)。其優(yōu)點是一個進程可同時操作多個設備,從而使進程推進迅速。而缺點是分配不安全,因為它可能具有“請求和保持”條件,所以可能造成死鎖。因此,在設備分配程序中還需增加一個功能,用于對本次的設備分配是否會發(fā)生死鎖進行安全性計算,僅當計算結(jié)果說明分配是安全的情況下才進行分配。15.為什么要引入設備獨立性?如何實現(xiàn)設備獨立性?在現(xiàn)代操作系統(tǒng)中,為了提高系統(tǒng)的可適應性和可擴展性,都毫無例外地實現(xiàn)了設備獨立性,也即設備無關(guān)性。其基本含義是,應用程序獨立于具體使用的物理設備,即應用程序以邏輯設備名稱來請求使用某類設備。進一步說,在實現(xiàn)了設備獨立性的功能后,可帶來兩方面的好處:(1)設備分配時的靈活性;(2)易于實現(xiàn)I/O重定向(指用于I/O操作的設備可以更換即重定向,而不必改變應用程序)。為了實現(xiàn)設備的獨立性,應引入邏輯設備和物理設備兩個概念。在應用程序中,使用邏輯設備名稱來請求使用某類設備;而系統(tǒng)執(zhí)行時,是使用物理設備名稱。鑒于驅(qū)動程序是一個與硬件(或設備)緊密相關(guān)的軟件,必須在驅(qū)動程序之上設置一層軟件,稱為設備獨立性軟件,以執(zhí)行所有設備的公有操作、完成邏輯設備名到物理設備名的轉(zhuǎn)換(為此應設置一張邏輯設備表)并向用戶層(或文件層)軟件提供統(tǒng)一接口,從而實現(xiàn)設備的獨立性。16.在考慮到設備的獨立性時,應如何分配獨占設備?在考慮到設備的獨立性時,應按如下步驟來分配獨占設備:(1)進程以邏輯設備名提出I/O請求。(2)根據(jù)邏輯設備表相應表項獲得I/O請求的邏輯設備對應類型的物理設備在系統(tǒng)設備表中的指針。(3)從指針所指位置起順序檢索系統(tǒng)設備表,直到找到一個屬于對應I/O請求所用類型、空閑可用且基于設備分配安全性算法驗證為安全分配的設備的設備控制表,將對應設備分配給請求進程;如果未找到安全可用的空閑設備,則把請求進程的進程控制塊掛到相應類型設備的等待隊列上等待喚醒和分配。(4)系統(tǒng)把設備分配給I/O請求進程后,再到該設備的設備控制表中找出與其相連接的控制器的控制器控制表,根據(jù)其狀態(tài)字段判斷該控制器是否忙碌,若忙則把請求進程的進程控制塊掛到該控制器的等待隊列上;否則將該控制器分配給進程。(5)系統(tǒng)把控制器分配給I/O請求進程后,再到該控制器的控制器控制表中找出與其相連接的通道的通道控制表,根據(jù)其狀態(tài)字段判斷該通道是否忙碌,若忙則把請求進程的進程控制塊掛到該通道的等待隊列上;否則將該通道分配給進程。(6)只有在設備、控制器和通道三者都分配成功時,這次的設備分配才算成功,然后便可啟動設備進行數(shù)據(jù)傳送。17.什么是設備虛擬?實現(xiàn)設備虛擬時所依賴的關(guān)鍵技術(shù)是什么?通過虛擬技術(shù)可將一臺獨占設備變換成若干臺邏輯設備,供若干個用戶(進程)同時使用,通常把這種經(jīng)過虛擬技術(shù)處理后的設備稱為虛擬設備。其實現(xiàn)所依賴的關(guān)鍵技術(shù)是SPOOLING技術(shù)。18.試說明SPOOLing系統(tǒng)的組成。SPOOLing系統(tǒng)是對脫機I/O工作的模擬,其必須有高速隨機外存(通常采用磁盤)的支持。SPOOLING系統(tǒng)主要有以下四個部分:(1)輸入井和輸出井,為磁盤上開辟的兩大存儲空間,分別模擬脫機輸入/出時的磁盤,并用于收容I/O設備輸入的數(shù)據(jù)和用戶程序的輸出數(shù)據(jù);(2)輸入緩沖區(qū)和輸出緩沖區(qū),在內(nèi)存中開辟,分別用于暫存由輸入設備和輸出井送來的數(shù)據(jù);(3)輸入進程SPi和輸出進程SPo,分別模擬脫機輸入/出時的外圍控制機,用于控制I/O過程;(4)I/O請求隊列,由系統(tǒng)為各個I/O請求進程建立的I/O請求表構(gòu)成的隊列。19.在實現(xiàn)后臺打印時,SPOOLing系統(tǒng)應為請求I/O的進程提供哪些服務?在實現(xiàn)后臺打印時,SPOOLING系統(tǒng)應為請求I/O的進程提供以下服務:(1)由輸出進程在輸出井中為之申請一空閑盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;(2)輸出進程再為用戶進程申請一張空白的用戶打印表,并將用戶的打印要求填入其中,再將該表掛到請求打印隊列上。(3)一旦打印機空閑,輸出進程便從請求打印隊列的隊首取出一張請求打印表,根據(jù)表中的要求將要打印的數(shù)據(jù)從輸出井傳送到內(nèi)存緩沖區(qū),再由打印機進行打印。20.試說明設備驅(qū)動程序具有哪些特點.設備驅(qū)動程序具有如下特點:(1)驅(qū)動程序主要是在請求I/O的進程與設備控制器之間的一個通信程序;(2)驅(qū)動程序與I/O設備的特性緊密相關(guān);(3)驅(qū)動程序與I/O控制方式緊密相關(guān);(4)驅(qū)動程序與硬件緊密相關(guān),因而其中的一部分程序必須用匯編語言書寫,且基本部分往往已被固化在ROM中。21.試說明設備驅(qū)動程序應具有哪些功能.設備驅(qū)動程序的主要功能包括:(1)將接收到的抽象要求轉(zhuǎn)為具體要求;(2)檢查用戶I/O請求的合法性,了解I/O設備的狀態(tài),傳遞有關(guān)參數(shù),設置設備的工作方式;(3)發(fā)出I/O命令,啟動分配到的I/O設備,完成指定的I/O操作;(4)及時響應由控制器或通道發(fā)來的中斷請求,并根據(jù)其中斷類型調(diào)用相應的中斷處理程序進行處理;(5)對于設置有通道的計算機系統(tǒng),驅(qū)動程序還應該能夠根據(jù)用戶的I/O請求,自動地構(gòu)成通道程序。22.設備驅(qū)動程序通常要完成哪些工作?設備驅(qū)動程序通常要完成以下工作:(1)將抽象要求轉(zhuǎn)換為具體要求;(2)檢查I/O請求的合法性;(3)讀出和檢查設備的狀態(tài);(4)傳送必要的參數(shù);(5)設置工作方式;(6)啟動I/O設備。22.設備中斷處理程序通常需完成哪些工作?設備中斷處理程序通常需完成如下工作:(1)喚醒被阻塞的驅(qū)動程序進程;(2)保護被中斷進程的CPU環(huán)境;(3)分析中斷原因、轉(zhuǎn)入相應的設備中斷處理程序;(4)進行中斷處理;(5)恢復被中斷進程的現(xiàn)場第六章1.分別就數(shù)據(jù)項、記錄和文件的概念進行解釋。數(shù)據(jù)項可分為基本數(shù)據(jù)項和組合數(shù)據(jù)項?;緮?shù)據(jù)項是用于描述一個對象某種屬性的字符集,是數(shù)據(jù)組織中可以命名的最小邏輯數(shù)據(jù)單位,又稱為原子數(shù)據(jù)、數(shù)據(jù)元素或字段,其具有數(shù)據(jù)名、數(shù)據(jù)類型及數(shù)據(jù)值三個特性。組合數(shù)據(jù)項則由若干數(shù)據(jù)項構(gòu)成。記錄是一組相關(guān)數(shù)據(jù)項的集合,用于描述一個對象某方面的屬性。文件是具有文件名的一組相關(guān)信息的集合。2.文件系統(tǒng)的模型可分為三層,試說明其每一層所包含的基本內(nèi)容。答:文件系統(tǒng)模型如圖所示:(1)最低層為對象及其屬性說明,主要包括文件、目錄、磁盤存儲空間等三類對象。(2)最高層是文件系統(tǒng)提供給用戶的接口,分為命令接口、程序接口和圖形化用戶接口等三種類型。(3)中間層是對對象進行操縱和管理的軟件集合,是文件系統(tǒng)的核心部分,擁有文件存儲空間管理、文件目錄管理、地址映射、文件讀寫管理及文件共享與保護等諸多功能。具體又可分為四個子層:①I/O控制層(又稱為設備驅(qū)動程序?qū)樱?,主要由磁盤驅(qū)動程序和磁帶驅(qū)動程序組成,負責啟動I/O設備和對設備發(fā)來的中斷信號進行處理;②基本文件系統(tǒng)層(又稱為物理I/O層),主要用于處理內(nèi)存與磁盤或磁帶機系統(tǒng)之間數(shù)據(jù)塊的交換,通過向I/O控制層發(fā)送通用指令及讀寫的物理盤塊號與緩沖區(qū)號等I/O參數(shù)來完成;③基本I/O管理程序?qū)樱次募M織模塊層),負責完成與磁盤I/O有關(guān)的大量事務,包括文件所在設備的選定、文件邏輯塊號到物理塊號的轉(zhuǎn)換、空閑盤塊的管理及I/O緩沖的指定等;④邏輯文件系統(tǒng)層,負責所讀寫的文件邏輯塊號的確定、目錄項的創(chuàng)建與修改、文件與記錄的保護等。文件系統(tǒng)接口對對象操縱和管理的軟件集合 邏輯文件系統(tǒng) 基本I/O管理程序(文件組織模塊) 基本文件系統(tǒng)(物理I/O層) I/O控制層(設備驅(qū)動程序)對象及其屬性說明6.試說明關(guān)于索引文件和索引順序文件的檢索方法。答:①對索引文件進行檢索時,首先根據(jù)用戶(程序)提供的關(guān)鍵字,并利用折半查找法檢索索引表,從中找到相應的表項;再利用該表項中給出的指向記錄的指針值,去訪問對應的記錄。②對索引順序文件進行檢索時,首先利用用戶(程序)提供的關(guān)鍵字以及某種查找方法,去檢索索引表,找到該記錄所在記錄組中的第一條記錄的表項,從中得到該記錄組第一個記錄在主文件中的位置;然后再利用順序查找法去查找主文件,從而找到所要求的記錄。索引文件的檢索:首先是根據(jù)用戶(程序)提供的關(guān)鍵字,并利用折半查找法,去檢索索引表,從中找到相應的項,再利用該表項中給出的指向記錄的指針值,去訪問所需的記錄。 索引順序文件檢索:首先利用用戶(程序)提供的關(guān)鍵字以及某種查找方法,去檢索索引表,找到該記錄所在記錄組中第一個記錄的表項,從中得到該記錄組第一個記錄在主文件中的位置;然后,再利用順序查找法去查找主文件,從中找到所要求的記錄。7.試從檢索速度和存儲費用兩方面對索引文件和索引順序文件進行比較。假設主文件擁有N條記錄。對于索引文件,主文件的每條記錄均需配置一個索引項,故存儲開銷為N;而為檢索到具有指定關(guān)鍵字的記錄,平均需要查找N/2條記錄。對于索引順序文件,應為每個記錄分組配置一個索引項,故存儲開銷為N1/2;而為檢索到具有指定關(guān)鍵字的記錄,平均需要查找N1/2條記錄。對于兩級索引順序文件,存儲開銷為N2/3+N1/3;而為檢索到具有指定關(guān)鍵字的記錄,平均需要查找1.5N1/3條記錄。17.對目錄管理主要有哪些要求?答:對文件目錄的管理有以下要求:a)實現(xiàn)“按名存取”b)提高對目錄的檢索速度c) 文件共享d)允許文件重名18.采用單級目錄能否滿足目錄管理的主要要求?采用單級目錄只能實現(xiàn)目錄管理的基本功能(即文件的按名存?。?,而對于其它三項要求則不能滿足。19.目前廣泛采用的目錄結(jié)構(gòu)形式是什么?它有什么優(yōu)點?目前廣泛采用的目錄結(jié)構(gòu)形式是樹型目錄結(jié)構(gòu),其具有檢索效率高、允許重名、便于實現(xiàn)文件共享等一系列優(yōu)點。20.Hash檢索法有何優(yōu)點?有何局限性?又稱雜湊結(jié)構(gòu)或散列結(jié)構(gòu)。這種結(jié)構(gòu)只適用于定長記錄文件和按記錄隨機查找的訪問方式。Hash結(jié)構(gòu)的思想是通過計算來確定一個記錄在存儲設備上的存儲位置,依次先后存入的兩個記錄在物理設備上不一定相鄰。按Hash結(jié)構(gòu)組織文件的兩個關(guān)鍵問題是:?定義一個雜湊函數(shù);?解決沖突;?22.解釋關(guān)于樹型目錄結(jié)構(gòu)采用線性檢索法的檢索過程。假設用戶給定的文件路徑名為/Level1/Level2/…/Leveln/datafile,則關(guān)于樹型目錄結(jié)構(gòu)采用線性檢索法檢索該文件的基本過程為:①讀入第一個文件分量名Level1,用它與根目錄文件(或當前目錄文件)中各個目錄項的文件名順序地進行比較,從中找出匹配者,并得到匹配項的索引結(jié)點號,再從對應索引結(jié)點中獲知Level1目錄文件所在的盤塊號,將相應盤塊讀入內(nèi)存。②對于2~n,循環(huán)執(zhí)行以下步驟,以檢索各級目錄文件:讀入第i個文件分量名Leveli,用它與最新調(diào)入內(nèi)存的當前目錄文件中各個目錄項的文件名順序地進行比較,從中找出匹配者,并得到匹配項的索引結(jié)點號,再從對應索引結(jié)點中獲知Leveli目錄文件所在的盤塊號,將相應盤塊讀入內(nèi)存。③讀入最后一個文件分量名即datafile,用它與第n級目錄文件中各個目錄項的文件名進行比較,從而得到該文件對應的索引結(jié)點號,進而找到該文件物理地址,目錄查找操作成功結(jié)束。如果在上述查找過程中,發(fā)現(xiàn)任何一個文件分量名未能找到,則停止查找并返回“文件未找到”的出錯信息。26.基于索引結(jié)點的共享方式有哪些優(yōu)缺點?就基于索引結(jié)點的共享方式而言,其優(yōu)點在于“建立新的共享鏈接,并不改變文件擁有者的關(guān)系,僅把索引結(jié)點共享計數(shù)器加1,所以系統(tǒng)可方便獲悉由多少個目錄項指向該文件”。同時,該方式也存在所謂“懸空指針”的問題和缺點。具體而言,文件擁有者不能刪除自己的文件,否則將留下指向該結(jié)點的懸空指針,造成該結(jié)點再分配時,系統(tǒng)出錯;為此,擁有者只能清除自己的目錄項,且要為其它共享者無端付費,直至其它共有者清除該文件?27.基于符號鏈的文件共享方式有哪些優(yōu)缺點?就基于符號鏈的文件共享方式來說,只有文件主才擁有指向其索引結(jié)點的指針,而共享該文件的其它用戶只有該文件的路徑名且沒有指向索引結(jié)點的指針,所以也就不會發(fā)生在文件主刪除共享文件后留下所謂“懸空指針”的問題。當文件擁有者把一個共享文件刪除后,其它用戶試圖通過符號鏈來訪問一個被刪除的共享文件時將因系統(tǒng)找不到該文件而使訪問失敗,于是將符號鏈刪除,此時不會有任何其它負面效應。當然,這種方式也存在自己的問題。在其它用戶訪問共享文件時,系統(tǒng)是根據(jù)給定的文件路徑名,逐個分量地去查找目錄,直至找到該文件的索引結(jié)點。因此,在訪問共享文件時要多次讀盤,使每次訪問文件的系統(tǒng)開銷加大,且增加了啟動磁盤的頻率。此外,要為每個共享用戶建立一條符號鏈,而該鏈實際上是一個文件,盡管該文件非常簡單,卻仍需為之配置一個索引結(jié)點,故而也要消耗一定的磁盤空間。需要指出的是,本共享方式還有一個特殊的優(yōu)點,即它能夠用于鏈接(通過計算機網(wǎng)絡)世界上任何地方的機器中的文件,此時只需提供該文件所在機器的網(wǎng)絡地址以及在該機器中的文件路徑。25.空閑磁盤空間的管理常采用哪幾種方式?UNIX系統(tǒng)采用的是何種方式?空閑磁盤空間的管理常采用以下幾種方法:(1)空閑表法,屬于連續(xù)分配方式,它與內(nèi)存管理中的動態(tài)分區(qū)分配方式相似。(2)空閑鏈表法,將所有空閑盤區(qū)鏈接成一條空閑鏈。根據(jù)構(gòu)成鏈的基本元素不同,可分為空閑盤塊鏈和空閑盤區(qū)鏈。(3)位示圖法,利用二進制的一位來表示磁盤中每一個盤塊的使用情況,磁盤上的所有盤塊都有一個二進制位與之對應,從而由所有盤塊所對應的位構(gòu)成一個集合,即位示圖。(4)成組鏈接法,結(jié)合空閑表法和空閑鏈表法而形成。UNIX系統(tǒng)采用的是成組鏈接法28.在第一級磁盤容錯技術(shù)中,包括那些容錯措施?什么是寫后讀校驗?在第一級磁盤容錯技術(shù)中,包括以下容錯措施:(1)雙份目錄和雙份文件分配表。在磁盤上存放的文件目錄和文件分配表FAT均為文件管理所用的重要數(shù)據(jù)結(jié)構(gòu),所以為之建立備份。在系統(tǒng)每次加電啟動時,都要對兩份目錄和兩份FAT進行檢查,以驗證它們的一致性。(2)熱修復重定向和寫后讀校驗,二者均用于防止將數(shù)據(jù)寫入有缺陷的盤塊中。就熱修復重定向而言,系統(tǒng)將一定的磁盤容量作為熱修復重定向區(qū),用于存放當發(fā)現(xiàn)盤塊有缺陷時的待寫數(shù)據(jù),并對寫入該區(qū)的所有數(shù)據(jù)進行登記,方便將來對數(shù)據(jù)進行訪問。而寫后讀校驗則是為了保證所有寫入磁盤的數(shù)據(jù)都能寫入到完好的盤塊中,故在每次從內(nèi)存緩沖區(qū)向磁盤中寫入一個數(shù)據(jù)塊后,應立即從磁盤上讀出該數(shù)據(jù)塊并送至另一緩沖區(qū)中,再將該緩沖區(qū)中內(nèi)容與原內(nèi)存緩沖區(qū)中在寫后仍保留的數(shù)據(jù)進行比較,若兩者一致,便認為此次寫入成功,可繼續(xù)寫入下一個盤塊;否則,則重寫。若重寫后兩者仍不一致,則認為該盤塊有缺陷,此時便將應寫入該盤塊的數(shù)據(jù)寫入熱修復重定向區(qū)中,并將該損壞盤塊的地址,記錄在壞盤塊表中。12.某計算機系統(tǒng)磁盤容量為520MB,盤塊大小為1KB。其中前4MB用于存放索引結(jié)點等,后10MB用作對換區(qū),采用成組鏈接法管理外存空間,每組100個盤塊。試畫出外存尚未使用的成組鏈接圖。根據(jù)題意,該計算機系統(tǒng)尚未使用的外存空間為(520MB-4MB-10MB=506MB),即506K(也就是518144)個盤塊,其盤塊號為4K#~510K#(即4096#~522239#)。而每組100個盤塊,故共有5182個盤塊組,其中最后一個盤塊組含44個盤塊。因此,外存尚未使用的成組鏈接圖如下所示:29.在第二級磁盤容錯技術(shù)中,包括那些容錯措施?在第二級磁盤容錯技術(shù)中,包括以下容錯措施:(1)磁盤鏡像。在同一磁盤控制器下增設一個完全相同的磁盤驅(qū)動器,在每次向文件服務器的主磁盤寫入數(shù)據(jù)后,都要采用寫后讀校驗方式,將數(shù)據(jù)再同樣地寫到備份磁盤上,使二者具有完全相同的位像圖。(2)磁盤雙工。將兩臺磁盤驅(qū)動器分別接到兩個磁盤控制器上,同樣使這兩臺磁盤機鏡像成對,從而在磁盤控制器發(fā)生故障時,起到數(shù)據(jù)保護作用。在磁盤雙工時,由于每一個磁盤都有著自己的獨立通道,故可以同時(并行)地將數(shù)據(jù)寫入磁盤。在讀入數(shù)據(jù)時,可采用分離搜索技術(shù),從響應快的通道上取得數(shù)據(jù),因而加快了對數(shù)據(jù)的讀取速度。第七章1.操作系統(tǒng)包括哪幾種類型的用戶接口?它們分別提供給誰使用?操作系統(tǒng)包括三種類型的用戶接口:命令接口(具體又可分為聯(lián)機命令接口與脫機命令接口)、程序接口及圖形化用戶接口。其中,命令接口和圖形化用戶接口支持用戶直接通過終端來使用計算機系統(tǒng),而程序接口則提供給用戶在編制程序時使用。2.聯(lián)機命令接口由哪些部分構(gòu)成?聯(lián)機命令接口由一組聯(lián)機命令、終端處理程序和命令解釋程序構(gòu)成。3.聯(lián)機命令通常包含哪些類型?每種類型又包含哪些主要命令?聯(lián)機命令通常包含哪些類型?每種類型又包含哪些主要命令?聯(lián)機命令通常包含如下類型:(1)系統(tǒng)訪問類,主要是注冊命令;(2)磁盤操作類,包括磁盤格式化、軟盤復制、軟盤比較及備份等命令;(3)文件操作類,包括文件內(nèi)容顯示、文件拷貝、文件比較、文件重命名、文件刪除等命令;(4)目錄操作類,包括子目錄建

溫馨提示

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

評論

0/150

提交評論