作業系統面試點

2021-08-29 05:38:17 字數 3761 閱讀 5384

一、作業系統的基本特性

1、併發:同一段時間內多個程式執行

注意區別並行和併發,前者是同一時刻的多個事件,後者是同一時間段內的多個事件

2、共享:系統中的資源可以被記憶體中多個併發執行的進執行緒共同使用

互斥訪問:如印表機

同時訪問:只是看起來是同時的,其實底層不是同時的

3、虛擬:通過時分復用(如分時系統)以及空分復用(如虛擬記憶體)技術實現把乙個物理實體虛擬 為多個

4、非同步:系統中的程序是以「走走停停」的方式執行的,且以一種不可預知的速度推進

二、作業系統的功能

1、處理機管理

程序控制、程序同步、程序通訊、排程

2、儲存器管理

記憶體分配 、記憶體保護、位址對映、記憶體擴充

3、裝置管理功能

4、檔案管理功能

檔案儲存空間的管理、目錄管理、檔案讀/寫保護和管理

5、作業系統和使用者之間的介面

6、現代作業系統的新功能

三、程序狀態與轉換

四、程序與執行緒的區別

看我的另一篇帖子

五、程序通訊

0、程序通訊是指程序間的資訊交換。由於程序的互斥和同步,需要在程序間交換一定的資訊,故不少學者歸為程序通訊,但只能把它們稱為低階通訊。效率低、通訊對使用者不透明

高階通訊:

1、共享儲存

a、基於共享資料結構的通訊方式。

b、基於共享儲存區的通訊方式。

2、管道通訊系統

所謂「管道」,是指用於連線乙個讀程序和乙個寫程序以實現他們之間通訊的乙個共享檔案,又名pipe檔案

3、訊息傳遞系統(message passing system)

1、直接通訊方式,是指傳送程序利用os所提供的傳送原語,直接把訊息傳送給目標程序

2、間接通訊方式,是指傳送和接受程序,都通過共享中間實體(稱為郵箱)的方式進行訊息的傳送和接受,完成程序間的通訊。

4、客戶機-伺服器系統

1、套接字

2、遠端過程呼叫和遠端方法呼叫

六、程序同步

多程序雖然提高了系統資源利用率和吞吐量,但是由於程序的非同步性可能造成系統的混亂。程序同步的任務就是對多個相關程序在執行順序上進行協調,使併發執行的多個程序之間可以有效的共享資源和相互合作,保證程式執行的可再現性

同步機制需要遵循的原則:

空閒讓進:當沒有程序處於臨界區的時候,應該許可其他程序進入臨界區的申請

忙則等待:當前如果有程序處於臨界區,如果有其他程序申請進入,則必 須等待,保證對臨界區的互斥訪問

有限等待:對要求訪問臨界資源的程序,需要在有限時間內進入臨界區,防止出現死等

讓權等待:當程序無法進入臨界區的時候,需要釋放處理機,邊陷入忙等 經典的程序同步問題:生產者-消費者問題;哲學家進餐問題;讀者-寫者問題 同步的解決方案:管程,訊號量。

七、死鎖

1、產生原因:

a、競爭資源

b、程序推進順序不合理

2、死鎖產生的必要條件

互斥條件:程序對所分配的資源進行排他性的使用

請求和保持條件:程序被阻塞的時候並不釋放鎖申請到的資源

不可剝奪(搶占)條件:程序對於已經申請到的資源在使用完成之前不可以被剝奪

環路等待條件(迴圈等待條件):發生死鎖的時候存在的乙個 程序-資源 環形等待鏈

3、處理死鎖的方法

預防死鎖:破壞產生死鎖的4個必要條件中的乙個或者多個;實現起來比較簡單,但是如果限制過於嚴格會降低系統資源利用率以及吞吐量

!:銀行家演算法後期展開

避免死鎖:在資源的動態分配中,防止系統進入不安全狀態(可能產生死鎖的狀態)-如銀行家演算法

解除死鎖:與死鎖檢測配合,將系統從死鎖中解脫出來(撤銷程序或者剝奪資源)。對檢測到的和死鎖相關的程序以及資源,通過撤銷或者掛起的方式,釋放一些資源並將其分配給處於阻塞狀態的程序,使其轉變為就緒態。實現難度大

八、程序排程演算法

先來先服務排程演算法fcfs:既可以作為作業排程演算法也可以作為程序排程演算法;按作業或者程序到達的先後順序依次排程;因此對於長作業比較有利;

短作業優先排程演算法sjf:作業排程演算法,演算法從就緒佇列中選擇估計時間最短的作業進行處理,直到得出結果或者無法繼續執行;缺點:不利於長作業;未考慮作業的重要性;執行時間是預估的,並不靠譜 ;

高響應比演算法hrn:響應比=(等待時間+要求服務時間)/要求服務時間;

時間片輪轉排程rr:按到達的先後對程序放入佇列中,然後給隊首程序分配cpu時間片,時間片用完之後計時器發出中斷,暫停當前程序並將其放到佇列尾部,迴圈 ;

多級反饋佇列排程演算法:目前公認較好的排程演算法;設定多個就緒佇列並為每個佇列設定不同的優先順序,第乙個佇列優先順序最高,其餘依次遞減。優先順序越高的佇列分配的時間片越短,程序到達之後按fcfs放入第乙個佇列,如果排程執行後沒有完成,那麼放到第二個佇列尾部等待排程,如果第二次排程仍然沒有完成,放入第三佇列尾部…。只有當前乙個隊列為空的時候才會去排程下乙個佇列的程序。

九-1、基於順序搜尋的動態分割槽演算法

最佳適應(best fit)演算法:空閒分割槽按容量遞增形成分割槽鏈,找到第乙個能滿足要求的空閒分割槽。

最壞適應(worst fit)演算法:又稱最大適應(largest fit)演算法,空閒分割槽以容量遞減的次序鏈結。找到第乙個能滿足要求的空閒分割槽,也就是挑選出最大的分割槽。

九-2、基於索引搜尋的動態分割槽分配演算法

1、快速適應演算法

2、夥伴系統

十、頁面置換演算法

最佳置換演算法:只具有理論意義的演算法,用來評價其他頁面置換演算法。置換策略是將當前頁面中在未來最長時間內不會被訪問的頁置換出去。

先進先出置換演算法:簡單粗暴的一種置換演算法,沒有考慮頁面訪問頻率資訊。每次淘汰最早調入的頁面。

最近最久未使用演算法lru:演算法賦予每個頁面乙個訪問字段,用來記錄上次頁面被訪問到現在所經歷的時間t,每次置換的時候把t值最大的頁面置換出去(實現方面可以採用暫存器或者棧的方式實現)。

時鐘演算法clock(也被稱為是最近未使用演算法nru):頁面設定乙個訪問位,並將頁面鏈結為乙個環形佇列,頁面被訪問的時候訪問位設定為1。頁面置換的時候,如果當前指標所指頁面訪問為為0,那麼置換,否則將其置為0,迴圈直到遇到乙個訪問為位0的頁面。

改進型clock演算法:在clock演算法的基礎上新增乙個修改位,替換時根究訪問位和修改位綜合判斷。優先替換訪問位和修改位都是0的頁面,其次是訪問位為0修改位為1的頁面。

最少使用演算法lfu:設定暫存器記錄頁面被訪問次數,每次置換的時候置換當前訪問次數最少的。

面試 作業系統

本部落格記錄刷作業系統的記錄 第一天 段號佔8位,那麼段位址佔16位,則最大長度為2 16 64kb 半導體ram屬於易失性儲存器,分為靜態ram sram 和動態ram dram 靜態ram,以暫存器為儲存元件,只有在帶電的情況下,才儲存資訊 動態ram,利用mos管的柵極電容對電荷的儲存效應儲存...

面試 作業系統

一 談談,64位和32位的區別?答 作業系統只是硬體和應用軟體中間的乙個平台。32位作業系統針對的32位的cpu設計。64位作業系統針對的64位的cpu設計。二 談談,centos和linux的關係?答 centos是linux眾多的發行版本之一,linux有三大發行版本 slackware deb...

面試 作業系統

乙個程序由乙個或多個執行緒構成 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 程序間的位址空間相互獨立 記憶體保護 執行緒不擁有資源 少量執行緒棧 同一程序內的所有執行緒共享該程序的所有資源 各執行緒共享相同的 和全域性資料,但各有其自己的堆疊 同一程序內的執行緒切換,不會引起程序切換 不...