現代操做系統

現代操做系統

進程與線程

  • 進程用於把資源集中到一塊兒,而線程則是在CPU上被調度執行的實體。
    • 線程有一個程序計數器,用於記錄接着要執行的指令。
    • 線程擁有寄存器,用來保存線程當前的工做變量。
    • 線程還擁有一個堆棧,用來記錄執行歷史,每一幀保存已調用但沒有從中返回的函數。
  • 只有認爲等待時間很是短的情形下,才使用忙等待。用於忙等待的鎖,稱爲自旋鎖(spin lock)。

輸入/輸出

  • 電梯調度算法: 電梯保持一個方向移動,直到在那個方向上沒有請求爲止。

死鎖

  • 若是一個進程集合中的每一個進程都在等待只能由該進程集合中的其餘進程才能引起的事件,那麼該進程集合就是死鎖的。
  • 資源死鎖的條件:
    • 互斥條件: 每一個資源要麼已經分配給了一個進程,要麼就是可用的。
    • 佔有和等待條件: 已經獲得了某個資源的進程能夠在請求新的資源。
    • 不可搶佔條件: 已經分配給一個進程的資源不能強制性地被搶佔,它只能被戰友它的進程顯示地釋放。
    • 環路等待條件: 死鎖發生時, 系統中必定有由兩個或兩個以上的進程組成的一條環路,該環路中的每一個進程都在等待着下一個進程所佔有的資源。
    • 死鎖發生時,這四個條件要同時知足。
      死鎖.
  • 在互斥時間很短而掛起等待的時間開銷很大時,能夠採用活鎖(livelock, 沒有出現死鎖,但現象上看好像死鎖發生了),輪詢(忙等待)可用於進入臨界區或存取資源。

多處理機系統

  • 實現共享存儲器的不一樣層次:
    實現共享存儲器的不一樣層次.
  • 分佈在四臺機器中的地址空間頁面:
    分佈在四臺機器中的地址空間頁面.
  • 負載平衡:
    • 圖論肯定算法。
    • 發送者發起的分佈式啓發算法。
      • 分析排隊模型。
    • 接收者發起的分佈式啓發算法。
  • 分佈式系統添加在其底層網絡上的是一些通用泛型(模型), 它們提供了一種統一的方法來觀察整個系統。
    分佈式中間件.
  • 因特網:
    Internet的一部分.
    • Web是由文檔構成的大有向圖。
    • 發佈訂閱模式(Publish/Subscribe).

Linux

  • Linux系統中的層次結構:
    層次結構.
  • Linux應用程序:
    應用程序.
  • 內核結構:
    內核結構.
  • shell執行命令的過程:
    shell執行命令的過程.
  • 進程是資源容器,而線程是執行單元。
  • 用於啓動一些Linux系統的進程順序:
    啓動順序.
  • 文件描述符表,打開文件描述符表和i節點表之間的關係:
    i節點的關係.
  • 原子操做是指執行的過程當中不能被打斷,要麼執行完畢,要麼不執行。
  • 網絡文件系統(NFS)層次結構:
    NFS層次結構.linux

  • Windows用句柄來引用內核態對象;
    • 句柄是不透明值(opague value), 該不透明值是被對象器轉換到具體的應用,以表示一個對象的內核態數據結構。
  • 微內核結構: 內核中包括最小限度的系統功能以及數據,許多系統功能被放到了用戶空間服務器段
    • 典型的基於微內核的操做系統初始化引導時佔用較少的內存,而且其結構也更加動態。
相關文章
相關標籤/搜索