搜尋此網誌

2010年4月12日 星期一

作業系統導論 第二版 旗標出版社 第一章 作業系統概論

一、      問答題
1.   請說明作業系統的三大設計目的。
*簡便性:提供適當的使用者介面和程式的執行環境,以簡化程式開發工作,控制資源存取,並處理程式執行的錯誤。
*效率性:分配分管理系統的重要資源,如CPU、記憶體、I/O裝置等,以提供所有應用程式適當的服務。
*演進性:能夠因應硬體與軟體的進步而演進,或是能夠很簡單地修正錯誤。


 
2.   作業系統的4項主要功能為何?
*行程管理:作業系統會為行程分配資源,提供系統呼叫以執行特殊運算。若同時多行程執行時,作業系統會協調行程執行順序與時間,並確保各行程擁有適當執行環境,不會彼此干擾。
*記憶體管理:作業系統須將有限的記憶體空間,適當分配給行程,並利用記憶體管理之硬體支援,確保行程不會使用到他人的記憶體空間。
*檔案系統管理:作業系統會提供檔案的建立、存取、修改、刪除等功能,以及相關權限管理。
*裝置管理:作業系統會提供系統呼叫,供行程使用各種裝置,並協調不同行程對裝置的使用。


 
3.   個人電腦作業系統的主要設計考量為何?
因個人電腦多半是供單一使用者使用,所以是以使用者的方便性和回應能力為主要發展方向。


 
4.   請說明即時系統在運算上有何特殊限制?
即時系統設計目標不僅要求正確完成工作,而且還必須在指定時間內完成。因某些任務若超過時間限制,可能就沒有意義了。例如天氣預報系統、高速公路的即時路況系統等。因此即時系統的主要設計理念在如何將延遲降至最低。



5. 手持式系統有何優點,並說明在硬體上有何限制。
優點:便利性-因體積小易於攜帶,讓使用者在搭配無線網路應用時,可以隨時查詢資料,不用受限需在特定地點才能獲得資訊。
硬體限制:有限記憶體、低速處理器、小型顯示器-因手持裝置強調便利性,所以尺寸大小便有限制。在此限制下,裝置的耗電就要求儘量降低,CPU則傾向選擇低耗電而非效能優先,記憶體也因空間限制而配置較少。


 
6.   請說明「微核心」的優點為何?
微核心是指作業核心只保留必要的行程管理、記憶體管理、與行程間通訊等功能的很小的核心程式。而檔案系統服務等高階功能改由伺服行程(server process)提供
優點如下:
※彈性:方便管理、易於實作、修改,或移植到新硬體上。獨立的伺服行程可以隨時啟動,不需重新開機。
  ※安全性:使用者程式所執行之大部分工作不再牽涉到到心,而只使用到使用者層級的伺服行程。如果有某項任務失敗,也較不會影響到核心及其他的服務。


 
7.   CPU的主要工作是什麼?一個CPU一次能執行幾個工作?
CPU(Central Processing Unit,中央處理單元),主要工作有算術、邏輯運算,解讀電腦內的每個指令來控制電腦的運作。而一個CPU每次僅能執行一個工作。



8.   指令的執行包含哪些步驟。
1.指令擷取2.指令解碼3.資料擷取4.指令執行5.資料儲存。在上述工作間不斷的反覆執行。
 

9.   一般電腦常見的5種基本運算類型有哪些?
1.    搬移:把某個值從一地搬到另一地方。
2.    計算:使用一或多個運算元進行算術或邏輯運算。
3.    分支:根據條件測試結果,決定是否要跳到新的位址。
4.    函式呼叫:將程式計數器現值儲存,並放入函式的起始位址。
5.    輸入/輸出:在CPU與I/O裝置間傳遞輸入/輸出的相關資訊。



10. 什麼是暫存器?有哪些種類?
暫存器(register) 中央處理器內的其中組成部份。暫存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據位址。其存取速度比主記憶體快,而儲存的資料量則比主記憶少。
暫存器大概可分3類:
※資料暫存器(Data Register):用來暫存指令運算所需的資料,在不同的電腦硬體架構下其數量有所不同。
※位址暫存器(Address Register):用來存放記憶體位址相關資訊,以及用來存取記憶體。包括索引暫存器、區段指標暫存器、堆疊指標暫存器等。
※狀態與控制暫存器:約略有程式計數器(Program Counter,PC)、指令暫存器(Instruction Register,IR)以及程式狀態字組暫存器(Program Status Word,PSW)。


 
11. 程式計數器與指令暫存器的作用為何?
※程式計數器(Program Counter,PC):其內容記載著程式中下一個待執行指令的位址。利用這個位址可以提取儲存在程式記憶體中的指令,每當提取一個指令,則PC值即自動加1。
※指令暫存器(Instruction Register,IR):用來存放最近一個讀取指令。


 
12. 系統呼叫的用途為何?為什麼需要系統呼叫?
※系統呼叫(System Call)是程式設計者所撰寫之程式與作業系統的介面。
※作業系統必須對系統資源作某種程度的保護,任何使用系統資源之程式必須透過系統呼叫,由作業系統決定並安排使用資源。使用者經由外殼命令或應用程式呼叫系統程式庫(System Library),再由系統呼叫要求作業系統核心執行,當工作是牽涉到週邊設備時,作業系統核心再行呼叫週邊設備驅動程式(Device Driver ),並由驅動程式控制週邊設備進行輸出 / 輸入之工作。



13.在多處理器系統中,如果所有處理器都是對等的(沒有主從關係),我們稱它為何?
※對稱式的多處理器系統:沒有主處理器的主從關係,所有處理器都是同等地位,並由作業系統根據需要來分派工作。



14. 請說明中斷、例外中斷、與陷阱有什麼不同,並分別舉例。
※中斷(interrupt):有分硬體中斷與軟體中斷,是由特定事件所引發的。例如按下鍵盤就會產生硬體中斷。而像 BIOS、DOS Function Call 就屬於軟體中斷,是由程式自行呼叫所產生的中斷。
※例外中斷(exception):用來處理偵測到一些例外的狀況,通常是指 CPU 本身產生的中斷。例如執行不合法的指令、使用非自己行程的記憶位址等。
※陷阱(trap):通常是指人為觸發的可預知中斷。例如除錯器需要單步執行,就會針對每個指令執行過後發出一個陷阱中斷。
 

15. 請說明分層式設計的主要優缺點。
優點:
簡化複雜問題:分層式結構因模組化,能把複雜問題分解為較小而獨立的部份,簡化每一層級的設計與除錯工作。
各層級獨立性高:每一層所提供的功能,都只建立在下一層的基礎上。
維護容易:因每一層只使用較低層次所提供的操作,不須關心這些操作如何完成,因此某一層級發生修改,只要維持對上層的操作不變,就可以輕易替換。
缺點:
效率比未分層差:分層後因一個事件往往需要經過多個層級,系統中層次越多,所處理的額外參數及複製工作也就愈多,對系統的負擔也會越大。
界定各層的工作內容相對困難。
二、   是非題
1.    為了保護電腦系統的安全,電腦硬體必須支援雙重模式運作。

2.    巢狀程序呼叫是處理中斷專用的機制。

3.    分散式系統的設計是為了充分利用CPU,當某個任務在執行I/O的時候,就讓另一個任務來使用CPU。

4.    微核心是指很小的核心程式,它是將原本作業系統核心中不必要的模組盡量移出,交由應用程式自行處理。(改由伺服行程提供功能)

5.    堆疊是一種先進先出的資料結構。(後進先出LIFO或先進後出FILO)

6.    使用者必須透過系統呼叫才能存取到I/O設備。

7.    暫存器是位於CPU中的一些小記憶體,包括程式計數器等。

8.    具有系統管理者權限的使用者所執行的行程,就是核心模式下執行。(僅是個超級使用者而已,程式仍是在使用者模式下執行)



三、進階題
1.   多元程式與分時系統分別會在什麼時候切換行程?
多元程式
處理方式:將欲處理的各個程序式(Process)全部載入到主記憶体佇列(queue)中,CPU快速的在各個程序式中「循環」執行處理工作,遇到需要進行輸入或輸出工作時,CPU會將該Process交給I/O處理機去處理,完成後再送給佇列等待被執行,另一方面CPU則繼續下一個Process。
優點:Process使用到I/O時,CPU到然可以執行其他Process,不會浪費CPU的時間。
缺點:假如某一Process很冗長時又不需I/O時,CPU將被長期佔用,其他的Process則需長時間等候,造成不公平。
切換行程的時間:多工程式處理系統,必須等到有I/O處理時,才會轉換到下一個程序式。
分時系統
處理方式:CPU平均分配給各程序式(process)一段相同的時間,如果該程序式無法在該時間內完成,都必須離開CPU回到佇列重新排隊等待下一週期再執行。
優點:由於電腦CPU的速度實在很快,分時系統上連線的各個終端機,縱使和主機相隔甚遠,仍然可以很快地處理各項訊息並傳回結果;並無等待的感                        覺,達到人和電腦相互交談(interactive)的效果。同時具有連線能力、及獨                   立性,每一連線終端機的功能獨立。
缺點:由於CPU是各程序式共享的,因此一旦遇到很大的程序式,又有急迫的時效性時,分時系統將無法達成。
切換行程的時間:分時系統CPU平均分配給各程序式,時間到就轉換到下一個程序式。
 

2.   試以系統安全與效率角度分析使用者模式與系統模式的作用。
使用者模式:在使用者模式下,因權限較低,所能使用的資源受限,效率上來說因為執行程式若要執行特權運算的能力時,皆需透過系統呼叫或中斷方式來達成,所以效率因而較低。也因為權限受限,不能觸及核心系統或對硬體或I/O,較能保護系統不受破壞。
系統模式:在系統模式下,系統可以直接存取I/O設備以及有較高的權限來處理工作,此時因為對週邊是直接存取,不必再經由代理或第三方的程式管理,所以能獲得較高的效率。但是系統模式下程式撰寫不良或執行失敗,就不像在使用者模式下程式錯誤系統還有機會繼續運作。

3.   請問在何種情形之下使用分時多使用者系統會比使用個人電腦更適合?
分時多使用者系統:以很短的時間在每個使用者之間轉移,因為在分時系統中,每個動作或命令通常都比較短,因此轉移的速度也較快,讓使用者感覺到電腦是專門為他一個人服務的,但實際上,卻是由許多個使用者同時一起使用一部電腦。
優點:由於電腦CPU的速度實在很快,分時系統上連線的各個終端機,縱使和主機相隔甚遠,仍然可以很快地處理各項訊息並傳回結果;並無等待的感覺,達到人和電腦相互交談(interactive)的效果。同時具有連線能力、及獨                        立性,每一連線終端機的功能獨立。
缺點:由於CPU是各程序式共享的,因此一旦遇到很大的程序式,又有急迫的時效性時,分時系統將無法達成。
分時多使用者系統適合用於需要多個終端機使用,CPU使用量不大的地區;如學校、圖書館、客服部門等。在圖書館的提供讀者使用的電腦,大部份皆用於查詢圖書資料、或上網,較少有大量運算的程式需求。而各終端機連回的圖書資料庫相同的,在建置與維護上,比起使用個人電腦較簡單維護。
 

4.   請問為什麼使用者不能自己切換成系統模式?
在作業系統設計時會將較高的處理權限設定為系統模式下才能執行,是為了防止作業系統被使用者破壞,以及保護使用者不會互相干擾。若使用者能自己切換成系統模式時,則作業系統容易因使用者惡意或不當的操作導致崩潰或當機。



5. 根據下面的說明,畫出當記憶位址200到206的指令執行之後,暫存器最終的內容?
指令格式:
運算碼(4位元)
記憶位址(12位元)
 
運算碼列表:
運算碼
描述
0000
將資料從記憶體載入暫存器A
0001
將資料從記憶體載入暫存器B
0010
將暫存器A、B的值相減,放入暫存器A中
0011
將暫存器A的值寫入記憶體
 
記憶體初始內容:
暫存器(16進位)
 
200
程式計數器
 
指令暫存器
 
暫存器A
 
暫存器B
記憶體(16進位)

200
0402

202
1400

204
2000

206
3400

 
 
 

400
0002

402
0016

 
 

 
 
 
 
 
 
 
 
 
 
 
 
執行至記憶體位置暫存器最終內容
 
暫存器(16進位)
 
208
程式計數器
3400
指令暫存器
0014
暫存器A
0002
暫存器B
 
 
 
 
 
 
 
 

沒有留言:

追蹤者

網誌存檔