作業系統面試考點
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 執行緒共享程序的 段,程序的一...