1. 程式人生 > >[OS]秋招-計算機基礎-作業系統

[OS]秋招-計算機基礎-作業系統

程序間通訊方式?
  1. 管道(無名管道、有名管道--FIFO)
  2. 訊息佇列(posix--mq_xxx、system--msgxxx)
  3. 訊號量
  4. 檔案記錄與上鎖
  5. 共享記憶體(posix--shm_xxx、system--shmxxx)
  6. unix域socket
  7. 訊號(kill函式作為程序間傳送訊號,kill命令就是很好的例子)
執行緒通訊
  1. 事件
  2. 臨界區
  3. 互斥量
  4. 訊號量
  5. 讀寫鎖
  6. 條件變數
  7. 自旋鎖
  8. 屏障
作業系統程序(作業)排程演算法? 連結 FCFS:先來先服務 下面三種是:需要估計預計的服務時間(不可能直接做到,那是未來的時間)
  1. SPN:最短程序優先
  2. SRT:最短剩餘時間,指程序執行的剩餘時間
  3. HRRN:最高響應比
反饋:相反,它是計算程序已經執行了的時間(過去的時間) 併發和並行的區別?
連結
記憶體管理技術? 死鎖的發生條件?
  1. 互斥:一次只有一個程序可以使用一個資源。
  2. 佔用且等待:當一個程序等待其他程序時,繼續佔有已經分配的資源。
  3. 不可搶佔:不能強行搶佔程序已佔有的資源。
  4. 迴圈等待:存在一個封閉的程序鏈,使得每個程序至少佔有此鏈中下一個程序所需的一個資源。
死鎖的解決方案?
  1. 死鎖預防:限制申請資源順序,破壞了迴圈等待條件
  2. 死鎖避免:銀行家演算法,資源分配拒絕策略,需獲知程序所需總資源
  3. 鎖死檢測和解除:
分頁和分段? 用於虛擬記憶體的作業系統策略 最優:OPT,是不可能實現的 時鐘:CLOCK,最接近OPT的一種,很多系統都使用,效能佳 解釋程序與執行緒?
  1. 資源分配
  2. 任務排程
  3. 實現功能
程序狀態模型(五狀態模型84、七狀態模型89) 關鍵理解,某狀態是什麼原因導致狀態的裝換,轉換到那一個狀態。 什麼是中斷?中斷的概念?      中斷是OS的基本驅動力,實現多道程式的關鍵點。      CPU響應中斷源的中斷請求,暫停當前指令執行,保留現場,跳轉至中斷源對應的中斷服務程式ISR,待ISR執行完畢,恢復現場並繼續執行。 中斷的型別?
  1. 程式中斷:溢位、除零、非法指令等
  2. 時鐘中斷:處理器的計時器產生
  3. IO中斷:IO控制器產生
  4. 硬體失效中斷:暫時沒遇見,向面試官說明
解釋一下os的異常?它一般發生在什麼情況下?有什麼作用?      異常幾乎都是以“中斷”的形式產生,但中斷並不等同異常。 執行緒的實現方式? 核心執行緒、使用者執行緒 POSIX是那種? 我在學習os是研究2.6版本,那時候使用:使用者執行緒 排程演算法? 短程排程、中程排程、長程排程 因為涉及併發,會問:鎖相關的知識。 mutex在linux系統上如何實現? 給你幾個檔案,說明白編譯連結整個過程? 執行緒設計模型,列舉幾個並說明其優缺點? IO模型(在網路裡面回答了)