第一章 操作系統的定義:控制和管理電腦軟硬體資源、合理組織電腦工作流程,以方便用戶使用電腦的程式的集合。 操作系統的目標:方便性、有效性、可擴充性、開放性 操作系統的五個基本功能:存儲管理、處理機管理、設備管理、文件管理、用戶介面 操作系統的發展過程: 未配置操作系統的電腦系統:人工操作方式 ...
-------------------------------------------------------第一章------------------------------------------------------------------
- 操作系統的定義:控制和管理電腦軟硬體資源、合理組織電腦工作流程,以方便用戶使用電腦的程式的集合。
- 操作系統的目標:方便性、有效性、可擴充性、開放性
- 操作系統的五個基本功能:存儲管理、處理機管理、設備管理、文件管理、用戶介面
- 操作系統的發展過程:
未配置操作系統的電腦系統:人工操作方式、離線輸入輸出方式
批處理系統:單打批處理系統、多道批處理系統
分時系統:分時系統的特征:多路性,交互性,獨立性,及時性
實時系統:實時任務的類型:周期性實時任務/非周期性實時任務、硬實時任務/軟實時任務
實時系統的特征:多路性、交互性、獨立性、及時性、可靠性
微機操作系統:單用戶單任務操作系統、單用戶多任務操作系統、多用戶多任務操作系統
多處理機操作系統:模式:非對稱多處理模式、對稱多處理模式
網路操作系統:模式:客戶-伺服器模式(CS模式)、對等模式(P2P模式)
分散式操作系統:與網路OS的比較:分佈性、並行性、透明性、共用性、健壯性
嵌入式操作系統
- 操作系統的五個基本特征:併發性、共用性、虛擬性、非同步性、隨機性
- 操作系統結構:傳統結構:無結構OS(第一代)、模塊化OS(第二代)、分層式結構OS(第三式)
現代結構:微內核結構OS
-------------------------------------------------------第二章------------------------------------------------------------------
- 前趨圖:有向無環圖
- 程式順序執行:特征:順序性、封閉性、可再現性
- 程式併發執行:只有不存在前趨關係的程式之間才有可能併發執行。
特征:間斷性、失去封閉性、不可再現性
- 進程:一個具有一定獨立功能的可併發執行的程式,在一個數據集合上的運行過程。
- 進程的特征:動態性、併發性、獨立性、制約性、非同步性、結構特征
- 進程的結構特征:進程=程式+數據+PCB
- 進程式控制制塊(PCB):為了使參加併發執行的每個程式(含數據)都能獨立的運行,在操作系統中為之配置的一個專門的數據結構。PCB是進程存在的唯一標誌。
PCB的組織方式:線性方式、鏈接方式、索引方式
- 進程的三種基本狀態:就緒狀態(Ready)、執行狀態(Running)、阻塞狀態(Block)
新引入狀態:創建狀態(New)、終止狀態(Teminated)
新操作引入:掛起、激活。新操作的引入使得:就緒->活動就緒、靜止就緒
阻塞->活動阻塞、靜止阻塞
- 引起進程創建的事件:用戶登錄、作業調度、提供服務、應用請求
- 進程的創建:申請空白PCB、為新進程分配資源、初始化PCB、將新進程插入就緒隊列
- 進程的終止:正常結束、異常結束、外界干預
- 線程的定義:進程中的一個實體,是能夠被系統獨立調度和分配的基本單位。線程是進程的一個組成部分,線程由進程創建,一個進程中至少存在一個線程,線程還可以創建其他線程。可以當作輕型進程為線程,重型進程為進程。
- 線程的組成(NT為例):唯一的標識:客戶ID、一組處理及狀態寄存器、分別在用戶態和核心態下使用的兩個堆棧、一個私用寄存器。
- 線程的實現方式:內核支持線程KST、用戶級線程ULT、組合方式
-------------------------------------------------------第三章------------------------------------------------------------------
- 進程同步:對多個相關進程在執行次序上進行協調,使併發執行的諸進程之間能按照一定的規則或時序共用系統資源。
- 進程關係:間接制約/互斥關係、直接制約/同步關係
- 臨界資源:一次僅允許一個進程使用的資源。死鎖就是在進程申請同時使用多個臨界資源時候,臨界資源處理不當的情況。
- 臨界區:進程中訪問臨界資源的代碼成為臨界區
- 同步機制應遵循的規則:空閑讓進、忙則等待、有限等待、讓權等待 互斥問題的解決辦法:(總體上可以分為硬體解決,信號量和管程,以下為詳細展開)可以將臨界區的標準看成是一個鎖,顯然為了防止多個進程同時測試大鎖為打開的情況,測試和關鎖必須是連續的,不允許分開進行。
- 軟體方法:有一定難度並且有局限性
- 關中斷:實現互斥最簡單辦法
- TS實現互斥:藉助一條硬體指令,這條指令可以看作一個函數過程,執行過程不可分割及一條原語。
- 利用Swap指令進行互斥:有效,但是其他訪問不停地進行測試,處於忙等狀態,不符合讓權等待的原則。
- 信號量機制:
- 整型信號量:一個用於表示資源數目的整型量S,除初始化外,僅能通過兩個標準的原子操作 wait(S) 和 signal(S) 來訪問。這兩個操作被稱為PV操作。因為是兩個原子操作,它們在執行時是不可中斷的。
- 記錄型信號量:整型信號量的wait操作並未遵循讓權等待而是忙等狀態。記錄型對其進行了改善。在信號量機制中除了一個用於代表資源數目的整型變數value還增加了進程鏈表指針list。
- AND型信號量:前面的情況都是多個進程共用一個臨界資源,但現實往往是多個進場需要多個共用資源。顯然進程要求共用的臨界資源越多,發生進程死鎖的可能性越大。