來源:https://blog.csdn.net/Ljt101222/article/details/88954899
第一章
1.設計現代OS的主要目標是什么?
答:(1)有效性 (2)方便性 (3)可擴充性 (4)開放性
2.OS的作用可表現在哪幾個方面?
答:(1)OS作為用戶與計算機硬件系統之間的接口
(2)OS作為計算機系統資源的管理者
(3)OS實現了對計算機資源的抽象
3.為什么說OS實現了對計算機資源的抽象?
答:OS首先在裸機上覆蓋一層I/O設備管理軟件,實現了對計算機硬件操作的第一層次抽
象;在第一層軟件上再覆蓋文件管理軟件,實現了對硬件資源操作的第二層次抽象。OS 通
過在計算機硬件上安裝多層系統軟件,增強了系統功能,隱藏了對硬件操作的細節,由它們
共同實現了對計算機資源的抽象。
4.試說明推動多道批處理系統形成和發展的主要動力是什么?
答:主要動力來源於四個方面的社會需求與技術發展:
(1)不斷提高計算機資源的利用率;
(2)方便用戶;
(3)器件的不斷更新換代;
(4)計算機體系結構的不斷發展。
5.何謂脫機I/O和聯機I/O?
答:脫機I/O 是指事先將裝有用戶程序和數據的紙帶或卡片裝入紙帶輸入機或卡片機,在
外圍機的控制下,把紙帶或卡片上的數據或程序輸入到磁帶上。該方式下的輸入輸出由外圍
機控制完成,是在脫離主機的情況下進行的。
而聯機I/O方式是指程序和數據的輸入輸出都是在主機的直接控制下進行的。
6.試說明推動分時系統形成和發展的主要動力是什么?
答:推動分時系統形成和發展的主要動力是更好地滿足用戶的需要。主要表現在:CPU 的
分時使用縮短了作業的平均周轉時間;人機交互能力使用戶能直接控制自己的作業;主機的
共享使多用戶能同時使用同一台計算機,獨立地處理自己的作業。
7.實現分時系統的關鍵問題是什么?應如何解決?
答:關鍵問題是當用戶在自己的終端上鍵入命令時,系統應能及時接收並及時處理該命令,
在用戶能接受的時延內將結果返回給用戶。
解決方法:針對及時接收問題,可以在系統中設置多路卡,使主機能同時接收用戶從各個終
端上輸入的數據;為每個終端配置緩沖區,暫存用戶鍵入的命令或數據。針對及時處理問題,
應使所有的用戶作業都直接進入內存,並且為每個作業分配一個時間片,允許作業只在自己
的時間片內運行,這樣在不長的時間內,能使每個作業都運行一次。
8.為什么要引入實時OS?
答:實時操作系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處
理,並控制所有實時任務協調一致地運行。引入實時OS 是為了滿足應用的需求,更好地滿
足實時控制領域和實時信息處理領域的需要。
9.什么是硬實時任務和軟實時任務?試舉例說明。
答:硬實時任務是指系統必須滿足任務對截止時間的要求,否則可能出現難以預測的結果。
舉例來說,運載火箭的控制等。
軟實時任務是指它的截止時間並不嚴格,偶爾錯過了任務的截止時間,對系統產生的影
響不大。舉例:網頁內容的更新、火車售票系統。
10.在8位微機和16位微機中,占據了統治地位的是什么操作系統?
答:單用戶單任務操作系統,其中最具代表性的是CP/M和MS-DOS.
11.試列出Windows OS中五個主要版本,並說明它們分別較之前一個版本有何改進。
答:
(1)Microsoft Windows 1.0是微軟公司在個人電腦上開發圖形界面的首次嘗試。
(2)Windows 95是混合的16位/32位系統,第一個支持32位。帶來了更強大、更穩
定、更實用的桌面圖形用戶界面,結束了桌面操作系統間的競爭。
(3)Windows 98是微軟公司的混合16位/32位Windows操作系統,改良了硬件標准
的支持,革新了內存管理,是多進程操作系統。
(4)Windows XP是基於Windows2000的產品,擁有新用戶圖形界面月神Luna。簡
化了用戶安全特性,整合了防火牆。
(5)Windows Vista 包含了上百種新功能;特別是新版圖形用戶界面和WindowsAero
全新界面風格、加強的搜尋功能(Windows IndexingService)、新媒體創作工具以及重
新設計的網絡、音頻、輸出(打印)和顯示子系統。。
12.試從交互性、及時性以及可靠性方面,將分時系統與實時系統進行比較。
答:(1)及時性:實時信息處理系統對實時性的要求與分時系統類似,都是以人所能接受
的等待時間來確定;而實時控制系統的及時性,是以控制對象所要求的開始截止時間或完成
截止時間來確定的,一般為秒級到毫秒級,甚至有的要低於100微妙。
(2)交互性:實時信息處理系統具有交互性,但人與系統的交互僅限於訪問系統中某
些特定的專用服務程序。不像分時系統那樣能向終端用戶提供數據和資源共享等服務。
(3)可靠性:分時系統也要求系統可靠,但相比之下,實時系統則要求系統具有高度
的可靠性。因為任何差錯都可能帶來巨大的經濟損失,甚至是災難性后果,所以在實時系統
中,往往都采取了多級容錯措施保障系統的安全性及數據的安全性。
13.OS有哪幾大特征?其最基本的特征是什么?
答:並發性、共享性、虛擬性和異步性四個基本特征;最基本的特征是並發性。
14.處理機管理有哪些主要功能?它們的主要任務是什么?
答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調度;
進程管理:為作業創建進程,撤銷已結束進程,控制進程在運行過程中的狀態轉換。
進程同步:為多個進程(含線程)的運行______________進行協調。
通信:用來實現在相互合作的進程之間的信息交換。
處理機調度:
(1)作業調度。從后備隊里按照一定的算法,選出若干個作業,為他們分配運行所需
的資源(首選是分配內存)。
(2)進程調度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給
它,並設置運行現場,使進程投入執行。
15.內存管理有哪些主要功能?他們的主要任務是什么?
答:內存管理的主要功能有:內存分配、內存保護、地址映射和內存擴充。
內存分配:為每道程序分配內存。
內存保護:確保每道用戶程序都只在自己的內存空間運行,彼此互不干擾。
地址映射:將地址空間的邏輯地址轉換為內存空間與對應的物理地址。
內存擴充:用於實現請求調用功能,置換功能等。
16.設備管理有哪些主要功能?其主要任務是什么?
答:主要功能有: 緩沖管理、設備分配和設備處理以及虛擬設備等。
主要任務: 完成用戶提出的I/O 請求,為用戶分配I/O 設備;提高CPU 和I/O 設
備的利用率;提高I/O速度;以及方便用戶使用I/O設備.
17.文件管理有哪些主要功能?其主要任務是什么?
答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護。
文件管理的主要任務:管理用戶文件和系統文件,方便用戶使用,保證文件安全性。
18.是什么原因使操作系統具有異步性特征?
答:操作系統的異步性體現在三個方面:一是進程的異步性,進程以人們不可預知的速度向
前推進,二是程序的不可再現性,即程序執行的結果有時是不確定的,三是程序執行時間的
不可預知性,即每個程序何時執行,執行順序以及完成時間是不確定的。
19.模塊接口法存在哪些問題?可通過什么樣的途徑來解決?
答:(1)模塊接口法存在的問題:①在OS設計時,各模塊間的接口規定很難滿足在模塊完
成后對接口的實際需求。②在OS 設計階段,設計者必須做出一系列的決定,每一個決定必
須建立在上一個決定的基礎上。但模塊化結構設計的各模塊設計齊頭並進,無法尋找可靠的
順序,造成各種決定的無序性,使程序設計人員很難做到設計中的每一步決定都建立在可靠
的基礎上,因此模塊接口法被稱為“無序模塊法”。
(2)解決途徑:將模塊接口法的決定順序無序變有序,引入有序分層法。
20.在微內核OS中,為什么要采用客戶/服務器模式?
答:C/S 模式具有獨特的優點:⑴數據的分布處理和存儲。⑵便於集中管理。⑶靈活性和
可擴充性。⑷易於改編應用軟件。
21.試描述什么是微內核OS。
答:1)足夠小的內核 2)基於客戶/服務器模式
3)應用機制與策略分離原理 4)采用面向對象技術。
22.在基於微內核結構的OS中,應用了哪些新技術?
答:在基於微內核結構的OS 中,采用面向對象的程序設汁技術。
23.何謂微內核技術?在微內核中通常提供了哪些功能?
答:把操作系統中更多的成分和功能放到更高的層次(即用戶模式)中去運行,而留下一個
盡量小的內核,用它來完成操作系統最基本的核心功能,稱這種技術為微內核技術。在微內
核中通常提供了進程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。
24.微內核操作系統具有哪些優點?它為何能有這些優點?
答:1)提高了系統的可擴展性
2)增強了系統的可靠性
3)可移植性
4)提供了對分布式系統的支持
5)融入了面向對象技術
第二章
1. 什么是前趨圖?為什么要引入前趨圖?
答:前趨圖(Precedence Graph)是一個有向無循環圖,記為DAG(DirectedAcyclic
Graph),用於描述進程之間執行的前后關系。
2. 畫出下面四條語句的前趨圖:
S1=a:=x+y; S2=b:=z+1; S3=c:=a – b;S4=w:=c+1;
答:其前趨圖為:
3. 什么程序並發執行會產生間斷性特征?
答:程序在並發執行時,由於它們共享系統資源,為完成同一項任務需要相互合作,致使這
些並發執行的進程之間,形成了相互制約關系,從而使得進程在執行期間出現間斷性。
4.程序並發執行時為什么會失去封閉性和可再現性?
答:程序並發執行時,多個程序共享系統中的各種資源,因而這些資源的狀態由多個程序改
變,致使程序運行失去了封閉性,也會導致其失去可再現性。
5.在操作系統中為什么要引入進程概念?它會產生什么樣的影響?
答:為了使程序在多道程序環境下能並發執行,並對並發執行的程序加以控制和描述,在操
作系統中引入了進程概念。
影響: 使程序的並發執行得以實行。
6.試從動態性,並發性和獨立性上比較進程和程序?
答:(1)動態性是進程最基本的特性,表現為由創建而產生,由調度而執行,因得不到資源
而暫停執行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是靜
態實體。
(2)並發性是進程的重要特征,同時也是OS 的重要特征。引入進程的目的正是為了使
其程序能和其它進程的程序並發執行,而程序是不能並發執行的。
(3)獨立性是指進程實體是一個能獨立運行的基本單位,也是系統中獨立獲得資源和獨
立調度的基本單位。對於未建立任何進程的程序,不能作為獨立單位參加運行。
7.試說明PCB 的作用,為什么說PCB 是進程存在的惟一標志?
答:PCB 是進程實體的一部分,是操作系統中最重要的記錄型數據結構。作用是使一個在
多道程序環境下不能獨立運行的程序,成為一個能獨立運行的基本單位,成為能與其它進程
並發執行的進程。OS是根據PCB對並發執行的進程進行控制和管理的。
8.試說明進程在三個基本狀態之間轉換的典型原因。
答: (1)就緒狀態→執行狀態:進程分配到CPU資源
(2)執行狀態→就緒狀態:時間片用完
(3)執行狀態→阻塞狀態:I/O請求
(4)阻塞狀態→就緒狀態:I/O完成
9.為什么要引入掛起狀態?該狀態有哪些性質?
答:引入掛起狀態處於五種不同的需要: 終端用戶需要,父進程需要,操作系統需要,對換
需要和負荷調節需要。處於掛起狀態的進程不能接收處理機調度。
10.在進行進程切換時,所要保存的處理機狀態信息有哪些?
答:進行進程切換時,所要保存的處理機狀態信息有:
(1)進程當前暫存信息
(2)下一指令地址信息
(3)進程狀態信息
(4)過程和系統調用參數及調用地址信息。
11.試說明引起進程創建的主要事件。
答:引起進程創建的主要事件有:用戶登錄、作業調度、提供服務、應用請求。
12.試說明引起進程被撤銷的主要事件。
答:引起進程被撤銷的主要事件有:正常結束、異常結束(越界錯誤、保護錯、非法指令、
特權指令錯、運行超時、等待超時、算術運算錯、I/O 故障)、外界干預(操作員或操作系
統干預、父進程請求、父進程終止)。
13.在創建一個進程時所要完成的主要工作是什么?
答:
(1)OS 發現請求創建新進程事件后,調用進程創建原語Creat();
(2)申請空白PCB;
(3)為新進程分配資源;
(4)初始化進程控制塊;
(5)將新進程插入就緒隊列.
14.在撤銷一個進程時所要完成的主要工作是什么?
答:
(1)根據被終止進程標識符,從PCB 集中檢索出進程PCB,讀出該進程狀態。
(2)若被終止進程處於執行狀態,立即終止該進程的執行,置調度標志真,指示該進程被
終止后重新調度。
(3)若該進程還有子進程,應將所有子孫進程終止,以防它們成為不可控進程。
(4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統。
(5)將被終止進程PCB 從所在隊列或列表中移出,等待其它程序搜集信息。
15.試說明引起進程阻塞或被喚醒的主要事件是什么?
答:a. 請求系統服務;b. 啟動某種操作;c. 新數據尚未到達;d. 無新工作可做.
16.進程在運行時存在哪兩種形式的制約?並舉例說明之。
答:
(1)間接相互制約關系。舉例:有兩進程A 和B,如果A 提出打印請求,系統已把唯一的
一台打印機分配給了進程B,則進程A 只能阻塞;一旦B 釋放打印機,A 才由阻塞改為就
緒。
(2)直接相互制約關系。舉例:有輸入進程A 通過單緩沖向進程B 提供數據。當緩沖空時,
計算進程因不能獲得所需數據而阻塞,當進程A 把數據輸入緩沖區后,便喚醒進程B;反
之,當緩沖區已滿時,進程A 因沒有緩沖區放數據而阻塞,進程B 將緩沖區數據取走后便
喚醒A。
17.為什么進程在進入臨界區之前應先執行“進入區”代碼?而在退出前又要執行“退出
區”代碼?
答:為了實現多個進程對臨界資源的互斥訪問,必須在臨界區前面增加一段用於檢查欲訪問
的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區對資源進行訪問,
並設置正被訪問標志,如果正被訪問,則本進程不能進入臨界區,實現這一功能的代碼為"
進入區"代碼;在退出臨界區后,必須執行"退出區"代碼,用於恢復未被訪問標志,使其它進程能再訪問此臨界資源。
18. 同步機構應遵循哪些基本准則?為什么?
答:同步機構應遵循的基本准則是:空閑讓進、忙則等待、有限等待、讓權等待
原因:為實現進程互斥進入自己的臨界區。
19. 試從物理概念上說明記錄型信號量wait 和signal。
答:wait(S):當S.value>0時,表示目前系統中這類資源還有可用的。執行一次wait 操
作,意味着進程請求一個單位的該類資源,使系統中可供分配的該類資源減少一個,因此描
述為S.value:=S.value-1;當S.value<0時,表示該類資源已分配完畢,進程應調用block
原語自我阻塞,放棄處理機,並插入到信號量鏈表S.L中。
signal(S):執行一次signal操作,意味着釋放一個單位的可用資源,使系統中可供分配
的該類資源數增加一個,故執行S.value:=S.value+1 操作。若加1后S.value≤0,則表
示在該信號量鏈表中,仍有等待該資源的進程被阻塞,因此應調用wakeup 原語,將S.L
鏈表中的第一個等待進程喚醒。
20.你認為整型信號量機制是否完全遵循了同步機構的四條准則?
答:整型信號量機制不完全遵循同步機制的四條准則,它不滿足“讓權等待”准則。
21.如何利用信號量機制來實現多個進程對臨界資源的互斥訪問?並舉例說明之。
答:為使多個進程互斥訪問某臨界資源,只需為該資源設置一互斥信號量mutex,並設其
初值為1,然后將各進程訪問該資源的臨界區CS置於wait(mutex)和signal(mutex)操作
之間即可。這樣,每個欲訪問該臨界資源的進程在進入臨界區之前,都要先對mutex 執行
wait 操作,若該資源此刻未被訪問,本次wait 操作必然成功,進程便可進入自己的臨界區,
這時若再有其他進程也欲進入自己的臨界區,此時由於對mutex 執行wait操作定會失敗,
因而該進程阻塞,從而保證了該臨界資源能被互斥訪問。當訪問臨界資源的進程退出臨界區
后,應對mutex執行signal 操作,釋放該臨界資源。利用信號量實現進程互斥的進程描述
如下:
Var mutex: semaphore:=1;
begin
parbegin
process 1: begin
repeat
wait(mutex);
critical section
signal(mutex);
remainder section
until false;
end
process 2: begin
repeat
wait(mutex);
critical section
signal(mutex);
remainder section
until false;
end
parend
22.試寫出相應的程序來描述圖2-17所示的前驅圖。
答:(a)Var a, b, c, d, e, f, g, h; semaphore:= 0, 0,0, 0, 0, 0, 0, 0;
begin
parbegin
begin S1; signal(a); signal(b); end;
begin wait(a); S2; signal(c); signal(d); end;
begin wait(b); S3; signal(e); end;
begin wait(c); S4; signal(f); end;
begin wait(d); S5; signal(g); end;
begin wait(e); S6; signal(h); end;
begin wait(f); wait(g); wait(h); S7; end;
parend
end
(b)Var a, b, c, d, e, f, g, h,i,j; semaphore:= 0,0, 0, 0, 0, 0, 0,0,0, 0;
begin
parbegin
begin S1; signal(a); signal(b); end;
begin wait(a); S2; signal(c); signal(d); end;
begin wait(b); S3; signal(e); signal(f); end;
begin wait(c); S4; signal(g); end;
begin wait(d); S5; signal(h); end;
begin wait(e); S6; signal(i); end;
begin wait(f); S7; signal(j); end;
begin wait(g);wait(h); wait(i); wait(j); S8;end;
parend
end
23.在生產者消費者問題中,如果缺少了signal(full)或signal(empty),對執行結果有何影響?
答:
如果缺少signal(full),那么表明從第一個生產者進程開始就沒有改變信號量full 值,
即使緩沖池產品已滿,但full值還是0,這樣消費者進程執行wait(full)時認為緩沖池是空
而取不到產品,消費者進程一直處於等待狀態。
如果缺少signal(empty),在生產者進程向n個緩沖區投滿產品后消費者進程才開始從
中取產品,這時empty=0,full=n,那么每當消費者進程取走一個產品empty值並不改變,
直到緩沖池取空了,empty 值也是0,即使目前緩沖池有n 個空緩沖區,生產者進程要想
再往緩沖池中投放產品也會因為申請不到空緩沖區被阻塞。
24.在生產消費者問題中,如果將兩個wait操作即wait(full)和wait(mutex)互換位置,
或者將signal(mutex)與signal(full)互換位置,結果如何?
答:將wait(full)和wait(mutex)互換位置后,可能引起死鎖。考慮系統中緩沖區全滿時,
若一生產者進程先執行了wait(mutex)操作並獲得成功,則當再執行wait(empty)操作時,
它將因失敗而進入阻塞狀態,它期待消費者進程執行signal(empty)來喚醒自己,在此之前,
它不可能執行signal(mutex)操作,從而使試圖通過執行wait(mutex)操作而進入自己的臨
界區的其他生產者和所有消費者進程全部進入阻塞狀態,這樣容易引起系統死鎖。
若signal(mutex)和signal(full)互換位置后只是影響進程對臨界資源的釋放次序,而
不會引起系統死鎖,因此可以互換位置。
25.我們在為某一臨界資源設置一把鎖W,當W=1時表示關鎖,當W=0時表示鎖已打開。
試寫出開鎖和關鎖的原語,並利用他們實現互斥。
答:整型信號量:lock(W): while W=1 do no-op
W:=1;
unlock(W): W:=0;
記錄型信號量:lock(W): W:=W+1;
if(W>1) then block(W, L)
unlock(W): W:=W-1;
if(W>0) then wakeup(W, L)
例子:
Var W:semaphore:=0;
begin
repeat
lock(W);
critical section
unlock(W);
remainder section
until false;
end
26.試修改下面生產者-消費者問題解法中的錯誤:
答: producer:
begin
repeat
…
producer an item in nextp;
wait(mutex);
wait(full);
buffer(in):=nextp;
signal(mutex);
until false;
end
consumer:
begin
repeat
wait(mutex);
wait(empty);
nextc:=buffer(out);
out:=out+1;
signal(mutex);
consumer item in nextc;
until false;
end
27.試利用記錄型信號量寫出一個不會出現死鎖的哲學家進餐問題的算法.
答:Var chopstick:array[0,…,4] of semaphore;
所有信號量均被初始化為1,第i 位哲學家的活動可描述為:
Repeat
Wait(chopstick[i]);
Wait(. chopstick[(i+1) mod 5]);
…
Ea.t ;
…
Signal(chopstick[i]);
Signal(chopstick[(i+1) mod 5])
Ea.t ;
…
Think;
Until false;
28.在測量控制系統中的數據采集任務,把所采集的數據送一單緩沖區;計算任務從該單
緩沖中取出數據進行計算.試寫出利用信號量機制實現兩者共享單緩沖的同步算法。
答:
a. Var mutex, empty, full: semaphore:=1, 1, 0;
gather:
begin
repeat
……
gather data in nextp;
wait(empty);
wait(mutex);
buffer:=nextp;
signal(mutex);
signal(full);
until false;
end
compute:
begin
repeat
……
wait(full);
wait(mutex);
nextc:=buffer;
signal(mutex);
signal(empty);
compute data in nextc;
until false;
end
b. Var empty, full: semaphore:=1, 0;
gather:
begin
repeat
……
gather data in nextp;
wait(empty);
buffer:=nextp;
signal(full);
until false;
end
compute:
begin
repeat
……
wait(full);
nextc:=buffer;
signal(empty);
compute data in nextc;
until false;
end
29.畫圖說明管程由哪幾部分組成,為什么要引入條件變量?
答:管程由四部分組成:①管程的名稱;②局部於管程內部的共享數據結構說明;③對該數
據結構進行操作的一組過程;④對局部於管程內部的共享數據設置初始值的語句;
當一個進程調用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期
間,如果該進程不釋放管程,則其它進程無法進入管程,被迫長時間地等待。為了解決這個
問題,引入了條件變量condition。
30.如何利用管程來解決生產者與消費者問題?
答:首先建立一個管程,命名為ProclucerConsumer,包括兩個過程:
(1)Put(item)過程。生產者利用該過程將自己生產的產品放到緩沖池,用整型變
量count 表示在緩沖池中已有的產品數目,當count≥n 時,表示緩沖池已滿,生產者須
等待。
(2)get(item)過程。消費者利用該過程從緩沖池中取出一個產品,當count≤0
時,表示緩沖池中已無可取的產品,消費者應等待。
PC 管程可描述如下:
type producer-consumer =monitor
Var in,out,count:integer;
buffer:array[0,…,n-1]of item;
notfull,notempty:condition;
procedure entry dot(item)
begin
if count>=n then not full.wait;
buffer(in):=nextp;
in:=(in+1)mod n;
count:=count+1;
if notempty.queue then notempty.signal;
end
procedure entry get(item)
begin
if count<=0 then not full.wait;
nextc:=buffer(out);
out:=(out+1)mod n;
count:=count-1;
if notfull.quene then notfull.signal;
end
begin in:=out:=0;
count:=0
end
在利用管程解決生產者一消費者問題時,其中的生產者和消費者可描述為:
producer: begin
pepeat
produce an inem in nestp
PC.put(item);
until false;
end
consumer: begin
repeat
PC.get(item);
consume the item in enxtc;
until false;
end
31.什么是AND信號量?試利用AND信號量寫出生產者一消費者問題的解法。
答:為解決並行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進
程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋放。
解決生產者-消費者問題可描述如下:
var mutex,empty,full: semaphore:=1,n,0;
buffer: array[0,...,n-1] of item;
in,out: integer:=0,0;
begin
parbegin
producer: begin
repeat
…
produce an item in nextp;
…
wait(empty);
wait(s1,s2,s3,...,sn); //s1,s2,...,sn為執行生產者進程除empty外其余的條件
wait(mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
signal(mutex);
signal(full);
signal(s1,s2,s3,...,sn);
until false;
end
consumer: begin
repeat
wait(full);
wait(k1,k2,k3,...,kn); //k1,k2,...,kn 為執行消費者進程除full外其余的條件
wait(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
signal(mutex);
signal(empty);
signal(k1,k2,k3,...,kn);
consume the item in nextc;
until false;
end
parend
end
32.什么是信號量集?試利用信號量集寫出讀者一寫者問題的解法。
答:對AND信號量加以擴充,形成的信號量集合的讀寫機制。
解法:Var RN integer;
L,mx: semaphore:=RN,1;
begin
parbegin
reader:begin
repeat
Swait(L,1,1);
Swait(mx,1,1);
…
perform read operation;
…
Ssignal(L,1);
until false
end
writer:begin
repeat
Swait(mx,1,1;L,RN,0);
perform write operation;
Ssignal(mx,1);
until false
end
parend
end
33.試比較進程間的低級與高級通信工具。
答:用戶用低級通信工具實現進程通信很不方便,效率低,通信對用戶不透明,所有操作都
必須由程序員來實現,而高級通信工具彌補了這些缺陷,用戶直接利用操作系統提供的一組
通信命令,高效地傳送大量的數據。
34.當前有哪幾種高級通信機制?
答:共享存儲器系統、消息傳遞系統以及管道通信系統。
35.消息隊列通信機制有哪幾方面的功能?
答:(1)構成消息(2)發送消息(3)接收梢息(4)互斥與同步。
36.為什么要在OS 中引入線程?
答:在操作系統中引入線程,則是為了減少程序在並發執行時所付出的時空開銷,使OS具
有更好的並發性,提高CPU的利用率。進程是分配資源的基本單位,而線程則是系統調度的
基本單位。
37.試說明線程具有哪些屬性?
答:(1)輕型實體(2)獨立調度和分派的基本單位(3)可並發執行(4)共享進程資源。
38.試從調度性,並發性,擁有資源及系統開銷方面對進程和線程進行比較。
答:
(1)調度性。線程在OS 中作為調度和分派的基本單位,進程只作為資源擁有的基本單位。
(2)並發性。進程可以並發執行,一個進程的多個線程也可並發執行。
(3)擁有資源。進程始終是擁有資源的基本單位,線程只擁有運行時必不可少的資源,本
身基本不擁有系統資源,但可以訪問隸屬進程的資源。
(4)系統開銷。操作系統在創建、撤消和切換進程時付出的開銷顯著大於線程。
39. 為了在多線程OS中實現進程之間的同步與通信,通常提供了哪幾種同步機制?
答:同步功能可以控制程序流並訪問共享數據,從而並發執行多個線程。共有四種同步模型:
互斥鎖、讀寫鎖、條件變量和信號。
40.用於實現線程同步的私用信號量和公用信號量之間有何差別?
答:
(1)私用信號量。當某線程需利用信號量實現同一進程中各線程之間的同步時,可調用創
建信號量的命令來創建一個私用信號量,其數據結構存放在應用程序的地址空間中。
(2)公用信號量。公用信號量是為實現不同進程間或不同進程中各線程之間的同步而設置
的。其數據結構是存放在受保護的系統存儲區中,由OS為它分配空間並進行管理。
41.何謂用戶級線程和內核支持線程?
答:
(1)用戶級線程:僅存在於用戶空間中的線程,無須內核支持。這種線程的創建、撤銷、
線程間的同步與通信等功能,都無需利用系統調用實現。用戶級線程的切換通常發生在一個
應用進程的諸多線程之間,同樣無需內核支持。
(2)內核支持線程:在內核支持下運行的線程。無論是用戶進程中的線程,還是系統線程
中的線程,其創建、撤銷和切換等都是依靠內核,在內核空間中實現的。在內核空間里還
為每個內核支持線程設置了線程控制塊,內核根據該控制塊感知某線程的存在並實施控制。
42.試說明用戶級線程的實現方法。
答:用戶級線程是在用戶空間中的實現的,運行在“運行時系統”與“內核控制線程”的中
間系統上。運行時系統用於管理和控制線程的函數的集合。內核控制線程或輕型進程LWP
可通過系統調用獲得內核提供服務,利用LWP進程作為中間系統。
43.試說明內核支持線程的實現方法。
答:系統在創建新進程時,分配一個任務數據區PTDA,其中包括若干個線程控制塊TCB
空間。創建一個線程分配一個TCB,有關信息寫入TCB,為之分配必要的資源。當PTDA
中的TCB 用完,而進程又有新線程時,只要所創建的線程數目未超過系統允許值,系統可
在為之分配新的TCB;在撤銷一個線程時,也應回收線程的所有資源和TCB。
第三章
第三章處理機調度與死鎖
1.高級調度與低級調度的主要任務是什么?為什么要引入中級調度?
答:高級調度的主要任務是根據某種算法,把外存上處於后備隊列中的那些作業調入內存。
低級調度是保存處理機的現場信息,按某種算法先取進程,再把處理器分配給進程。
引入中級調度的主要目的是為了提高內存利用率和系統吞吐量。使那些暫時不能運行的進程不再占用內存資源,將它們調至外存等待,把進程狀態改為就緒駐外存狀態或掛起狀態。
2.何謂作業、作業步和作業流?
答:作業包含通常的程序和數據,還配有作業說明書。系統根據該說明書對程序的運行進行控制。批處理系統中是以作業為基本單位從外存調入內存。
作業步是指每個作業運行期間都必須經過若干個相對獨立相互關聯的順序加工的步驟。
作業流是指若干個作業進入系統后依次存放在外存上形成的輸入作業流;在操作系統的控制下,逐個作業進程處理,於是形成了處理作業流。
3.在什么情況下需要使用作業控制塊JCB?其中包含了哪些內容?
答:每當作業進入系統時,系統便為每個作業建立一個作業控制塊JCB,根據作業類型將它插入到相應的后備隊列中。
JCB 包含的內容通常有:1) 作業標識2)用戶名稱3)用戶賬戶4)作業類型(CPU繁忙型、I/O芳名型、批量型、終端型)5)作業狀態6)調度信息(優先級、作業已運行)7)資源要求8)進入系統時間9) 開始處理時間10)作業完成時間11) 作業退出時間12) 資源使用情況等
4.在作業調度中應如何確定接納多少個作業和接納哪些作業?
答:作業調度每次接納進入內存的作業數,取決於多道程序度。應將哪些作業從外存調入內存,取決於采用的調度算法。最簡單的是先來服務調度算法,較常用的是短作業優先調度算法和基於作業優先級的調度算法。
5.試說明低級調度的主要功能。
答:(1)保存處理機的現場信息(2)按某種算法選取進程(3)把處理機分配給進程。
6.在搶占調度方式中,搶占的原則是什么?
答:搶占的原則有:時間片原則、優先權原則、短作業優先權原則等。
7.在選擇調度方式和調度算法時,應遵循的准則是什么?
答:
(1)面向用戶的准則:周轉時間短、響應時間快、截止時間的保證、優先權准則。
(2)面向系統的准則:系統吞吐量高、處理機利用率好、各類資源的平衡利用。
8.在批處理系統、分時系統和實時系統中,各采用哪幾種進程(作業)調度算法?
答:批處理系統的調度算法:短作業優先、優先權、高響應比優先、多級反饋隊列調度算法。
分時系統的調度算法:時間片輪轉法。
實時系統的調度算法:最早截止時間優先即EDF、最低松弛度優先即LLF算法。
9.何謂靜態和動態優先級?確定靜態優先級的依據是什么?
答:靜態優先級是指在創建進程時確定且在進程的整個運行期間保持不變的優先級。
動態優先級是指在創建進程時賦予的優先權,可以隨進程推進或隨其等待時間增加而改變的優先級,可以獲得更好的調度性能。
確定進程優先級的依據:進程類型、進程對資源的需求和用戶要求。
10.試比較FCFS和SPF兩種進程調度算法。
答:相同點:兩種調度算法都可以用於作業調度和進程調度。
不同點:FCFS調度算法每次都從后備隊列中選擇一個或多個最先進入該隊列的作業,將它們調入內存、分配資源、創建進程、插入到就緒隊列。該算法有利於長作業/進程,不利於短作業/進程。SPF算法每次調度都從后備隊列中選擇一個或若干個估計運行時間最短的作業,調入內存中運行。該算法有利於短作業/進程,不利於長作業/進程。
11.在時間片輪轉法中,應如何確定時間片的大小?
答:時間片應略大於一次典型的交互需要的時間。一般應考慮三個因素:系統對相應時間的
要求、就緒隊列中進程的數目和系統的處理能力。
12.通過一個例子來說明通常的優先級調度算法不能適用於實時系統?
答:實時系統的調度算法很多,主要是基於任務的開始截止時間和任務緊急/松弛程度的任務優先級調度算法,通常的優先級調度算法不能滿足實時系統的調度實時性要求而不適用。
13.為什么說多級反饋隊列調度算法能較好地滿足各方面用戶的需求?
答:(1)終端型作業用戶提交的作業大多屬於較小的交互型作業,系統只要使這些作業在第一隊列規定的時間片內完成,終端作業用戶就會感到滿足。
(2)短批處理作業用戶,開始時像終端型作業一樣,如果在第一隊列中執行一個時間片段即可完成,便可獲得與終端作業一樣的響應時間。對於稍長作業,通常只需在第二和第三隊列各執行一時間片即可完成,其周轉時間仍然較短。
(3)長批處理作業,它將依次在第1,2,…,n個隊列中運行,然后再按輪轉方式運行,用戶不必擔心其作業長期得不到處理。所以,多級反饋隊列調度算法能滿足多用戶需求。
14.為什么在實時系統中,要求系統(尤其是CPU)具有較強的處理能力?
答:實時系統中通常有着多個實時任務。若處理機的處理能力不夠強,有可能因為處理機忙不過來而使某些實時任務得不到及時處理,導致發生難以預料的后果。
15.按照調度方式可將實時調度算法分為哪幾種?
答:可分為非搶占式和搶占式兩種算法。而非搶占式算法又分為非搶占式輪轉和優先調度算法;搶占式調度算法又分為基於時鍾中斷的搶占式優先權和立即搶占式優先權調度算法。
16.什么是最早截止時間優先調度算法?舉例說明。
答:根據任務的開始截止時間確定的任務優先級調度算法。截止時間越早則優先級越高。該算法要求在系統中保持一個實時任務就緒隊列,該隊列按各任務截止時間的先后排序。
舉例:非搶占式調度方式用於非周期實時任務。圖3-9是將該算法用於非搶占調度方式之例。該例中具有四個非周期任務,它們先后到達。系統首先調度任務1執行,在任務1執行期間,任務2、3又先后到達。由於任務3的開始截止時間早於任務2,故系統在任務1后將調度任務3執行。在此期間又到達作業4,其開始截止時間仍是早於任務2的,故在任務3執行完后,系統又調度任務4執行,最后才調度任務2執行。
圖3-9 EDF算法用於非搶占調度的調度方式
17.什么是最低松弛度優先調度算法?舉例說明之。
答:該算法是根據任務緊急(或松弛)的程度,來確定任務的優先級。任務的緊急程度愈高,
為該任務所賦予的優先級就愈高,以使之優先執行。例如,一個任務在200 ms 時必須完
成,而它本身所需的運行時間就有100 ms,因此,調度程序必須在100 ms 之前調度執行,
該任務的緊急程度(松弛程度)為100 ms。又如,另一任務在400 ms 時必須完成,它本身
需要運行 150 ms,則其松弛程度為 250 ms。
18.何謂死鎖?產生死鎖的原因和必要條件是什么?
答:死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處於這種僵持狀
態時,若無外力作用,它們都將無法再向前推進。
產生死鎖的原因為競爭資源和進程間推進順序非法。其必要條件是:互斥條件、請求和
保持條件、不剝奪條件、環路等待條件。
19.在解決死鎖問題的幾個方法中,哪種方法最易於實現?哪種方法使資源利用率最高?
答:解決死鎖的四種方法即預防、避免、檢測和解除死鎖中,預防死鎖最容易實現;
避免死鎖使資源的利用率最高。
20.請詳細說明可通過哪些途徑預防死鎖。
答:(1)擯棄“請求和保持”條件,就是如果系統有足夠資源,便一次性把進程需要的所
有資源分配給它;
(2)擯棄“不剝奪”條件,就是已經擁有資源的進程,當它提出新資源請求而不能立即
滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;
(3)擯棄“環路等待”條件,就是將所有資源按類型排序標號,所有進程對資源的請求
必須嚴格按序號遞增的次序提出。
21.在銀行家算法的例子中,如果P0發出請求向量由Request(0,2,0)改為Request(0,1,0),
問系統可否將資源分配給它?(此答案有點問題,需重新考慮)
答:(1)可以。銀行家算法各種資源數量分別為10、5、7,在T0時刻的資源分配如圖所示:
(2)具體分析如下:
① Requst0(0,1,0)<=Need0(7,4,3);
②Requst0(0,1,0)<=Available(2,3,0);
系統先假定可為P0分配資源,並修改Available0,Allocation0和Need0向量,由此形成
的資源變化情況如下圖所示:
(3)P0請求資源:P0發出請求向量Requst0(0,1,0),系統按銀行家算法進行檢查:
① Requst0(0,1,0)<=Need0(7,4,3);
②Requst0(0,1,0)<=Available(2,3,0);
③ 系統暫時先假定可為P0分配資源,並修改______________有關數據,如下圖所示
綜上所述系統可以將資源分配給它。
22.銀行家算法中出現以下資源分配,試問(1)該狀態是否安全?(2)若進程P2提出
Request(1,2,2,2)后,系統能否將資源分配給它?
試問: (1)該狀態是否安全?
(2)若進程P2提出請求Request(1,2,2,2)后,系統能否將資源分配給它?(參考答案有錯)
答: (1)安全,因為存在安全序列{P0,P3,P4,P1,P2}
(2)系統能分配資源,分析如下。
① Request(1,2,2,2) <=Need2(2,3,5,6);
② Request(1,2,2,2) <=Available2(1,3,5,4)改成Available2(1,6,2,2);
③系統先假定可為P2分配資源,並修改Available2,Allocation2和Need2向量,
由此形成的資源變化情況如下圖所示:
④ 再利用安全性算法檢查此時系統是否安全。如下圖
由此進行的安全性檢查得知,可以找到一個安全序列{P2,P0,P1,P3,P4}。
第四章
1.為什么要配置層次式存儲器?
答:設置多個存儲器可以使存儲器兩端的硬件能並行工作;采用多級存儲系統,特別是
Cache 技術,是減輕存儲器帶寬對系統性能影響的最佳結構方案;在微處理機內部設置各
種緩沖存儲器,減輕對存儲器存取的壓力。增加CPU中寄存器數量大大緩解對存儲器壓力。
2.可采用哪幾種方式將程序裝入內存?它們分別適用於何種場合?
答: (1)絕對裝入方式,只適用於單道程序環境。
(2)可重定位裝入方式,適用於多道程序環境。
(3)動態運行時裝入方式,用於多道程序環境;不允許程序運行時在內存中移位置。
3.何謂靜態鏈接?何謂裝入時動態鏈接和運行時的動態鏈接?P120
答:靜態鏈接是指在程序運行前,先將各目標模塊及它們所需的庫函數,鏈接成一個完整的
裝配模塊,以后不再拆開的鏈接方式。
裝入時動態鏈接是指將用戶源程序編譯后得到的一組目標模塊,在裝入內存時采用邊裝
入邊鏈接的鏈接方式。
運行時動態鏈接是指對某些目標模塊的鏈接,是在程序執行中需要該目標模塊時,才對
它進行的鏈接。
4.在進行程序鏈接時,應完成哪些工作?
答:由鏈接程序Linker將編譯后形成的一組目標模塊,以及它們需要的庫函數鏈接在一起,
形成一個完整的裝入模塊Load Module。主要工作是修改程序內的相對地址和修改目標程
序中的外部調用標號。
5.在動態分區分配方式中,應如何將各空閑分區鏈接成空閑分區鏈?
答:在每個分區的起始部分,設置一些控制分區分配的信息,以及用於鏈接各分區所用的前
向指針;在分區尾部設置一個后向指針,通過前后向鏈接指針,將所有空閑分區鏈成一個雙
向鏈。當分區分配出去后,把狀態位由“0”改為“1”。
6.為什么要引入動態重定位?如何實現?
答:在程序執行過程中,每當訪問指令或數據時,將要訪問的程序或數據的邏輯地址轉換成
物理地址,引入了動態重定位;
具體實現方法是在系統中增加一個重定位寄存器,用來裝入程序在內存中的起始地址,
程序執行時,真正訪問的內存地址是相對地址與重定位寄存器中的地址相加之和,從而實現
動態重定位。
7.在采用首次適應算法回收內存時,可能出現哪幾種情況?應怎樣處理這些情況?
答:在采用首次適應算法回收內存時可能出現4種情況:
(1)回收區前鄰空閑區。將回收區與前鄰空閑區合並,將前鄰空閑區大小修改為兩者之和。
(2)回收區后鄰空閑區。將兩區合並,改后鄰空閑區始址為回收區始址,大小為兩者之和。
(3)回收區前后均鄰空閑區。將三個分區合並,修改前鄰空閑區大小為三者之和。
(4)回收區前后均不鄰空閑區。為回收區設置空閑區表項,填入回收區始址和大小並插入
空閑區隊列。
8.令 表示大小為 、地址為x 的塊的伙伴系統地址,試寫出的通用表達式。
答:當 時, ;當 時,
9.分區存儲管理中常用那些分配策略?比較它們的優缺點。
答:分區存儲管理中的常用分配策略:首次適應算法、循環首次適應算法、最佳適應算法、最壞適應算法。
首次適應算法優缺點:保留了高址部分的大空閑區,有利於后來的大型作業分配;低址部分不斷被划分,留下許多難以利用的小空閑區,每次查找都從低址開始增加了系統開銷。
循環首次適應算法優缺點:內存空閑分區分布均勻,減少了查找系統開銷;缺乏大空閑分區,導致不能裝入大型作業。
最佳適應算法優缺點:每次分配給文件的都是最適合該文件大小的分區,內存中留下許多難以利用的小空閑區。
最壞適應算法優缺點:剩下空閑區不太小,產生碎片幾率小,對中小型文件分配分區操作有利;存儲器中缺乏大空閑區,對大型文件分區分配不利。
10.在系統中引入對換后可帶來哪些好處?
答:交換技術將暫不需要的作業移到外存,讓出內存空間以調入其它作業,交換到外存的作
業也可以被再次調入。目的是解決內存緊張問題,帶來的好處是進一步提高了內存利用率和
系統吞吐量。
11.為實現對換,系統應具備哪幾方面的功能?
答:系統應具備三方面功能:對換空間管理,進程換出,進程換入。
12.在以進程為單位進行對換時,每次是否都將整個進程換出?為什么?
答:在以進程為單位進行對換時,並非每次都將整個進程換出。這是因為:
(1)從結構上講,進程由程序段、數據段和進程控制塊組成的,其中進程控制塊總有部分或全部常駐內存,不被換出。
(2)程序段和數據段可能正被若干進程共享,此時它們也不能換出。
13.為實現分頁存儲管理,需要哪些硬件的支持?
答:動態重定位技術、虛擬存儲技術、多道程序設計技術。
14.較詳細的說明引入分段存儲管理是為了滿足用戶哪幾方面的需要。
答:
1) 方便編程。用戶通常把自己的作業按照邏輯關系划分為若干段,每段都從0 編址,並
有自己名字和長度。因此,希望要訪問的邏輯地址是由段名和段內偏移量決定。
2) 信息共享。在實現對程序和數據的共享時,是以信息邏輯單位為基礎。分頁系統中的頁
是存放信息的物理單位,無完整意義,不便於共享;段是信息的邏輯單位。為了實現段
的共享,希望存儲管理能與用戶程序分段的組織方式相適應。
3) 信息保護。對信息的邏輯單位進行保護,分段能更有效方便地實現信息保護功能。
4) 動態增長。在實際應用中,有些段特別是數據段,在使用過程中會不斷增長,事先又無
法確切知道增長多少。分段存儲管理方式能較好解決這個問題。
5) 動態鏈接。運行時先將主程序對應的目標程序裝入內存並啟動運行,運行過程中又需要
調用某段時,才將該段調入內存鏈接。所以動態鏈接也要求以段作為管理單位。
15.在具有快表的段頁式存儲管理方式中,如何實現地址變換?
答:在CPU給出有效地址后,由地址變換機構自動將頁號P送入高速緩沖寄存器,並將此
頁號與高速緩存中的所有頁號比較,若找到匹配頁號,表示要訪問的頁表項在快表中。可直
接從快表讀出該頁對應物理塊號,送到物理地址寄存器中。如快表中沒有對應頁表項,則再
訪問內存頁表,找到后,把從頁表項中讀出物理塊號送地址寄存器;同時修改快表,將此頁
表項存入快表。但若寄存器已滿,則OS必須找到合適的頁表項換出。
16.為什么說為什么說分段系統比分頁系統更易於實現信息的共享和保護?
答:分頁系統的每個頁面是分散存儲的,為了實現信息共享和保護,頁面之間需要一一對應,
為此需要建立大量的頁表項;而分段系統的每個段都從0 編址,並采用一段連續的地址空
間,在實現共享和保護時,只需為要共享和保護的程序設置一個段表項,將其中的基址與內
存地址一一對應就能夠實現。
17.分段和分頁存儲管理有何區別?
答:
(1)頁是信息的物理單位,分頁是為了實現離散分配方式,以消減內存的外部零頭,提高內存利用率。段則是信息的邏輯單位,它含有一組相對完整的信息。
(2)頁的大小固定且由系統決定,由系統把邏輯地址划分為頁號和頁內地址兩部分,是由
機械硬件實現的,因而在系統中只能有一種大小的的頁面;而段的長度卻不固定,決定於用戶
所編寫的程序,通常由編譯程序在對原程序進行編譯時,根據信息的性質來划分。
(3)分頁的作業地址空間是一維的,而分段作業地址空間則是二維的。
18.試全面比較連續分配和離散分配方式.
答:
(1)連續分配是指為一個用戶程序分配一個連續的地址空間,包括單一和分區兩種分配方
式。單一方式將內存分為系統區和用戶區,最簡單,只用於單用戶單任務操作系統;分區方
式分固定和動態分區。
(2)離散分配方式分為分頁、分段和段頁式存儲管理。分頁式存儲管理旨在提高內存利用
率,分段式存儲管理旨在滿足用戶(程序員)的需要,段頁式存儲管理則將兩者結合起來,具
有分段系統便於實現、可共享、易於保護和動態鏈接等優點,又能像分頁系統很好解決外部
碎片及為各段可離散分配內存等問題,是比較有效的存儲管理方式;
19.虛擬存儲器有哪些特征?其中最本質的特征是什么?
答:虛擬存儲器有多次性、對換性、虛擬性三大特征。最本質的特征是虛擬性。
20.實現虛擬存儲器需要哪些硬件支持?
答:(1)請求分頁(段)的頁(段)表機制(2)缺頁(段)中斷機構(3)地址變換機構
21.實現虛擬存儲器需要哪幾個關鍵技術?
答:
(1)在分頁請求系統中是在分頁的基礎上,增加了請求調頁功能和頁面置換功能所形成的
頁式虛擬存儲系統。允許只裝入少數頁面的程序(及數據),便啟動運行。
(2)在請求分段系統中是在分段系統的基礎上,增加了請求調段及分段置換功能后形成的
段式虛擬存儲系統。允許只裝入少數段(而非所有段)的用戶程序和數據,即可啟動運行。
22.在請求分頁系統中,頁表應包括哪些數據項?每項的作用是什么?
答:頁表應包括:頁號、物理塊號、狀態位P、訪問字段A、修改位M和外存地址。
其中狀態位P 指示該頁是否調入內存,供程序訪問時參考;訪問字段A 用於記錄本頁在一
段時間內被訪問的次數,或最近已有多長時間未被訪問,提供給置換算法選擇換出頁面時參
考;修改位M 表示該頁在調入內存后是否被修改過;外存地址用於指出該頁在外存上的地
址,通常是物理塊號,供調入該頁時使用。
23.在請求分頁系統中,應從何處將所需頁面調入內存?
答:請求分頁系統中的缺頁從何處調入內存分三種情況:
(1)系統擁有足夠對換區空間時,可以全部從對換區調入所需頁面,提高調頁速度。在進程運行前將與該進程有關的文件從文件區拷貝到對換區。
(2)系統缺少足夠對換區空間時,不被修改的文件直接從文件區調入;當換出這些頁面時,未被修改的不必換出,再調入時,仍從文件區直接調入。對於可能修改的,在換出時便調到對換區,以后需要時再從對換區調入。
(3)UNIX 方式。未運行頁面從文件區調入。曾經運行過但被換出頁面,下次從對換區調入。UNIX系統允許頁面共享,某進程請求的頁面有可能已調入內存,直接使用不再調入。24.在請求分頁系統中,常采用哪幾種頁面置換算法?
答:采用的頁面置換算法有:最佳置換算法和先進先出置換算法,最近最久未使用(LRU)置換算法,Clock置換算法,最少使用置換算法,頁面緩沖算法等。
25.在請求分頁系統中,通常采用哪種頁面分配方式?為什么?
答:固定分配方式是基於進程的類型(交互型)或根據程序員、系統管理員的建議,為每個進程分配固定頁數的內存空間,整個運行期間不再改變;采用可變分配方式有全局置換和局部置換兩種,前者易於實現,后者效率高。
26.在一個請求分頁系統中,采用LRU 頁面置換算法時,假如一個作業的頁面走向為4 , 3 , 2 ,1 , 4 , 3 , 5 , 4 ,3 , 2 , 1 ,5,當分配給該作業的物理塊數M分別為3和4時,試計算訪問過程中所發生的缺頁次數和缺頁率 ? 比較所得結果?(參考答案有錯)
答:當分配給該作業的物理塊數M為3時,缺頁7次,缺頁率: 7/12=0.583;
當分配給該作業的物理塊數M為4時,缺頁4次,缺頁率: 4/12=0.333.
-------以上解答出錯。正確解法見下面:
答:當分配給該作業的物理塊數M為3時,缺頁9次,缺頁率: 9/12=3/4;
當分配給該作業的物理塊數M為4時,缺頁10次,缺頁率: 10/12=5/6.
27.實現LRU算法所需的硬件支持是什么?
答:需要寄存器和棧等硬件支持。寄存器用於記錄某進程在內存中各頁的使用情況,棧用於
保存當前使用的各個頁面的頁面號。
28.試說明改進型 Clock 置換算法的基本原理.
答:因為修改過的頁面在換出時付出的開銷比未被修改過的頁面大,在改進型Clock 算法
中,既考慮頁面的使用情況,還要增加置換代價的因素;在選擇頁面作為淘汰頁面時,把同
時滿足未使用過和未被修改作為首選淘汰頁面。
29.說明請求分段系統中的缺頁中斷處理過程。
答:請求分段系統中的缺頁中斷處理過程描述如下:
(1)根據當前執行指令中的邏輯地址查頁表,判斷該頁是否在主存儲器中
(2)該頁標志為“0”形成缺頁中斷,中斷裝置通過交換PSW讓操作系統的中斷處理程序占用處理器。
(3)操作系統處理缺頁中斷處理的辦法是查主存分配表找一個空閑的主存塊,查頁表找出該頁在磁盤上位置,啟動磁盤讀出該頁信息。
(4)把從磁盤上讀出的信息裝入找到的主存塊中。
(5)當頁面住處被裝入主存后,應修改頁表中對應的表目,填上該頁所占用的主存塊把標志置為“1”,表示該頁已在主存儲器中
(6)由於產生缺頁中斷時的那條指令並沒執行完,所以在把頁面裝入之后應重新執行被中斷指令。
請求分段系統中的缺頁中斷處理過程如下圖所示:
30.如何實現分段共享 ?
答:在每個進程的段表中,用相應的表項指向共享段在內存中起始地址;配置相應的數據結構作為共享段表,在段表項中設置共享進程計數Count,每調用一次該共享段,Count值增 1,每當進程釋放一個共享段時,Count減1,若減為0,則系統回收該共享段的物理內存,取消在共享段表中該段對應的表項;共享段應給不同的進程以不同的存取權限;不同的進程可以使用不同的段號去共享該段。
第五章
1.試說明設備控制器的組成。
答:由設備控制器與處理機的接口,設備控制器與設備的接口與I/O邏輯組成。
2.為了實現CPU與設備控制器間的通信,設備控制器應具備哪些功能?
答:接收和識別命令;數據交換;標識和報告設備狀態;地址識別;數據緩沖;差錯控制。
3.什么是字節多路通道?什么是數組選擇通道和數組多路通道?
答:(1)字節多路通道。按字節交叉方式工作的通道。通常含有許多非分配型子通道,數
量從幾十到數百個,每個子通道連接一台I/O 設備,控制其I/O 操作。子通道按時間片輪
轉方式共享主通道。
(2)數組選擇通道。按數組方式傳送數據,傳輸速率很高,每次只允許一個設備數據。
(3)數組多路通道。將數組選擇通道傳輸速率高和字節多路通道的各子通道分時並行操作的優點結合而成。含有多個非分配型子通道,具有很高的數據傳輸率和通道利用率。
4.如何解決因通道不足而產生的瓶頸問題?
答:解決問題的有效方法是增加設備到主機間的通路而不增加通道,把一個設備連到多個控制器上,控制器又連到多個通道上,這種多通路方式解決了“瓶頸”問題,提高了系統可靠性,個別通道或控制器的故障不會使設備和存儲器之間沒有通路。
5.試對VESA 及PCI兩種總線進行比較。
答:VESA總線的設計思想是以低價占領市場。總線帶寬32位,最高傳輸速率132Mb/s。
廣泛用於486微機。缺點是能連接的設備數僅為2~4 台,控制器中無緩沖,難於適應處理
器速度的提高,不支持Pentium機。
PCI總線在CPU和外設間插入了復雜的管理層,協調數據傳輸和提供一致接口。管理
層中配有數據緩沖,放大了線路的驅動能力,最多支持10種外設,支持高時鍾頻率的CPU
運行,最大傳輸速率132Mb/s。可連接ISA、EISA等傳統總線,又支持Pentium的64
位系統,是基於奔騰等新一代微處理器而發展的總線。
6.試說明推動I/O控制發展的主要因素是什么?
答:推動I/O 控制發展的主要動力在於盡量減少主機對I/O控制的干預,把主機從繁雜的I/O控制事務中解脫出來,用更多的時間和精力去完成其數據處理任務。同時,中斷機制在計算機系統中的引入、DMA控制器的出現和通道研制的成功使I/O 控制的發展具備了技術支持和成為可能。
7.有哪幾種I/O控制方式?各適用於何種場合?
答:共有四種I/O 控制方式。
(1)程序I/O方式:早期計算機無中斷機構,處理機對I/O設備的控制采用程序I/O方式或稱忙等的方式。
(2)中斷驅動I/O 控制方式:適用於有中斷機構的計算機系統中。
(3)直接存儲器訪問(DMA)I/O 控制方式:適用於具有DMA控制器的計算機系統中。
(4)I/O 通道控制方式:具有通道程序的計算機系統中。
8.試說明DMA 的工作流程。
答:以從磁盤讀入數據為例,說明DMA的工作流程。當CPU要從磁盤讀入數據塊時,先向磁盤控制器發送一條讀命令。該命令被送到命令寄存器CR中。同時還發送本次要讀入數據的內存起始目標地址,送入內存地址寄存器MAR;本次要讀數據的字節數送入數據計數器DC,將磁盤中的源地址直接送DMA控制器的I/O控制邏輯上。然后啟動DMA 控制器傳送數據,以后CPU便處理其它任務。整個數據傳送過程由DMA控制器控制。下圖為DMA方式的工作流程圖。
9.引入緩沖的主要原因是什么?
答:引入緩沖的主要原因是:
(1)緩和CPU與I/O 設備間速度不匹配的矛盾
(2)減少對CPU的中斷頻率,放寬對中斷響應時間的限制
(3)提高CPU與I/O 設備之間的並行性
10.在單緩沖情況下,為什么系統對一塊數據的處理時間為max(C,T)+M?
答:在塊設備輸入時,先從磁盤把一塊數據輸入到緩沖區,耗時為T;然后由操作系統將緩沖區數據送給用戶區,耗時M;接下來由CPU對塊數據進行計算,耗時C。在單緩沖情況下,磁盤把數據輸入到緩沖區的操作和CPU對數據的計算過程可以並行展開,所以系統對每一整塊數據的處理時間為max(C, T) + M。
11.為什么在雙緩沖情況下,系統對一塊數據的處理時間為max(T,C)?
答:寫入者花費時間T 將數據寫滿一個緩沖區后再寫另一個緩沖區;讀出者花費時間M將一個緩沖區數據送到用戶區后再傳送另一個緩沖區數據,計算者讀出用戶區數據進行處理。由於將數據從緩沖區傳到用戶區操作必須與讀用戶區數據處理串行進行,而且可以與從外存傳送數據填滿緩沖區的操作並行。因此耗時大約為max(C+M,T)。考慮M是內存數據塊的移動耗時非常短暫可以省略,因此近似地認為系統對一塊數據處理時間為max(C,T)。
12.試繪圖說明把多緩沖用於輸出時的情況。
答:多緩沖用於輸出的示意圖如下:
13.試說明收容輸入工作緩沖區和提取輸出工作緩沖區的工作情況。
答:
①收容輸入工作緩沖區的工作情況為:在輸入進程需要輸入數據時,調用GetBuf(EmptyQueue)過程,從EmptyQueue隊列的隊首摘下一個空緩沖區,作為收容輸入工作緩沖區Hin。然后把數據輸入其中,裝滿后再調用PutBuf(InputQueue,Hin)過程,將該緩沖區掛在輸入隊列InputQueue的隊尾。
②提取輸出工作緩沖區的工作情況為:當要輸出數據時,調用GetBuf(OutputQueue)過程,從輸出隊列的隊首取得一裝滿輸出數據的緩沖區作為提取輸出工作緩沖區Sout。在數據提取完后,再調用PutBuf(EmptyQueue,Sout)過程,將該緩沖區掛到空緩沖隊列EmptyQueue的隊尾。
14.何謂安全分配方式和不安全分配方式?
答:
① 安全分配方式是指每當進程發出I/O 請求后,便進入阻塞狀態,直到其I/O操作完成時才被喚醒。在采用這種分配策略時,一旦進程已獲得某種設備資源后便阻塞,使它不可能再請求任何資源,而在它運行時又不保持任何資源。這種分配方式已經摒棄了造成死鎖的“請求和保持”條件,分配是安全的。缺點是進程進展緩慢,CPU與I/O設備串行工作。
②不安全分配方式是指進程發出I/O 請求后仍繼續執行,需要時又可發出第二個I/O 請求、第三個I/O請求。僅當進程請求的設備已被另一個進程占有時,進程才進入阻塞狀態。優點是一個進程可同時操作多個設備,進程推進迅速。缺點是分配不安全,可能具有“請求和保持”條件,可能造成死鎖。因此,在設備分配程序中需增加一個功能,用於對本次的設備分配是否會發生死鎖進行安全性計算,僅當計算結果表明分配安全的情況下才進行分配。
15.為何要引入設備獨立性?如何實現設備獨立性?
答:現代操作系統為了提高系統的可適應性和可擴展性,都實現了設備獨立性或設備無關性。基本含義是應用程序獨立於具體使用的物理設備,應用程序以邏輯設備名請求使用某類設備。實現了設備獨立性功能可帶來兩方面的好處:(1)設備分配時的靈活性;(2)易於實現I/O重定向。
為了實現設備的獨立性,應引入邏輯設備和物理設備概念。在應用程序中,使用邏輯設備名請求使用某類設備;系統執行時是使用物理設備名。鑒於驅動程序是與硬件或設備緊密相關的軟件,必須在驅動程序之上設置一層設備獨立性軟件,執行所有設備的公有操作、完成邏輯設備名到物理設備名的轉換(為此應設置一張邏輯設備表)並向用戶層(或文件層)軟件提供統一接口,從而實現設備的獨立性。
16.在考慮到設備的獨立性時,應如何分配獨占設備?
答:在考慮到設備的獨立性時,應按如下步驟來分配獨占設備:
(1) 進程以邏輯設備名提出I/O請求。
(2) 根據邏輯設備表獲得I/O請求的邏輯設備對應物理設備在系統設備表中的指針。
(3) 檢索系統設備表,找到屬於請求類型、空閑可用且分配安全設備的設備控制表,將對應
設備分配給請求進程;未找到則等待等待喚醒和分配。
(4) 到設備控制表中找出與其相連接的控制器的控制器控制表,根據狀態字段判斷是否忙
碌,忙則等待;否則將該控制器分配給進程。
(5) 到該控制器的控制器控制表中找出與其相連接的通道的通道控制表,判斷通道是否忙
碌,忙則等待;否則將該通道分配給進程。
(6) 只有在設備、控制器和通道三者都分配成功時,這次的設備分配才算成功,然后便可啟
動設備進行數據傳送。
17.何謂設備虛擬?實現設備虛擬時所依賴的關鍵技術是什么?
答:設備虛擬是指把獨占設備經過某種技術處理改造成虛擬設備。
可虛擬設備是指一台物理設備在采用虛擬技術后,可變成多台邏輯上的虛擬設備,則可虛擬設備是可共享的設備,將它同時分配給多個進程使用,並對這些訪問該物理設備的先后次序進行控制。
18.試說明SPOOLing 系統的組成。
答:SPOOLing 系統由輸入井和輸出井、輸入緩沖區和輸出緩沖區、輸入進程 SPi 和輸出進程SPo 三部分組成。
19.在實現后台打印時,SPOOLing 系統應為請求I/O的進程提供哪些服務?
答:在實現后台打印時,SPOOLing 系統應為請求 I/O的進程提供以下服務:
(1)由輸出進程在輸出井中申請一空閑盤塊區,並將要打印的數據送入其中;
(2)輸出進程為用戶進程申請空白用戶打印表,填入打印要求,將該表掛到請求打印隊列。
(3)一旦打印機空閑,輸出進程便從請求打印隊列的隊首取出一張請求打印表,根據表中要求將要打印的數據從輸出井傳送到內存緩沖區,再由打印機進行打印。
20.試說明設備驅動程序具有哪些特點。
答:設備驅動程序具有如下特點:
(1)是請求 I/O 進程與設備控制器間的一個通信程序;
(2)驅動程序與 I/O 設備的特性緊密相關;
(3)驅動程序與 I/O 控制方式緊密相關;
(4)驅動程序與硬件緊密相關,部分程序用匯編語言書寫,基本部分往往固化在ROM中。
21.試說明設備驅動程序應具有哪些功能?
答:設備驅動程序的主要功能包括:
(1)將接收到的抽象要求轉為具體要求;
(2)檢查用戶I/O請求合法性,了解I/O 設備狀態,傳遞有關參數,設置設備工作方式;
(3)發出I/O 命令,啟動分配到的I/O設備,完成指定I/O 操作;
(4)及時響應由控制器或通道發來的中斷請求,根據中斷類型調用相應中斷處理程序處理;
(5)對於有通道的計算機,驅動程序還應該根據用戶 I/O 請求自動構成通道程序。
22.設備中斷處理程序通常需完成哪些工作?
答:設備中斷處理程序通常需完成如下工作:
(1) 喚醒被阻塞的驅動程序進程;
(2) 保護被中斷進程的CPU環境;
(3) 分析中斷原因、轉入相應的設備中斷處理程序;
(4) 進行中斷處理;
(5) 恢復被中斷進程。
23.磁盤訪問時間由哪幾部分組成?每部分時間應如何計算?
答:磁盤訪問時間由尋道時間Ts、旋轉延遲時間Tr、傳輸時間Tt 三部分組成。
(1)Ts 是啟動磁臂時間s 與磁頭移動n條磁道的時間和,即Ts = m × n + s。
(2)Tr是指定扇區移動到磁頭下面所經歷的時間。硬盤15000r/min時Tr為2ms;軟盤300或600r/min時Tr為50~100ms。
(3)Tt 是指數據從磁盤讀出或向磁盤寫入經歷的時間。Tt的大小與每次讀/寫的字節數b和旋轉速度有關:Tt = b/rN。
24.目前常用的磁盤調度算法有哪幾種?每種算法優先考慮的問題是什么?
答:目前常用的磁盤調度算法有先來先服務、最短尋道時間優先及掃描等算法。
(1) 先來先服務算法優先考慮進程請求訪問磁盤的先后次序;
(2) 最短尋道時間優先算法優先考慮要求訪問的磁道與當前磁頭所在磁道距離是否最近;
(3) 掃描算法考慮欲訪問的磁道與當前磁道間的距離,更優先考慮磁頭當前的移動方向。
25.為什么要引入磁盤高速緩沖?何謂磁盤高速緩沖?
答:目前磁盤的I/O速度遠低於內存的訪問速度,通常低上4-6個數量級。因此,磁盤I/O已成為計算機系統的瓶頸。為提高磁盤I/O的速度,便引入了磁盤高速緩沖。
磁盤高速緩沖是指利用內存中的存儲空間,暫存從磁盤中讀出的一系列盤塊中的信息。
26.在設計磁盤高速緩沖時,如何實現數據交付?
答:數據交付是指將磁盤高速緩存中的數據傳給請求進程。當進程請求訪問某個盤塊中的數據時,由核心先查看磁盤高速緩沖,看其中是否存在所需盤塊數據的拷貝。若有便直接從中提取數據交付給請求進程,避免了訪盤操作,本次訪問速度提高4-6個數量級;否則先從磁盤中將要訪問的數據讀入並交付給請求者進程,同時送高速緩存以便下次直接讀取。
27.何謂提前讀、延遲寫和虛擬盤?
答:提前讀是指在讀當前盤塊的同時,將下一個可能要訪問的盤塊數據讀入緩沖區,以便需
要時直接從緩沖區中讀取,無需啟動磁盤。
延遲寫是指在寫盤塊時,將對應緩沖區中的立即寫數據暫時不立即寫以備不久之后再被訪問,只將它置上“延遲寫”標志並掛到空閑緩沖隊列的末尾。當移到空閑緩沖隊首並被分配出去時,才寫緩沖區中的數據。只要延遲寫塊仍在空閑緩沖隊列中,任何要求訪問都可直接從其中讀出數據或將數據寫入其中,而不必去訪問磁盤。
虛擬盤又稱RAM盤,是利用內存空間仿真磁盤。其設備驅動程序可以接受所有標准的磁盤操作,但這些操作不是在磁盤上而是在內存中,因此速度更快。
28.廉價磁盤冗余陣列是如何提高對磁盤的訪問速度和可靠性的?
答:廉價磁盤冗余陣列RAID是利用一台磁盤陣列控制器,統一管理和控制一組(幾台到幾
十台)磁盤驅動器,組成高度可靠快速大容量的磁盤系統。
操作系統將RAID中的一組物理磁盤驅動器看作一個單個的邏輯磁盤驅動器。用戶數據和系統數據可分布在陣列的所有磁盤中,並采取並行傳輸方式,大大減少數據傳輸時間和提高了可靠性。
第六章
1.何謂數據項、記錄和文件?
答:①數據項分為基本數據項和組合數據項。基本數據項描述一個對象某種屬性的字符集,具有數據名、數據類型及數據值三個特性。組合數據項由若干數據項構成。
②記錄是一組相關數據項的集合,用於描述一個對象某方面的屬性。
③文件是具有文件名的一組相關信息的集合。
2.文件系統的模型可分為三層,試說明其每一層所包含的基本內容。
答:第一層:對象及其屬性說明(文件、目錄、硬盤或磁帶存儲空間);
第二層:對對象操縱和管理的軟件集合(I/O控制層即設備驅動程序、基本文件系統即物理I/O層、基本I/O管理程序或文件組織模塊層、邏輯文件系統層)
第三層:文件系統接口(命令接口/圖形化用戶接口與程序接口)。
3.試說明用戶可以對文件施加的主要操作有哪些?
答:用戶通過文件系統提供的系統調用對文件實施操作。
(1)基本文件操作:創建、刪除、讀、寫、截斷、設置讀/寫位置等;
(2)文件打開和關閉操作:第一步通過檢索文件目錄找到指定文件屬性及其在外存上位置;第二步對文件實施讀寫等相應操作。
(3)其他文件操作:一是文件屬性操作;二是目錄操作;三是文件共享與文件系統操作的系統調用實現等。
4.何謂邏輯文件?何謂物理文件?
答:邏輯文件是物理文件中存儲的數據的一種視圖方式,不包含具體數據,僅包含物理文件中數據的索引。物理文件又稱文件存儲結構,是指文件在外存上的存儲組織形式。
5.如何提高對變長記錄順序文件的檢索速度?
答:基本方法是為變長記錄順序文件建立一張索引表,以主文件中每條記錄的長度及指向對應記錄的指針(即該記錄在邏輯地址空間的首址)作為相應表項的內容。由於索引表本身是一個定長記錄的順序文件,若將其按記錄鍵排序,則實現了對主文件方便快捷的直接存取。如果文件較大,應通過建立分組多級索引以進一步提高檢索效率。
6.試說明對索引文件和索引順序文件的檢索方法。
答: ①索引文件的檢索,首先根據用戶(程序)提供的關鍵字,利用折半查找法檢索索引表,找到相應表項;再利用給出的指向記錄指針值,訪問對應記錄。
②索引順序文件的檢索,首先利用用戶(程序)提供的關鍵字及查找方法,檢索索引表,找到該記錄在記錄組中的第一條記錄表項,得到第一個記錄在主文件中的位置;再利用順序查找法查找主文件,找到所要求的記錄。
7.試從檢索速度和存儲費用兩方面對索引文件和索引順序文件進行比較。
答:索引文件的主文件每條記錄配置一個索引項,存儲開銷N,檢索到具有指定關鍵字的記錄,平均查找N/2條記錄。對於索引順序文件,每個記錄分組配置一個索引項,存儲開銷為N,檢索到具有指定關鍵字的記錄,平均需要查找N /2次。
8.試說明順序文件的結構及其優點。
答:第一種是串結構:各記錄之間的順序與關鍵字無關。第二種是順序結構:指文件中的所有記錄按關鍵字(詞)排列。可以按關鍵詞長短排序或英文字母順序排序。
順序文件的最佳應用場合是對諸記錄進行批量存取時,存取效率最高;只有順序文件才能存儲在磁帶上並有效工作。
9.在鏈接式文件中常用哪種鏈接方式?為什么?
答:鏈接方式分為隱式鏈接和顯式鏈接兩種形式。隱式鏈接是在文件目錄的每個目錄項中,都含有指向鏈接文件第一個盤塊和最后一個盤塊的指針。顯式鏈接則把用於鏈接文件各物理塊的指針,顯式地存放在內存的一張鏈接表中。
10.在MS-DOS中有兩個文件A 和B,A占用11、12、16和14四個盤塊;B 占用13、18和20三個盤塊。試畫出在文件A和B中各盤塊間的鏈接情況及FAT的情況。
答:如下圖所示。
11.NTFS文件系統對文件采用什么樣的物理結構?
答:在NTFS文件系統中,以簇作為磁盤空間分配和回收的基本單位。一個文件占若干個簇,一個簇只屬於一個文件。
12.假定一個文件系統的組織方式與MS-DOS相似,在FAT中可有64K個指針,磁盤的盤塊大小為512B,試問該文件系統能否指引一個512MB的磁盤?
解:512MB/512B=1M 個盤塊,而每個盤塊都應有一個指針來指示,所以應該有1M個指針,因此若有64K 指針不能指引一個512MB的磁盤。
13.為了快速訪問,又易於更新,當數據為以下形式時,應選用何種文件組織方式。
⑴不經常更新,經常隨機訪問;⑵經常更新,經常按一定順序訪問;⑶經常更新,經常隨機訪問;
答:以上三種宜分別采用(1)順序結構(2)索引順序結構(3)索引結構的組織方式。
14.在UNIX中,如果一個盤塊的大小為1KB,每個盤塊號占4個字節,即每塊可放256個地址。請轉換下列文件的字節偏移量為物理地址。
⑴9999; ⑵18000;⑶420000
答:首先將邏輯文件的字節偏移量轉換為邏輯塊號和塊內偏移量,就是將[字節偏移量]/[盤塊大小],商為邏輯塊號,余數是塊內偏移量。在FCB中,第0-9個地址為直接地址,第10個為一次間接地址,第11個地址為二次間接地址,第12個地址為三次間接地址。
再將文件的邏輯塊號轉換為物理塊號。使用多重索引結構,在索引節點中根據邏輯塊號
通過直接索引或間接索引找到對應的物理塊號。
(1)9999/1024=9余783,則邏輯塊號為9,直接索引第9個地址得到物理塊號,塊內偏移地址為783。
(2)18000/1024=17余592,則邏輯塊號為10<17<10+256,通過一次間接索引在第10個地址可得到物理塊號,塊內偏移地址為592。
(3)420000/1024=410余160,則邏輯塊號為10+256<410,通過二次間接索引在第11個地址可得到一次間址,再由此得到二次間址,再找到物理塊號,其塊內偏移地址160。
15.什么是索引文件?為什么要引入多級索引?
答:索引文件是指當記錄為可變長度時,通常為之建立一張索引表,並為每個記錄設置一個表項構成的文件。通常將索引非順序文件簡稱為索引文件。索引是為了是用戶的訪問速度更快,多級索引結構可以有效的管理索引文件,可根據用戶的訪問情況多級處理。
16.試說明UNIX 系統中所采用的混合索引分配方式。
答:混合索引分配方式是指將多種索引分配方式結合而成的分配方式。常見的是采用直接地址和一級索引聯合的分配方式,或兩級索引分配方式,甚至三級索引分配方式。在UNIXSystemⅤ和BSD UNIX 的索引結點中,都設置了13個地址項,即iaddr(0)~iaddr(12),把所有地址項分成直接地址和間接地址。
17.對目錄管理的主要要求是什么?
答:實現按名存取、提高檢索目錄的速度、文件共享、允許文件重名。
18.采用單級目錄能否滿足對目錄管理的主要要求?為什么?
答:不能。單級目錄在整個文件系統中只建立一張目錄表,每個文件占一個目錄項,其中含文件名、文件擴展名、文件長度、文件類型、文件物理地址、狀態位等其它文件屬性。
單級只能實現目錄管理的基本功能,不能滿足查找速度、允許重名和文件共享的要求。
19.目前廣泛應用的目錄結構有哪些?它有什么優點?
答:現代操作系統都采用多級目錄結構。基本特點是查詢速度快、層次結構清晰、文件管理和保護易於實現。
20.Hash 檢索法有何優點?又有何局限性?
答:Hash檢索法是系統把用戶提供的文件名變換為文件目錄的索引值,再利用該值查找目錄,有效提高目錄的檢索速度,但Hash檢索法局限於非通配符文件名。
21.在Hash檢索法中,如何解決“沖突”問題?
答:在Hash法查找目錄時,如果目錄表中相應目錄項為空,表示系統中無指定文件。如果文件名與指定文件名匹配,表示找到了目標文件,也就找到了文件的物理地址。如果目錄表中找到的相應文件名不匹配,則發生了沖突,需要Hash轉換形成新的索引值,返回第一步重新查找。
22.試說明在樹型目錄結構中線性檢索法的檢索過程,並給出相應的流程圖。
答:在樹型結構的目錄中,當有兩個或多個用戶共享一個子目錄或文件時,將共享文件或字母路連接到兩個或多個用戶目錄中,方便找到該文件。此時目錄結構不再是樹形結構,而是個有向非循環圖DGA。
23.有一計算機系統利用圖6-33所示的位示圖來管理空閑盤塊。盤塊的大小為1KB,現
要為某文件分配量個盤塊,試說明盤塊的具體分配過程。
答:分配量個盤塊的過程如下:
⑴ 順序掃描位示圖,從中找到第一個值為0的二進制位,得到行號i=3,列號j=3。
⑵ 將找到的二進制位轉換成對應盤塊號。盤塊號為:b=(3-1)*16+3=35;
⑶ 修改位示圖,令map[3,3]=1,並將該盤塊分配出去。
類似地,可使用相同的方法找到第二個值為0的二進制位,得到行號i=4,列號j=7,其對應的盤塊號為55,令map[i,j]=1,並將該盤塊分配出去。
24.某操作系統磁盤文件空間共500塊,若用字長為32位的位示圖管理磁盤空間,試問:(1)位示圖需要多少字?
(2)第i字第j位對應的塊號是多少?
(3)給出申請/歸還一塊的工作流程。
答:(1)位示圖需要的字數計算:INT(500/32)=16 個字。
(2)塊號b=(i-1)*32+j
(3)申請的過程:順序掃描位示圖、找到空閑塊並分配、修改位示圖map[i,j]=1。
歸還的過程:找到回收盤塊在位示圖中的行和列,修改位示圖map[i,j]=0。
25.對空閑磁盤空間的管理常采用哪幾種分配方式?在UNIX系統中采用何種分配方式?
答:空閑表法、空閑鏈表法、位示圖法、成組鏈接法。UNIX系統采用的是成組鏈接法
26.基於索引節點的文件共享方式有何優點?
答:優點是建立新的共享鏈接時,不改變文件擁有者關系,僅把索引結點共享計數器加1,系統可獲悉了由多少個目錄項指向該文件。缺點是擁有者不能刪除自己的文件,否則會出錯。
27.基於符號鏈的文件共享方式有何優點?
答:能夠通過網絡鏈接世界上 任何地方的計算機中的文件。
28.在一級系統容錯技術中,包括哪些容錯措施?什么是寫后讀校驗?
答:一級系統容錯技術包括雙份目錄、雙份文件分配表及寫后讀校驗等容錯措施。
寫后讀校驗是每次從內存緩沖區向磁盤寫入一個數據塊后,又立即從磁盤上讀出該數據塊,並送至另一緩沖區中,再將該緩沖區內容與內存緩沖區中在寫后仍保留的數據進行比較。若兩者一致,才認為寫入成功,繼續寫下一個盤塊。否則重寫。若重寫后仍不一致,則認為盤塊缺陷,便將應寫入該盤塊的數據,寫入到熱修復重定向區中。
29.在第二級系統容錯技術中,包括哪些容錯措施?畫圖說明之。
答:第二級容錯技術包括磁盤鏡像和磁盤雙工兩種容錯措施。圖示如下:
30.何謂事務?如何保證事務的原子性?
答:事務是用於訪問和修改各種數據項的一個程序單位。
要保證事務的原子性必須要求一個事務在對一批數據執行修改操作時,要么全部完成,
用修改后的數據代替原來數據,要么一個也不改,保持原來數據的一致性。
31.引入檢查點的目的是什么?引入檢查點后又如何進行恢復處理?
答:引入檢查點的目的是使對事務記錄表中事務記錄的清理工作經常化。
恢復處理由恢復例程來實現。首先查找事務記錄表,確定在最近檢查點以前開始執行的
最后的事務Ti。找到Ti后再返回搜索事務記錄表,找到第一個檢查點記錄,從該檢查點開
始,返回搜索各個事務記錄,利用redo和undo 過程對他們進行相應的處理。
32.為何引入共享鎖?如何用互斥鎖或共享鎖來實現事務的順序性?
答:引入共享鎖是為了提高運行效率。在給對象設置了互斥鎖和共享鎖的情況下,如果事務Ti要對Q執行讀操作,只需獲得Q的共享鎖。如果對象Q已被互斥鎖鎖住,則Ti必須等待;否則便獲得共享鎖對Q執行讀操作。如果Ti要對Q 執行寫操作,則Ti還要獲得Q的互斥鎖。若失敗則等待;成功則獲得互斥鎖並對Q執行寫操作。
33.當系統中有重復文件時,如何保證他們的一致性?
答:可以采用兩種方法:一是對所有的重復文件進行同樣的修改,二是用新修改的文件替換所有的重復文件。
34.如何檢索盤塊號的一致性?檢查時可能出現哪幾種情況?
答:為了保證盤塊號的一致性,先將計數器表中的所有表項初始化為0,用N 個空閑盤塊
號計數器組成的第一組計數器對從空閑盤塊表中讀出的盤塊號計數,用N 個數據盤塊號計
數器組成的第二組計數器對從文件分配表中讀出的已分配給文件使用的盤快號計數。如果兩組計數中的對應數據互補則數據一致,反之則發生錯誤。
檢查時可能出現的情況:
(1)兩組計數器中盤塊K 的計數值均為0,應在空閑盤塊表中增加盤塊號K;
(2)空閑盤塊號計數器中盤塊K 的計數值為2,應刪除一個空閑盤塊號K;
(3)空閑盤塊號計數器中盤塊號K 的計數值為0,而數據盤塊號計數器中盤塊號K 的
計數值大於1,則錯誤嚴重,存在數據丟失等事件,必須立即報告系統加以處理。
第七章
1.操作系統包括哪幾種類型的用戶接口?它們分別適用於哪種情況?
答:操作系統包括四種類型的用戶接口:命令接口(分為聯機與脫機命令接口)、程序接口、圖形化用戶接口和網絡用戶接口。
命令接口和圖形化用戶接口支持用戶直接通過終端來使用計算機系統,程序接口提供給用戶在編制程序時使用,網絡用戶接口是面向網絡應用的接口。
2.聯機命令接口由哪些部分構成?
答:聯機命令接口由一組聯機命令、終端處理程序和命令解釋程序構成。
3.聯機命令通常包含哪些類型?每種類型又包含哪些主要命令?
答:聯機命令通常包含如下類型:
(1)系統訪問類,主要是注冊命令login、password;
(2)磁盤操作類,包括磁盤格式化format、軟盤復制diskcopy、軟盤比較diskcomp及備份backup等命令;
(3)文件操作類,包括文件顯示type、文件拷貝copy、文件比較comp、文件重命名rename、文件刪除erase等命令;
(4)目錄操作類,包括子目錄建立mkdir、目錄顯示dir、子目錄刪除rmdir、目錄結構顯示tree、當前目錄改變chdir等命令;
(5)其它命令,包括輸入輸出重定向>、<,管道聯接|、過濾命令/,批命令.bat等。
4.什么是輸入輸出重定向?試舉例說明。
答:命令的輸入通常取自標准輸入設備鍵盤,命令輸出則送往標准輸出設備顯示終端。如果在命令中設置輸出定向“>”,其后接文件或設備名,則命令的結果輸出將送到指定文件或設備上;如果使用輸入重定向“<”,則不從鍵盤而是從重定向符右邊的指定文件或設備上取得輸入信息。這就是輸入輸出的重定向。
5.何謂管道聯接?試舉例說明。
答:管道聯接是指把第一個命令的輸出作為第二個命令的輸入,或把第二個命令的輸出作為
第三條命令的輸入,以此類推,由兩條以上的命令可形成一條管道。在MS-DOS和UNIX
中,都用"|"作為管道符號。其一般格式為:command1 |command2 | …|commandn。
6.終端設備處理程序的主要作用是什么?它具有哪些功能?
答:主要用於實現人機交互,它具有以下功能:
(1)接收用戶從終端上鍵入的字符;(2)字符緩沖,用於暫存接收的字符;(3)回送顯示;(4)屏幕編輯; (5)特殊字符處理。
7.命令解釋程序的主要作用是什么?
答:主要作用是:在屏幕上給出提示符,請用戶輸入命令,讀入並識別命令,轉至相應命令處理程序入口地址,把控制權交給該處理程序執行,最后將處理結果或出錯信息送屏幕顯示。
8.試說明MS-DOS的命令處理程序COMMAND.COM的工作流程。
答:COMMAND.COM的工作流程如下:
(1)系統通電或復位后,初始化程序對整個系統完成初始化工作,自動執行Autoexec.bat文件,然后把控制權交給暫存部分,給出提示符等待接收用戶鍵入命令;
(2)暫存部分讀入鍵盤緩沖區中的命令,判別文件名、擴展名及驅動器名是否正確,若有錯則出錯返回,正確則查找和識別命令;
(3)若為內部命令,暫存部分找到后便從對應表項中獲得命令處理程序的入口地址並執行;若為外部指令,則建立命令行,執行系統調用exec裝入其命令處理程序,得到對應基地址並執行;若鍵入命令非法,則出錯返回;
(4)命令完成后,控制權重新交給暫存部分給出提示符等待接收用戶命令,轉(2)。
9.為了將已存文件改名,應用什么UNIX 命令?
答:對已存文件改名的命令為mv,其格式為:mv oldname newname。
10.要想將工作目錄移到目錄樹的某指定點上,應利用什么命令?
答:用命令“cd ..”或“cd .”將當前目錄上移或轉移,直到工作目錄移到目錄樹的指定點。
11.如果希望把file1的內容附加到原有的文件file2的末尾,應用什么指令?
答: $catfile1>>file4
12.試比較mail和write命令的作用有何不同?
答: mail命令作為UNIX 的多用戶之間非交互式通信的工具。write命令是用戶與當前系統
中的其他用戶直接進行聯機通訊的工具。
13. 試比較一般的過程調用和系統調用?
答: 系統調用本質上是過程調用的一種特殊形式,與一般過程調用有差別:
(1)運行狀態不同。一般過程調用的調用過程和被調用過程均為用戶程序,或者均為系統程序,運行在同一系統狀態(用戶態或系統態);系統調用的調用過程是用戶態下的用戶程序,被調用過程是系統態下的系統程序。
(2)軟中斷進入機制。一般的過程調用可直接由調用過程轉向被調用過程;而系統調用不允許由調用過程直接轉向被調用過程,一般通過軟中斷機制,先進入操作系統內核,經內核分析后,才能轉向相應命令處理程序。
(3)返回及重新調度。一般過程調用在被調用結束后,返回調用點繼續執行;系統調用被調用完后,要對系統中所有運行進程重新調度。只有當調用進程仍具有最高優先權才返回調用過程繼續執行。
(4)嵌套調用。一般過程和系統調用都允許嵌套調用,注意系統過程嵌套而非用戶過程。
14.什么是系統調用?它都有哪些類型?
答:系統調用是指在操作系統內核設置的一組用於實現各種系統功能的子程序或過程,並提供給用戶程序調用。主要類型包括:
(1)進程控制類。用於進程創建、終止、等待、替換、進程數據段大小改變及進程標識符或指定進程屬性獲得等;
(2)文件操縱類。用於文件創建、打開、關閉、讀/寫及文件讀寫指針移動和屬性修改,目錄創建及索引結點建立等;
(3)進程通信類,用於實現通信機制如消息傳遞、共享存儲區及信息量集機制等;
(4)信息維護類,用於實現日期、時間及系統相關信息設置和獲得。
15.如何設置系統調用所需的參數?
答:設置系統調用參數包括兩種方式:
(1)直接將參數送入相應的寄存器中。問題是寄存器有限,限制了設置參數的數目。
(2)參數表方式。將系統調用所需參數,放入參數表中,再將該表指針放在寄存器中。
16.試說明系統調用的處理步驟。
答:(1)設置系統調用號和參數。
(2)對系統調用命令的一般性處理。如保護CPU現場,PSW、PC、系統調用號、用戶棧指針及通用寄存器入棧,保存用戶定義參數等。UNIX中執行CHMK 命令將參數表中的參數傳到User結構的U.U-arg()中;MS-DOS執行INT21軟中斷。
(3)根據系統調用入口表及具體系統調用命令轉至對應命令處理程序具體處理。
17.為什么在訪問文件前,要用open系統調用先打開該文件?
答: 系統將在用戶與該文件之間建立一條快捷通路。在文件被打開后,系統將給用戶返回一
個該文件的句柄或描述符。
18.在UNIX系統中是否設置了專門用來刪除文件的系統調用?為什么?
答: 沒有。當用戶不再使用此文件時,利用系統調用unlink斷開連接,做i.link減1操作。
當i.link減1結果為0,表示此文件不再被用戶需要,該文件將從文件系統中刪除。
19.在IPC軟件包中包含哪幾種通信機制?在每種通信機制中設置了那些系統調用?
答: IPC 中提供了三種通信機制:
(1)消息機制。存在msgget,msgsend,msgrcv 系統調用。
(2)共享存儲器機制。存在shmget,shmid,shmdt 系統調用。
(3)信號量機制。無系統調用。
20. trap.S是什么程序?它完成哪些主要功能?
答:UNIX系統V 內核中的trap.S文件,是中斷和陷入總控程序。用於中斷和陷入的一般
性處理,由匯編語言編寫。trap.S 中包含了絕大部分的中斷和陷入向量的入口地址,每當
系統發生中斷和陷入時,通常都是直接進入trap.S程序。
21.在UNIX 系統內,被保護的CPU環境中包含哪些數據項?
答:當用戶程序處在用戶態且執行CHMK (CHange Mode toKernel)之前,應在用戶空間提供系統調用所需參數表,並將參數表地址送入R0寄存器。執行CHMK命令后,處理機轉為核心態,由硬件自動將處理機狀態長字(PSL)、PC和代碼操作數(code)壓入用戶核心棧,從中斷和陷入向量表中取出trap.S入口地址,轉入trap.S中執行。
trap.S 程序執行后,將陷入類型type 和用戶棧指針usp壓入用戶核心棧,將被中斷進程的CPU環境中的一系列寄存器如R0~R11的部分或全部壓棧。哪些寄存器內容壓棧,取決於特定寄存器的屏蔽碼,屏蔽碼每一位都與R0~R11中的寄存器相對應。當某一位置1時,表示對應寄存器內容壓棧。
22. trap.C 是什么程序?它將完成哪些處理?
答:trap.C 程序是處理各種陷入情況的C 語言文件,共處理12種陷入后的公共問題。包括:確定系統調用號、實現參數傳遞、轉入相應系統調用處理子程序。在由系統調用子程序返回到trap.C后,重新計算進程的優先級,對收到的信號進行處理等。
23.為方便轉入系統調用處理程序,在UNIX系統中配置了什么樣的數據結構?
答:在UNIX系統中配置了系統調用定義表sysent[],在表的每個結構中包含三個元素,一是相應系統調用所需參數的個數;二是系統調用經寄存器傳送的參數個數;三是相應系統調用處理子程序的入口地址。系統中設置了該表之后,可根據系統調用號i從系統調用定義表中找出相應表目,按表目中的入口地址轉入相應處理子程序,完成系統調用的特定功能。執行完后,返回中斷和陷入總控程序中的trap.C程序中,返回斷點前的公共處理部分。
第八章網絡操作系統
第八章網絡操作系統
第八章
1.按網絡拓撲結構可以把計算機網絡分為哪幾類?試畫出它們的網絡拓撲圖。
答:計算機網絡可分為星形、環形、總線形、樹形和網狀形網絡。它們的網絡拓撲圖如下:
2.試說明分組交換網的組成。
答:由分組交換機、網路管理中心、遠程集中器、分組裝拆設備以及傳輸設備等組成。
3.何謂幀交換方式及信元交換方式?
答:幀交換方式是在傳統分組交換的基礎上發展起來的,傳輸基本單位是幀,長度可變,采
用“存儲轉發”方式,即幀交換器每接到一個新幀時,都將該幀送幀緩沖區排隊,按照該幀
中的目標地址,將該幀轉發給相應路徑的下一個幀交換器。
信元交換方式是改進了的幀中繼交換方式。當源幀交換器收到用戶設備發來的幀,便分
割為多個定長信元,在整個幀中繼器網絡中傳輸和交換時,都以信元為基本單位,到達目標
幀交換器后,被重組為幀。
4.局域網可分為基本型和快速型兩大類,每一類中包括哪幾種局域網?
答:基本型局域網有:(1)以太網(2)令牌環網
快速局域網有: (1)FDDI光纖環網(2)快速以太網100 BASE-T。
5.為實現同構LAN網絡互連,應采用什么樣的網絡互連設備?應具有哪些功能?
答:同構LAN 網絡互連設備與功能:
(1) 網橋。功能:幀的發送和接受、緩沖處理、協議轉換。
(2) 路由器。功能:拆包和打包、路由選擇、協議轉換、分段和重組
6.為實現異構型網絡互連,應采用什么樣的網絡互聯設備?它又應具有哪些功能?
答:采用網關。實現異構LAN 互連、LAN 與WAN互連、WAN 互連、LAN 與主機互連。
7.網絡層向傳輸層提供了哪兩類數據傳輸服務?試對它們做簡要的說明。
答:(1)數據包服務。發方網絡層從傳輸層接收報文,為它配上完整的目標地址,作為獨
立信息單位傳送出去。數據包每經過一個中繼節點都根據當時當地情況,按一定算法選擇一
條最佳傳輸路徑轉發出去。采用數據包服務的收、發雙發無需建立連接。
(2)虛電路服務。通信前由源主機發送呼叫報文分組,包含源和目標主機的全網地址。
目標主機同意通信,便由網絡層在雙方間建立一條虛電路。在以后通信中只需填上虛電路的
邏輯信道號;通信結束拆除該虛電路。
8.傳輸層所起的橋梁作用具體表現在哪幾方面?
答:(1)傳輸出錯率和建立連接的失敗率。(2)數據傳輸速率、吞吐量和傳輸時延。
(3)分段和組段功能。
9.TCP/IP模型中包含了哪幾個層次?簡要說明每個層次的主要功能。
答:TCP/IP模型中包含4個層次。
(1)應用層。對應於OSI高層,為用戶提供需要的服務。如FTP、Telnet、DNS等。
(2)傳輸層。對應於OSI傳輸層,為應用層實體提供端到端的通信功能。定義了面向
連接的TCP和無連接的用戶數據報協議UDP這兩個主要協議。
(3)網絡互聯層。對應於OSI網絡層,解決主機到主機的通信問題。有網際協議IP、
地址解析協議ARP、互聯網組管理協議IGMP和互聯網控制報文協議ICMP四個主要協議。
(4)網絡訪問層。對應OSI的物理層和數據鏈路層。
10.網絡互聯層IP協議的主要作用是什么?為什么在有了IP協議之后還要配置TCP協議?
答:(1)IP 協議主要用於異構網絡間的相互連接和路由選擇。IP 提供的是不可靠、面向無
連接的數據報傳遞服務。
(2)TCP協議提供面向連接、可靠的端端通信機制。TCP比IP可以確保數據傳輸的
可靠性,即使網絡層出錯,TCP仍能正確控制建立連接、數據傳輸和連接釋放。
11.試說明在介質訪問控制MAC子層中,IEEE 802.2、IEEE802.3、IEEE 802.3u、IEEE
802.2z、IEEE 802.5、IEEE802.6都是些什么標准?
答:IEEE 802.2是邏輯鏈路控制的標准。 IEEE 802.3是以太網的標准。
IEEE 802.3u 是以太網的標准。 IEEE 802.2z是以太網的標准。
IEEE 802.5是令牌環的標准。 IEEE 802.6是城域網的標准。
12.何謂網絡體系結構?OSI/RM由哪幾部分組成?
答:網絡體系結構是指通信系統的整體設計,為網絡硬件、軟件、協議、存取控制和拓撲提
供標准。OSI/RM 從低到高分七層:物理層、數據鏈路層、網絡層、傳輸層、會話層、表
示層、應用層。
13.什么是網絡協議?扼要說明其所含的三要素。
答:網絡協議是為計算機網絡中進行數據交換而建立的規則、標准或約定的集合。
計算機網絡協議主要由語義、語法和交換規則三部分即協議三要素組成。
語義:規定通信雙方彼此講什么,確定協議元素類型,如規定通信雙方發什么控制信息,
執行的動作和返回的應答。
語法:規定通信雙方彼此如何講,確定協議元素格式,如數據和控制信息的格式。
交換規則:規定信息交流的次序。
14.ISO將OSI/RM分成幾層?各層的主要用途是什么?
答:OSI/RM分7層。各層的主要用途是:
物理層:規定了網絡設備間物理連接標准,在網絡設備間透明地傳輸比特流。
數據鏈路層:提供相鄰節點間可靠的數據傳輸功能。
網絡層:在通信子網中進行路由選擇和通信控制。
傳輸層:提供兩個端系統間的可靠通信。
會話層:建立和控制兩個應用實體間的會話過程。
表示層:提供統一的網絡數據表示。
應用層:提供網絡用戶間的分布式應用環境(普通用戶)和應用開發環境(網絡程序員)。
15.客戶/服務器模式得以廣泛流行的主要因素是什么?
答:(1)模塊化與應用的分布特性 (2)充分利用資源,提高網絡效率
(3)便與系統維護,擴充性強 (4)並發特性
16..試說明客戶與服務器之間的交互情況。
答:C/S 模式的兩層結構系統是:第一層在客戶機系統上結合表示與業務邏輯;第二層通
過網絡結合了數據庫服務器。C/S 模式主要由客戶應用程序、服務器管理程序和中間件三
部分組成。
17.兩層C/S模式有哪些局限性?如何解決?
答:(1)不能適應應用不斷增多的情況。
(2)需要在客戶機與服務器上安裝特定的網絡軟件,實現C/S間的互用性。
(3)客戶機直接與服務器交互。
解決辦法:設法使C 與提供數據等服務的S無關,在C/S間增設中間實體。
18.為什么在大型信息系統和Internet環境下,應采用三層客戶/服務器模式?
答:因為Internet 發展極為迅速,三層客戶/服務器模式更適合發展。把客戶機作為Web
瀏覽器,從而形成了Web瀏覽器、Web服務器和數據庫服務器三層的C/S 模式。
19.試比較兩層和三層的C/S模式。
答:三層與兩層模式相比的優點:(1)增加了系統的靈活性和可擴展性。
(2)簡化了客戶機,降低了系統費用。(3)使客戶機安裝、配置和維護更為方便。
三層的缺點:(1)軟件開發難度大,開發周期長。(2)訪問效率低。
20.現代計算機網絡有哪些主要功能。
答:計算機網絡的主要功能是數據通信和資源共享、系統容錯、網絡管理、應用互操作功能。
21.試說明在層次式結構的網絡中進行數據通信時,信息的流動過程。
答:請求信息從客戶機到應用服務器,再到數據服務器,然后數據服務器根據要求向應用服
務器傳送信息,再由應用服務器找到客戶機。
22.為實現數據通信,計算機網絡應有哪些具體功能?
答:連接的建立和拆除、報文的分解和組裝、傳輸控制、流量控制、差錯檢測與糾正。
23.試說明當前實現文件和數據共享的兩種主要方式。
答:以虛擬軟盤方式和以文件服務方式實現的數據共享方式。
24.網絡管理的主要目標是什么?
答:A.增強網絡的可用性。 B.提高網絡運行質量。 C.提高網絡資源利用率。
D.保障網絡的安全性 E.提高網絡和社會經濟效益。
25.網絡管理包括哪幾方面的具體功能?
答:配置管理、故障管理、性能管理、安全管理、計費管理。
26.何謂信息“互通性”和信息“互用性”?
答:信息的互通性是指在不同網絡結點間實現通信。目前主要利用TCP/IP實現信息互通。
信息的互用性是指在不同網絡中的站點間實現信息的互用,即一個網絡中的用戶能訪問另一
個網絡文件系統或數據庫系統中的文件或數據。
27.何謂電子郵件?它可分為哪幾種類型?
答:電子郵件E-mail,標志@,又稱電子信箱、電子郵政,是用電子手段提供信息交換的通
信方式。電子郵件服務器分為兩種類型,MIME 協議和SMTP 協議。現代E-mail 中可包
含多種不同類型的文件,如文本、圖像、音頻和視頻信息等。
28.文件傳輸的復雜性表現在哪幾方面?如何解決?
答:異構網絡下的文件傳輸,需要在Internet 中建立了統一的文件傳輸協議FTP。
(1)內部用戶FTP。只允許在文件服務器上擁有賬戶的用戶使用FTP服務。
(2)匿名FTP。在Internet 上實現資源共享的重要手段,允許非注冊用戶拷貝文件。
29.試比較電子郵件服務和文件傳輸服務。
答:電子郵件服務借助於E-mail設施與世界上所有國家和地區的網絡用戶通信。
文件傳輸服務是在Internet 中建立統一的文件傳輸協議FTP,實現用戶在不同主機間
的文件拷貝功能。
30.網絡環境下的目錄服務有何特點?
答:規模小的局域網不需要提供目錄服務,對於大型企業網必須對網絡管理員和用戶提供目
錄服務,發揮網絡的應有作用。目錄服務還應能對每台物理設備提供的網絡服務進行管理。
對服務器提供的網絡服務可以是文件/打印服務、數據庫服務等。
31. 目錄服務包括哪些主要功能?
答:(1)用戶管理。保證核准用戶能方便地訪問各種網絡服務,禁止非法用戶訪問。
(2)分區和復制。將龐大目錄庫分成若干個分區,並分別復制到多台服務器,使每個
分區被復制的位置盡量靠近最常使用這些對象的用戶,有的目錄服務還允許一台服務器上存
放多個不同分區的拷貝。
(3)創建擴充和繼承功能。創建是在目錄中創建新的對象,並設置屬性。擴充指對原
有目錄服務功能的擴充。繼承是指目錄對象繼承其他對象的屬性和權力的能力。
(4)多平台支持功能。由於目錄服務存在着管理對象的差異,要求具有跨越平台能力。
32. Internet 具有哪些特征?
答:(1)廣域性 (2)廣泛性 (3)高速性(4)綜合性
33.何謂WWW?它與一般的信息檢索工具有何不同?
答:WWW(Word Wide Web)稱為萬維網或Web,是當前最為流行的信息服務類型。
它與一般信息檢索工具不同表現在:一般檢索工具每次只能從一台主機上查找需要的文件,
且文件數據類型單一;而Web檢索可以一次從多台主機中查找需要的數據,允許類型各異,
並將這些數據形成一份文件。
34.何謂BBS?它何以會受到廣大網絡用戶的歡迎?
答:BBS(Bulletin BoardSystem)即電子公告板。BBS用戶已經擴展到各行各業,BBS
可以交換各種文件。通過BBS系統可隨時取得國際最新軟件及信息,可以和別人討論計算
機軟件、硬件、Internet、多媒體、程序設計以及醫學等各種有趣話題,可以利用BBS刊登
征友、廉價轉讓及公司產品等啟事。只要擁有1 台計算機和上網設備就能立刻進入“超時
代”BBS領域,享用它無比的威力!因此BBS 受到了廣大網絡用戶的歡迎。
35.什么是域名服務?Internet的域名是由幾段構成的?
答:域名是Internet 網絡上的一個服務器或一個網絡系統的名字。域名的形式是以若干個
英文字母和數字組成,由"."分隔成幾部分,如cctv.com就是一個域名。
一個完整的域名由兩個或兩個以上詞段組成,部分之間用英文句號"."分隔,最后一個"."的
右邊部分稱為頂級域名(TLD)或一級域名,最后一個"."的左邊部分稱為二級域名(SLD),
二級域名的左邊部分稱為三級域名,以此類推,每一級的域名控制它下一級域名的分配。
36.什么是域名解析?最基本的一種域名解析方式是如何實現的?
答:域名解析是將域名重新轉換為對應IP地址的過程。一個域名只對應一個IP地址,多個
域名可以同時解析到一個IP地址。域名解析需要由專門的域名解析服務器DNS完成。
域名解析的過程:當應用過程需要將一個主機域名映射為IP 地址時,就調用域名解析函數
將待轉換的域名放在DNS 請求中,以UDP 報文方式發給本地域名服務器。查到域名后將
對應IP 地址放在應答報文中返回。若域名服務器不能回答該請求,則此域名服務器向根域
名服務器發出請求解析,找到下面的所有二級域名服務器,以此類推,直到查詢到所請求的
域名並賦IP值返回。
37.為能支持Internet所提供的服務,在操作系統中應配置哪些軟件?
答:應配置WEB 瀏覽器,如IE、firefox、Chrome等,特殊的服務可以根據需要安裝對
應的軟件。
38.何謂瀏覽器/服務器模式?瀏覽器和服務器的基本功能是什么?
答:瀏覽器/服務器模式即B/S 結構或Browser/Server 結構。只安裝維護一個服務器
Server,客戶端采用瀏覽器Browse 軟件。利用成熟的WWW技術,結合多種Script語言
(VBScript、JavaScript…)和ActiveX技術,是全新的軟件系統構造技術。
在B/S體系結構系統中,瀏覽器向分布在網絡上的許多服務器發出請求,服務器對瀏覽器
的請求進行處理,將用戶所需信息返回到瀏覽器。而數據請求、加工、結果返回及動態網頁
生成、數據庫訪問和應用程序執行等工作全部由Web Server完成。隨着Windows將瀏覽
器技術植入操作系統內部,這種結構已成為當今應用軟件的首選體系結構。
B/S 結構的主要特點是分布性廣、維護方便、開發簡單、共享性強、總體成本低。但數據
安全性、服務器要求高、數據傳輸慢、軟件個性化特點明顯降低,難以實現傳統模式下的特
殊功能要求。
瀏覽器是指可以顯示網頁服務器或者文件系統的HTML 文件內容,並讓用戶與這些文件
交互的一種軟件。服務器是網絡上為客戶端計算機提供各種服務的高可用性計算機。
第九章系統安全性
第九章
1.系統安全的復雜性表現在哪幾個方面?
答:(1)多面性:大規模系統存在多個風險點,每點都包括物理、邏輯及管理三方面安全。
(2)動態性:信息技術不斷發展和攻擊手段層出不窮,系統安全問題呈現出動態性。
(3)層次性:系統安全涉及多方面且相當復雜的問題,需要采用系統工程方法解決。
(4)適度性:根據實際需要提供適度安全目標加以實現。
2.對系統安全性的威脅有哪幾種類型?
答:假冒身份、數據截獲、拒絕服務、修改偽造信息、否認操作、中斷傳輸、通信量分析。
3.攻擊者可通過哪些途徑對軟件和數據進行威脅?
答:數據截獲,修改信息,偽造信息,中斷傳輸
4.可信任計算機系統評價標准將計算機系統的安全度分為哪幾個等級?
答:該標准將計算機系統安全程度分為8級,有D1(安全度最低級)、C1(自由安全保護級)、
C2(受控存取控制級)、B1、B2、B3、A1、A2。
5.何謂對稱加密算法和非對稱加密算法?
答:對稱加密也叫私鑰加密,是指加密和解密使用相同密鑰的加密算法。加密密鑰能夠從解
密密鑰中推算出來,解密密鑰也能夠從加密密鑰中推算出來。在大多數對稱算法中,加密和
解密的密鑰相同,也稱為保密密鑰算法或單密鑰算法。
非對稱加密算法需要兩個密鑰:公鑰(publickey)和私鑰(privatekey)。公鑰與私
鑰配對,如果用公鑰加密數據,只有用對應的私鑰才能解密。
6.什么是易位法和置換算法?試舉例說明置換算法。
答:易位法是指按一定規則,重新安排明文中的比特或字符順序形成密文,而字符本身保持
不變。置換法是按照一定規則,用一個字符去置換另一個字符形成密文。
如:How are you?的每個字符用后面的字母代替就是Ipx bsf zpv?
7.試說明DES加密的處理過程。
答:分為四個階段:
第一階段,將明文分出64 位明文段,並做初始易位得到X0,左移32 位,記為L0,
右移32位,記為R0。
第二階段,對X0進行16次迭代,每一次用56位加密密鑰Ki。
第三階段,把經過16次迭代處理的結果的左32位與右32位互換位置。
第四階段,進行初始易位的逆變換。
8.試說明非對稱加密的主要特點。
答:非對稱加密算法復雜、安全性依賴於算法與密鑰,加密解密速度慢。對稱密碼體制只有
密鑰,安全性就是密鑰的安全性,而非對稱加密有公鑰和私鑰,安全性更強。
9.試說明保密數據簽名的加密和解密方式。
答:(1)發送者A 可用自己的私用密鑰Kda對明文P進行加密,得到密文DKda(P)。
(2)A 再用B的公鑰Keb對DKda(P)加密,得到EKeb(DKda(P))后送B。
(3)B收到后,先用私鑰Kdb解密,得到DKda(EKeb(DKda(P)))=DKda(P)。
(4)B再用A的公鑰Kea 對DKda(P)解密,得到EKeb(DKda(P))=P。
10.數字證明書的作用是什么?用一例來說明數字證明書的申請、發放和使用過程。
答:數字證明書又稱公鑰證明書,用於證明通信請求者的身份。
數字證明書的申請、發放和使用過程如下:
(1) 用戶 A 先向CA申請數字證明書,A 應提供身份證明和希望使用的公鑰A。
(2) CA 收到A 發來的申請報告后,若接受申請,便發給A 一份數字證明書,其中包括公鑰
A 和CA 發證者的簽名等信息,並對所有信息利用CA 私鑰加密(即對CA 進行數字簽名)。
(3) 用戶 A 在向B 發送信息時,由A用私鑰對報文加密(數字簽名),連同證明書發給B。
(4) 為能對收到的數字證明書解密,用戶B須向CA申請獲得CA 的公鑰B。CA 收到用戶
B 的申請后,可決定將公鑰B發給用戶B。
(5) 用戶 B 利用CA 公鑰B 對數字證明書解密,確認該數字證明書系原件,並從數字證明
書中獲得公鑰A,並且確認該公鑰A系用戶A的密鑰。
(6) 用戶 B再利用公鑰A 對用戶A 發來的加密報文解密,得到用發來報文的真實明文。
11.何謂鏈路加密?其主要特點是什么?
答:鏈路加密是對網絡相鄰節點間的通信線路上傳輸的數據的加密過程。特點是:
(1)相鄰節點間的物理信道上傳輸的報文是密文,在所有中間節點上的報文則是明文。
(2)對不同的鏈路分別采用不同的加密密鑰。
12.何謂端-端加密?其主要特點是什么?
答:端-端加密是在源主機或前端機FEP高層(從傳輸層到應用層)對傳輸數據進行的加密。
特點:(1)整個網絡傳輸過程中的報文正文都是密文,信息到達目標主機后才譯成明文。
(2)不能對報頭中的控制信息加密,否則中間結點無法得知目標地址和控制信息。
13.可利用哪幾種方式來確定用戶身份的真實性?
答: (1)口令密碼組合;(2)物理標志(3)生物標志 (4)公開密鑰
14.在基於口令機制的身份認證技術中,通常應滿足哪些要求?
答:口令長度適中 、自動斷開連接 、隱蔽回送顯示 、記錄和報告。
15.基於物理標志的認證技術又可細分為哪幾種?
答:主要有基於磁卡或IC卡的兩種認證技術 。
16.智能卡可分為哪幾種類型?這些是否都可用於基於用戶持有物的認證技術中?
答:智能卡分為存儲器卡、微處理器卡和密碼卡等類型。
存儲器卡沒有安全功能,不能用於基於用戶持有物的認證;微處理器卡和密碼卡采用了
加密措施,可以用於基於用戶持有物的認證。
17.被選用的人的生理標志應具有哪幾個條件?請列舉幾種常用的生理標志。
答:被選用的生理標志應具有三個基本條件,即足夠的可變性、穩定性好、不易偽裝。
常用的生理標志是指紋、視網膜組織、聲音、手指長度等。
18.對生物識別系統的要求有哪些?一個生物識別系統通常是有哪幾部分組成的?
答:對生物識別系統的要求有:性能滿足要求(抗欺騙和防偽防攻擊)、能被用戶接受、系
統成本適當。
一個生物識別系統通常由注冊和識別兩部分組成。注冊部分配有一張用戶注冊表,識別
部分要對用戶進行身份認證和生物特征識別。
19.試詳細說明SSL所提供的安全服務。
答:SSL稱為安全套接層協議,用於提供Internet 上的信息保密,身份認證服務,目前SSL
已成為利用公開密鑰進行身份認證的工業標准。
SSL 提供的安全服務有:申請數字證書(服務器申請數字證書、客戶申請數字證書)
和SSL握手協議(身份認證、協商加密算法和協商加密密鑰)。
20.什么是保護域?進程與保護域之間存在着什么動態聯系?
答:保護域是進程對一組對象訪問權的集合,規定了進程能訪問對象和執行的操作。
進程與保護域之間的動態聯系是指進程的可用資源集在個生命周期中是變化的;進程運行在
不同的階段可以根據需要從一個保護域切換到另一個保護域。
21.試舉例說明具有域切換權的訪問控制矩陣。
答:在訪問矩陣中增加幾個對象,分別作為訪問矩陣中的幾個域,當且僅當switch 包含在
access(i,j)時,才允許進程從域i切換到域j。例如在下圖中,域D1和D2對應的項目中有S,
故允許域D1中的進程切換到域D2 中,在域D2和D3 中也有S,表示D2 域中進行的進程
可切換到域D3中,但不允許該進程再從域D3返回到域D1。
22.如何利用拷貝權來擴散某種訪問權?
答:如果域i 具有對象j 的某訪問權acess(i,j)的拷貝權,則運行在域i的進程可將其訪問權
acess(i,j)擴展到訪問矩陣同一列中的其它域,即為運行在其它域的進程也賦予關於同一對象
的同樣訪問(acess(i,j))。
23.如何利用擁有權來增刪某種訪問權?
答:如果域i 具有關於對象j 的所有權,則運行在域i 的進程可以增刪在j 列的任何項中的
任何訪問權。或該進程可以增刪在任何其它域中運行的進程關於對象j的任何訪問權。
24.增加控制權的主要目的是什么?試舉例說明控制權的應用。
答:控制權用於改變某個域中運行進程關於不同對象的訪問權。若某域訪問權access(i,j)
中含有控制權C,則運行在Di 域中的進程能改變運行在Qj 域中的任何進程關於任何對象
的任何訪問權。
25.什么是訪問控制表?什么是訪問權限表?
答:訪問控制表是指對訪問矩陣按列划分,為每列建立一張訪問控制表ACL,由有序對(域,
權集)組成,用來保證系統安全性的一種手段。
訪問權限表是指對訪問矩陣按行划分,由每行構成一張訪問權限表。
26.系統如何利用訪問控制表和訪問權限表來實現對文件的保護?
答:當進程第一次試圖訪問一個對象時,必須先檢查訪問控制表,查看是否有權訪問該對象。
如果無則拒絕訪問,並構成一個例外異常事件;否則便允許訪問,並為之建立訪問權限,以
便快速驗證其訪問的合法性。當進程不再訪問該對象時便撤銷該訪問權限。
27.什么是病毒?它有什么樣的危害?
答:病毒是編制或者在計算機程序中插入的破壞計算機功能或數據,影響計算機系統使用並
且能夠自我復制的一組計算機計算機指令或程序代碼。
計算機病毒的危害:占用系統空間、占用處理機時間、破壞文件、使機器運行異常。
28. 計算機病毒的特征是什么?它與一般的程序有何區別?
答:計算機病毒的特征是寄生性、傳染性、隱蔽性和破壞性。
它與一般程序的區別是:病毒程序通常不是獨立的程序,具有自我復制和迅速傳播的傳
染性,想方設法隱藏自身,存在的基本目標就是破壞性。
29.什么是文件型病毒?試說明文件型病毒對文件的感染方式。
答:文件型病毒是指采用寄生方式附着在正常程序里,病毒發作時原來程序仍能正常運行,
以致用戶不能及時發現而長期潛伏下來的病毒。
文件型病毒對文件的感染方式是主動攻擊和執行時感染的方式。
30.病毒設計者采取了哪幾種隱藏方式來讓病毒逃避檢測?
答:(1)隱藏於目錄和注冊表空間。 (2)隱藏於程序的頁內零頭里。
(3)更改用於磁盤分配的數據結構。 (4)更改壞扇區列表。
31.用戶可采用哪些方法來預防病毒?
答:(1)定期在外存備份重要軟件和數據 (2)使用安全性高的操作系統
(3)使用正版軟件 (4)使用高性能反病毒軟件
(5) 不輕易打開來歷不明的電子郵件 (6)定期檢查外存並清除病毒
32.試說明基於病毒數據庫的病毒檢測方法。
答:(1)建立病毒數據庫 (2)掃描硬盤上的可執行文件
第十章
1.UNIX系統具有哪些特征?
答:開放性、多用戶多任務環境、功能強大高效、豐富網絡功能、支持多處理器。
2.試說明UNIX系統的內核結構。
答:UNIX 內核結構分四層:最底層是硬件,次底層是OS 核心,第二層是OS 與用戶接口
shell及編譯程序等,最高層是應用程序。
3.UNIX系統中的PCB含哪幾部分?用圖說明各部分之間的關系。
答:UNIX 系統中的PCB含進程表項、U區、系統區表、進程區表。
4.進程映像含哪幾部分?其中系統級上、下文動態部分的作用是什么?
答:進程映像含用戶上下文、寄存器上下文、系統級上下文。
系統級上下文動態部分的作用是當因中斷或系統調用進入核心狀態時,核心把一個寄存
器上下文壓入核心棧,退出系統調用時,核心又彈出寄存器上下文,在上下文切換時,核心
將壓入老進程的上下文,彈出新進程的上下文。
5.在UNIX系統中用於進程控制的主要系統調用有哪些?它們各自的主要功能是什么?
答:用於進程控制的主要系統調用有:
(1)fork系統調用:用於創建新進程
(2)exit系統調用:實現進程自我終止
(3)exec 系統調用:改變進程原有代碼
(4)wait 系統調用:將調用進程掛起並等待子進程終止
6.為創建一個新進程,須做哪些工作?
答:為新進程分配一個進程表項和進程標志符;檢查同時運行的進程數目;拷貝進程表項中
的數據;子進程繼承父進程的所有文件;為子進程創建進程上下文;子進程執行。
7.為何要采取進程自我終止方式?如何實現exit?
答:為了及時回收進程占用的資源,在進程任務完成后應盡快撤銷。Unix 內核用exit 實現
進程的自我終止。父進程在創建子進程時,應在子進程末尾安排exit使子進程能自我終止。
實現 exit的具體操作是:關閉軟中斷、回收資源、寫記賬信息和置進程為僵死狀態。
8.在UNIX系統中采用了何種調度算法?如何確定進程的優先數?
答:UNIX 系統采用動態優先數輪轉的進程調度算法。優先數確定公式:
優先數 =(最近使用CPU的時間/2)+基本用戶優先數
9.在進入sleep過程后,內核應做哪些處理?
答:進入sleep過程后,核心首先保存進入睡眠時的處理機運行級,提高處理機的運行優先
級屏蔽所有中斷,將該進程置為睡眠狀態,將睡眠地址保存在進程表項中,將該進程放入睡
眠隊列。如果進程的睡眠不可中斷,在進程上下文切換后,進程便安穩睡眠。當進程被喚醒
並被調度執行,將恢復處理機的運行級為進入睡眠時的值,此時允許中斷處理機。
10.試說明信號與中斷兩種機制間的異同處。
答:不同點:中斷有優先級,而信號沒有,所有信號皆平等;信號處理程序在用戶態運行,
而中斷處理程序是在核心態運行;還有中斷響應及時,而信號響應通常都是延時的。
相同點:都采用異步通信方式;當檢測出信號或中斷請求時都暫停正在執行的程序而轉
去執行相應的處理程序;都在處理完畢返回到原來斷點;對信號或中斷都可進行屏蔽。
11.扼要說明信號機制中信號的發送和對信號的處理功能。
答:信號發送是指由發送進程把信號送到目標進程的proc 結構中信號域的某一位上。
對信號的處理功能:首先利用系統調用signal(sig,func)預置對信號的處理方式,
func=1時屏蔽該類信號;func=0時,進程收到信號后終止自己;func為非0非1時,func
值作為信號處理程序的指針,系統從核心態轉為用戶態並執行相應的處理程序,處理完畢再
返回用戶程序的斷點處。
12.什么是管道?無名管道和有名管道的主要差別是什么?
答:管道是指能連接寫進程和讀進程,並允許它們以生產者消費者方式進行通信的一個共享
文件或pipe 文件。無名管道是個臨時文件,是利用系統調用pipe()建立起來的無路徑名
文件,只有調用pipe 的進程及其子孫進程才能識別此文件描述符而利用該文件(管道)進
行通信;有名管道是利用mknod 系統調用建立的、可以在文件系統中長期存在的有路徑名
文件,其它進程可以知道其存在,並利用該路徑名訪問的文件。
13.在讀、寫管道時,應遵循哪些規則?
答:(1)對pipe 文件大小的限制
(2)進程互斥
(3)進程寫管道時在管道空間上滿足生產者操作規則
(4)進程讀管道時在管道空間上滿足消費者操作規則
14.在消息機制中有哪些系統調用?說明它們的用途。
答:在消息機制中的系統調用是msgctl( )、msgsnd( )、msgrcv( )。
msgctl( )系統調用於指定的消息隊列進行操縱。
msgsnd( )系統調用來發送消息。
msgrcv( )系統調用從指定消息隊列中讀取一個消息。
15.在共享存儲機制中有哪些系統調用?扼要說明它們的用途
答:在共享存儲機制中的系統調用有shmget() 、shmctl()、shmat()。
shmget( )用於建立一塊共享存儲區,提供該區名字key和共享存儲區長度size等參數。
shmctl( )系統調用於查詢共享存儲區的狀態信息。
shmat( )系統調用於將該共享存儲區附接到用戶給定的某個進程虛地址shmaddr上,
並指定該存儲區的訪問屬性是只讀還是可讀可寫。
16.核心在執行shmget系統調用時需完成哪些工作?
答:(1)檢查共享存儲區表,若找到key 表項,表明該區已建立,返回共享區描述符shmid;
(2)若未找到指定key 表項,而flag 標志為IPC_CREAT 且參數size值在系統限制值
內,則分配一系統空閑區作為共享區的頁表區,分配相應的內存塊,將這些塊號填入頁表中;
(3)核心在共享存______xîÿl/___儲區和系統區表中,為新建立的共享區分配一空表項,並填上存儲區
的關鍵字及大小、共享區頁表始址,指向系統區表項指針等,最后返回共享區描述符shmid。
17.在信號量機制中有哪些系統調用?說明它們的用途。
答:在信號量機制中的系統調用是senget( )和semop( )。semget()用於用戶建立信號量集。
semop( )用來對信號量集進行操作。
18.核心是如何對信號量進行操作縱的?
答:核心根據sem_op改變信號量的值,分3 種情況:
若sem_op值為正,則將其值加到信號量值上,相當於V 操作;若sem_op值為負,
相當於P 操作,若信號量值大於操作值的絕對值,則核心將一個負整數加到信號量值上,
否則核心將已操作的信號量恢復到系統調用開始時的值;若(sem_flg&IPC_NOWAIT)為真,
便立即返回,否則讓進程睡眠等待.。
19.為實現請求調頁管理,在UNIX系統中配置了那些數據結構?
答:UNIX 系統V 將進程的每個區分為若干個虛頁,這些虛頁可以分配到不鄰接的頁框中,
為此設置了一張頁表。其中每個表項中,記錄了每個虛頁和頁框的對照關系。
20.當訪問的缺頁是在可執行文件上或在對換設備上時,應如何將它們調入內存?
答:(1)缺頁在可執行文件上。如果欲訪問虛頁對應磁盤塊描述表項類型是file,表示該缺
頁尚未運行,其拷貝在可執行文件中,核心應將該頁調入內存。調入過程是:根據對應系統
區表項中的索引結點指針,找到該文件的索引節點,把該頁的邏輯塊號作為偏移量,查找索
引結點中的磁盤塊號表,找到磁盤塊號,將該頁調入內存。
(2)缺頁在對換設備上。核心先為缺頁分配一內存頁,修改該頁表項,指向內存頁,並將
頁面數據表項放入相應散列隊列中,把該頁從對換設備上調入內存,當I/O操作完成時,核心把請求調入該頁的進程喚醒。
21.在將一頁換出時,可分成哪幾種情況?應如何處理這些情況?
答:分三種情況:(1)若在對換設備上有被換出頁的拷貝,內容未改,則核心只將該頁頁
表項中的有效位清零,將引用計數減1,將該頁框數據表項放入空閑鏈表中。
(2)若在對換設備上沒有換出頁的拷貝,則將該頁寫到對換設備上。先將所有要換出頁鏈
入到待換出頁面鏈上。當鏈上頁面數達到規定值時才將這些頁面寫到對換區中。
(3)在對換設備上有換出頁副本,但頁內容已修改,核心應釋放該頁在對換設備上原占有
的空間,再重新將該頁拷貝到對換設備上,使拷貝內容最新。
22.如何對字符緩沖區進行分配與回收?
答:在字符設備進行I/O 時,內核利用getcf過程從空閑字符緩沖區隊列中取得空閑緩沖區,
若隊列空,則無緩沖區可分配,返回;否則從隊首取得一個空閑緩沖區,把該緩沖區指針
bp返給調用者。采取互斥訪問措施,在過程開始處將處理機優先級提升為6,在取得空緩沖
區之后再恢復處理機的優先級。
當不再需要緩沖區時,調用putcf 過程釋放緩沖區。輸入參數是指向已不再需要的緩沖
區指針bp,把該緩沖區送回到空閑緩沖區隊列的隊首指針cfreelist指向的頭部。此時若有申
請空緩沖區而阻塞的進程,則喚醒它。對空閑緩沖區隊列的訪問應互斥進行。
23.試說明盤塊緩沖區的組成和盤塊緩沖池的構成。
答:UNIX系統的每一個盤塊緩沖區均有兩部分:一是用於存放數據的數據緩沖區;另一部
分是緩沖控制塊,用於存放對應緩沖區的管理信息。
盤塊緩沖池結構:(1)空閑鏈表(2)散列隊列。
24.getblk()和getblk(dev,blkno)進程的主要區別是什么?
答:getblk()用於從空閑緩沖區隊列中獲得任意空閑緩沖區。getblk(dev,blkno)用於為指
定設備dev 和盤塊號為blkno 的盤塊申請一個緩沖區。僅當要把數據寫入特定盤塊的內容
不在緩沖區時,才調用getblk過程分配一個空緩沖區。
25.試說明gdopen、gdstart、gdstartegy和gdintr過程的主要功能。
答:gdopen用於打開磁盤驅動器,輸入參數是設備號,無輸出參數。
gdstart 用於裝配磁盤控制器中的各個寄存器,然后啟動磁盤控制器。
gdstartegy 把指定緩沖首部排在磁盤控制器I/O 隊列末尾,並啟動磁盤控制器。
gdintr用於磁盤I/O傳送完成並發出中斷請求時的磁盤中斷處理過程。
26.在UNIX系統中設置了哪些讀和寫過程?兩者的主要區別是什么?
答:讀過程有一般讀過程bread和提前讀過程breada。
寫過程有一般寫過程bwrite、異步寫過程bawrite和延遲寫過程bdwrite。
27.試說明UNIX文件系統的特點?
答:A.文件系統的組織是分級樹形結構形式B.文件的物理結構為混合索引式文件結
構
C.采用成組鏈接法管理空閑盤塊。D.引入了索引結點的文件檢索技術。
28.在UNIX系統中的文件物理結構采用了何種形式?試舉例說明。
答:UNIX 文件物理結構采用混合索引式文件結構。
在查找文件時,只要找到了文件的索引結點,用直接或間接尋址方式獲得該文件的盤塊。
29.在UNIX系統中如何將文件的邏輯塊號轉換為物理盤塊號?
答:尋址方式不同,轉換方法也不同。
(1)直接尋址,僅當文件的邏輯塊號不大於10時采用。如訪問對象是字節偏移量9999處的數據。則9999/1024=9余783,則文件邏輯塊號9,直接索引地址項i-addr(9)中的
塊號,其塊內偏移地址為783字節處就是文件的9999字節處。
(2)一次間址,僅當文件的邏輯塊號大於10而不大於10+256時采用。如訪問對象是字節偏移量18000處的數據。則18000/1024=17余592,則邏輯塊號為10<17<10+256,需要通過一次間接索引方式。先從i-addr(10)中得到一次間址盤塊號,再將邏輯盤塊號減10,根據一次間址中的邏輯塊號得到間址塊號地址項的下標,再從中得到最終的物理盤塊號。這里的邏輯盤塊號17,從i-addr(10)中得到的塊號設為428,則17-10=7就是一次間址號,其對應的盤塊號就是要找的物理盤塊號,塊內偏移地址為592處就是文件的18000字節處。
(3)多次間址,僅當文件的邏輯塊號大於266而不大於64266時采用。如訪問對象是字
節偏移量420000處的數據。則邏輯塊號為266<410<64266,通過二次間址索引。在
i-addr(11)中得到一次間址盤塊號,再將邏輯盤塊號減266,根據一次間址中的邏輯塊號得
到間址塊號地址項的下標,再從中得到二次間址,再找到對應的物理塊號,塊內偏移地址
160處就是文件的420000字節處。
30.如何對磁盤索引節點進行分配與回收?
答:分配過程ialloc是:先檢查超級塊是否上鎖,檢索i 結點棧空否,從空閑i 結點編號棧
中分配一個i結點並初始化,填寫有關文件屬性,分配內存i結點,將磁盤i結點總數減1,
並置超級塊修改標志后返回。
回收過程ifree是:先檢查超級塊上鎖否;檢查i結點編號棧滿否;若i 結點編號棧未滿,
便使回收的i結點的編號進棧,並使當前空閑i 結點數加1;置超級塊修改標志后返回。
31.何時需要構造目錄項?核心需完成哪些工作?
答:當用戶(進程)要創建新文件時,內核便應在其父目錄文件中構造一個目錄項;當某進
程需要共享另一用戶的某文件時內核也將為共享該文件的用戶建立一個目錄項。由系統調用
creat過程完成目錄項的構造。
32.何時需刪除一個目錄項?核心須完成哪些工作?
答:對於某用戶獨享的文件,當該用戶不需要它時,應將它刪除而騰出存儲空間。核心須完
成的工作是利用unlink斷開連接,當nlink值為0 時,系統將自動刪除該文件。