操作系統--精髓與設計原理(第八版)第二章復習題答案
2.1 操作系統設計的三個目標是什么?
- 方便:操作系統使計算機更易於使用。
- 有效:操作系統允許以更有效的方式使用計算機系統資源。
- 擴展的能力:在構造操作系統時,應該允許在不妨礙服務的前提下有效地開發、測試和引進新的系統功能。
2.2 什么是操作系統的內核?
操作系統內核是計算機上最低層的軟件,提供計算機最核心的功能,比如:進程管理、內存管理、I/O管理、文件管理、網絡管理等。
2.3 什么是多道程序設計?
兩個或兩個以上程序在計算機系統中同處於開始到結束之間的狀態,這就稱為多道程序設計。也就是在計算機內存中同時存放幾道相互獨立的程序,使它們在管理程序控制之下,相互穿插的運行。多道程序技術運行的特征:多道、宏觀上並行、微觀上串行。
2.4 什么是進程?
進程由三部分組成:
- 一 段可執行的程序。
- 程序所需要的相關數據(變量、工作空間、緩沖區等)。
- 程序的執行上下文(也稱進程狀態)。
2.5 操作系統是怎么使用進程上下文的?
執行上下文又稱為進程狀態,是操作系統用來管理和控制所需的內部數據。這種內部信息和進程是分開的,因為操作系統信息不允許被進程直接訪問。上下文包括操作系統管理進程以及處理器正確執行進程所需要的所有信息,包括各種處理器寄存器的內容,如程序計數器和數據寄存器。它還包括操作系統使用的信息,如進程優先級以及進程是否在等待特定I/O事件的完成。
2.6 列出並簡要介紹操作系統的五種典型存儲管理職責。
- 進程隔離:操作系統必須保護獨立的進程,防止互相干擾各自的存儲空間,包括數據和指令。
- 自動分配和管理:程序應該根據需要在存儲層次間動態的分配,分配對程序員是透明的。因此,程序員無需關心與存儲限制有關的問題,操作系統有效的實現分配問題,可以僅在需要時才給作業分配存儲空間。
- 支持模塊化程序設計:程序員應該能夠定義程序模塊,並動態地創建、銷毀模塊,動態地改變模塊大小。
- 保護和訪問控制:不論在存儲層次中的哪一級,存儲器的共享都會產生一個程序訪問另一個程序存儲空間的潛在可能性。當某個特定的應用程序需要共享時,這是可取的。但在其他時候,他可能會威脅到程序的完整性,甚至威脅到操作系統本身。
- 長期存儲:許多應用程序需要在計算機關機后長時間的保存信息。
2.7 解釋實地址和虛地址的區別。
實地址:指的是主存中的地址,實際的主存儲器的地址,對應主存空間,即物理空間。
虛地址:指的是存在於虛擬內存中的地址,它有時候在磁盤中,有時候在主存中。
2.8 描述時間片輪詢調度技術。
輪詢調度是一種調度算法,所有的進程存放在一個環形隊列中並按固定循序依次激活。因為等待一些事件(例如:等待一個子進程或者一個I/O操作)的發生而不能被處理的進程將控制權交給調度器。
2.9 解釋單體內核和微內核的區別。
- 單體內核是一個提供操作系統應該提供的功能的大內核,包括調度、文件系統、網絡、設備驅動程序、存儲管理等。內核的所有功能成分都能夠訪問它的內部數據結構和程序。典型情況下,這個大內核是作為一個進程實現的,所有元素都共享相同的地址空間。
- 微內核是一個小的有特權的操作系統內核,只提供包括進程調度、內存管理和進程間通信等基本功能,要依靠其他進程擔當起和操作系統內核聯系作用。
2.10 什么是多線程?
多線程技術是指把執行一個應用程序的進程划分為可以同時運行的多個線程。
2.11 列出對稱多處理器操作系統設計時要考慮的關鍵問題。
- 並發進程或線程:內核程序應可重入,以使多個處理器能同時執行同一段內核代碼。當多個處理器執行內核的相同或不同部分時,為避免數據損壞和無效操作,需要妥善管理內核表和數據結構。
- 調度:任何一個處理器都可以執行調度,這既增加了執行調度策略的復雜度,也增加了保證調度相關數據結構不被損壞的復雜度。如果使用的是內核級多線程方式,就存在將同一進程的多個線程同時調度在多個處理器上的可能性。
- 同步:因為可能會存在多個活躍進程訪問共享地址空間或共享I/O資源的情況,因此必須認真考慮如何提供有效的同步機制這一問題。 同步用來實現互斥及事件排序。
- 內存管理:多處理器上的內存管理要處理單處理器上內存管理涉及的所有問題。另外,操作系統還要充分利用硬件提供的並行性來實現最優性能。不同處理器上的分頁機制必須進行調整,以實現多處理器共享頁或段時的數據一致性, 執行頁面置換。物理頁的重用是我們關注的最大問題,即必須保證物理頁在重新使用前不能訪問到它以前的內容。
- 可靠性和容錯性:出現處理器故障時,操作系統應能妥善地降低故障的影響。調度器和操作系統的其他部分必須能識別出發生故障的處理器,並重新組織管理表。