作業系統

作業系統概述

作業系統作用

  1. 儲存管理

這裡寫圖片描述
2. 處理機管理
這裡寫圖片描述
3. 裝置管理
這裡寫圖片描述
4. 檔案管理
這裡寫圖片描述
5. 使用者介面
這裡寫圖片描述

作業系統的定義

是管理和控制計算機系統中各種硬體和軟體資源、合理地組織計算機工作流程的系統軟體,是使用者與計算機之間的介面。

  • 多道批處理系統

    1. 在記憶體中同時存放多道程式,在管理程式的控制下交替執行,這些作業共享CPU和系統其他資源。
    2. 這裡寫圖片描述
    3. 這裡寫圖片描述
  • 分時系統

把處理機執行時間分成時間片,按時間片輪轉的方式,把處理機分配給各聯機作業使用。允許多個使用者與計算機直接互動。

  • 實時系統

系統能及時(或即時)響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有實時任務協調一致地執行。提供即時響應和高可靠性,響應時間快,可以在毫秒級甚至微秒級立即處理。

作業系統的特徵

  1. 併發

    併發是指兩個或多個事件在同一時間間隔內發生。

    微觀上還是程式在分時地交替執行。

  2. 共享

    共享是指系統中的資源可供記憶體中多個併發執行的程序共同使用。

    1. 互斥共享方式

      如印表機、磁帶機。在一段時間內只允許一個程序訪問該資源。

    2. 同時訪問方式

      如磁碟裝置

  3. 虛擬

    虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。比如說虛擬處理器,虛擬記憶體,虛擬外部裝置

  4. 非同步

    在多道程式環境下,允許多個程式併發執行,但由於資源有限,程序的執行不是一貫到底,而是走走停停,以不可預知的速度向前推進,這就是程序的非同步性。

作業系統最基本的特徵是併發和共享,兩者互為存在條件。

程序管理

程式基本概念

  • 程式執行的兩種方式:
    1. 順序執行:一個計算的若干操作必須按照嚴格的先後次序順序地執行,這類計算過程就是程式的順序執行過程。
    2. 併發執行:指一組在邏輯上相互獨立的程式或程式段在執行過程中,其執行時間在客觀上相互重疊,即一個程式段的執行尚未結束,另一個程式段的執行已經開始的這種執行方式。

程序基本概念

  • 定義

程序是指一個具有獨立功能的程式對某個資料集在處理機上的執行過程和分配資源的基本單位。

引入程序的概念,以便更好地描述和控制程式的併發執行。

程式封閉性是指程序執行的結果只取決於程序本身,不會受外界影響。

  • 程序和程式的區別

這裡寫圖片描述

  • 程序的組成

程序通常由程式、資料集合和程序控制塊PCB三部分組成。程式和它操作的資料是程序存在的靜態實體,而專門的資料結構PCB用來描述程序當前的狀態、本身的特性等。

當程序被中斷時,作業系統會把程式計數器和處理器暫存器(上下文資料)儲存在PCB中的對應位置,程序狀態已被改變為其他的值,例如阻塞態或就緒態。

PCB是程序存在的唯一標誌。故作業系統是根據程序控制塊來對併發執行的程序進行控制和管理。

PCB內含的資料結構主要有:程序標誌資訊、程序控制資訊、程序資源資訊、CPU現場資訊。

每個程序包含獨立的地址空間,程序各自的地址空間是私有的,只有執行自己地址空間中的程式,且只能訪問自己地址空間中的資料,相互訪問會導致指標的越界錯誤。

對程序的管理和控制功能是通過執行各種原語實現的,如建立原語。

程序狀態

  • 執行態
  • 就緒態
  • 阻塞態
  • 新建態
  • 退出態

程序建立

1、給新程序分配一個唯一的程序識別符號

2、給程序分配空間

3、初始化程序控制塊

4、設定正確的連線

5、建立或擴充其他資料結構

執行緒

執行緒基本概念

引入執行緒,是為了減小程式在併發執行時所付出的時空開銷,提高作業系統的併發效能。

執行緒最直接的理解就是“輕量級程序”,它是一個基本的CPU執行單元,也是程式執行流的最小單元。

執行緒共享程序擁有的全部資源。

執行緒不擁有系統資源,但是它可以訪問程序所擁有的系統資源。

執行緒沒有自己獨立的地址空間,他共享他所屬的程序的空間。

執行緒的實現方式

  1. 使用者級執行緒
  2. 核心級執行緒

程序間通訊

  • 共享儲存
  • 訊息傳遞
  • 管道通訊:固定大小,半雙工通訊,即某一時刻只能單向傳輸。
  • 共享檔案

處理機排程

排程的層次

  1. 作業排程,又稱高階排程。就是記憶體與輔存之間的排程。
  2. 中級排程。又稱記憶體排程。引入中級排程是為了提高記憶體利用率和系統吞吐量。使那些暫時不能執行的程序,調至外存等待,把此時的程序狀態稱為掛起狀態。當他們具備執行條件且記憶體又稍有空閒時,由中級排程來決定,把外存上的那些已具備執行條件的就緒程序再重新調入記憶體。
  3. 程序排程。又稱為低階排程。按照某種方法和策略從就緒佇列中選取一個程序給CPU。

程序排程方式

  1. 非剝奪排程方式
  2. 剝奪排程方式

典型的排程演算法

  1. 先來先服務排程演算法(FCFS)

  2. 短作業優先(SJF)排程演算法

    從後備佇列中選擇一個或若干個估計執行時間最短的作業,將他們調入記憶體執行。

  3. 短程序優先(SPF)排程演算法

    從就緒佇列中選擇一個估計執行時間最短的程序,將處理機分配給它,使之立即執行。

  4. 優先順序排程演算法

    根據能否搶佔程序,可將排程演算法分為:

    1. 非剝奪式優先順序排程演算法
    2. 剝奪式優先順序排程演算法

    根據程序建立後其優先順序是否可以改變,分為:

    1. 靜態優先順序。優先順序在建立程序時確定,且在程序的整個執行期間保持不變。
    2. 動態優先順序。可動態調整優先順序。
  5. 高響應比優先排程演算法

    這裡寫圖片描述

  6. 時間片輪轉排程演算法

  7. 多級反饋佇列排程演算法

這裡寫圖片描述

這裡寫圖片描述

程序同步

基本概念

  1. 臨界資源

我們把一次僅允許一個程序使用的資源稱為臨界資源。

  1. 同步

同步亦稱直接制約關係,他是指為完成某種任務而建立的兩個或多個程序,這些程序因為需要在某些位置上協調他們的工作次序而等待、傳遞資訊所產生的制約關係。

實現臨界區互斥的基本方法

軟體實現方法

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

硬體實現方法

  1. 中斷遮蔽方法

    當一個程序正在使用處理機執行它的臨界區程式碼時,要防止其他程序再進入其臨界區訪問的最簡單方法是禁止一切中斷髮生。因為CPU只在中斷髮生時進行程序切換,這樣遮蔽中斷就能保證當前執行程序將臨界區程式碼順利地執行完。

  2. 硬體指令方法

    這裡寫圖片描述

    這裡寫圖片描述

訊號量

訊號量只能被兩個標準的原語wait(S)和signal(S)來訪問,也可以記為“P操作“和”V操作“。

原語是指完成某種功能且不被分割不被中斷執行的操作序列,通常可由硬體來實現完成不被分割執行特性的功能。

  1. 利用訊號量實現同步

這裡寫圖片描述

  1. 利用訊號量實現程序互斥

這裡寫圖片描述

管程

管程是由一組資料以及定義在這組資料之上的對這組資料的操作組成的軟體模組,這組操作能初始化並改變管程中的資料和同步程序。

這裡寫圖片描述

死鎖

所謂死鎖是指多個程序因競爭資源而造成的一種僵局(互相等待),若無外力作用,這些程序都將無法向前推進。

死鎖產生的條件

  • 互斥
  • 不剝奪
  • 請求和保持
  • 循壞等待

死鎖的處理策略

  1. 預防死鎖

設定某些限制條件,破壞產生死鎖的四個必要條件中的一個或幾個,以防止發生死鎖。

  1. 避免死鎖

在資源的動態分配過程中,用某種方法防止系統進入不安全狀態,從而避免死鎖。

銀行家演算法

這裡寫圖片描述

  1. 死鎖的檢測及解除

通過系統的檢測機構及時地檢測出死鎖的發生,然後採取某種措施解除死鎖。

這裡寫圖片描述

記憶體管理

程式執行過程

這裡寫圖片描述

邏輯地址空間與實體地址空間

這裡寫圖片描述

覆蓋與交換

  • 覆蓋

這裡寫圖片描述

  • 交換

這裡寫圖片描述

連續分配管理方式

  • 單一連續分配

這裡寫圖片描述

  • 固定分割槽分配

可以有大小相等的分割槽和大小不等的分割槽

會有內部碎片

  • 動態分割槽分配

會有外部碎片,可以通過緊湊技術來解決(就是作業系統不時地對程序進行移動和整理,需要動態重定位暫存器支援。

這裡寫圖片描述

非連續分配管理方式

  • 分頁儲存管理
  • 分段儲存管理
  • 段頁式管理方式

虛擬記憶體管理

  1. 傳統儲存管理方式的特徵

    • 一次性:作業必須一次性全部裝入記憶體,方能執行。
    • 駐留性:作業被裝入記憶體後,就一直駐留在記憶體中,其任何部分都不會被換出,直至作業執行結束。
  2. 區域性性原理

    • 時間區域性性

    如果程式中的某條指令一旦執行,不久以後該指令可能再次執行;如果某資料被訪問過,不久以後該資料可能再次被訪問。

    所以時間區域性性是通過將進來使用的指令和資料儲存到快取記憶體儲存器中。

    • 空間區域性性

    一旦程式訪問了某個儲存單元,在不久之後,其附近的儲存單元也將被訪問。

    所以空間區域性性通常是使用較大的快取記憶體,並將預取機制整合到快取記憶體控制邏輯中實現。

頁面置換演算法

  1. 最佳置換演算法(OPT)

這裡寫圖片描述

  1. 先進先出頁面置換演算法

這裡寫圖片描述

  1. 最近最久未使用置換演算法(LRU)

這裡寫圖片描述

檔案系統

檔案的概念

檔案是以計算機硬碟為載體儲存在計算機上的資訊集合,檔案可以是文字文件、圖片、程式等。

在使用者進行的輸入、輸出中,是以檔案為基本單位。

檔案的屬性

  1. 名稱
  2. 識別符號
  3. 型別
  4. 位置
  5. 大小
  6. 保護
  7. 時間、日期和使用者標識

檔案的邏輯結構

  1. 無結構檔案(流式檔案)

無結構檔案是最簡單的檔案組織形式。無結構檔案將資料按順序組織成記錄並積累儲存,他是有序相關資訊項的集合,以位元組為單位。

  1. 有結構檔案(記錄式檔案)

    1. 順序檔案

    檔案中的記錄一個接一個地順序排列,記錄通常是定長的,可以順序儲存或以連結串列形式儲存。

    ​ 1. 串結構

    ​ 記錄之間的順序與關鍵字無關,通常按照存入時間的先後排列。

    ​ 2. 順序結構

    ​ 指檔案中的所有記錄按關鍵字順序排列。

    1. 索引檔案

    2. 索引順序檔案是順序和索引兩種組織形式的結合。索引順序檔案將順序檔案中的所有記錄分為若干組,為順序檔案建立一張索引表,在索引表中為每組中的第一個記錄建立一個索引項。

    3. 直接檔案或雜湊檔案

      給定記錄的鍵值或通過Hash函式轉換的鍵值直接決定記錄的實體地址。

目錄結構

檔案控制塊和索引

  1. 檔案控制塊。FCB用來存放控制檔案所需要的各種資訊的資料結構。FCB的有序集合稱為檔案目錄,一個FCB就是一個檔案目錄項。

    FCB主要包含以下資訊:

    1. 基本資訊
    2. 存取控制資訊
    3. 使用資訊
  2. 索引節點

目錄結構

  1. 單級目錄結構。整個檔案系統中只建立一張目錄表,每個檔案佔一個目錄項。
  2. 兩級目錄結構。將檔案目錄分為主檔案目錄和使用者檔案目錄。主檔案目錄項記錄使用者名稱及相應使用者檔案目錄所在的儲存位置。使用者檔案目錄項記錄該使用者檔案的FCB資訊。
  3. 多級目錄結構
  4. 無環圖目錄結構。引入改種目錄結構是為了實現檔案共享。

檔案共享

  1. 基於索引結點(硬連線):共享檔案指向同一個索引結點
  2. 基於符號鏈(軟連線):儲存共享檔案的路徑名

檔案保護

  1. 口令保護:通過口令訪問檔案
  2. 加密保護:對檔案進行加密處理
  3. 訪問控制:根據訪問者的身份進行限制

檔案系統層次結構

檔案系統型別:FAT32、NTFS、ext2、ext3、ext4

這裡寫圖片描述

目錄實現

  1. 線性列表
  2. 雜湊表

檔案實現

  1. 檔案分配方式
    1. 連續分配
    2. 連結分配
    3. 索引分配

這裡寫圖片描述

檔案儲存器的空間管理

  1. 空閒表法:把所有空閒塊組織成表
  2. 空閒連結串列法:把所有空閒塊組織成連結串列
  3. 位示圖:利用二進位制的每位記錄空閒塊
  4. 成組連結:空閒表和空閒連結串列的結合,適合大的檔案系統

磁碟排程演算法

  1. FCFS(先來先服務演算法)

這裡寫圖片描述

  1. 最短尋找時間優先演算法(SSTF)演算法

這裡寫圖片描述

  1. 掃描(SCAN)演算法(又稱電梯演算法)

這裡寫圖片描述

  1. 迴圈掃描(C-SCAN)演算法

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

I/O管理

I/O控制方式

  1. 程式直接控制方式

  2. 中斷驅動方式

    允許I/O裝置主動打斷CPU的允許並請求服務,從而“解放”CPU,使得其向I/O控制器傳送讀命令後可以繼續做其他有用的工作。

  3. DMA方式

    DMA方式的基本思想是在I/O裝置和記憶體之間開闢直接的資料交換通路,徹底“解放”CPU。DMA方式的特點:

    1. 基本單位是資料塊
    2. 所傳送的資料,是從裝置直接送入記憶體的,或者相反
    3. 僅在傳送一個或多個數據塊的開始和結束時,才需CPU干預,整塊資料的傳送是在DMA控制器的控制下完成的。

    這裡寫圖片描述

    1. 通道控制方式

    這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述