作業系統
1.select,poll和epoll
其實所有i/o都是輪詢的方法,只不過實現的層面不同罷了
基本select有三個缺點:
1.連線受限
2.查詢配對速度慢
3.資料由核心態拷貝到使用者態
poll改善了第乙個缺點
epoll改善了第三個缺點
2.排程演算法
實時排程演算法:
1.最早截至時間優先 edf
2.最低鬆弛度優先 llf
3.死鎖
原因:1.競爭資源
2.程式推進順序不當
必要條件:
1.互斥
2.請求與保持條件
3.不可剝奪條件
4.環路等待條件
處理死鎖基本方法
1.預防死鎖
2.避免死鎖(銀行家演算法)
3.檢測死鎖(資源分配圖)
4.解除死鎖
i .剝奪資源
ii.撤銷程序
4.程式編譯與連線
預處理
預編譯過程主要處理那些原始檔中以「#」開始的預編譯指令
編譯
編譯過程就是把預編譯處理完成的檔案進行一系列詞法分析,語法分析,語義分析以及優化後生成相應的彙編**檔案,這個過程是構建的核心部分
彙編
彙編器將彙編**轉成機器可以執行的指令,每一條彙編語句幾乎都是一條機器指令,經過編譯,鏈結,彙編輸出的檔案成為目標檔案
鏈結
靜態鏈結和動態鏈結
動態鏈結方法:使用這種方法的程式並不在一開始就完成動態鏈結,而是知道真正呼叫動態**時,引導程式才計算(被呼叫的那部分)動態**的邏輯位址,然後等到某個時候,程式又需要呼叫另外某塊動態**時,引導程式又去計算這部分**的邏輯位址,所以,這種方式使程式初始化時間較短,但執行期間的效能比不上靜態鏈結的程式
虛擬記憶體技術
虛擬儲存器是指請求調入功能或者置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存系統
分頁和分段
分段和分頁的區別
主要是分頁的作業位址空間是一維的,分段的位址空間是二維的
分頁主要是實現非連續分配,以便解決記憶體碎片問題
分段主要是更好的實現共享,滿足使用者的需要
頁面置換演算法
最佳置換演算法:不可能實現
先進先出演算法
最近最長未使用演算法
clock演算法
邊沿觸發和水平觸發
邊沿觸發指每當狀態變化時發生乙個io事件,條件觸發的只是滿足條件發生乙個io事件
作業系統面試題
一 linux下程序間通訊的幾種主要手段簡介 管道 pipe 及有名管道 named pipe 管道可用於具有親緣關係程序間的通訊,有名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊 訊號 signal 訊號是比較複雜的通訊方式,用於通知接受程序有某種事...
作業系統面試題
內容源自 一 請分別簡單說一說程序和執行緒以及它們的區別。二 執行緒同步的方式有哪些?三 程序的通訊方式有哪些?主要分為 管道 系統ipc 包括訊息佇列 訊號量 共享儲存 socket 管道主要分為 普通管道pipe 流管道 s pipe 命名管道 name pipe 四 什麼是緩衝區溢位?有什麼危...
作業系統面試題彙總
死鎖?死鎖產生的原因?死鎖的必要條件?怎麼處理死鎖?解析 1 什麼是死鎖?死鎖是相互等待資源而產生的一種僵持狀態,如果沒有外力的干預將一直持續這個狀態 2 死鎖產生的原因?系統資源不足 相互競爭資源 請求資源順序不當 3 死鎖的必要條件?互斥 不可搶占 迴圈等待 請求與保持 4 怎麼處理死鎖?因為互...