操作系統基礎
阿新 • • 發佈:2018-08-18
一般來說 鏈接 自己的 拷貝 行處理 目標 利用 空間 png
*
*
*
*
*
*
*
*
操作系統基礎
*
*
*
*
*
*
*
*
1
、操作系統分類
批處理操作系統、分時操作系統(Unix)、實時操作系統、網絡操作系統、分布式操作系統、微機操作系統(Linux、Windows、IOS等)、嵌入式操作系統。
2
、操作系統的
4
個特征:並發性、共享性、虛擬性、不確定性。
3
、操作系統的功能有:處理機管理、文件管理、存儲管理、設備管理、作業管理。
處理機管理:也稱進程管理。實質上是對處理機執行時間進行管理,采用多道程序等技術將CPU的時間真正合理地分配給每個任務。主要包括進程管理、進程同步、進程通信和進程調度。
文件管理:又稱信息管理。主要包括文件存儲空間管理、目錄管理、文件的讀寫管理和存取管理。
存儲管理:是對主存儲器空間的管理。主要包括存儲分配與回收、存儲保護、地址映射(變換)和主存擴充。(即內存管理)
設備管理:實質上是對硬件設備進行管理,其中包括輸入輸出設備的分配、啟動、完成和回收。
作業管理:包括人物、人機交互和用戶界面管理等。
4
、處理機管理
1
、程序順序執行的特征:
順序性:每一操作必須在下一操作開始之前結束
封閉性:程序運行時獨占全機資源,資源的狀態(除初始狀態外)只有本程序才能改變,程序一旦執行,其結果不受外界影響
可再現性:程序執行環境和初始條件相同,重復執行時,結果相同
2
、程序並發執行的特征:
間斷性:程序並發運行時,共享系統資源,為完成同一任務相互合作,會形成相互制約關系,導致並發程序具有“執行
-
暫停
-
執行”這種間斷性的活動規律
失去封閉性:程序並發執行時,資源狀態由多個程序改變,某程序執行時,會受到其他程序影響,失去封閉性
不可再現性:失去封閉性,導致失去可再現性
3
、進程的特征
結構特征:程序段、相關數據段和PCB三部分構成進程實體
動態性:進程實體的一次執行過程,具有生命期,而程序是有序指令集合,是靜態的
並發性:多個進程同時存於內存,在一段時間內同時運行
獨立性:進程實體是一個能獨立運行、獨立分配資源和獨立接受調度的基本單位
異步性:進程按各自獨立的、不可預知的速度向前推進
4.
進程的狀態:三態模型(左圖)、五態模型(右圖)
https:
/
/
images2015.cnblogs.com
/
blog
/
926487
/
201608
/
926487
-
20160803100958450
-
674066944.png
5
、進程間的通信(同步與互斥):由於多個進程可以並發執行,所以進程間必然存在資源共享和相互合作的問題。進程通信是指各個進程交換信息的過程。
同步是合作進程間直接制約問題,互斥是申請臨界資源進程間的間接制約問題。(臨界資源(Critical Resource, CR):在同一時間只能供一個進程使用的資源)臨界區管理
4
條原則:
有空即進:
無空則等:
有限等待:要求訪問臨界區的進程,保證有限時間內進入臨界區,避免死等
讓權等待:進程不能進入臨界區時,應立即釋放處理機,避免忙等
6
、信號量機制:即利用PV操作來對信號量進行處理。
信號量(semaphore)的數據結構為一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應資源的使用情況有關。
當它的值大於
0
時,表示當前可用資源的數量;
當它的值小於
0
時,其絕對值表示等待使用該資源的進程個數。
註意,信號量的值僅能由PV操作來改變。
一般來說,信號量S >
=
0
時,S表示可用資源的數量。執行一次P操作意味著請求分配一個單位資源,因此S的值減
1
;當S <
0
時,表示已經沒有可用資源,請求者必須等待別的進程釋放該類資源,它才能運行下去。而執行一個V操作意味著釋放一個單位資源,因此S的值加
1
;若S <
=
0
,表示有某些進程正在等待該資源,因此要喚醒一個等待狀態的進程,使之運行下去。
7
、進程調度:如何分配CPU。
調度方法分為可剝奪和不可剝奪兩種。即當有更高優先級的進程到來時,是否可以將正在運行進程的CPU分配給高優先級的進程,可以則為可剝奪,否則為不可剝奪的。
在某些操作系統中,一個作業從提交到完成需要經歷高、中、低三級調度。
高級調度:又稱長調度或作業調度。它決定處於輸入池中的哪個後備作業可以調入主系統做好運行的準備,成為一個或一組就緒進程。系統中一個作業只需經過一次高級調度。
中級調度:又稱短程調度或對換調度。它決定處於交換區中的就緒進程哪個可以調入內存,以便直接參與對CPU的競爭。在內存資源緊張時,為了將進程調入內存,必須將內存中處於阻塞狀態的進程調出交換區,以便為調入進程騰出空間。
低級調度:又稱短程調度或進程調度。它決定處於內存中的就緒進程中的哪個可以占用CPU。最活躍、最重要的調度程序,對系統影響也是最大的。
常見的進程調度算法:先來先服務(FCFS)、短作業優先、時間片輪轉(固定時間片、可變時間片)、優先級調度(靜態優先級、動態優先級)、多級反饋調度(時間片輪轉
+
優先級調度)。
8
、死鎖:兩個以上的進程互相要求對方已經占有的資源導致無法繼續運行下去的現象
產生死鎖的原因主要是:
(
1
) 因為系統資源不足。
(
2
) 進程運行推進的順序不合適。
(
3
) 資源分配不當等。
如果系統資源充足,進程的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則就會因爭奪有限的資源而陷入死鎖。其次,進程運行推進順序與速度不同,也可能產生死鎖。
產生死鎖的四個必要條件:互斥條件、請求與保持條件、不剝奪條件、循環等待條件。
(
1
) 互斥條件:一個資源每次只能被一個進程使用。
(
2
) 請求與保持條件:一個進程因請求資源而阻塞時,對已獲得的資源保持不放。
(
3
) 不剝奪條件:進程已獲得的資源,在末使用完之前,不能強行剝奪。
(
4
) 循環等待條件:若幹進程之間形成一種頭尾相接的循環等待資源關系。
這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發生死鎖。
解決死鎖的
4
種處理策略:鴕鳥策略(即不理睬策略)、預防策略、避免策略、檢測與解除策略。
死鎖預防:預先靜態分配法(破壞不可剝奪條件)、資源有序分配法(將資源分類按順序排列,保證不形成環路)。
死鎖避免:銀行家算法(對每個資源請求進行檢測,確保安全。需要很大的系統開銷)。
死鎖解除:資源剝奪法、撤銷進程法。
9
、線程與進程
定義:
進程是具有一定獨立功能的程序關於某個數據集合上的一次運行活動,是系統進行資源分配和調度的一個獨立單位。
線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。也有就緒、運行、阻塞三態。
關系
一個線程可以創建和撤銷另一個線程;同一個進程中的多個線程之間可以並發執行.
相對進程而言,線程是一個更加接近於執行體的概念,它可以與同進程中的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。
區別:
1
) 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.
2
) 線程的劃分尺度小於進程,使得多線程程序的並發性高。
3
) 另外,進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。
4
) 線程在執行過程中與進程還是有區別的。每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
5
) 從邏輯角度來看,多線程的意義在於一個應用程序中,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。
優缺點
線程執行開銷小,但不利於資源的管理和保護;而進程正相反。同時,線程適合於在SMP機器上運行,而進程則可以跨機器遷移。
5
、存儲管理
地址重定位:指將邏輯地址變換成物理地址的過程。分為靜態重定位和動態重定位。
存儲管理方案:分區存儲管理(固定分區、可變分區、可重定位分區)、分頁存儲管理(將一個進程的地址空間劃分為若幹個大小相等的區域,成為頁,相應地,將主存空間劃分成與頁相同大小的若幹個物理塊,稱為塊。至少需要兩次訪問主存)、分段存儲管理、段頁式存儲管理(地址結構:段號
+
段內頁號
+
頁內地址)、虛擬存儲管理。
可變分區的請求和釋放主要算法:最佳適應算法、最差適應算法、首次適應算法、循環首次適應算法。
快表:在頁式存儲管理中將當前最活躍的少數幾頁的物理塊號保存在高速存儲器中,用以提高頁式存儲管理的性能。(不用兩次訪問主存)
頁面置換算法:最佳置換算法(最長時間內不再被訪問的頁面置換出去)、先進先出置換算法、最近最少未使用置換算法、最近未用置換算法。
6
、設備管理
設備管理的目標是如何提高設備的利用率,為用戶提供方便統一的界面。
設備管理采用的緩沖技術:通道技術、DMA技術、緩沖技術、Spooling技術。
磁盤調度算法:先來先服務(FCFS)、最短尋道時間(SSTF)、掃描算法(SCAN)(先由裏向外,到達最外後由外向裏)、單向掃描調度算法(CSCAN)(無法換向,只能由裏向外)。
7
、文件管理
文件的邏輯結構:有結構的記錄式文件(由一個以上的記錄構成。記錄分為定長記錄、不定長記錄)、無結構的流式文件(由一串順序的字符流構成的文件,不劃分記錄)。
文件的物理結構:順序結構、鏈接結構、索引結構、多個物理塊的索引表。
Unix的三級索引結構:
文件的存取方法:順序存取法、隨機存取法。
文件的存儲空間管理:外存空閑空間管理的數據結構通常稱為磁盤分配表。常用的空閑空間的管理方法:位示圖(用一個bit為的
0
、
1
表示一個物理塊的空閑情況)、空閑區表、空閑塊鏈、成組鏈接法(每
100
塊為一組進行記錄空閑的塊號和大小)。
文件鏈接:硬鏈接(兩個文件目錄表目指向同一個索引節點,即指不同的文件名與同一個文件實體的鏈接)、符號鏈接(在建立的新文件或目錄並與原來的文件或目錄的路徑名進行映射)。
硬連接:原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨越文件系統(不能跨越不同的分區)文件在磁盤中只有一個拷貝,節省硬盤空間;由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此可以防止不必要的誤刪除。
符號連接:用ln
-
s命令建立文件的符號連接符號連接是linux特殊文件的一種,作為一個文件,它的數據是它所連接的文件的路徑名。類似windows下的快捷方式。可以刪除原有的文件而保存連接文件,沒有防止誤刪除功能。
8
、作業管理
作業狀態分為
4
種:提交(通過輸入設備送入計算機)、後備(通過Spooling系統將作業輸入到計算機系統的後備存儲器中,等待作業調度程序調度)、執行和完成。
常用的作業調度算法:先來先服務、短作業優先、響應比高優先、優先級調度算法、均衡調度算法。
操作系統基礎