操做系統題目總結

一、某系統採用分頁存儲管理(Paging),頁長(Page Size)爲 1K(1024),該進程分頁後 0、一、2三頁分別裝入到主存的 一、二、4 幀(Frame)。現有一邏輯地址(Logical Address)爲 2048,頁 內地址(Page Offset)爲(  )。
答案 : 0
頁號 = 邏輯地址 / 頁長
頁內地址 = 邏輯地址 % 頁長算法

二、假設5 個進程 P0、 P一、 P二、 P三、 P4 共享三類資源 R一、 R二、 R3,這些資源總數分別爲1八、 六、 22。 T0 時刻的資源分配狀況以下表所示,此時存在的一個安全序列是( )。安全

clipboard.png
clipboard.png

答案:D
資源總數爲18.6.22,以及分配資源之和爲16.3.19,故可用資源爲2.3.3;
線程的所需資源 = 資源最大需求 – 已分配資源
故五個線程所需資源爲:2,2,7;1,3,3;0,0,6;2,2,1;1,1,0
因爲安全序列進程所需資源需在可用資源裏面獲取,故第一個進程應爲P1,P3或
P4,故AC錯,當第一個進程爲P1時,當P1運行完畢釋放它所佔有的所有資源,
可用資源變爲6.3.6,因爲P0所需資源爲2.2.7,故不能知足,B錯。編輯器

三、用於解決CPU指令亂序、編譯器重排、多CPU內存同步等帶來的問題的機制是?
答案:內存屏障
內存屏障:也稱內存柵欄,屏障指令等,是一類同步屏障指令,使得cpu或編譯器在
對內存隨機訪問中的一個同步點,使得此點以前的全部讀寫操做都執行完才能夠開始
執行此點後的操做。
大多數現代計算機爲了提升性能而採起亂序執行,這使得內存屏障稱爲必須。
語義上:內存屏障以前的全部讀寫操做都要寫入內存,內存屏障以後的全部操做均可以得到同步屏障以前的寫操做的結果。
順便講講其餘選項
volatile關鍵字:
例子:性能

volatile int i = 10;
int j = i;
…
Int k = i;

volatile關鍵字至關於告訴編譯器這個變量是隨時可能發生變化的,故每次使用它
都必須從內存地址中獲取,於是編譯器生成的可執行代碼會從新從i的地址讀取放入
k中。
Volatile影響編譯器編譯的結果,故與volatile變量有關的運算,不要進行編譯優
化。
編輯器優化:
因爲編譯器發現兩次從i中獲取的數據之間的操做並無對i進行過操做,故它會自
動把上次讀取的放入k中,而不是從新從i中讀取。
自旋鎖:
跟互斥鎖相似,在任什麼時候刻最多隻能有一個保持着,跟互斥鎖在調度機制上有不一樣,
互斥鎖在資源已經被佔用時,進入睡眠狀態,而自旋鎖是由調用者一直循環知道鎖釋
放。
信號量(semaphore):
它是一個計算器,用於控制同時訪問某個特定資源的操做數量,或者執行某個特定操做的數量。
在進入一個線程以前,線程必須得到一個信號量(許可),並在使用以後釋放許可。當沒有信號量(許可),那 麼請求將阻塞直到有許可。
例子:
以一個停車場的運做爲例。簡單起見,假設停車場只有三個車位,一開始三個車位都是空的。這時若是同時來了五輛車,看門人容許其中三輛直接進入,而後放下車攔,剩下的車則必須在入口等待,此後來的車也都不得不在入口處等待。這時,有一輛車離開停車場,看門人得知後,打開車攔,放入外面的一輛進去,若是又離開兩輛,則又能夠放入兩輛,如此往復。優化

四、設計實時操做系統必須首先考慮系統的( )。
答案:可靠性、實時性。
實時操做系統的效率通常比分要低,是適當犧牲了效率來保障實時。編碼

五、選擇排隊做業中等待時間最長的做業優先調度,該調度算法是()。
答案:先來先服務調度方法(FCFS first come first service)
下面講講進程的調度算法:
不一樣環境的調度算法目標不一樣,所以須要針對不一樣環境來討論調度算法。spa

  • 批處理系統沒有太多的用戶操做,在該系統中,調度算法目標是保證吞吐量和週轉時間。(從提交到終止的時間)操作系統

    • 先來先服務調度方法(FCFS first come first service)根據做業的等待時間的長度來衡量。
    • 短做業有限調度算法(SJF shortest job first)根據做業運行時間的長度來衡量。
    • 響應比高優先調度算法(HRN highest response_ratio next)是對FCFS和SJF的一種綜合平衡,FCFS只考慮做業的等待時間,而SJF只考慮做業的運行時間,這兩種方式在某些極端狀況下都會帶來不便,HRN調度策略同時考慮每一個策略的等待時間跟運行時間,從中選出響應比最高的做業。響應比R = (W + T) / T = 1 + W / T其中T爲該做業估計須要的執行時間,W爲做業在後備狀態隊列的等待時間。每當要進行做業調度時,系統計算每一個做業的響應比,選擇其中R最大者投入執行。這樣,即便是長做業,隨着等待時間的增長,W / T也會隨着增長,也就有機會得到調度執行。
  • 交互式系統交互式系統有大量的用戶交互操做,在該系統中調度算法的目標是快速地進行相應。線程

    • 優先權調度算法(priority scheduling)分爲靜態優先權跟動態優先權爲每一個進程分配一個優先級,按照優先級進行調度。爲了防止優先級的進程永遠等不到調度,能夠隨着時間的推移增長等待進程的優先級。
    • 輪轉法(round robin)也叫時間片輪轉,將全部就緒進程按FCFS的原則排成一個隊列,每次調度時,把cpu時間分配給隊首進程,讓該進程執行一個時間片。當時間片用完時,有定時器發出時鐘中斷,調度程序便中止該進程的運行,並將它運送至就緒隊列的末尾,同時將cpu時間分配給隊首的進程。時間片輪轉算法的效率和時間片的大小有很大關係,由於進程切換都要保存進程的信息而且載入新進程的信息,若是時間片過小,會致使進程切換得太頻繁,在進程切換上就會花過多的時間。
    • 多級反饋隊列(round robin with multiple feedback)是輪轉法跟優先級算法的綜合和發展。若是一個進程須要執行100個時間片,若是採用輪轉法,那麼須要交換進程100次。多級隊列是爲了這種須要連續執行多個時間片的進程考慮,它設置了多個隊列,分別賦予不一樣的優先級,如逐級下降,每一個隊列時間片大小都不相同,規定優先級越低時間片越長,如逐級加倍(例如1,2,4,8….)。若是第一個隊列沒有執行完,則下降到第二個隊列的末尾,一樣按照FCFS算法調度,如此下去,下降到最後的隊列,則按」時間片輪轉法」算法調度直到完成。這種方式下,以前的進程只需切換7次。

一、進程與程序的一個本質區別是()。
答案:前者的動態的,後者是靜態的。
進程跟程序的區別:設計

  • 進程的動態的,程序時靜態的。
  • 進程有必定的生命週期,而程序是指令的集合,自己無‘運動’的含義,沒有創建進程的程序不能做爲一個獨立單位獲得操做系統的承認。
  • 一個程序能夠對應多個多個進程,一個進程只能對應一個程序。

二、計算機經過MIC(話筒接口)收到的信號是()。
答案:音頻模擬信號。

  • 話筒是將語音信號轉化爲電信號的裝置,語音信號是連續的,轉化爲電信號也是連續的,所以是模擬信號。
  • 模擬的電信號在計算機內通過採樣,量化,編碼,最終造成音頻數字信號。

三、處理外部中斷時,應該由操做系統保存的是()。
答案:通用寄存器的內容。

  • 外部中斷處理過程,PC(程序計數器)值由中斷隱指令自動保存,而通用寄存器內容由操做系統保存。
  • 寄存器:中央處理器內的組成部分,寄存器是有限存儲容量的高速存儲部件,他們能夠用來暫存指令,數據和地址。在cpu的控制部件中,包含的寄存器有指令寄存器(IR:臨時放置從內存裏面取得的程序指令的寄存器,用戶存放當前從主存儲器讀出的正在執行的一條指令)和程序計數器(PC:用於存放下一條指令所在單元的地址的地方)。
相關文章
相關標籤/搜索