作業系統錯誤點

蠲忿恚葉言發表於2024-10-08

一:作業系統概述

1. 使用者介面是指

  1. 使用者介面

    命令介面

    程式介面

  2. 操作環境

2. 從使用者觀點看

作業系統就是使用者與計算機硬體之間的介面

3. 從資源管理觀點看

作業系統是計算機資源的管理者

4. 圖形使用者介面採用圖形化操作介面

用於檢視和操作應用程式或文件的是對話方塊

5. 使用者程式請求作業系統服務

透過訪管指令實現

6. 作業系統供給應用程式的介面是

系統呼叫

7. 作業系統主要功能

程序和處理機管理。儲存器管理,裝置管理,檔案管理及介面管理

8. 作業系統提供的使用者介面

  1. 離線使用者介面

    將作業說明書和作業一起交給系統,讓其按說明要求執行作業

  2. 聯機命令介面

    透過命令列終端鍵入dir/is檢視當前目錄

  3. 系統呼叫介面

    使用open()開啟一個檔案

9. 分時系統的響應時間主要根據

使用者所能接受的等待時間確定的

10. 多道程式的特徵

間斷性,共享性,制約性

11. 訪管指令

將使用者態轉變為核心態 ,因此在使用者態執行

12. 系統呼叫

本質上就是一個存放核心封裝好的函式指標;廣義指令就是系統呼叫

系統呼叫發生在使用者態,執行在核心態

系統呼叫專門供應應用程式使用的介面

13. 使用者使用計算機

透過命令方式和系統呼叫方式

14. 按命令控制方式分為

聯機使用者介面,離線使用者介面

15. 系統中的快取

對用使用者是透明的,不可見;由系統管理

16. 發生和執行

外部中斷:可以發生在使用者態,但執行在核心態

程序切換:一定發生在核心態,執行在核心態

17. 庫函式

許多庫函式會使用系統呼叫實現功能,但有的完全不使用

庫函式能執行在使用者空間

18. 只能在核心態執行的指令

涉及計算機根本執行的:遮蔽所有中斷,設定時鐘日期,停機

涉及系統級資源的修改

19. 分層式架構

結構清晰,便於除錯,有利於功能增加修改或替換

20. 大核心

高新能,核心程式碼大,結構混亂,難以維護

21. 微核心

核心功能少,結構清晰,方便管理,更加穩定,效能低

幾乎不做任何工作,僅提供:

  1. 程序間通訊機制
  2. 中斷和陷入處理
  3. 有限的低階程序管理和排程
  4. 低階I/O

22. 虛擬機器

可以由軟體或硬體實現

軟體能實現的功能硬體也能實現

22. Spooling技術

欺騙程序擁有資源,利用緩衝區使程序排隊延遲訪問獨佔資源,實現獨佔資源的共享

23. 覆蓋與交換

在多道程式環境下用於擴充套件記憶體的兩種方式

24. 子程式呼叫

只需儲存程式斷點

25. 中斷處理中保護的內容

由硬體自動將處理及狀態字PSW和程式計數器PC中下一條指令的地址儲存在中斷保留棧中

儲存被中斷程序的CPU現場資訊,包括所有CPU暫存器的內容都壓入中斷棧

暫存器資訊由作業系統儲存

26. 多道程式發揮並行工作能力

是CPU與外設之間

二:程序管理

1. 程式與程序

程序是動態的;程式是靜態的

一個程式可以對應多個程序,一個程序在一個時間只能對應一個程式,當在程序的生命週期中可以執行無數個程式

程序是程式的一次執行

2,建立到就緒

I/O操作頻率值增加;CPU利用率可能上升或下降;程序的平均響應時間增加

3,臨界資源釋放

臨界資源只能提供一個程序使用

會引起一個等待的程序進入就緒

4. 程序自身決定

從執行態到阻塞態

5. 程序排程

動態地把處理機分配給處於就緒佇列中的某一個程序,以使之執行。這就是程序排程

6.多執行緒程序

某個執行緒被阻塞整個程序都被阻塞

7. 鍵盤響應

由系統中斷完成不需要多執行緒

8. 訊號量=0時

表示臨界資源用完且無阻塞程序

9. 互斥使用

訊號量初值設定為1

10. 正常執行

每個變數的值都要是能唯一確定的

11. 互斥演算法的三個正確性條件

  1. 互斥性原則:任何時刻只能由一個程序處於臨界區
  2. 進展性原則:如果該程序不在它的臨界區執行,那麼不應該阻止其他程序進入該臨界區執行
  3. 有限等待性原則:某個程序進入一個臨界區應該在有限時間內完成。

12. 執行緒

包含CPU現場可獨立執行程式

同一程序執行緒可以直接交換資料

13.互斥操作

兩個不同程序間的全域性變數不能互通

14:管道通訊

管道可以雙向資料傳輸,但同一時刻只能一邊傳資料

管道容量通常為記憶體的上一頁,與不受磁碟容量限制

管道滿時,寫管道會阻塞;管道空時,都管道會阻塞

三:處理機排程和死鎖

1. 三級排程

  1. 高階排程:作業排程,作業調入記憶體
  2. 中級排程:記憶體排程,選擇一個程序調出外存,再從外存調入到主存
  3. 低階排程:程序排程,就緒程序調入處理機

2. CPU排程演算法

n個程序有n!個排程順序

面向系統:吞吐量高,處理機利用率高,各類資源的平衡利用

面向使用者:週轉時間短,響應時間快,截至時間保證,優先權準則

多重佇列演算法:將程序分佇列,每個佇列使用的排程演算法都不同

多級佇列:系統開銷大

高響應比和短程序優先適合批處理

時間片輪轉和多級反饋佇列適合分時系統

短作業優先提高系統吞吐量

高響應比演算法若同時到達相當於短作業優先演算法

3. 死鎖

  1. 死鎖預防

    破壞四個必要條件之一
    即互斥條件,請求和保持條件,不可剝奪條件,迴圈等待條件

  2. 死鎖避免

    銀行家演算法

  3. 死鎖檢測和解除

四,記憶體管理

1. 分頁式儲存管理地址變換工作由硬體完成

2. 頁式儲存選擇頁面大小不考慮磁碟訪問時間

3. 頁式儲存執行過程中可能改變程式的位置

4. 頁表的起始地址存放在頁表起始址暫存器

5. 每個程序船艦一張頁表

同一程序的執行緒共用一張頁表

6. 多級頁表優點

減少頁表所佔的連續記憶體空間

7. 段頁式記憶體管理

地址結構:段號+段內頁號+頁內地址(位移量)

img

8. 段號超出段表長度引發

越界中斷

9. 程式分段

在使用者程式設計時決定

10. 兩個程序共用同一個儲存段

讓程序各自的段表擁有相同的段起始地址和段長度

11. 引入段表

方便程式設計;資訊共享;資訊保護;動態連結;動態增長

12. 缺頁中斷

頁號合法但對應頁沒調入記憶體產生缺頁、

越界中斷,頁號不存在不合法

若頁表大包含頁表項多,程序找不到對應頁號機率就小,換的次數就少,缺頁中斷次數就少

  1. 找到空閒或置換頁框分配給缺的頁
  2. 從磁碟調入缺頁
  3. 修改頁表標誌位,物理頁框號等

13. 請求分頁式儲存與基本分頁式儲存

均有:

  1. 頁號
  2. 物理塊號

請求分頁式多四個欄位:

  1. 狀態位:是否調入記憶體
  2. 訪問欄位:記錄最近被訪問次數
  3. 修改位:記錄是否修改過
  4. 外存地址:頁面在外存存放位置

請求式主要特點:擴充記憶體

14. 引用串

引用串就是該程式一段時間內需要呼叫的頁號序列,例如p = 1 2 3 3 2 1 4 5 6 2 2。

15. 缺頁次數

缺頁次數最理想的情況是 有n個不同的頁號,每個頁號肯定且僅發生缺頁一次,那麼下限為n;

(前提 駐留集<n)最糟糕的情況是每次訪問某個頁號時都發生缺頁(重複訪問時也發生缺頁),那麼此時跟引用串有關係,引用串長度p就為缺頁次數上限 p。

16. 交換區

交換區,也叫Swap分割槽,是在系統的實體記憶體不夠用的時候,把硬碟記憶體中的一部分空間釋放出來,以供當前執行的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到Swap分割槽中,等到那些程式要執行時,再從Swap分割槽中恢復儲存的資料到記憶體中。

17. 對各程序進行固定分配頁面數目不變,不可能全域性置換

準備或執行時,

  1. 固定分配:
    給程序的 每個物理塊
    分配數量固定,
    執行時數量固定,按照分配數量。

  2. 可變分配:
    分配數量固定,
    執行時數量不固定。

缺頁時,

  1. 區域性置換:
    缺頁程序獨立,
    置換分配給自身的物理塊。

  2. 全域性置換:
    從作業系統中摳一塊給缺頁程序;

    或者從其他程序摳一塊下來,經過外存,又調回給缺頁程序。

為什麼沒有固定分配–全域性置換?
因為,固定分配要求自身缺頁時,替換自身;不能要求其他程序的置換,與全域性置換相悖。

img

相關文章