操作系統基本知識點
操作系統面試考點
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、用戶態與內核態
用戶態:運行用戶程序。
內核態:運行操作系統程序,能夠執行更多更高級的指令。

浙公網安備 33010602011771號