2.1 操做系統設計的三個目標是什麼?程序員
方便、有效、易於拓展算法
2.2 什麼是操做系統的內核?服務器
內核是OS最常使用的部分,存在於主存中並在特權模式下運行,響應進程調度和設備中斷。網絡
2.3 什麼是多道程序設計?數據結構
一種處理操做,在兩個或多個程序間交錯處理每一個進程。多線程
2.4 什麼是進程?併發
運行中的程序,被OS控制和選擇模塊化
2.5 OS是怎樣使用進程上下文的?性能
執行上下文又稱進程狀態,是OS用來管理和控制所需的內部數據。這種內部信息和進程是分開的,由於OS信息不容許被進程直接訪問。上下文包括OS管理進程以及處理器正確執行進程所須要的全部信息,包括各類處理器寄存器的內存,如程序計數器和數據寄存器。它還包括OS使用的信息,如進程優先級以及進程是否在等待特定I/O事件的發生。spa
2.6 列出並簡要介紹OS的5種典型存儲管理職責。
進程隔離:操做系統必須保護獨立的進程,防止互相干擾各自的存儲空間。
自動分配和管理:程序應該根據須要在存儲層次間動態的分配,分配對程序員是透明的。所以,程序員無須關心與存儲限制有關的問題,操做系統會有效的實現分配問題,可僅在須要時纔給做業分配存儲空間。
支持模塊化程序設計:程序員應該可以定義程序模塊,並動態的建立、銷燬模塊,動態的改變模塊的大小。
保護和訪問機制:操做系統必須容許一部份內存能夠由各類用戶以各類方式進行訪問。
長期存儲:許多應用程序須要在計算機關機後長時間的保存信息。
2.7 實地址和虛地址的區別是什麼?
虛地址:存在於虛擬內存中的地址,有時候在磁盤有時候在主存中
實地址:主存中的地址
2.8 描述時間片輪轉調度技術。
時間片輪轉調度是一種調度算法,全部的進程存放在一個環形隊列中並按固定順序依次激活。由於等待一些事件的發生而不能被處理的進程將控制權交給調度器。
2.9 解釋單體內核和微內核的區別。
單體內核:提供操做系統應提供功能的大內核,包括調度、文件系統、網絡、設備驅動器、存儲管理等。典型狀況下,大內核做爲一個進程實現,全部元素共享相同的地址空間。
微內核體系結構:只給內核分配一些最基本的功能,包括地址空間、進程間通訊和基本的調度。其餘操做系統服務由運行在用戶模式且與其餘應用程序相似的進程提供,這些進程可根據特定的應用和環境需求定製(或稱爲服務器)
2.10 什麼是多線程。
多線程:把執行一個應用程序的進程劃分爲能夠同時運行的多個線程。
2.11 列出對稱多處理操做系統設計時要考慮的關鍵問題。
SMP操做系統管理處理器資源和其餘計算機資源,以使用戶能以與多道單處理器系統相同的方式看待SMP系統。用戶可能會使用多進程和多線程的方式來構建應用,而不關心計算機使用的是單處理器仍是多處理器。所以,多處理操做系統不只要提供多道系統的全部功能,並且必須提供適應多處理器須要的額外功能。關鍵設計問題以下:
併發進程和線程:內核程序應可重入,以使多個處理器能同時執行同一段內核代碼。當多個處理器執行內核的相同或不一樣部分時,爲避免數據損壞和無效操做,須要穩妥管理內核表和數據結構
調度:任何一個處理器均可以執行調度,這既增長了執行調度策略的複雜度,也增長了保證調度相關數據結構不被損壞的複雜度。若是使用的是內核級多線程方式,就存在將同一進程的多個線程同時調度在多個處理器上的可能性。
同步:由於可能會存在多個活躍進程訪問共享地址空間或共享I/O資源的狀況,所以必須認真考慮如何提升有效的同步機制這一問題。同步用來實現互斥及事件排序。在多處理操做系統中,鎖是一種通用的同步機制。
內存管理:多處理器上的內存管理要處理單處理器上內存管理涉及的全部問題,還要充分利用硬件提供的並行性來實現最優性能。不一樣處理器上的分頁機制必須進行調整,以實現多處理器共享頁或段時的數據一致性,執行頁面置換。物理頁的重用是咱們關注的最大問題,即必須保證物理頁在從新使用前不能訪問到它之前的內容。
可靠性和容錯性:出現處理器故障時,操做系統應能妥善地下降故障的影響。調度器和操做系統的其餘部分必須能識別出發生故障的處理器,並從新組織管理表。