作業系統:精髓與設計原理 中文第七版 閱讀筆記 第二章

一直往前不要停發表於2018-07-25
  1. 目標和功能
    1. 作為使用者 計算機介面的作業系統
      1. 作業系統處於硬體之上,而底層硬體只能識別,高低電平,轉化到計算機中及二進位制程式碼,二級制指令集,作業系統對於底層硬體的進行封裝,封裝相應介面給上層使用者使用。計算機裡面儲存的資料都是二進位制的,程式設計過程中我們會使用一些高階語言,實際上高階語言最終會生成二進位制程式碼,這個過程叫做編譯。這種封裝成為HAL層,作用是遮蔽底層的硬體電路的差異性,對於上層使用者提供統一的可用的介面。例如檔案系統可能有不同的檔案系統,但是對於檔案系統的訪問讀寫,在同一個作業系統中大致相同。當然作業系統的功能不止於此。(API和二進位制介面的區別,連結的過程實際上使用的是機器中的二進位制介面(編譯過程),API只是存在於編譯器的上層),介面的定義===對於作業系統至關重要,當然對於作業系統向外提供的介面遠遠不止呼叫HAL層介面的硬體,還有很多其他型別的介面

    2. 作為資源管理器的作業系統
      1.  

    3. 作業系統易擴充套件性
      1. 硬體升級,新的硬體
      2. 新的服務
      3. 糾正錯誤
  2. 發展
    1. 序列處理
    2. 簡單批處理
    3. 多道批處理
    4. 分時系統(現在的作業系統也可以理解為多道批處理和分時系統的強化升級)
  3. 成就
    1. 程式
      1. 解決的問題
        1. 不正確的同步(收到不正確的訊號或者重複訊號)
        2. 失敗的互斥(共享同一裝置)
        3. 不確定的程式操作,(多個程式對系統更改應發不確定性)
        4. 死鎖(迴圈等待)
      2. 組成部分
        1. 一段可執行的程式
        2. 程式所需要的相關資料(變數,工作空間,緩衝區等)
        3. 程式執行的上下文
          1. 包括作業系統管理程式和處理器正確執行程式的所有資訊,包括各種處理器暫存器的內容,包括程式計數器和資料暫存器,還包括作業系統使用的資訊,程式優先順序以及是否在等特定io時間
          2. 程式計數器,基址暫存器,界限暫存器(這就是為什麼程式當中需要存在地址這個概念的原因,取指令的時候為什麼先要取地址,根據地址然後去命令進行執行,命令不變,地址在記憶體中可變,這就是為什麼的原因),程式執行時會被裝載到特定的記憶體中,基址暫存器和界限暫存器限制最大不可超越的記憶體定址範圍,地址只出現在程式執行的過程中
          3. 詳細請參照相關書籍

    2. 記憶體管理
      1. 功能
        1. 程式隔離:防止程式相互干涉
        2. 自動分配和管理:對於程式設計師透明,在需要時分配儲存空間
        3. 支援模組化程式設計:自定義程式模組,動態改變模組
        4. 保護和訪問控制:
        5. 長期儲存
      2. 虛擬記憶體,檔案系統
        1. 虛擬記憶體,引入分頁機制,缺頁排程等,邏輯角度劃分記憶體(區域性性原理),虛擬記憶體,極大地擴充套件了記憶體。
        2. 檔案系統,持久化資料,檔案系統,檔案管理等
    3. 資訊保護和安全
      1. 保護系統不被打斷
      2. 保證使用者不能讀取未授權餓資料
      3. 保護資料不被未授權修改
      4. 認證
    4. 排程和資源管理
      1. 公平性
      2. 有差異的響應性
      3. 有效性
  4. 現代作業系統的特徵
    1. 微核心體系結構
      1. 主要用在嵌入式系統當中,目的也很簡單,其實就是為了降低硬體成本,減少不必要的硬體支出
    2. 多執行緒
      1. 執行緒,同一個程式的執行緒共享程式的所有資料,執行緒有自己的資料,但是有自己的程式計數器和方法棧
      2. 程式,基址暫存器,界限暫存器等
    3. 對稱多處理
      1. 提高並行程度
    4. 分散式作業系統
      1. 分散式解決單機瓶頸
      2. 廣泛運用到雲端計算和分散式當中
    5. 物件導向設計
  5. 虛擬機器
    1. 虛擬化技術和虛擬化被廣泛運用到雲端計算等當中,將計算機資源更加合理地安排分配給不同的使用者,從而得到相應的收入
      1. 從原理等的角度,主要是作業系統會為應用程式提供二進位制介面,虛擬化軟體會將一個平臺的二進位制介面轉化為另一個平臺的二級制介面,對於應用程式而言使用的就是另外的作業系統的ABI,從而實現虛擬化,能夠在宿主機上面建立虛擬機器

  6. 多處理器
    1. 併發程式和執行緒
      1. 應用層並行
      2. 虛擬機器方式(相當於迴避了並行的問題)
    2. 排程
    3. 同步
    4. 記憶體管理
    5. 可靠性和容錯性
  7. windows
  8. linux

相關文章