1. 程式人生 > >計算機基礎_作業系統

計算機基礎_作業系統

## 作業系統定義

# 作業系統位於計算機的硬體和應用軟體之間,本質上也是計算機系統中的一個系統軟體;作業系統用於管理和控制計算機系統的硬體和軟體資源,能合理且高效的控制計算機的工作,並給使用者提供一個良好的工作環境和介面。

# 作業系統通過資源管理,提高計算機系統的效率

# 作業系統改善人機介面,向用戶提供友好的工作環境

# 作業系統具有:併發性,共享性,虛擬性,不確定性

## 作業系統功能

# 處理機管理:又稱為程序管理,利用多道程序等技術對CPU的時間進行分配,對CPU進行有效的管理

# 檔案管理:包括檔案儲存空間管理,目錄管理,檔案的讀取管理,存取控制,軟體管理

# 儲存管理:

對儲存器進行分配,保護,擴充

# 裝置管理:方便裝置的使用,提高CPU和I/O裝置的利用率

# 作業管理:包括任務管理,介面管理,人機互動

## 作業系統型別

# 批處理作業系統

單道批處理作業系統:一次只有一個作業裝入記憶體執行

多道批處理作業系統:允許多個作業裝入記憶體執行,在任意的時刻,作業都處於開始點和終止點之間

# 分時作業系統

將CPU的工作時間劃分位多個很短的時間片,輪流為各個終端使用者服務,如UNIX

# 實時控制系統

實時控制系統:生產過程的自動控制,實驗資料的自動採集,武器的控制

實時資訊處理系統:用於實時的 資訊處理,如飛機訂票系統

# 網路作業系統

使計算機方便的共享網路資源,電子郵件,檔案傳輸,共享硬碟,印表機

# 分散式作業系統

網路作業系統的更高階形式,具有網路系統的全部功能,又具有 透明性,可靠性,高效能,網路作業系統的使用者必須知道網址,而分散式作業系統的使用者則不必知道計算機的確切網址

# 微機作業系統

微型計算機上的作業系統,例如DOS,Window,OS/2,SCO,UNIX,Linux

# 嵌入式作業系統

執行在嵌入式智慧晶片環境中

## 處理機管理(程序管理)

# 程序的定義

程序是程式一次執行,是資源分配和排程的基本單位。程序通常由 程式,資料,程序控制塊(PCB)組成。

程式部分:描述程序需要完成的功能

資料部分:包括程式執行時所需的資料及工作區

程序控制塊:是程序的唯一標識,PCB中記錄了系統所需的,是程序動態特性的集中反應,PCB中含有程序識別符號,狀態,位置資訊,控制資訊,佇列指標,優先順序,現場保護區等資訊。

# 程序狀態

執行狀態:程序獲得處理機,正在執行

就緒狀態:程序所需要的資源都已經到位,只需要等待處理機排程

阻塞狀態:程序等待某些事件的發生才能繼續執行,所以不再佔用處理機而轉為阻塞狀態

# 程序控制:

程序的控制:就是對系統中所有程序從建立到消亡的全過程實施有效的控制。

實現:程序控制是由作業系統核心中的原語進行實現的,其功能為:建立一個新的程序,撤銷一個已經執行完的程序,改變程序的狀態,實現程序間的通訊

核心:包含了支撐功能(中斷處理、時鐘管理和原語操作)以及資源管理功能(程序、儲存器和裝置的管理)

原語:由若干條指令組成,用於完成一定功能的一個過程。原語的特點是在執行的過程中不可分割,即原子操作要麼都做,要麼都不做

# 程序同步與互斥

同步:指為完成某種任務而建立的兩個和多個程序,這些程序在合作的過程中需要協調工作次序進行有序的訪問而出現等待所產生的制約關係

互斥:指兩個或多個程序訪問臨界資源時只能一個程序訪問,其他程序等待的一種相互制約的關係

臨界區管理原則:臨界區指的是程序中對臨界資源進行操作的程式。互斥臨界區的原則是:有空則進,無空則等;有限等待,讓權等待

# 程序通訊

 因為程序之間存在著同步和互斥的關係,所以程序之間必然存在著資訊的交換,訊號量機制其實是一種低階的通訊,因為訊號量每次只能告訴另一個程序一個資訊

# 訊號量與P,V操作

# 訊號量機制是一種很有成效的程序同步工具,分為整形訊號量,記錄型訊號量,訊號量集機制,其中最為常用的為記錄型訊號量,記錄型訊號量只是在整形訊號量的基礎上增加了阻塞和喚醒操作,符合“讓權等待”原則

# 訊號量S的物理意義:當S>=0時表示某資源的可用數;當S<0時,其絕對值表示阻塞佇列中等待該資源的程序數

訊號量S是一個表示資源數的東西,只有在wait(S)和signal(S)這兩個原子操作時才能修改,保護了訊號量在其它地方不被隨意修改

P操作:對訊號量S = S-1,判斷訊號量的狀態,若S>=0則執行P操作的程序繼續執行,若S<0則讓該程序阻塞

V操作:對訊號量S = S+1,判斷訊號量狀態,若S>0則執行V操作的程式繼續執行,若S<=0,則從阻塞狀態喚醒一個程序,並將其插入就緒佇列

# 高階通訊原語

P V操作用來協調程序間的關係,但程式設計較為困難,效率低,通訊對使用者不透明,生產者每次只能向緩衝區傳送一個訊息,消費者每次也只能從緩衝區中取得一個訊息。所以引入高階原語

1)共享儲存系統:相互通訊的程序共享某些資料結構或者儲存區,以實現程序之間的通訊

2)訊息傳遞系統:程序間交換資料以訊息為單位,將通訊的資料封裝在訊息中。利用系統提供的通訊命令(原語)在程序間進行訊息的傳遞

3)管道通訊:用於連線兩個程序之間的一個開啟的共享檔案。向管道提供輸入的傳送程序以位元組流的形式將大量的資料送入管道

 

# 前趨圖

# 管程

 引入管程的原因:訊號量機制存在著缺點,每個程序訪問臨界資源時,程序都得自備同步操作,大量的P V操作分佈在各個程序中,不容易進行管理,而且易發生死鎖

當引入管程時,管程內部封裝了同步操作,對程序隱藏了同步的細節,將分散在各個程序中的臨界區集中起來管理,有了了管程後,程序對共享資源的訪問,就不必自帶P V 操作

# 管程特點

共享性:管程可被系統範圍內的程序互斥訪問,屬於共享資源 安全性:管程的區域性變數只能由管程的過程訪問,不允許程序或其它管程直接訪問,管程也不能訪問非區域性於它的變數 互斥性:多個程序對管程的訪問是互斥的。任一時刻,管程中只能有一個活躍程序 封裝性:管程內的資料結構是私有的,只能在管程內使用,管程內的過程也只能使用管程內的資料結構。程序通過呼叫管程的過程使用臨界資源

# 程序排程

程序排程需要完成的任務:當有更高優先順序的程序到來時,如何分配CPU的使用?


# 程序排程方式

1):可剝奪式:有更高優先順序的程序來,強行將正在執行的程序所佔用的CPU分配給更高階的程序

2):不可剝奪式:有更高優先順序的程序進來時,必須等待正在執行的程序執行完畢並自動釋放CPU

# 程序排程演算法

1)先來先服務:

按照作業提交或程序變為就緒狀態的先後次序分配CPU

特點:比較有利於長作業,而不利於短作業。因為長作業會長時間佔據處理機;有利於CPU繁忙的作業,而不利於I/O繁忙的作業。

2)時間片輪轉:

按照先來先服務的原則,系統將就緒的程序按照到達的時間先後排成一個佇列,程序排程時總是選擇就緒佇列中的第一個執行,但每個程序只能執行一定的時間片,當時間片使用完後,即使該程序未完成執行,也得將該程序釋放,讓該程序拍到就緒佇列的末尾

# 固定時間片:該每個程序分配的時間片相同,讓每個程序都具有相同的執行時間,是一種簡單而又公平的方法

# 可變時間片演算法:根據程序的不同,所需要執行的時間也不同的特點,可以修改每次每個程序執行的時間片大小,可以提高效率

3)優先順序排程:

讓每個程序都具有一個優先數,數值高的表示優先順序高,優先順序排程演算法是每次從準備就緒的佇列中選擇優先順序高的作業來分配CPU,讓其執行

# 靜態優先順序:程序的優先順序在建立時就已經確定好了,直到程序的終止都不會改變,

# 動態優先順序:程序的優先順序在建立時給定一個優先順序,在程序的執行過程中可以對其優先順序進行修改

4)多級反饋排程:

多級反饋排程綜合了 時間片輪轉法 和 優先順序演算法 ,通過動態調整程序的優先順序和時間片的大小,多級反饋排程可以兼顧系統的很多方面:照顧短程序以提高系統吞吐量,縮短了平均週轉時間;照顧I/O程序以獲得較好的I/O裝置利用率;不必不急程序的執行時間,動態調節優先順序

# 死鎖

死鎖是指兩個或兩個以上的程序互相都要求對方已經佔有的資源導致無法繼續執行下去的現象

在計算機中存在著許多的互斥的資源,例如印表機,如果有兩個程序同時的去使用印表機,必然會出現問題

# 產生死鎖的四個必要的條件

互斥條件:一個資源,一次只能允許一個程序的使用

請求保持條件:以獲得請求資源後,又請求資源被堵塞

不可剝奪條件:程序已經獲得的資源,在未使用完之前不能被剝奪

環路條件:發生死鎖時,在程序的資源圖中必定構成環路

# 死鎖的處理策略

死鎖預防:破壞資源的“不可剝奪條件”,預先分配系統所需的資源,保證不等待資源

死鎖避免:銀行家演算法,如果發現分配資源後系統將進入不安全的狀態,則不給予分配資源;若分配資源後系統處於安全的狀態,則給予分配資源。提高了資源的利用率,但是為了檢測系統是否安全增加了系統的開銷

死鎖檢測:系統允許死鎖的產生,但是系統會定時的執行死鎖檢測程式,判斷系統是否產生死鎖

死鎖解除:資源剝奪法,從一些程序中剝奪足夠數量的資源分配給死鎖程序;撤銷程序法,根據某種策略逐個的撤銷死鎖的程序,直到死鎖解除為止

# 執行緒

執行緒是程序中的一個實體,是被系統獨立排程和分派的基本單位,執行緒自己不擁有系統資源,只擁有一點兒在執行中必不可少的資源,但它可與同屬一個程序的其它執行緒共享程序所擁有的全部資源。一個執行緒可以建立和撤消另一個執行緒,同一程序中的多個執行緒之間可以併發執行。由於執行緒之間的相互制約,致使執行緒在執行中呈現出間斷性。執行緒也有就緒,阻塞,執行三種狀態。

 

## 儲存管理

儲存管理的物件是主儲存器,簡稱主存或記憶體,儲存器是計算機中關鍵的資源,用於存放各種各樣的資訊

儲存管理要完成的功能是如何對儲存器實施有效的管理,影響到了儲存器的利用率也影響到了系統的效能

儲存管理的功能:主存空間分配和回收,提高主存的利用率,擴充主存,對主存資訊實現有效的保護

# 儲存器的結構

常用的儲存器的結構包括“暫存器-主存-外存”和“暫存器-快取-主存-外存”

# 地址重定位

 地址重定位:將邏輯地址轉換為主存實體地址的過程

# 靜態地址重定位:在使用者程式被裝入主存時已經實現了邏輯地址到實體地址的變換,在程式的執行期間不在變換

1)優:無須硬體地址變換機構的支援

2)缺:必須給作業分配一個連續的儲存區域,在作業執行期間不能擴大儲存空間;不能再主存中移動;不能共享同一程式的副本和資料

# 動態地址重定位:在程式的執行期間完成邏輯地址到實體地址的變換

1)優:程式再執行的期間可以換入和換出主存,可以解決主存空間不足的問題;可以再主存中移動,將主存中的碎片集中起來,可以充分利用空間;可以實現共享

# 儲存管理方案是為了解決多個使用者使用主存的問題

# 分割槽儲存管理

基本思想就是將主存的使用者區劃分成若干區域,將滅個區域分配給一個使用者作業使用,並且使用者僅能再自己的區域中執行。

按照劃分方式的不同可區分為:固定分割槽,可變分割槽,重定位分割槽 

1)固定分割槽:在系統生成時已將主存劃分位若干個區域,這些區域可以大小不同。該方法的缺點是程式作業的大小不可能剛剛好與分割槽的大小一樣,所分配的區域中存在未用的空間,造成空間的浪費

2)可變分割槽:儲存空間的劃分是在作業裝入時進行的,所以分割槽的大小剛剛好與作業的大小相等

3)可重定位分割槽:可重定位分割槽是解決碎片問題簡單而又有效的方法,基本的思想是移動所有已經分配好的分割槽,使之稱為連續的區域;因為移動是要造成系統的一定負擔,故會在使用者請求空間得不到滿足時才會進行重定位分割槽;因為重定位後地址都發生了變化,故會產生重定位分割槽

# 分頁儲存管理

 系統將一個程序的地址空間劃分成若干個大小相等的區域,稱為頁;系統也將主存的空間劃分成與頁相同大小的若干個物理快,稱為塊;將程序中的頁裝入多個不相鄰的塊中

# 分頁儲存管理的地址結構圖

0~11位稱為業內地址

12~32稱為頁號

每頁的大小為4KB所以允許的空間地址大小最多為1MB

# 頁表:系統為每個程序建立了一張頁表,目的是為了當程序中的每一頁分配到主存中的多個物理塊時,系統能保證在主存中找到每個頁面對應的物理快;在頁表中記錄了主存中對應著物理塊號,通過查詢頁表就能查詢到每頁所對應的物理塊號

# 塊表:用來存放當前訪問最頻繁的少數活動頁的頁號及相關的資訊

# 分段儲存管理

 在分儲存管理的方式中,作業的地址空間按程式自身邏輯關係劃分為若干程式段,每段定義一組邏輯資訊。

分段系統的邏輯地址由段號S和段內地址D兩部分組成,一個作業最多有64K個段,每個段的長度最大為64KB

# 段表:實現從邏輯地址到實體地址的對映

# 段頁式儲存管理

結合分段儲存管理和分頁儲存管理的優點,客服其缺點;段頁式儲存管理方式即先將使用者程式分成若干個段,再把每個段分成若干個頁,併為每一個段賦予一個段名。右圖示出了一個作業的地址空間和地址結構。

# 虛擬儲存管理

# 頁面置換演算法

1)最佳置換演算法:一種理想化的演算法,選擇那些永遠不會使用的演算法,或則那些長時間不再被訪問的演算法將被置換出去

2)先進先出置換演算法:每一次淘汰頁面時總是先淘汰先進入主存的頁面,也就是選擇在主存中停留時間最久的頁面。先進先出置換演算法是一種最直觀,但是效能最差

3)最近最久未使用置換演算法:選擇最久未使用的演算法將被淘汰

 4)最近未用置換演算法:將最近一段時間未被引用過的頁面淘汰

待補充圖來解釋...

## 裝置管理

 # 裝置分類

按資料組織分類:塊裝置,字元裝置

按資源分配角度分類:獨佔裝置,共享裝置,虛擬裝置

按資料傳輸分類:低速裝置,中速裝置,高速裝置

按輸入輸出物件分類:人機通訊裝置,機機通訊裝置

按是否可互動分類:非互動裝置,互動裝置

# 裝置管理的作用:提高各個裝置的利用率,給使用者提供統一方便的介面

# 裝置管理的功能

動態掌握並記錄裝置的狀態

裝置的分配和釋放

緩衝區管理

實現物理I/O裝置的操作

提供裝置使用的的使用者介面

裝置訪問和控制

I/O緩衝和排程

# 裝置管理採用的相關緩衝技術

1)通道技術:CPU向通道發出I/O命令,通道收到命令後,從主存中取出本次I/O要執行的通道程式並執行

2)直接儲存訪問方式:又稱為DMA,當輸入輸出裝置在和主存進行資料傳送時,不需要CPU的干涉,只需要CPU在開始啟動和結束時的處理,實際的操作過程由DMA來進行完成

3)緩衝技術:緩和CPU與I/O裝置之間速度不匹配的矛盾;減少對CPU中的中斷頻率,放寬對中斷響應的時間限制;提高CPU和I/O裝置之間的並行性

4)SPOOLing技術:提高了輸入輸出的速度,從對低速輸入輸出裝置進行的輸入輸出操作變為對輸入井或輸出井的操作,如同離線操作一樣。提高了I/O速度,緩和了CPU與低速I/O裝置速度不匹配的矛盾;裝置並沒有分配給任何程序,在輸入井或輸出井中,分配給程序的是一儲存區和建立一張I/O請求表;實現了虛擬裝置功能,多個程序同時使用一獨享裝置,而對每一程序而言,都認為自己獨佔這一裝置,不過,該裝置是邏輯上的裝置.

# 磁碟排程

利用適當的排程演算法,使程序對磁碟的平均訪問時間最少。

磁碟讀寫操作的時間由尋找(尋道)時間、延遲時間和傳輸時間決定。程序在對磁碟機型訪問時,最為耗時的是尋道時間,故磁碟排程演算法的目標是較少程序的尋道時間

1)先來先服務磁碟排程演算法:利用程序訪問磁碟的先後順序來進行排程;每個程序都能呼叫到磁碟

2)最短尋道時間優先磁碟排程演算法:若程序A所要訪問的磁軌的時間為T1,程序B所要訪問的磁軌時間為T2,且T1>T2,則根據最短尋道時間演算法讓程序B訪問磁軌;該演算法不能保證平均尋道時間最短

3)掃描演算法:結合了最短尋道時間演算法的優點,而又增加考慮了當前磁頭的移動方向,每次掃描只能從裡到外或從外到裡,類似電梯從上端到下端,則該演算法又稱為電梯排程演算法

4)單向掃面排程演算法:掃描演算法存在的問題(當磁頭剛從裡移動到外時經過一個磁軌,而這時該磁軌剛好要被訪問,但掃描演算法不能立即處理該請求,只能等下次掃描到該磁軌時才能處理),單向掃描演算法的磁頭做單向移動(只從裡到外或只從外到裡)

## 檔案管理

# 目錄結構

待完成... 

# 檔案的存取方法

順序存取:從前到後依次存取各個資訊項

隨機存取:又稱直接存取,允許使用者隨意存取任意一個物理塊

按鍵存取:直接存取的一種根據檔案中各記錄的某個資料項來存取記錄的,這種資料項稱為“鍵”

 # 檔案的物理結構

連續結構:邏輯上聯絡的檔案資訊存放在連續的物理塊中

 連結結構:邏輯上聯絡的檔案資訊存放在不連續的物理塊中,每個物理快設有一個指標指向下一個物理快

 索引結構:邏輯上聯絡的檔案資訊存放在不連續的物理塊中,系統為每個檔案建立一張索引表

# 檔案系統的可靠性

指系統抵抗和預防各種物理破壞和認為性破壞的能力

如果檔案系統被破壞了,很多情況下是無法恢復的

# 系統的安全性

系統級安全管理:不允許未授權的使用者進入系統,措施有登入和註冊

使用者級安全管理:對所有使用者分類,對指定的使用者分配訪問權,不同的使用者對不同檔案設定不同的存取許可權來實現

目錄及安全管理:為了保護系統中各個目錄而設計的,與使用者的許可權無關,為了保證目錄的安全,規定只有系統的核心才能具有寫目錄的權利

檔案級安全管理:通過系統管理員或檔案主對檔案屬性的設定來控制使用者對檔案的訪問,只執行,只讀,只寫共享

## 作業管理

# 作業是系統為了完成一個使用者的計算任務,所做的工作的總和

作業由:程式,資料,作業說明書三部分組成

作業說明書包括作業的基本情況,作業控制的描述,作業資源要求的描述,體現了使用者的控制意圖

# 作業排程演算法

1)先來先服務

2)短作業優先

3)響應比優先演算法:HRN=作業響應時間/作業執行時間;作業響應時間為:作業進入系統後的等待時間與作業的執行時間之和

4)優先順序排程演算法

5)均衡排程演算法根據系統的執行情況和作業本身的特性來對作業進行分類,排程從中挑選執行

待補充...