一、某系統採用分頁存儲管理(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 時刻的資源分配狀況以下表所示,此時存在的一個安全序列是( )。安全
答案: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
批處理系統沒有太多的用戶操做,在該系統中,調度算法目標是保證吞吐量和週轉時間。(從提交到終止的時間)操作系統
交互式系統交互式系統有大量的用戶交互操做,在該系統中調度算法的目標是快速地進行相應。線程
一、進程與程序的一個本質區別是()。
答案:前者的動態的,後者是靜態的。
進程跟程序的區別:設計
二、計算機經過MIC(話筒接口)收到的信號是()。
答案:音頻模擬信號。
三、處理外部中斷時,應該由操做系統保存的是()。
答案:通用寄存器的內容。