作業系統原理常見面試題總結

2021-09-11 04:14:42 字數 1904 閱讀 8686

目錄

1. 程序與執行緒的區別?

2. 程序的狀態及其轉換

3. 程序的同步與互斥

4. 程序間的通訊方式有哪些?

5. 作業(程序)的排程演算法有哪些?

6. 死鎖產生的原因,死鎖產生的必要條件是什麼,如何預防死鎖,如何避免死鎖?

互斥:是指某一資源同時只允許乙個訪問者對其訪問,具有唯一性和排他性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。

同步:是指在互斥的基礎上(大多數情況),通過其他機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源。

簡單的說:同步體現的是一種協作性,呼哧體現的是一種排他性。

命名管道fifo:未命名的管道只能在兩個相關的程序之間通訊,通過命名管道fifo,不相關的程序也能交換資料。fifo不同於管道之處在於它提供乙個路徑與之關聯,以fifo的檔案形式存在於系統中。

訊息佇列:

共享記憶體

訊號量:與ipc結構不同,它是乙個計數器。訊號量用於實現程序間的同步與互斥,而不是儲存程序間通訊資料。

套接字:使用socket進行通訊的程序可以是同一臺計算機的程序,也可以是通過網路連線起來的不同的計算機上的程序。socket詳解

先來先服務(fcfs,first-come-frist-served):此演算法的原則是按照作業到達後備作業佇列(或程序進入就緒佇列)的先後次序來選擇作業(或程序)。

短作業優先(sjf,shortest process next):這種排程演算法主要用於作業排程,它從作業後備佇列中挑選所需執行時間(估計值)最短的作業進入主存執行。

時間片輪轉排程演算法(rr,round-robin):當某個程序執行的時間片用完時,排程程式便停止該程序的執行,並將它送入就緒佇列的末尾,等待分配下一時間片再執行。然後把處理機分配給就緒佇列中新的隊首程序,同時也讓它執行乙個時間片。這樣就可以保證就緒佇列中的所有程序,在一給定的時間內,均能獲得時間片處理機執行時間。

高響應比優先(hrrn,highest response ratio next):按照高響應比((已等待時間+要求執行時間)/ 要求執行時間)優先的原則,在每次選擇作業投入執行時,先計算此時後備作業佇列中每個作業的響應比rp然後選擇其值最大的作業投入執行。

優先權(priority)排程演算法:按照程序的優先權大小來排程,使高優先權程序得到優先處理的排程策略稱為優先權排程演算法。注意:優先數越多,優先權越小。

多級佇列排程演算法:多佇列排程是根據作業的性質和型別的不同,將就緒佇列再分為若干個子佇列,所有的作業(或程序)按其性質排入相應的佇列中,而不同的就緒佇列採用不同的排程演算法。

死鎖產生的原因:資源競爭、程序推進順序不當。

死鎖產生的必要條件:

預防死鎖:破壞產生死鎖的四個 必要條件之一即可。

死鎖的避免:銀行家演算法,該方法允許程序動態地申請資源,系統在進行資源分配之前,先計算資源分配的安全性。若此次分配不會導致系統從安全狀態向不安全狀態轉換,便可將資源分配給程序;否則不分配資源,程序必須阻塞等待。從而避免發生死鎖。

死鎖的解除:

強制性地從系統中撤銷乙個或多個死鎖的程序以斷開迴圈等待鏈,並收回分配給終止程序的全部資源功剩下的程序使用。

使用乙個有效的掛起和解除機構來掛起一些死鎖的程序,其實質是從被掛起的程序那裡搶占資源以解除死鎖。

作業系統常見面試題

作業系統學習之一 程序及其狀態和資料描述 作業系統學習記錄之二 程序的管理及切換 作業系統學習記錄之三 多執行緒技術 作業系統學習記錄之四 核心級執行緒和使用者級執行緒 作業系統學習記錄之五 多執行緒實現的混合策略 作業系統學習記錄之六 併發程式 作業系統學習記錄之七 臨界區 作業系統學習記錄之八 ...

作業系統常見面試題

未更新完畢 僅用來個人學習 程序 程序是乙個有特定功能的程式在某個資料集合上的一次執行。執行緒 執行緒是系統排程的最小單位,包含在程序之中。聯絡 程序可以有多個執行緒,最少包含乙個執行緒,即主線程。乙個執行緒只能屬於乙個程序。執行緒是程序執行的實體。區別 1 程序是資源分配的最小單位。程序擁有資源,...

常見面試題整理(作業系統)

一 請分別簡單說一說程序和執行緒以及它們的區別。如果你對程序或者執行緒不太熟悉,建議閱讀 程序與執行緒的乙個簡單解釋 二 執行緒同步的方式有哪些?經兩位大大的指正,現已刪除臨界區。感謝 真姬醬 安陽如果你對執行緒同步的方式不太熟悉,建議閱讀 執行緒同步的幾種方式 三 程序的通訊方式有哪些?主要分為 ...