作業系統基本知識點

2022-04-29 01:54:10 字數 3973 閱讀 7288

作業系統面試考點

1、明白併發和並行的區別對理解作業系統很重要

併發:指兩個或多個事件在同一時間間隔內發生

並行:指兩個或多個事件在同一時刻發生

作業系統中的程式可以併發執行,而不是並行執行。

2、程式、程序以及執行緒的區別

從定義來看

程式:程式是對演算法的描述,一段靜態的**序列

程序:程式在乙個資料集合上的一次執行,它是作業系統資源分配和排程的獨立單位,實現作業系統的併發

執行緒:執行緒是程序的子任務,是cpu排程和分派的基本單位,不擁有系統資源,共享程序資源,實現程序內部的併發

協程:微執行緒,乙個執行緒有多個協程,協程與執行緒是不同維度的概念,協程類似乙個特殊的函式,協程可以中斷又可以回到中斷點繼續執行,協程之間序列執行。

關係:程式的併發結果具有不可再現性由此引入程序,為了進一步減少開銷,引入執行緒實現程序內部併發,

乙個程式至少有乙個程序,乙個程序至少有乙個執行緒,執行緒依賴於程序而存在

3、程序間的通訊的幾種方式

共享儲存器:相互通訊的程序共享某些資料結構和儲存區,程序之間通過這些空間通訊

管道通訊:用於連線乙個讀程序和乙個寫程序,以實現程序通訊的共享檔案

訊息佇列:以格式化的訊息為單位,利用作業系統提供的操作原語,在程序間傳遞訊息,該方法遮蔽了通訊細節

客戶機-伺服器:基於套接字的,用於網路中不同機器的程序通訊

訊號量:

4、執行緒之間的同步

互斥量:互斥物件只有乙個,可以保證公共資源不會被多個執行緒同時訪問

訊號量:它允許同一時刻多個執行緒訪問同一資源,但是需要控制同一時刻訪問此資源的最大執行緒數量

5、程序之間同步

硬體同步,訊號量機制,管程機制

6、程序的幾種狀態

就緒狀態:

程序已獲得除處理機以外的所需資源,等待分配處理機資源

執行狀態:程序已獲得處理機正在執行

阻塞狀態:程序等待某種條件

7、程序排程演算法

先來先服務(fcfs):按照程序到達的先後次序

短作業優先(sjf):要求執行時間短的作業優先

優先順序排程演算法:優先順序越高越先排程,會出現飢餓現象(可以搶占,可以非搶占)

時間片輪轉(可搶占):為每個程序分配乙個時間片

多佇列排程演算法:按照佇列的型別和性質劃分多個就緒佇列,每個就緒佇列使用不同的排程演算法

多級反饋佇列:設定多個就緒佇列劃分優先順序,每個佇列都採用先來先服務演算法,程序的時間片用完,會放到低階佇列的隊尾

8、死鎖

(1)定義:就是兩個或多個程序無限期的阻塞、相互等待的一種狀態

(2)死鎖產生的四個必要條件

互斥:程序對分配到的資源排它,及資源一段時間只能被乙個程序使用

不可搶占:程序占有的資源是不可搶占的

占有並等待:乙個程序至少占有乙個資源,且等待乙個被其他程序占有的資源

迴圈等待:若干資源形成相互等待的環

(3)處理死鎖的方法

a預防死鎖

破壞不可搶占條件:已占有不可搶占資源的程序,資源請求得不到滿足,就釋放已占有資源

占有並等待:一次性給夠資源,要麼給足,要麼不給

迴圈等待:對資源排序,請求必須嚴格按照遞增順序請求

b避免死鎖

檢查系統是否處於不安全狀態(銀行家演算法)

c檢測死鎖

用於確定系統是否發生死鎖

d解除死鎖

搶占資源:從其它程序中搶占足夠資源,分配給死鎖程序

終止程序:撤銷乙個或多個死鎖程序,破壞迴圈等待鏈

9、

分段管理與分頁管理

分段管理:段式儲存管理是一種符合使用者視角的記憶體分配管理方案。將程式的位址空間劃分為若干段(segment),如**段,資料段,堆疊段;由段表實現位址空間到物理空間的對映。段式管理的優點是:沒有內碎片(因為段大小可變,改變段大小來消除內碎片)。但段換入換出時,會產生外碎片(比如4k的段換5k的段,會產生1k的外碎片)。

分頁管理:在頁式儲存管理中,將程式的邏輯位址劃分為固定大小的頁(page),而物理記憶體劃分為同樣大小的塊,程式載入時,可以將任意一頁放入記憶體中任意乙個塊,這些塊不必連續,從而實現了離散分離。由頁表實現位址空間到物理空間的對映。頁式儲存管理的優點是:沒有外碎片(因為頁的大小固定),但會產生內碎片(乙個頁可能填充不滿)。

區別:

目的:分頁滿足系統管理的需要,使用者不可見。分段為了更好的滿足使用者的需求

大小不同:頁的大小由系統決定是固定的;段的大小由使用者決定是不定的

段向使用者提供二維位址空間;頁向使用者提供的是一維位址空間;

10、

區域性性原理

時間區域性性原理:程式中某條指令被執行,不久後會再次被執行,典型如迴圈

空間區域性性原理:程式中某個變數被訪問,不久後其周圍的變數也會被訪問,典型如程式順序執行

11、

虛擬記憶體

定義:具有請求調入和頁面置換的功能,並且能從邏輯上對記憶體容量加以擴充的儲存系統。

頁面置換演算法

最佳置換演算法:

理論最優,被換出的是永遠不會在使用或者最長時間不是使用的頁面。

fifo先進先出:

lfu最少使用:

lru最近最久:乙個頁面自上次被訪問以來所經歷的時間t,t最大

12、抖動

定義:系統中同時執行的程序太多,會不斷的產生缺頁中斷,導致頻繁的頁面排程,致使系統效率急劇下降的現象稱為抖動

解決策略:

採取區域性置換策略(影響範圍控制到最小);降低多道程式度;殺死程序;增加記憶體容量

系統呼叫:使用者態的程序想要使用核心態的功能,就要使用作業系統提供的api(即系統呼叫),由作業系統代為完成此功能。

13、磁碟排程演算法

先來先服務:滿足先到程序的請求

電梯演算法:從裡向外,從外向裡掃瞄,依次選擇訪問磁軌與當前磁頭距離最近的執行緒。

14、使用者態與核心態

使用者態:執行使用者程式。

作業系統基本知識

1 因為系統資源不足。2 程序執行推進的順序不合適。3 資源分配不當等。如果系統資源充足,程序的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則就會因爭奪有限的資源而陷入死鎖。其次,程序執行推進順序與速度不同,也可能產生死鎖。1 互斥條件 乙個資源每次只能被乙個程序使用。2 請求與保持條件 乙個...

作業系統基本知識

1 併發 併發指同一時間內同時執行多個程式 並行指同一時間內同時執行多條指令 並行需要硬體支援比如 流水線,多核處理器,分布式作業系統 併發作業系統通過引入程序和執行緒,從而實現併發 2 共享 共享是指系統中的資源可以被多個併發程序共同使用。有兩種共享方式 互斥共享和同時共享。互斥共享的資源稱為臨界...

基本知識點

1 程序和執行緒的關係 1 在有執行緒的作業系統裡面,程序是分配資源的基本單位,執行緒是排程的基本單位。2 1個程序可以擁有多個執行緒 3 執行緒同時也有一些自己的資源,包括 程式計數器,堆疊等 4 因為執行緒所擁有的資源比較少,因此進行排程的時候所消耗的資源就少。5 執行緒共享程序的 段,程序的一...