操作系統題庫之簡答題部分(個人整理,附帶答案)


                                                             問答題題庫

 

寫題真是一種不錯的總結方式,期末不用復習了,哈哈哈哈哈哈哈哈哈哈哈

 

1、 什么是操作系統?有哪些基本功能?

操作系統定義:

操作系統是計算機系統中的一個系統軟件,它是這樣一些程序模塊的集合---他們管理和控制計算機系統中

的硬件及軟件資源,合理的組織計算機工作流程,以便有效的利用這些資源為用戶提供一個具有足夠的功

能,使用方便,可擴展,安全可管理的工作環境,從而在計算機和用戶之間起到接口的作用

基本功能:

1)處理機管理

在單道作業或者單用戶的情況下,處理機為一個作業或者一個用戶獨占,對處理機的管理十分簡單,單在多

道程序或者多用戶的情況下,要組織多個作業同時運行,就要組織==解決處理機分配調度策略,分配實施

和資源回收等問題,這就是處理機管理功能(正式因為處理機管理功能的不同,所以就有了各種操作系統)

2)儲存管理:對儲存器進行分配,保護,擴充的管理

內存分配:在內存中除了操作系統和各種系統軟件外,還有一個或多個用戶程序,如何分配內存,以保證系

統及各用戶程序的儲存區互不沖突,這就是內存分配的問題

儲存保護:保護正在運行的多個程序不會破壞另一個程序,保證用戶程序不會破壞系統程序,這就是儲存保

護要考慮的問題

內存擴充:當用戶作業所需要的內存容量遠超過計算機能提供的內存容量之時,如何把內部儲存器和外部儲

存器結合起來,為用戶提供一個容量比實際內存大的多的虛擬儲存器,而用戶使用這個虛擬儲存器和內存的

使用一樣方便,這就是內存擴充需要考慮的問題

3)設備管理

通道,控制器,輸入輸出設備的管理:現代計算機常常配置有種類很多的輸入輸出設備,這些設備具有很不

相同的操作性能,特別是他們對信息傳輸和處理的速度差別很大,並且他們常常是通過通道控制器和主機發

生聯系的,設備管理的任務就是根據一定的分配策略,把通過,控制器,輸入輸出設備分配給請求輸入輸出

操作的程序,並啟動設備完成實際的輸入輸出操作,為了盡可能的發揮設備和主機並行工作的能力,常常需

要采用虛擬技術和緩沖技術

設備獨立性:輸入輸出設備很多,使用方法各不相同,設備管理應該為用戶提供一個良好的界面,而不必去

涉及具體的特性,以方便用戶能使用這些設備

4)文件系統管理(針對軟件資源的管理)

信息的儲存,共享,保密和保護

5) 用戶接口:程序級接口,作業級接口

程序級接口:提供一組廣義指令供用戶程序和其他系統程序調用(或叫系統調用或者程序請求)

作業級接口:提供一組控制操作命令,供用戶去組織和控制自己作業的運行(shell)

 

2、單核操作系統與微核操作系統有啥區別?各有什么優缺點?

單核操作系統簡單理解就是單一內核,宏內核,編寫難,修改難,效率高,效率比其他系統高很多,每一個

模塊又都獨立服務於操作,內核代碼高度集成,但是所有的模塊都在同一內核空間運行,一個很小的BUG

都回導致整個系統崩潰

微核就是把單核改了下,把系統服務的實現和系統的基本操作規則分離開來,這樣不至於因為一個小BUG

而整個系統崩潰,便於維護,但是性能上要比單核低一些

 

3、為什么機器要分成至少兩種狀態:核態和用戶態?開機時機器應處於哪種狀態?為什么?

為什么分核態核用戶態:計算機里面又兩種不同的程序:系統程序核用戶程序,兩種程序又不同的對資源核

機器指令的使用權限,所以需要划分兩個狀態

內核態

 

4、操作系統提供哪些虛擬技術?

 

5、什么是並行?什么是並發?

並行:一組程序按照獨立的,異步的速度執行

並發:一個程序段的執行尚未結束,另一個程序段的執行已經開始

 

6.簡述系統調用的工作機制

用戶在執行特權指令時,調用系統調用,陷入內核(不同的任務,所對應的系統調用號也不同,在調用系統

調用陷入內核時,回向OS內核傳入一個系統調用)

進入內核后,根據系統調用號查找系統調用表,找到對應的系統調用處理代碼,內核執行完系統調用處理代

碼之后,從核心態返回用戶態

 

7.上面是多道程序涉及技術,它對操作系統的形成起到什么作用?

  所謂的多道程序設計技術,即通過軟件手段,運行在計算機內存中同時存放幾道相互獨立的作用程序,讓

他們對系統中的資源進行共享核競爭,以使系統中各種資源盡可能的滿負荷工作,從而提高整個計算機系統

的效率,基於這種考慮,計算機科學家開始把cpu,儲存器,外部設備以及各種軟件都視為計算機的資源,

並逐步設計出一種軟件來管理這些資源,不僅使他們能得到合理的利用,而且還要高校的利用,具有這種功

能的軟件技術操作系統,所以多道程序設計的出現,加快了操作系統的誕生

 

8.怎么理解虛擬機的概念?

  拿操作系統來說吧,它是在裸機上加載的第一層軟件,是對計算機硬件系統功能的首次擴充,從用戶角度

看,計算機配置了操作系統后,由於操作系統隱蔽了硬件復雜的細節,用戶回感到機器使用起來更方便,容

易了,這樣,通過操作系統的作用展現在用戶面前的是一台功能經過擴展了的機器,折騰機器不是硬件搭建

而成的,現實生活中並不存在具有這種功能的真實機器,它只是用戶的一種感覺而已,所以,技把這樣的機

器叫做虛擬機

 

9.對於分時系統,怎么理解“從宏觀上看,多個用戶同時工作,共享系統的資源,從微觀上看,各終端程序是輪流運行一個時間片”?

在分時系統中,系統把cpu時間划分成許多時間片,每個終端用戶可以使用一個由時間片規定的cpu時間,

多給終端用戶就可以輪流的使用cpu,這樣的效果是每個終端都開始了自己的工作,得到了及時的響應,也

就是說“從宏觀上看,多個用戶同時工作,共享資源”,但實際上,cpu在每一時刻只為一個終端服務,

即”從微觀上看,各終端程序是輪流運行一個時間片“

 

10.操作系統包括哪些功能?

處理機管理功能:包括作用核進程調度,進程控制和進程通信

儲存器管理功能:包括內存分配,地址映射,內存保護和內存擴充

設備管理功能:包括緩沖區管理,設備分配,設備驅動,設備無關性

文件管理功能:包括文件存儲空間管理,文件操作的一般管理,目錄管理,文件讀寫管理,存取控制和保護

用戶接口:命令接口,程序接口,圖形接口

 

12.核心模式和用戶模式

核心模式一般指操作系統管理程序的運行的狀態,具有較高的特權級別

用戶模式一般指用戶程序運行時的狀態,具有較低的特權級別

當處理器處於管態(核態)時,全部指令包括特權指令都可以執行,可使用所有資源,並具有改變處理器狀

態的能力,當處理器處於用戶模式時,就只能執行非特權指令,特權級別不同,可以運行指令集合也不同,

特權級別越高,可以允許指令集合越大,高特權級別對於的可運行指令集合保護特權階級的,核心模式道用

戶模式的唯一途徑是通過中斷

 

13.操作系統提高的服務由哪些?

程序執行,IO操作,文件系統處理,通信,錯誤檢查,資源分配,用戶管理,保護

 

14.操作系統的結構由哪些,各種的優缺點

簡單結構,層次話設計,微內核

優缺點:

 

15,虛擬機的優點:

兩個,一個是通過完全的保護系統資源,虛擬機提供了一個健壯的安全保護層

另一個是虛擬機尋址在不干擾正常系統操作的情況下進行系統開發

 

16、 一個CPU,PCB表有100行,任一時刻,最多有多少個進程處於運行態、就緒態、等待狀態?如果有n個CPU,請回答同樣的問題。

1,99,100

n,99n,100n

 

17.畫出除基本狀態外還包含創建,終止狀態的變遷圖

 

18.進程之間通訊的方式有哪幾種?

共享儲存器

消息傳遞

管道

 

19.在多道程序設計中,如何理解”內存中的多個程序執行過程交織在一切,大家都在走走停停“這樣一個現象?

在多道程序設計系統中,內存中存放多個程序,因此,從宏觀上看,這些程序都開始了自己的工作,但是cpu只有一個,在任何時刻cpu只能執行一個進程程序,所以這些進程程序的執行過程是交織在一起的,也就是說,從微觀上看,每個進程一會兒向前走,一會兒又停步不前,處於一種走走停停的的狀態之中

 

20.什么是原語,特權指令,系統調用指令,訪管指令,他們之間有無一定聯系?

特權指令和訪管指令都是cpu指令系統中的指令,只是前者是一些只能在管態下執行的指令,后者是一條只

能在目態下執行的指令,原語和系統調用命令都是操作系統中的功能程序,只是前者執行時不能被其他程序

打斷,后者沒有這個要求,操作系統中有些系統調用命令是以原語形式出現的,例如創建進程就是一條原語

式的系統調用命令,但並不是所有系統調用命令都是原語,以為如果那樣的話,整個系統的並發性就不可能得到充分發揮

 

21.操作系統是如何處理源程序中出現的系統調用命令的?

編譯程序總是把源程序中的系統調用命令改寫成為一條訪管指令和相應參的參數,這樣在程序被實際執行

時,就通過訪管指令進入操作系統,到達調用操作系統功能子程序的目的

 

22.系統調用與一般過程調用有什么區別

系統調用是指在用戶程序中調用操作系統提供的功能子程序,一般的過程調用是指在一個程序中調用另一個

程序,因此他們之間有如下三點區別:

1).一般的過程調用,調用者與被調用者都允許在相同的CPU狀態,即或都處於目態(用戶程序調用用戶程序),或都處於管態,(系統程序調用系統程序),但發生系統調用時,發出調用命令的調用者運行在目態,而被調用的對象卻運行在管態,即調用者和被調用者運行在cpu的不同狀態

2)一般的過程調用,是直接通過轉移指令轉向被調用的程序,但發生系統調用時,只能通過訪管指令提供一個同一的入口,由目態進入管態,進分析后,才轉向相應的操作系統命令程序處理

3)一般的過程調用,在被調用者執行完后,就徑直返回端點繼續執行,但系統調用可能會導致進程狀態的變化,從而引起系統重新分配處理機,因此系統調用結束后,不一定是返回調用者斷點處繼續執行

 

23.試述創建進程原語的主要功能

創建進程原語主要功能有三:

為新進程申請一個PCB

為創建者(即父進程)提供的新進程信息填入PCB中

將新建進程設置為就緒狀態,並按照所采用的調度算法,把PCB排入就緒隊列中

 

24.處於阻塞狀態的一個進程,它所等待的事件發生時,就把它的狀態由阻塞改為就緒,讓它到就緒隊列里

排隊,為什么不直接將他投入運行呢?

如果處於阻塞狀態的一個進程,在它所等待的時間發生時就徑直投入運行(也就是把cpu從當前運行的進程

的手中搶過來),那么系統就無法控制cpu這種資源的管理和使用,進而也就失去了設置操作系統的作用,

所以,阻塞狀態的進程在它所等待的事件發生時,必須先進入就緒隊列,如何再取考慮cpu的問題

 

25.作用調度和進程調度有什么區別?

作用調度和進程調度(即cpu調度)都涉及到cpu的分配,但作用調度只是選參加CPU競爭的作用,它並不

具體分配cpu,而進程調度是在作用調度完成后的基礎上,把cpu真正分配給某一個具體的進程使用

 

26.系統中的各種進程隊列都是由進程的PCB鏈接而成,當一個進程的狀態從阻塞變為就緒狀態時,它的p

cb從那個隊列移到那個隊列?它所對應的程序也要跟着移來移去嗎?,為什么?

當一個進程狀態從阻塞變成就緒時,它的pcb就從原先的阻塞隊列移到到就緒隊列里,把進程的pcb從這個

隊列移到另一個隊列時,只移到進程的pcb,進程所對應的程序是不動的,這是以為在進程的pcb里,總是

記錄由它的程序的斷點信息,知道了斷點信息,就能夠知道程序當前應該從那里開始往下執行了,這正是保

護現場所起的作用

 

27.為什么說響應比高者優先作業調度算法是對先來先服務以及短作業優先這兩種調度算法的折中?

先來先服務的作用調度算法,重點考慮的是作業在后備作業隊列里的等待時間,因此對短作業不利,短作業

優先的作業調度算法,重點考慮的是作業所需的cpu時

間(當然,這個是用戶自己估計的),因此對長作業不利,響應比高者優先作業調度算法,總是在需要調度

時,考慮作業以及等待的時間和所需運行時間之比,即:改作業已等待時間/該作業所需cpu時間

不難看出,這個比值的分母是一個不變的量,隨着時間的推移,一個作業的已等待時間會不斷發生變化,也

就是分子在不斷的變化,顯然,短作業比較容易獲得較高的響應比,這是以為它的分母比較小,只要稍加等

待,整個比值就會很快上升,另一方面,長作業的分母雖然很大,但隨着等待時間的增加,比值也會逐漸的

上升,從而獲得較高的響應比,根據這種分析,可見隨着響應比高者優先的作業調度算法,即照顧了短作業

的利益,也照顧了長作業的利益,是對先來先服務以及短作業優先這兩種調度算法的一種折中

 

28.短作業優先調度算法總能得到最小平均周轉時間嗎?為什么(所有作業的完成時間減去到達時間除以作業數)

短作業優先調度算法只有在所有作業同時到達后備作業隊列時,才能得到最小的平均周轉時間,如果各作業

不是同時到達的,這個結論是不成立的,可以用反例說明:例如,考慮5個作業A~E,運行時間分別是2,

4,1,1,1到達時間分別是0,0,3,3,3按照短作業優先原則,最初只有A和B可以參與選擇,因為其他

三個還沒有到達,於是運行順序應該是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個作業並沒有同時到達

 

29,進程A和B共享一個變量,因此在各自程序里都有各種的臨界區,現在進程A在臨界區里,試問進程A的執行能被別的進程打斷嗎?能夠被進程B打斷嗎?(這里打斷的意思是調度新進程的運行,使進程A短暫執行)

當進程A在自己的臨界區里執行時,能夠被別的進程打斷,沒有任何限制,當進程A在自己的臨界區執行

時,能夠被B進程打斷,不過這種打斷是由限制的,即當進程B要求進入到自己的臨界區時,就會被阻塞,

這是因為它在打斷進程A時,A在臨界區里面沒有出來,既然A在臨界區,那么B就無法進入自己的臨界區

 

30.信號量上的P,V操作只是對信號量的值進行加1減1嗎?在信號量上還能執行除P,V操作外的其他操作嗎?

根據信號量的定義可知,P,V操作並非只是對信號量進行加1或減1的操作,更重要的是要在加1減1之后,

判斷運算的結果,對於p操作,判定后調用進程自己有可能繼續運行,也可能阻塞等待,對於V操作,判斷

后調用進程自己最后總是繼續運行,但之前可能會喚醒信號隊列上等待的進程

在信號量上出來能執行pv操作外,不能執行其他任何操作

 

32.系統有輸入機和打印機各一台,均采用p-v操作來實現分配和釋放,現在有兩個進程都要使用他們,這會發生死鎖嗎?試說明理由

采用信號量上的pv操作,只能正確的完成對設備的申請與釋放,但不能控制進程對設備的申請,釋放順序,因此當進程申請和釋放設備的順序不當時,仍會發生死鎖,例如進程A使用輸入機和打印機的順序是:請求打印機->請求輸入機->釋放打印機->釋放輸入機,進程B使用輸入機和打印機的順序是:請求輸入機—>請求打印機—>釋放輸入機—>釋放打印機

 

33.一台計算機有6台磁帶機,有n個進程競爭使用,emigrants進程最多需要兩台,那么n為多少時,系統才不存在死鎖危險?

由於1每個進程最多需要兩台磁帶機,考慮極端情況:每個進程都已經申請了一台,那么只要有一台空閑,就可以保證所有進程都可以完成,也就是說n=5時,系統就不存在死鎖危險

 

34.什么是內部碎片,什么是外部碎片,各種儲存管理中都可能產生何種碎片?

所謂內部碎片,是指系統分配給用戶使用,用戶自己沒有用到的那部分儲存空間,所謂外部碎片,是指系統無法把它分配出去供用戶使用的那部分儲存空間,對於教材而言,單一聯系去儲存管理,固定分區儲存,分頁式儲存管理和請求也是儲存管理都回出現內部碎片,只是前兩種管理造成的內部碎片比較大,浪費交嚴重,后兩種頁式儲存管理,平均來說每個作業都會出現半也的內部碎片,教材中,只有可變分區儲存管理才會產生外部碎片

 

35.敘述靜態重定位與動態重定位的區別

靜態重定位是一種通過軟件來完成的地址重定位技術,它在程序裝入內存時,完成對內存指令的調整,因此,程序經過靜態重定位之后,在內存中就不能移動了,如果要移動,就必須重新進行地址重定位

動態重定位是一種通過硬件支持完成的地址重定位技術,作業程序被原封不動的裝入內存,只有到執行某條指令時,硬件1地址轉換機構才對里面的地址進行轉換,正因為如此,實現動態重定位的系統,作業程序在內存里面可以移動,也就是說作業程序在內存中是可浮動的

 

36.一個虛擬地址結構用24個二進制位表示,其中12個二進制位表示頁面尺寸,試問這種虛擬獨占空間總共有多少頁,每個頁的尺寸是多少?

由於虛擬地址中是用12個二進制位表示頁面尺寸(即頁內位移),所以虛擬地址空間中表示的頁號頁式12個二進制,這樣虛擬地址空間總共有2的12次方等於4096頁,每頁的尺寸是2的12次方等於4k字節

 

37.什么叫虛擬存儲器?怎樣確定虛擬存儲器的容量?

答:虛擬存儲器實際是一種存儲擴充技術。它把作業程序存放在輔助存儲器里,運行時只裝入程序的一部分。遇到不在內存的程序時,再把所需要的部分裝入。這樣在內存和輔存之間調入、調出的做法,使用戶的作業地址空間無需顧及內存的大小。給用戶造成的印象是,無論程序有多大,它在這個系統上都可以運行。這種以輔助存儲器作為后援的虛幻存儲器,就稱為虛擬存儲器。虛擬存儲器的大小是由系統的地址結構確定的。

38.為什么請求分頁式存儲管理能夠向用戶提供虛擬存儲器?

答:請求分頁式存儲管理的基本思想是:操作系統按照存儲塊的尺寸,把用戶作業地址空間划分成頁,全部存放在磁盤上。作業運行時,只先裝入若干頁。運行過程中遇到不在內存的頁時,操作系統就把它從磁盤調入內存。這樣一來,用戶的作業地址空間無需顧及內存的大小。這與虛擬存儲器的思想是完全吻合的。所以,請求分頁式存儲管理能夠向用戶提供虛擬存儲器。

39.在請求分頁式存儲管理中,為什么既有頁表,又有快表?

答:在分頁式或請求頁式存儲管理中,通常是利用內存儲器構成頁表的。當CPU執行到某條指令、要對內存中的某一地址訪問時,因為這個地址是相對地址,所以先要根據這個地址所在的頁號去查頁表(訪問一次內存),然后才能由所形成的絕對地址去真正執行指令(第二次訪問內存)。可見,由於頁表在內存,降低了CPU的訪問速度。

為了提高相對地址到絕對地址的變換速度,人們想到用一組快速寄存器來代替頁表。這時查頁表是以並行的方式進行,立即就能輸出與該頁號匹配的塊號,這樣做無疑比內存式的頁表要快得多。但是,快速寄存器的價格昂貴,由它來組成整個頁表是不可取的。考慮到程序運行時具有局部性,因此實際系統中總是一方面采用內存頁表、另一方面用極少幾個快速寄存器組成快表來共同完成地址的變換工作。這時的地址變換過程,

40.試述缺頁中斷與頁面淘汰之間的關系。

答:在請求頁式存儲管理中,當根據虛擬地址查頁表而發現所要訪問的頁不在內存時,就會產生缺頁中斷。系統響應中斷后,就由操作系統到輔存把所需要的頁讀入內存。這時,內存可能有空閑的塊,也可能沒有。只有當內存中沒有空閑塊時,才會出現將內存現有頁面淘汰出去的問題,即要進行頁面淘汰。所以,缺頁中斷和頁面淘汰之間的關系是:頁面淘汰一定是由缺頁中斷所引起;但缺頁中斷則不一定引起頁面淘汰。

41.試述缺頁中斷與一般中斷的區別。

答:在計算機系統中,由於某些事件的出現,打斷了當前程序的運行,而使CPU去處理出現的事件,這稱為“中斷”。通常,計算機的硬件結構都是在執行完一條指令后,去檢查有無中斷事件發生的。如果有,那么就暫停當前程序的運行,而讓CPU去執行操作系統的中斷處理程序,這叫“中斷響應”。CPU在處理完中斷后,如果不需要對CPU重新進行分配,那么就返回被中斷進程的程序繼續運行;如果需要進行CPU的重新分配,那么操作系統就會去調度新進程。

由上面的講述可以看出,缺頁中斷與一般中斷的區別如下。

(1)兩種中斷產生的時刻不同:缺頁中斷是在執行一條指令中間時產生的中斷,並立即轉去處理;而一般中斷則是在一條指令執行完畢后,當硬件中斷裝置發現有中斷請求時才去響應和處理。

(2)處理完畢后的歸屬不同:缺頁中斷處理完后,仍返回到原指令去重新執行,因為那條指令並未執行;而一般中斷則是或返回到被中斷進程的下一條指令去執行,因為上一條指令已經執行完了,或重新調度,去執行別的進程程序。

42.怎樣理解把相對地址划分成數對:(頁號,頁內位移)的過程對於用戶是“透明”的?

答:在操作系統中,所謂“透明”,即指用戶不知道的意思。對於分頁式存儲管理來說,用戶向系統提供的相對地址空間,是一個一維的連續空間。系統接受了這個作業后,在內部把這個相對地址空間划分成若干頁。由於這種划分對於用戶來說是根本不知道的,所以說把相對地址划分成數對:(頁號,頁內位移)的過程對於用戶是“透明”的。

43.做一個綜述,說明從單一連續區存儲管理到固定分區存儲管理,到可變分區存儲管理,到分頁式存儲管理,再到請求分頁式存儲管理,每一種存儲管理的出現,都是在原有基礎上的發展和提高。

答:

每一種存儲管理的出現,都是在原有存儲管理基礎上的一次發展和提高。它們從簡單到復雜,從不完善到逐漸完善。

44備管理完成哪些功能?

緩沖區管理、設備分配,設備處理、虛擬設備、設備獨立性

45、I/O軟件分哪幾個層次,各做什么工作?

用戶層:

設備無關層

設備驅動層

中斷處理層

46、什么是設備的獨立性?

應用程序獨立於具體使用和物理設備

47、操作系統常用的緩沖技術有哪些?

單緩沖、雙緩沖、循環緩沖、緩沖池

48、提高磁盤訪問速度的方法有哪些?

1.磁盤高速緩存

2 提前讀

3.延遲寫

4.優化物理塊分布

5.虛擬盤

49基於設備的從屬關系,可以把設備分為系統設備與用戶設備兩類。根據什么來區分一個設備是系統設備還是用戶設備呢?

答:所謂“系統設備”,是指在操作系統生成時就已被納入系統管理范圍的設備;所謂“用戶設備”是指在完成應用任務過程中,用戶特殊需要的設備。因此,判定一個設備是系統設備還是用戶設備,依據是它在系統生成時,是否已經納入了系統的管理范圍。如果是,它就是系統設備;如果不是,它就是用戶設備。

50備管理的主要功能是什么?

答:設備管理的主要功能是:(1)提供一組I/O命令,以便用戶進程能夠在程序中提出I/O請求,這是用戶使用外部設備的“界面”;(2)記住各種設備的使用情況,實現設備的分配與回收;(3)對緩沖區進行管理,解決設備與設備之間、設備與CPU之間的速度匹配問題;(4)按照用戶的具體請求,啟動設備,通過不同的設備驅動程序,進行實際的I/O操作;I/O操作完成之后,將結果通知用戶進程,從而實現真正的I/O操作。

51結設備和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與設備之間的並行操作。

52用戶程序中采用“設備類,相對號”的方式使用設備有什么優點?

答:在用戶程序中采用“設備類,相對號”的方式使用設備的優點是:第一,用戶不需要記住系統中每一台設備的具體設備號,這是非常麻煩的事情;第二,在多道程序設計環境下,用戶並不知道當前哪一台設備已經分配,哪一台設備仍然空閑。通過“設備類,相對號”來提出對設備的使用請求,系統就可以根據當前的具體情況來分配,從而提高設備的使用效率;第三,用戶並不知道設備的好壞情況。如果是用“絕對號”指定具體的設備,而該設備正好有故障時,這次I/O任務就不可能完成,程序也就無法運行下去。但通過“設備類,相對號”來提出對設備的使用請求,系統就可以靈活處理這種情況,把好的設備分配出去。

53動磁盤執行一次輸入/輸出操作要花費哪幾部分時間?哪個時間對磁盤的調度最有影響?

答:執行一次磁盤的輸入/輸出操作需要花費的時間包括三部分:(1)查找時間;(2)等待時間;(3)傳輸時間。在這些時間中,傳輸時間是設備固有的特性,無法用改變軟件的辦法將它改進。因此,要提高磁盤的使用效率,只能在減少查找時間和等待時間上想辦法,它們都與I/O在磁盤上的分布位置有關。由於磁臂的移動是靠控制電路驅動步進電機來實現,它的運動速度相對於磁盤軸的旋轉來講較緩慢。因此,查找時間對磁盤調度的影響更為主要。

54.解釋通道命令字、通道程序和通道地址字。

答:所謂“通道命令字”,是指通道指令系統中的指令。只是為了與CPU的指令相區別,才把通道的指令改稱為“通道命令字”。

若干條通道命令字匯集在一起,就構成了一個“通道程序”,它規定了設備應該執行的各種操作和順序。

通常,通道程序存放在通道自己的存儲部件里。當通道中沒有存儲部件時,就存放在內存儲器里。這時,為了使通道能取得通道程序去執行,必須把存放通道程序的內存起始地址告訴通道。存放這個起始地址的內存固定單元,被稱為“通道地址字”。

55.何為DMA?通道與DMA有何區別?

答:所謂“DMA”,是指“直接存儲器存取”的數據傳輸方式,其最大特點是能使I/O設備直接和內存儲器進行成批數據的快速傳輸。適用於一些高速的I/O設備,如磁帶、磁盤等。通道方式與DMA方式之間的區別如下。

(1)在DMA方式下,數據傳輸的方向、傳輸長度和地址等仍然需要由CPU來控制。但在通道方式下,所需的CPU干預大大減少。

(2)在DMA方式下,每台設備要有一個DMA控制器。當設備增加時,多個DMA控制器的使用,顯然不很經濟;但在通道方式下,一個通道可以控制多台設備,這不僅節省了費用,而且減輕了CPU在輸入/輸出中的負擔。

(3)在DMA方式下傳輸數據時,是采用“竊取”總線控制權的辦法來工作的。因此,CPU與設備之間並沒有實現真正的並行工作;在通道方式下,CPU把I/O任務交給通道后,它就與通道就真正並行工作。

56.解釋記錄的成組與分解。為什么要這樣做?

答:往磁帶、磁盤上存放信息時,經常是把若干個記錄先在內存緩沖區里拼裝成一塊,然后再寫到磁帶或磁盤上。存儲設備與內存儲器進行信息交換時,就以塊為單位。這個把記錄拼裝成塊的過程,被稱為是“記錄的成組”。

從磁帶、磁盤上讀取記錄時,先是把含有那個記錄的塊讀到內存的緩沖區中,在那里面挑選出所需要的記錄,然后把它送到內存存放的目的地。這個把記錄從緩沖區里挑選出來的過程,被稱為是“記錄的分解”。

之所以這樣做,一是為了提高存儲設備的存儲利用率;二是減少內、外存之間信息交換次數,提高系統的效率。

57.試述SPOOL系統中的3個組成軟件模塊各自的作用。

答:SPOOLING系統中的3個軟件模塊是預輸入程序、緩輸出程序和井管理程序。它們各自的作用如下。

(1)預輸入程序預先把作業的全部信息輸入到磁盤的輸入井中存放,以便在需要作業信息以及作業運行過程中需要數據時,可以直接從輸入井里得到,而無需與輸入機交往,避免了等待使用輸入機的情況發生。

(2)緩輸出程序總是查看“輸出井”中是否有等待輸出的作業信息。如果有,就啟動輸出設備(如打印機)進行輸出。因此,由於作業的輸出是針對輸出井進行的,所以不會出現作業因為等待輸出而阻塞的現象。

(3)井管理程序分為“井管理讀程序”和“井管理寫程序”。當作業請求輸入設備工作時,操作系統就調用井管理讀程序,把讓輸入設備工作的任務,轉換成從輸入井中讀取所需要的信息;當作業請求打印輸出時,操作系統就調用井管理寫程序,把讓輸出設備工作的任務,轉換成為往輸出井里輸出。

58.試說出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類同。

59.為什么位示圖法適用於分頁式存儲管理和對磁盤存儲空間的管理?如果在存儲管理中采用可變分區存儲管理方案,也能采用位示圖法來管理空閑區嗎?為什么?

答:無論是分頁式存儲管理還是磁盤存儲空間的管理,它們面對的管理對象——存儲塊(內存塊或磁盤塊)的數量,在系統的運行過程中是固定不變的。因此,可以很方便地用相同數量的二進制位來對應管理它們。但如果在存儲管理中采用可變分區存儲管理方案,那么在系統運行時,分區的數目是變化的。因此,也就無法用位示圖法來管理這些分區的使用情況。

60.“文件目錄”和“目錄文件”有何不同?

答:“文件目錄”是指一個文件的目錄項,里面存放着文件的有關數據信息。“目錄文件”則是指如果文件很多,那么文件目錄項的數量也就很多。為此,操作系統經常把這些目錄項匯集在一起,作為一個文件來加以管理,這就是所謂的“目錄文件”。因此,“文件目錄”和“目錄文件”是兩個不同的概念,不能混為一談。

61.一個文件的絕對路徑名和相對路徑名有何不同?

答:在樹型目錄結構中,用戶要訪問一個文件,必須使用文件的路徑名來標識文件。從根目錄出發、一直到所要訪問的文件,將所經過的目錄名字用分隔符連接起來,所形成的字符串,就是該文件的絕對路徑名。如果是從當前目錄出發,一直到所要訪問的文件,將所經過的目錄名字用分隔符連接起來,所形成的字符串,就是該文件的相對路徑名。可以看出,絕對路徑名是文件的全名,必須從根目錄開始。所以,一個文件的絕對路徑名是惟一的。相對路徑名總是從當前目錄往下,所以文件的相對路徑名與當前位置有關,是不惟一的。

62.試述“創建文件”與“打開文件”兩個系統調用在功能上的不同之處。

答:所謂“創建文件”,表示原先該文件並不存在。所以創建文件時,最主要的功能是在磁盤上為其開辟存儲空間,建立起該文件的FCB。文件創建后,有了它的FCB,系統才真正感知到它的存在;“打開文件”是這個文件已經存在,只是它的有關信息不在內存。因此,打開文件最主要的功能是把該文件FCB中的信息復制到內存中,以便為隨后對文件的操作帶來便利。

63.試述“刪除文件”與“關閉文件”兩個系統調用在功能上的不同之處。

答:“刪除文件”最主要的功能是把該文件的FCB收回。文件沒有了FCB,系統也就無法感知到它的存在了。所以,在執行了刪除文件的命令后,這個文件就在系統里消失了;而“關閉文件”最主要的功能是把復制到內存活動目錄表里的該文件的FCB信息取消。這樣一來,在內存活動目錄表里沒有了該文件的信息,就不能夠對這個文件進行讀、寫了。所以,關閉一個文件后,這個文件還存在,只是不能對它操作了。如果要操作,就必須再次將它打開(即把FCB里的信息復制到內存的活動目錄表),然后再進行操作。

64.為什么在使用文件之前,總是先將其打開后再用?

答:有關文件的信息都存放在該文件的FCB里,只有找到文件的FCB,才能獲得它的一切信息。但FCB是在磁盤里。因此,只要對文件進行操作,就要到磁盤里去找它的FCB。這種做法,無疑影響了文件操作的執行速度。正因為如此,操作系統才考慮在對文件進行操作前,先將其打開,把文件的FCB內容復制到內存中來。這樣,查找文件的FCB,就不必每次都要去訪問磁盤。

65.如果一個文件系統沒有提供顯式的打開命令(即沒有OPEN命令),但又希望有打開的功能,以便在使用文件時能減少與磁盤的交往次數。那么應該把這一功能安排在哪個系統調用里合適?如何安排?

答:文件系統中設置打開命令的根本目的,是減少文件操作時與磁盤的交往次數。如果系統沒有提供顯式的打開命令,但又要能減少與磁盤的交往次數,那么只需把這一功能安排在讀或寫系統調用命令里。這時,在讀、寫命令功能前面添加這樣的處理:總是先到內存的活動目錄表里查找該文件的FCB。如果找到,則表明在此前文件已經被打開,於是就可以立即進行所需要的讀、寫操作;如果沒有找到,那么表明在此前文件還沒有打開。於是應該先按照文件名,到磁盤上去查找該文件的FCB,把它復制到內存的活動目錄表里,然后再進行對它的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM