操作系統知識體系

第一章 操作系統引論

操作系統的目標:有效性(提高資源利用率和系統吞吐量)、方便性、可擴充性、開放性。
有效性和方便性是操作系統最重要兩個目標。
操作系統的作用:
(1) OS作爲用戶與計算機硬件系統之間的接口

(2) OS作爲計算機系統資源的管理者(處理器、存儲器、I/O設備、數據程序)

(3) OS實現了對計算機資源的抽象(在硬件上覆蓋I/O設備、文件和窗口管理軟件,即虛擬機)

OS的發展過程:無操作系統的計算機系統→單道批處理系統→多道批處理系統→分時系統→實時系統→微機操作系統多道批處理系統、分時系統、實時系統的特點

操作系統的基本特徵:
(1)     併發性(兩個或多個事件在同一時間間隔內發生;進入進程和線程),並行、併發?

(2)     共享性(系統中資源可供內存中多個併發執行的進程(線程)共同使用,方式爲互斥共享方式和同時訪問方式)

(3)     虛擬性(通過某種技術把一個物理實體變爲若干個邏輯上的對應物。方式:時分複用技術和空分複用技術)

(4)     異步性(進程以不可預知的速度向前推進,多道程序設計固有的特點)

OS的主要功能:
(1)     處理機管理(進程管理)功能;(主要包括創建和撤銷進程、協調諸進程的運行、實現進程間信息交換、把處理機分配給進程。進程同步機制功能是協調多個進程的運行,分爲競爭和協作兩種方式,實現進程同步常用的及時是信號量機制。調度包括作業調度和進程調度兩步。)

(2)     存儲器管理功能;(內存分配、內存保護、地址映射和內存擴充等功能。內存分配有動態和靜態兩方式。內容擴充的功能是請求調入和置換)

(3)     設備管理功能(緩衝管理、設備分配、設備處理和虛擬設備。緩衝管理包括單、雙、公用緩衝機制。設備處理程序(設備驅動程序)的基本任務是實現CPU和設備控制器之間的通信)

(4)     文件管理功能;(文件存儲空間管理、目錄管理、文件讀寫管理、共享保護功能)

(5)     操作系統與用戶之間的接口;(用戶接口和程序接口)

第二章 進程管理

進程與線程的基本概念
1)         進程是爲了使多個程序能併發執行,以提高資源利用率和系統吞吐量。

2)         線程是爲了減少程序在併發執行時所付出的空間開銷,是OS具有更好的併發性。

進程和線程的區別
1)         調度:線程作爲調度和分派的基本單位;進程作爲資源擁有的基本單位。

2)         併發性:進程之間可以併發執行,進程中的諸線程之間也可併發執行。

3)         擁有資源:進程擁有資源,線程無資源,但可以訪問所屬進程的資源

4)         系統開銷:創建可撤銷進程的代價比創建和撤銷線程的代價大的多。

前趨圖是描述進程之間執行的前後關係的。
進程的特徵:
1)         結構特徵;由程序段、相關的數據項和PCB三部分構成了進程實體。

2)         動態性;指從創建、調度執行到撤銷的過程是動態的。

3)         併發性;

4)         獨立性;因爲有PCB,可以獨立運行、獨立分配資源、獨立接受調度等功能

5)         異步性;各進程按各自獨立、不可預知的速度向前推進。

進程的三種基本狀態:
1)         就緒狀態;處CPU外,已佔有其他必要的資源的進程

2)         執行狀態;

3)         阻塞狀態;因事故是正在執行的進程停止,並讓出CPU。

狀態轉換的原因?舉例
引入掛起狀態的進程狀態?

同步機制

信號量機制是一種卓有成效的進程同步工具。包括整形信號量、記錄型信號量、AND型信號量、信號量集。

經典的進程同步問題:生產者消費者問題、讀者寫者問題、哲學家問題的解決的算法。

進程間通信:進程通信的類型,實現方式

第三章 處理機調度與死鎖

批量型作業通常需要經歷作業調度(高級調度或長程調度)和進程調度(低級調度和短程調度)兩個過程後方能獲得處理機。
處理機調度層次
1)         高級調度:把外存上處於後備隊列中的那些作業調入內存。

2)         低級調度:它決定就緒隊列中的哪個進程將獲得處理機,然後由分派程序執行把處理機分配給該進程的操作。對象是進程。功能是:保存處理機現場信息(PCB);按某種算法選取進程;把處理器分配給進程。方式分爲非搶佔方式和搶佔方式。

3)         中級調度:內存中不能有太多的進程,把進程從內存移到外存,當內存有足夠空間時,再將合適的進程換入內存,等待進程調度。目的是提高內存利用率和系統吞吐量。

常見的幾種調度算法:

 短作業FCFS+搶佔式(優先權)調度結合一起?

A-D,服務時間,優先權(靜態、動態)

死鎖的概念:多個進程在運行過程中因爭奪資源而造成的一種僵局。

活鎖:多個進程在運行工程中因相互謙讓而造成的一種僵局。

產生死鎖的原因
1)         競爭資源

2)         進程間推進順序非法

產生死鎖的必要條件
1)         互斥條件:臨界資源的互斥訪問

2)         請求和保持條件:佔着自己的資源不放,又去請求別人的

3)         不剝奪條件:進程沒有完成則不是放佔有的資源

4)         環路等待條件:發生死鎖指必然存在一個資源環形鏈。

處理死鎖的基本方法
1)         預防死鎖

2)         避免死鎖

3)         檢測和解除死鎖

銀行家算法

安全序列:是指系統能夠找到一個進程順序(P1、P2……Pn),來爲每個進程Pi分配所需資源,知道滿足每個進程的最大需求,是每個進程能夠順利完成,則P1、P2……Pn即爲安全狀態。

用資源分配圖對死鎖進行檢測,消去途中的所有邊,若節點爲孤立節點,則爲可完全簡化。

死鎖的解除
1)         剝奪資源:從其他進程剝奪足夠數量的資源給死鎖進程,以解除死鎖狀態

2)         撤銷進程:一種方法是夭折全部進程;另一種方法是按某個順序逐個撤銷進程,知道死鎖狀態被解除。

第四章 存儲器管理

連續分配方式:一個用戶程序分配一個連續的內存空間
1)         單一連續分配:一個程序裝入其他程序就不允許被裝入。只是用於單用戶單任務的OS中。

2)         固定分區分配:把內存分爲若干個固定大小的區域,每個分區裝入一個作業,允許併發執行。

3)         動態分區分配:根據實際需要,動態地爲之分配內存空間。

4)         動態重定位分區分配:通過重定位寄存器把相對地址轉化成物理地址,此轉化過程是在程序執行期間,隨着每條指令或數據的訪問自動進行的,故稱爲動態重定位。

分區分配算法
1)         首次適應算法(以地址遞增次序訪問)

2)         循環首次適應算法(從上一次分配處開始查找)

3)         最佳適應算法(小內存到大內存依次查找)

4)         最壞適應算法(每次分配從大內存開始割讓)

5)         快速適應算法(對空閒分區進行分類,並建立索引表,選最適合的控件分配給請求的進程)
內存碎片

對換:把暫時不運行的程序調到外存,需要時再調到內存。
地址變換機制:將用戶地址空間中的邏輯地址變換爲內存空間中的物理地址。

離散分配的存儲管理方式,硬件支持
 分頁式存儲管理:頁、塊、頁表,頁的大小,頁號、頁內地址、物理塊號,邏輯地址到物理地址轉換,實現的基本原理
    (1)L=23432FBC3, x86 CPU
        =>P,W
        二進制地址運算,移位運算右移,除法
    (2) L、內存頁表,求物理地址
        左移,乘法

 分段式存儲管理:段、段表,段的大小,段號、段內地址,邏輯地址到物理地址轉換,實現的基本原理:
 
    引入分段存儲管理方式的目的,則主要是爲了滿足用戶在編程和使用上多方面的要求。
    段表是用於實現從邏輯段到物理內存區的映射。
分頁和分段的主要區別
1)         兩者都採用離散分配方式,且都要通過地址應設機構來實現地址變換。

2)         頁是信息的物理單位,分頁是爲了有效的管理內存;段式邏輯單位,分段是爲了維護信息完整性和獨立性。

3)         頁的大小固定且由系統決定,段的長度不固定,決定於用戶編寫的程序。

4)         分頁的作業地址空間是一維的,而分段的作業地址空間是二維的。

段頁式存儲管理方式的原理:分段和分頁相結合,先將用戶程序分成若干個段,再把每個段分成若干個頁,併爲每個段賦予一個段名。其地質結構由段號、段內頁號和頁內地址組成。


虛擬存儲器
    引入虛擬存儲器的基本理論:
        局部性原理
虛擬存儲器的實現原理:
    請求分頁式存儲管理與請求分段式存儲管理,硬件支持

請求分頁式存儲管理中的頁面置換算法:
    最佳置換算法、先進先出置換算法、最近最久未使用置換算法、Clock置換算法。


例:設有8頁的邏輯地址空間,每頁有1024字/字節,它們限制到32塊的物理存儲區中,試問:
(1)邏輯地址應占多少位?
(2)物理地址就佔多少位?

第五章 設備管理

I/O系統是用於實現數據輸入、輸出及數據存儲的系統。
I/O設備類型:
1)         特性:存儲設備;輸入/輸出設備。

2)         傳輸速率:低速設備;中速設備;高速設備。

3)         信息交換的單位分類:塊設備;字符設備。

4)         共享屬性:獨佔設備;共享設備;虛擬設備。

設備與控制器之間的接口:
1)         數據信號線:設備和設備控制器之間傳送數據信號

2)         控制信號線:設備控制器向I/O設備發送控制信號的通路

3)         狀態信號線:傳送指示設備當前狀態的信號。

設備控制器
主要職責是控制一個或多個I/O設備,以實現I/O設備和計算機之間的數據交換。是CPU和I/O設備的接口,他接受CPU指令去控制I/O設備工作,使減輕處理機的工作量。

設備控制器包括控制字符設備控制器和控制塊設備的控制器。

設備控制器的基本功能
1)         接受和識別命令

2)         數據交換

3)         標識和報告設備的狀態

4)         地址識別(CPU通過地質控制設備)

5)         數據緩衝

6)         差錯控制

I/O通道是一種特殊的處理機,它具有執行I/O指令的能力,可以控制I/O操作。類型分爲:字節多路通道、數組選擇通道、數組多路通道。
解決“瓶頸”問題的最有效的方法是增加設備到主機間的通路而不增加通道。


I/O控制方式
1)         程序I/O方式

2)         中斷驅動I/O控制方式

3)         直接存儲器訪問(DMA)I/O控制方式

4)         I/O通道控制方式

SPOOLing技術
通過SPOOLing技術便可將一臺物理I/O設備虛擬爲多臺邏輯I/O設備,同樣允許多個用戶共享一臺物理I/O設備。

Spooling系統的組成
輸入井和輸入井;輸入緩衝區和輸出緩衝區;輸入進程和輸出進程。

SPOOLing系統的特點
1)         提高了I/O的速度

2)         將獨佔設備改造爲共享設備

3)         實現了虛擬設備功能
SPOOLing系統的應用:共享打印機實現的基本原理

*磁盤性能與調度
性能指標
磁盤調度的主要目標是使磁盤的平均尋道時間最少。

常用的磁盤調度算法
1)         先來先服務(適合進程較少的場合)

2)         最短尋道時間優先(要訪問的磁道與當前磁頭所在磁道距離最近。會導致進程“飢餓”現象)

3)         掃描算法(考慮訪問的磁道與當前磁頭所在磁道距離最近和磁頭當前移動的方向)

4)         循環掃描算法(規定磁頭單向移動)

5)         NSPetpSCAN和FSCAN調度算法

提高磁盤性能、可靠性技術、一致性控制技術

     
第六章 文件管理

1)         有結構文件(由一文件邏輯結構的類型
個以上的記錄構成的文件,又稱記錄式文件)

2)         無結構文件(由字符流構成的文件,又稱流式文件)

記錄式文件的長度分爲定長記錄和變長記錄。
記錄文件又分爲順序文件、索引文件、索引順序文件。
大量的數據結構而後數據庫是採用有結構的文件形式
而大量的源代碼、可執行文件、庫函數等採用無結構文件。

順序文件的優缺點
1)         適合進行批量存取

2)         存取效率是所有邏輯文件中最高的

3)         也只有順序文件才能存儲在磁帶上,並能有效的工作

4)         不適合查找或修改單個記錄

5)         增加或刪除一個記錄時比較困難

索引文件的缺點:除了有主文件外,還須配置一張索引表,而且每個記錄都要有一個索引表,因此提高了存儲費用。
對已直接文件,檢索時可以根據記錄鍵值直接獲得指定記錄的物理地址。
哈希文件是鍵值通過Hash函數指向目錄表,該表目的內容指向記錄所在的物理塊。

外存分配方式:連續分配、鏈接分配和索引分配三種。
連續分配的優缺點
1)         順序訪問容易
2)         順序訪問速度快

缺點:
1)         要求有連續的存儲空間
2)         必須實現知道文件的長度

鏈接分配中的鏈接方式分爲隱式鏈接和顯式鏈接。
爲新建文件分配存儲空間的方式分爲連續和離散的分配方式。前者具有較高的文件訪問速度,但可能產生較多的外存零頭。後者能有效的利用外存空間,但訪問速度較慢。無論哪種方式,存儲空間的基本分配單位都是磁盤塊而非字節。

文件存儲空間(外存空間)管理的方法
1)         空閒表法和空閒鏈表
2)         位示圖法
3)         成組鏈接法
基本工作原理

空閒表法和空閒鏈表法都不適用於大型文件系統,可使用成組鏈接法。

文件共享:有向無循環圖、符號鏈

文件保護:保護域、訪問矩陣

總結於 計算機操作系統(第四版)湯小丹 梁紅兵版前六章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章