一文讀懂大廠面試的作業系統面試題目(超詳細整理,執行緒,程式,死鎖)

千與千尋ML發表於2021-01-01

作業系統是大廠進行計算機開發以及演算法崗位面試的必備部分,作業系統的面試中其實還包括作業系統的執行緒,程式的相關知識,以及Linux系統的核心和實際的使用。
通過閱讀很多的大廠的面試心經在作業系統的使用,進行了以下的作業系統面試題目的總結。
作業系統的面試重點涉及執行緒,程式的基本概念,程式與執行緒的區別與聯絡,作業系統的死鎖的發生,以及避免死鎖的發生,片段儲存區別,以及Linux系統的操作指令。

1.什麼是程式以及執行緒?二者之間的區別有哪些?
程式是系統進行資源排程與分配的基本單位,執行緒是CPU進行資源排程與分配的基本單位,它是比程式更小的能獨立執行的基本單位。
一個執行緒只能屬於一個程式,一個程式中可以包含多個執行緒,系統分配給程式的資源,程式內部的執行緒可以多執行緒的共享,不同程式內的執行緒通過訊息通訊的方式實現同步。
程式有獨立的記憶體空間,執行緒沒有獨立的記憶體空間。

2.程式與執行緒之間的狀態轉換類別
程式狀態分為堵塞,執行,就緒
就緒:程式已處於準備好執行的狀態,即程式已分配到除CPU外的所有必要資源後,只要再獲得CPU,便可立即執行
執行:程式獲得CPU,程式處於執行狀態
堵塞:正在執行的程式遇到IO請求等,暫時無法繼續執行
在這裡插入圖片描述
3.程式之間的同步方式有哪些?
管道機制,訊號量,訊息佇列,套接字進行通訊。

4.程式之間的排程演算法有哪些?
排程演算法是指:根據系統的資源分配策略所規定的資源分配演算法
(1)先來先服務的排程演算法:先來先服務排程演算法是一種最簡單的排程演算法,也稱為先進先出或嚴格排隊方案
(2)時間片輪轉排程演算法主要適用於分時系統。在這種演算法中,系統將所有就緒程式按到達時間的先後次序排成一個佇列。
(3)短作業優先排程演算法:短作業優先排程演算法是指對短作業優先排程的演算法,從後備佇列中選擇一個或若干個估計執行時間最短的作業,將它們調入記憶體執行。
(4)最短剩餘時間優先排程演算法
(5)高響應比優先排程演算法
(6)優先順序排程演算法

5.作業系統的死鎖是什麼?
死鎖就是兩個執行緒在獲取資源的時候,兩個執行緒互相具有對方所必須的資源,沒有外力的作用將一直持續等待,即為死鎖。

6.死鎖產生的必要條件有幾種?
(1)互斥條件:程式對程式的資源採用排他的機制,也就是一段時間內某一資源僅僅為一個程式所佔有。
(2)請求和保持的條件:當程式因為請求資源堵塞時,程式對所獲得的資源保持不放
(3)不剝奪的條件:程式已獲得的資源在未使用完之前,不能剝奪,只能在使用完時由自己釋放。
(4) 環路等待條件:在發生死鎖時,必然存在一個程式–資源的環形鏈。

7.解決死鎖的方法?
根據死鎖產生的條件,解決死鎖包括預防死鎖,避免死鎖,檢測死鎖,解除死鎖。

8.如何預防死鎖?
預防死鎖,由於死鎖產生需要同時具備四個條件,因此預防死鎖的辦法就是限制其中的一個條件
(1)破壞請求條件:一次性分配所有資源,這樣就不會再有請求了;
(2)破壞請保持條件:只要有一個資源得不到分配,也不給這個程式分配其他的資源:
(3) 破壞環路等待條件:系統給每類資源賦予一個編號,每一個程式按編號遞增的順序請求資源,釋放則相反。
(4)破壞不可剝奪條件:當某程式獲得了部分資源,但得不到其它資源,則釋放已佔有的資源;

9.分頁和分段的區別?
(1)段是資訊的邏輯單位,是根據使用者需要進行劃分的,段對使用者是可見的,頁是資訊的物理單位,是為了管理主存的而存在的,對使用者是透明的。
(2)段的大小不固定,由所完成的功能確定,頁的大小是固定的
(3)段向使用者提供的是二維地址空間,頁向使用者提供的是一維地址空間
(4)段是資訊的邏輯單位,便於儲存保護和資訊的共享,頁的保護和共享受到限制。

10.解釋並行和併發的含義區別
並行:兩個事件和多個事件在同一時刻發生,發生在不同的實體上。
併發: 兩個事件或者多個事件在同一時間間隔發生,發生在統一實體。

11.同步,非同步,堵塞,非堵塞的區別?
同步:當一個同步呼叫發出後,呼叫者需要等待返回結果,才能進行後續的執行。
非同步:當一個非同步過程呼叫發出後,呼叫者不能立刻得到返回結果。實際處理這個呼叫的部件在完成後,通過狀態、通知和回撥來通知呼叫者。
阻塞 :是指呼叫結果返回前,當前執行緒會被掛起,即阻塞。
非阻塞 :是指即使呼叫結果沒返回,也不會阻塞當前執行緒。

12.列舉常用的Linux系統的常用命令及作用
 顯示檔案目錄命令ls 如ls
 改變當前目錄命令cd 如cd /home
 建立子目錄mkdir 如mkdir xiong
 刪除子目錄命令rmdir 如rmdir /mnt/cdrom
 刪除檔案命令rm 如rm /ucdos.bat
 檔案複製命令cp 如cp /ucdos /fox
 獲取幫助資訊命令man 如man ls
 顯示檔案的內容less 如less mwm.lx
 重定向與管道type 如type readme>>direct,將檔案readme的內容追加到文direct中
 
致謝
1.https://zhuanlan.zhihu.com/p/86629244
2.https://blog.csdn.net/qwe123147369/article/details/92646371
3.https://blog.csdn.net/youngchang06hpu/article/details/8009947
4.https://zhuanlan.zhihu.com/p/86629244

相關文章