作業系統在計算機行業中是一門最基礎的技術,無論是在開發專案還是在演演算法崗,我們都是基於計算機上進行的,我們對作業系統的瞭解體現我們從事計算機相關崗位的資深素質,因此,接下來,這篇文章給大家介紹在面試中常見的作業系統的知識點。當然,開發和演演算法崗對計算機網路的要求程度不同,相對而言,開發對作業系統的要求其實更高一些。但是一些基礎、核心、常見的問題要求我們要掌握。
面試的過程中,為了考察面試者的基礎功力,除了演演算法以外,作業系統將會佔比很大的權重,本文就給大家全部分享吧
(由於知識點太多,Σ( ° △ °|||)︴,此處省略.............................................................)
現代計算機系統由一個或多個處理器、主記憶體、印表機、鍵盤、滑鼠、顯示器、網路介面以及各種輸入/輸出裝置構成。
CPU
CPU是計算機的大腦,它主要和記憶體進行互動,從記憶體中提取指令並執行它。一個CPU的執行週期是從記憶體中提取第一條指令、解碼並決定它的型別和運算元,執行,然後再提取、解碼執行後續的指令。重複該回圈直到程式執行完畢。
多執行緒和多核晶片
對於作業系統來講,多執行緒是有意義的,因為每個執行緒對作業系統來說都像是一個單個的CPU。比如一個有兩個CPU的作業系統,並且每個CPU執行兩個執行緒,那麼這對於作業系統來說就可能是4個CPU。
記憶體
計算機中第二個主要的元件就是記憶體。理想情況下,記憶體應該非常快速(比執行一條指令要快,從而不會拖慢CPU執行效率),而且足夠大且便宜,但是目前的技術手段無法滿足三者的需求。於是採用了不同的處理方式,記憶體系統採用一種分層次的結構
匯流排
上面的結構(簡單個人計算機的元件圖)在小型計算機已經使用了多年,並用在早期的IBM PC中。然而,隨著處理器核記憶體變得越來越快,單個匯流排處理所有請求的能力也達到了上線,其中也包括IBMPC匯流排。必須放棄使用這種模式。其結果導致了其他匯流排的出現,它們處理I/0裝置以及CPU到記憶體的速度都更快。這種演變的結果導致了下面這種結構的出現。
程序模型
多執行緒解決方案
經典的執行緒模型
競態條件
互斥量
訊息傳遞
屏障
批次處理中的排程
執行多個程式
基址暫存器和變址暫存器
交換過程
記憶體針對自動增長的區域,會有三種處理方式
使用點陣圖的儲存管理
頁表
先進先出頁面置換演演算法
工作集時鐘頁面置換演演算法
檔案結構
檔案型別
層次目錄系統
連結串列分配
紀錄檔檔案系統
虛擬檔案系統
磁碟空間管理
物理轉儲和邏輯轉儲
裝置控制器
裝置控制器是處理CPU傳入和傳出訊號的系統。
記憶體對映I/0
每個控制器都會有幾個暫存器用來和CPU進行通訊。通過寫入這些暫存器,作業系統可以命令裝置傳送資料,接收資料、開啟或者關閉裝置等。通過從這些暫存器中讀取資訊,作業系統能夠知道裝置的狀態,是否準備接受一個新命令等。
直接記憶體存取
精確中斷和不精確中斷
中斷處理程式
磁碟
為了組織和檢索資料,會將磁碟組織成特定的結構,這些特定的結構就是磁軌、磁區和柱面
磁碟臂排程演演算法
計算機系統中有很多獨佔性的資源,在同一時刻只能每個資源只能由一個程序使用,我們之前經常提到過印表機,這就是一個獨佔性的資源,同一時刻能有兩個印表機同時輸出結果,否則會引起檔案系統的癱瘓。所以,作業系統具有授權-個程序單獨存取資源的能力。
死鎖模型
Holt在1972年提出對死鎖進行建模,建模的標準如下:
●圓形表示程序
●方形表示資源
通訊死鎖
死鎖是一類通用問題,任何作業系統都會產生死鎖。當每一-組程序 中的每個程序都因等待由該組的其他程序所佔有的資源而導致阻塞,死鎖就發生了。這種情況會使所有的程序都處於無限等待的狀態。死鎖的檢測和避免可以通過安全和不安全狀態來判斷,其中一個檢測方式就是銀行家演演算法;當然你也可以使用鴕鳥演演算法對死鎖置之不理,但是你肯定會遭其反噬。也可以在設計時通過系統結構的角度來避免死鎖,這樣能夠預防死鎖;也可以破壞死鎖的四個條件來破壞死鎖。資源死鎖並不是唯一性的死鎖,還有通訊間死鎖,可以設定適當的超時時間來完成。活鎖和死鎖的問題有些相似,它們都是-種程序無法繼續向下執行的狀態。 由於程序排程策略導 致嘗試獲取程序的一方永遠無法獲得資源後,程序會導致飢餓的出現。
解釋一下什麼是作業系統
微核心
多處理系統的優勢
(由於內容太多了,就不一一展示了Σ( ° △ °|||)︴)
這份【作業系統筆記】檔案共有300+頁,需要完整版的朋友,可以點贊此文關注小編,【見下圖】來獲取!!