操作系統的目標、作用、基本特性、主要功能 2
進程和程序 6、7
處理機調度層次 作業調度、中級調度、進程調度
死鎖必要條件和處理方法 11
Spooling 17
1. 什么是多道程序設計技術?它的主要優點是什么?
-
多道程序設計技術是指同時把多個作業放入內存並允許它們交替執行,共享系統中的各類資源,當一道程序因某種原因(如I/O請求)而暫停執行時,CPU立即轉去執行另一個作業。
-
優點是:提高CPU、內存、I/O的利用率;增加系統的吞吐量。
2. OS的作用表現在哪幾個方面
-
作為用戶與計算機硬件系統之間的接口;
-
作為計算機系統資源的管理者;
-
實現對計算機資源的抽象調用;
3. 什么是微內核OS?
- 提供操作系統核心功能的內核的精簡版本,設計在很小的空間內存,基於客戶,服務器模式,提供模塊化的設計
4. 什么是操作系統?它有什么基本特征?
- 是管理計算機軟、硬件資源,合理調度作業運行、方便用戶使用的程序集合。
- 基本特征:並發性、共享性、虛擬性及異步性。
5. 比較分時系統和實時系統(從交互性、及時性、可靠性三方面看)
- 從交互性看:在分時系統中,各終端用戶可通過人機會話方式直接控制程序運行,交互性要求高;實時系統中,人與系統的交互僅限於訪問系統中某些特定的專用服務程序,不能向分時系統那樣向用戶提供數據處理和資源共享等服務。
- 從及時性看:分時系統是以用戶能接受的時間來確定;實時信息處理系統對實時性的要求與分時系統類似,實時控制系統的及時性是以截止時間來確定的,要求高。
- 從可靠性看:分時系統也要求系統可靠,但相比之下實時系統要求更高的可靠性。
6. 試從動態性、並發性和獨立性上比較進程和程序。
(1)程序是一組指令的集合,是靜態的,而進程是程序的一次執行過程,是動態的。
(2)一個進程能與其他進程並發地執行,而程序不具有並發性;
(3)進程是一個獨立運行的單位,也是系統進行資源分配和調度的獨立單位,而程序不是。
7. 從調度性、並發性、擁有資源和系統開銷幾個方面對進程和線程進行比較。
(1)調度性:在引入線程的OS中,把線程作為CPU調度和分派的基本單位,而把進程作為資源擁有的基本單位。
(2)並發性:在引入線程的OS中,一個進程可以包含多個線程。不僅進程間可並發,進程中的線程也可並發。
(3)擁有資源:進程始終是擁有資源的一個獨立單位,線程自身不擁有資源,但可以訪問其隸屬進程的資源。
(4)系統開銷:在創建、撤銷和切換進程方面,進程的開銷遠大於線程的開銷。
8. 進程在運行時存在哪兩種形式的制約?並舉例說明。
(1)間接的相互制約關系:源於共享資源,如兩個進程A、B,A請求打印,而唯一的一台打印機被B占用着,此時A只能阻塞。
(2)直接的相互制約關系:源於進程間的合作,如輸入進程A通過單緩沖向計算進程B提供數據,當緩沖空時,B只能被阻塞,當A把數據放入緩沖后,B被喚醒。
9. 什么是臨界資源、臨界區?
- 一次只允許一個資源進入的資源稱為臨界資源;
- 每個進程中訪問臨界資源的那段代碼稱為臨界區。
10. 為什么說多級反饋隊列調度算法能較好地滿足各方面用戶的需要?
(1)終端型作業用戶:其作業大多屬交互型作業,通常較小,只要在第一隊列所規定的時間內完成,用戶都會感到滿意。
(2) 短批處理作業用戶:若能在第一隊列中執行一個時間片即可完成,便可獲得與終端型作業相同的響應時間。對於稍長的作業,通常也只需在第二和第三隊列各執行一個時間片即可完成,周轉時間較短。
(3) 長批處理作業用戶:它依次在各隊列中運行一個時間片,用戶不必擔心其作業長期得不到運行。
11. 何為死鎖?產生死鎖的原因和必要條件是什么?
(1)死鎖是指多個進程因競爭資源而造成的一種僵持狀態。若無外力作用,這些進程都將永遠處於阻塞狀態,不能再運行下去。
(2)產生死鎖的原因有:資源不足資源、進程推進次序不當。
(3)產生死鎖的必要條件有:互斥條件、請求和保持條件、不可剝奪條件、環路等待條件。
**12. 在解決死鎖問題的幾個方法中,哪種方法最容易實現?哪種方法使資源的利用率最高? **
(1)預防死鎖方法,主要是破壞產生死鎖的必要條件。該方法是最容易實現的,但系統資源利用率較低。
(2)避免死鎖方法,比較實用的有銀行家算法(Banker Algorithm)。該算法需要較多的數據結構,實現起來比較困難,但資源利用率最高。
(3)檢測死鎖方法是基於死鎖定理設計的,定期運行該算法對系統的狀態進行檢測,發現死鎖便予以解除。
其中,需要比較一下各種死鎖解除方案的代價,找到代價最小的方案。該方法資源利用率較高。
13. 現有兩道作業同時執行,一道以計算為主,另一道以輸入輸出為主,你將怎樣賦予作業進程占有處理器的優先級?為什么?
(1)以計算為主的進程運行期間,將主要集中在CPU的計算上,較少使用外部設備。而以輸入輸出為主的進程則主要集中在外部設備的I/O上,較少使用CPU。因此讓兩個進程並發運行是可以提高系統效率的。並且設定輸入輸出為主的進程優先級高於計算為主的進程。(2)因為:輸入輸出操作是一種速度極慢的操作。若該項操作的優先級高,那么,當它完成一項輸入輸出操作后,便能立即獲得CPU,為下一次輸入輸出作准備工作,並啟動外部設備。當設備被啟動起來后,它便主動讓出CPU,由系統將CPU交給計算進程使用。從而獲得較好的運行效率。
14. 為什么要引入動態重定位?如何實現?
在連續分配內存方式中,會出現不能被利用的"零頭"或"碎片",為了利用這些"零頭"或"碎片",就必須進行數據或程序的移動—"緊湊",因此相應的這些程序或數據在內存中的位置就必須進行修改,否則就無法執行.從本質上講引入動態重定位,就是在連續分配內存方式下,進一步提高內存利用率的一種方法. 實現技術動態重定位必須獲得硬件支持.只有具有動態重定位硬件機構的計算機系統,才有可能采取動態重定位可變分區多道管理技術,系統的硬件包括重定位寄存器和加法器
15. 分頁和分段存儲管理有何區別?
1、頁是信息的物理單位,分頁是為了提高內存的利用率。段則是信息的邏輯單位,它含有一組其心意相對完整的信息。分段是為了能更好的滿足用戶的需要。
2、頁的大小固定且由系統決定。段的長度不固定,且由用戶所編寫的程序決定。
3、分頁的地址空間是一維的,程序員只需要一個助記符便可表示一個地址。分段的地址空間是二維的,程序員在標識一個地址時,既需給出段名,又需給出段內地址。
(1) 虛擬存儲器的應用背景是什么?
(2) 虛擬存儲器的可行性基礎是什么?
(3) 實現虛擬存儲器的主要方法是什么?
(4) 虛擬存儲器的定義。
(1)虛存的應用背景是有的作業很大,但是自有的內存卻小,其要求的內存空間超過了內存總容量,又或者多道作業要求運行,內存不足以容納所有作業導致大量作業在外存等待。利用虛擬存儲器可以很好地解決這種問題。
(2)虛存的可行基礎是程序運行的局部性原理,在一段較短的時間內,程序執行僅限於某個部分,相應的它所訪問的存儲空間也局限於某個區域
(3)實現虛存的主要方法是請求分頁(段)技術和頁面(分段)置換算法
(4)虛擬存儲器是指具有請求調入功能和置換功能,能從邏輯上對內存對內存容量進行擴充的一種存儲系統。從用戶觀點看,虛擬存儲器具有比實際內存大得多的容量,其邏輯容量是有邏輯地址結構以及內存和外存容量之和決定的默契運行速度接近於內存的速度,而每位成本卻又接近於外存。
16. 有哪幾種I/O控制方式?各適用於何種場合?
① 程序直接控制方式:適用於早期無中斷機構的計算機系統。
② 中斷驅動I/O控制方式:適用於字符設備。
③ 直接存儲器訪問DMA控制方式:適用於塊設備。
④ I/O通道控制方式:適用於具有通道的系統對一組離散的數據塊的傳送。
17. 簡述SPOOLing系統的組成。在實現后台打印時,SPOOLing系統應為請求I/O的進程提供哪些服務
SPOOLing技術實對假脫機輸入,輸出系統的模擬,它必須建立在具有多道程序功能的操作系統上,而且還需要得到高速隨機外存(通常采用磁盤)的支持。spooling系統主要由四部分組成:
(1)輸入井和輸出井
(2)輸入緩沖區和輸出緩沖區
(3)輸入進程和輸出進程
(4)井管理程序
實現后台打印時,SPOOLing系統並不真正把打印機分配給用戶進程,而是由假脫機管理程序為他做兩件事:
(1)在輸出井中為之申請一個空閑的磁盤塊區,並將要打印的數據送入其中
(2)為用戶進程申請一張空白的用戶請求打印表,並將用戶的打印要求填入其中,然后將該表掛到假脫機文件隊列上。
