1. 程式人生 > >操作系統學習筆記

操作系統學習筆記

一次 筆記 簡單 size 人機交互 刪除 管理方式 pcb word

一、操作系統引論

1、操作系統作用

1)為用戶與計算機硬件系統之間提供接口。2)管理計算機系統資源;3)對計算機資源進行抽象。

2、操作系統發展:

1)無操作系統的計算機系統:用戶直接使用操作系統。

2)單道批處理系統:將作業輸入到磁帶上。每次調用一道作業進入內存;

3)多道批處理系統:將作業輸入到磁帶上,每次調用幾道作業同一時候進入內存;特點:提高了CPU、內存、I/O設備的利用率,添加系統的吞吐量。

4)分時系統:按時間片,調入內存中的作業輪流運行;特點:人機交互,多用戶使用

5)實時系統

3、微機的發展

1)單用戶單任務操作系統:僅僅同意一個用戶上機。且僅僅同意用戶程序作為一個任務執行,MS_DOS

2)單用戶多任務操作系統:MS_WINDOWS

3)多用戶多任務操作系統:能夠同一時候同意多個用戶使用,Unix。Linux

4、操作系統特性

1)並發性:進程與線程是並發的基礎。進程:資源分配的基本單位。線程:獨立執行和調度的基本單位。

2)共享性:系統中的資源能夠供多個應用程序共同使用。

3)虛擬技術:包含時分利用(虛擬處理器、虛擬設備)和空分復用(虛擬磁盤、虛擬內存)。

4)異步性:進程僅僅能在獲得資源後才幹運行,在獲取到指定資源之前處於等待狀態。

5、操作系統主要功能:CPU管理、內存管理、設備管理、文件管理



二、進程管理

1、進程三種狀態

1)就緒狀態:等待分配CPU開始運行;

2)運行狀態

3)堵塞狀態:因為I/O或資源請求,臨時放棄處理機;

2、進程控制模塊(PCB)

1)PCB是進程存在的唯一標誌;

2)PCB模塊包括的信息:進程標識符、處理機狀態、進程調度信息、進程控制信息;

3、原子操作:要麽不做、要麽做完。系統對進程的控制要採用原子操作。

4、進程的創建

1)申請空白的PCB。

2)為新進程分配資源;

3)初始化PCB;

4)將新進程插入到就緒隊列。

5、進程的刪除

1)依據被終止進程的標誌符找到其PCB,從中讀取進程狀態;

2)若該進程正在運行,應馬上終止該進程的運行。

3)若該進程還有子進程,還應終止其全部子進程;

4)歸還進程申請的全部資源。要麽歸還給父進程、要麽歸還給系統。

5)移除PCB信息;

6、進程同步主要任務:對多個相關進程在運行次序上進行協調,以使並發運行的多個進程之間能有效地共享資源和相互合作。從而使程序的運行具有可再現性。

7、進程同步機制

1)信號量:用S記錄系統中可供訪問的某一資源。S是一個整型變量,但這一整型量僅僅能由兩個原子操作訪問:wait(S)和signal(S)。

a、整型信號量:但S<=0時,進程會不停測試,直至S>0,占用CPU資源。

b、記錄型信號量:S<=0時,進程自我堵塞,放棄處理機,並將該進程增加至等待鏈表中;

c、AND型信號量:當進程須要多個臨界區資源時,為防死鎖,要麽一個都不分配。要麽所有分配。

2)管程(資源管理程序):全部進程訪問臨界資源都須要向管程申請,管程來決定該進程是進入臨界區還是等待。另外。還須要多個條件變量記錄正在調用管程的進程運行情況,如堵塞原因等。

8、進程通信

1)共享存儲器

2)消息傳統系統

3)管道通信系統

9、線程特性

1)線程能夠理解為輕型進程。其本身擁有較少的資源(TCB、寄存器等),但能夠共享進程資源;是獨立執行和調度的最小單位。

2)引入線程後。進程不再是一個可運行的實體。

3)線程所占資源少、且一個進程中的多個線程具有同樣的地址空間,所以線程切換代價比進程切換代價小。

4)同一個進程中的線程間切換不會引起進程切換。但不同進程間線程的切換會引起進程切換。

10、線程間同步和通信

1)相互排斥鎖;2)條件變量;3)信號量

11 、調度算法

1)先來先服務調度算法:有利於長作業,不利於短作業

2)短作業優先調度算法:不利用長作業

3)優先權調度算法:靜態優先權、動態優先權(優先權隨時間改變)

4)時間片輪轉調度算法

5)多級反饋隊列調度算法:設置多個就緒隊列,為各個隊列設置不同的優先級。不同優先級隊列相應的時間片不同,優先級越高,時間片越短;新進行內存的進程排在優先級最高的隊列,當時間片結束還未運行完成則轉入第二隊列的隊尾;僅僅有當前一優先級隊列為空時才幹運行下一優先級隊列。

12、產生死鎖的必要條件

1)相互排斥使用:對於某一資源。一段時間內僅僅同意一個進程使用。

2)請求與保持:進程已經保持了至少一個資源,但又提出了新的資源請求;

3)不剝奪條件:在資源使用結束之間。其它進程不能剝奪該進程的使用權。

4)環路等待條件:發生死鎖時。必定有還有一進程占用著當前進程所須要的資源。而還有一進程又在等待該進程占用的資源;

13、預防死鎖:

1)摒棄“請求與保持”條件:進程必須一次性申請其所需的全部資源;

2)摒棄“不剝奪條件”:當一進程申請資源失敗時應該馬上釋放其所占用的資源。

3)摒棄“環路等待”條件:全部進程對資源的請求必須嚴格依照資源序列遞增的次序提出;

14、死鎖的檢測與解除

1)解除方法:剝奪資源、撤銷進程

三、存儲器管理

1、多級存儲器

1)存儲層次能夠分為三層:寄存器、主存(內存)、輔存(磁盤);

2)不同層次之間還有對應的快速緩存以減小不同層次間讀寫速度不匹配程度;簡單來說,主存也即寄存器和輔存之間的快速緩存;

3)不同層次的存儲器讀寫效率不一樣,讀寫速度越快。成本越高。

4)寄存器、主存、快速緩存等屬於操作系統管理的範疇,斷電後數據會丟失;而磁盤屬於設備管理的範疇。斷電後數據不會丟失。

2、程序裝入

1)絕對裝入方式:程序的邏輯地址和實際內存地址全然一致,不須要重定位,這樣的方式僅僅適合單道批處理系統;

2)可重定位裝入方式:將程序裝入內存後,馬上又一次計算其絕對地址。

3)動態執行時裝入方式:將程序裝入內存後,不馬上計算其絕對地址,而是等真正須要該模塊時才又一次計算其絕對地址。

3、程序鏈接方式

1)靜態鏈接:直接把目標模塊及所須要的庫鏈接成為一個總體。鏈接完畢後不再拆開。

2)裝入時動態鏈接:在程序裝入內存時。邊裝入邊鏈接。

3)執行時動態鏈接:當一個模塊須要時才去鏈接。

4、內存分配方式

1)連續分配:程序裝入到一塊連續的內存區域其中

a、單一連續分配:僅僅適用於單用戶單任務操作系統

b、固定分區分配:把內存區域劃分為多個分區,每一個分區裝入一個程序;固定分區大小的劃分有兩種方式:相等、不相等,相等時可能引起內存浪費或部分大型程序無法運行

c、動態分區分配:建立空暇分區鏈或空暇分區表。當須要內存時,去鏈中尋找大小匹配的內存區域。

分區匹配算法:首次適應算法(第一個塊大小能滿足的區域)、循環首次適應算法(從上次一次查找的地方開始向後查找,相較於前一種方法,能夠使空暇分區更均勻)、最佳適應算法(能滿足要求。且是當前最小的空暇分區。導致非常多小的碎片無法再利用)、高速適應算法(建立多個鏈表。大小相等的空暇分區放置到同一鏈表其中,須要使用時,直接取出對應鏈表的第一塊分區給程序使用,不進行分割;但會導致分區回收復雜)。

d、夥伴系統:不管已分配分區還是未分配分區,其大小均是2的k次冪。這樣的方法分配和回收時都可能會引起多次分割。

e、哈希算法:以分區大小作為keyword,使用時取出相應分區的地址;

f、可重定位分區分配:當分區大小總和大於程序所須要內存時,能夠通過“緊湊”的方法將內存進行整理。將分散的區域拼接在一起,其它程序須要重定位。

g、對換:將內存中臨時不能執行的進程或臨時不用的程序和數據調出到外存上,以騰出足夠的內存空間。

對換的單位能夠是:進程、頁、段。

2)離散分配方式

a、分頁式存儲:將進程的邏輯地址空間劃分成若幹大小相等的頁面,將內存空間也劃分成大小相等的存儲塊。將進程的頁裝入到內存空間的存儲塊其中,並建立頁表即頁至物理塊的映射。

b、分段式存儲:將程序按功能劃分為若幹大小不同的段,段的存儲位置能夠不連續;

c、分頁和分段的差別:頁是信息的物理單位,頁本身沒有實際含義。主要是為了提高內存的使用效率,而段是信息的邏輯單位。段有其完整的的信息,主要是為了滿足用戶須要;頁的大小固定且相等,其大小由系統決定。而段的大小並不固定,其大小由用戶所編寫的程序決定;頁的地址空間是一維的。而段的地址空間是二維的;段更適合信息共享。

d、段頁式存儲:將每一個段分成若幹頁,地址結構:段號、段內頁號、頁內地址

5、虛擬存儲器

當作業非常大或都有大量作業須要執行時,引起內存不足。解決方式:擴展邏輯內存。

1)基礎:

局部性原理:即在一較短時間內,程序的運行僅僅局限於某個部分;對應地,它所訪問的存儲空間也局限於某個區域。

2)虛擬存儲:

程序執行之前,沒有必要將全部模塊裝入內存,僅將須要的頁或段裝入內存,其余部分暫留在盤上;當內存不足時,將臨時不須要的段或頁對換到盤上;相當於擴展內存。

3)虛擬存儲器特征:多次性。一個作業被分成多次調入內存執行。對換性,同意作業在執行時被換出。虛擬性,用戶看到的內存容量遠大於實際容量。

4)虛擬存儲器實現方法:

(I)分頁存儲管理方式

a、三要素:頁表機制、缺頁中斷機構、地址變換機構

b、頁面置換算法:最佳置換算法(所被淘汰的頁面將是以後永不使用的,也許是在最長時間內不再被訪問的頁面。該方法無法實現。僅僅能用於評價其它方法)、先進先出頁面置換算法(總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面予以淘汰)、近期最久未使用置換算法(選擇近期最久未使用的頁面進行置換,須要硬件支持)、最少使用置換算法(選擇近期時期他用最少的頁面作為淘汰頁,須要硬件支持)、頁面緩沖算法(將要被淘汰的頁臨時不移出內存,而是放移動到一個鏈表後部。當達到一定數量後再移出)

(II)分段存儲管理方式

a、三要素:段表機制、缺段中斷機構、地址變換機構


四、設備管理


未完待續...

操作系統學習筆記