西安建設(shè)過政府網(wǎng)站的公司國外網(wǎng)站搭建
操作系統(tǒng)知識點總結(jié):
第一章:操作系統(tǒng)概述
1.1操作系統(tǒng)的概念:
? 操作系統(tǒng)是一種系統(tǒng)軟件,與其他系統(tǒng)軟件和應(yīng)用軟件不同,它有自己的基本特征。它的四大基本特征也就是并發(fā),共享,虛擬,異步。
1.2操作系統(tǒng)的特征(四大基本特征):
- 并發(fā): 這里我們要理解什么是并發(fā),什么是并行。并發(fā)是指多個事件在同一時間間隔內(nèi)發(fā)生。而并行是指多個事件在同一時刻發(fā)生。
- 共享: 共享分為兩種共享方式:互斥共享方式:在一定時間內(nèi)只允許一個進程去訪問。同時共享方式:在一定時間內(nèi)允許多個進程去訪問。
其中 **并發(fā)和共享是操作系統(tǒng)最基本的特征。兩者互為存在條件,**資源共享是以并發(fā)為條件的,沒有并發(fā)就沒有辦法談共享。若系統(tǒng)不能對資源并發(fā)進行有效的管理,那么必將影響到程序的并發(fā)執(zhí)行。
3.虛擬
4.異步: 進程的執(zhí)行不是一貫到底的,而是走走停停,不斷向前推進。
虛擬性以并發(fā)性和共享性為前提,異步性是并發(fā)性和共享性的必然結(jié)果。
1.3操作系統(tǒng)的目標(biāo)和功能:
1.操作系統(tǒng)是計算機系統(tǒng)資源的管理者:
(1).處理機管理
(2).存儲器管理
(3).文件管理
(4).設(shè)備管理
2.操作系統(tǒng)作為用戶和計算機硬件系統(tǒng)之間的接口
3.操作系統(tǒng)實現(xiàn)了對計算機資源的擴充
操作系統(tǒng)的目標(biāo):實現(xiàn)方便性,有效性,可擴充性,開放性。
1.4操作系統(tǒng)的發(fā)展歷程:
1.人工操作階段:
2.單道批處理階段:
實現(xiàn)了對作業(yè)的連續(xù)處理,但由于只有一個通道,它解決了人機矛盾和CPU與IO設(shè)備速度不匹配的矛盾。提高了系統(tǒng)的資源利用率和吞吐量。
缺點:不能充分利用資源,原因是只有一個通道。
3.多道批處理階段:
優(yōu)點:提高了資源的利用率,系統(tǒng)的吞吐量大。
缺點:平均周轉(zhuǎn)時間長,沒有交互能力。
實現(xiàn)多道批處理的關(guān)鍵是: 如何分配處理器,多道程序的內(nèi)存分配問題,I/O設(shè)備如何分配,如何保證其安全性和一致性。
4.分時操作系統(tǒng)
分時系統(tǒng)實現(xiàn)的關(guān)鍵是如何讓用戶與自己的作業(yè)進行交互。
5.實時操作系統(tǒng)
//TODO
1.5操作系統(tǒng)的運行環(huán)境:
兩種指令(特權(quán)指令和非特權(quán)指令):
特權(quán)指令: 指的是不允許用戶直接使用的指令。
非特權(quán)指令: 是指允許用戶直接使用的指令,它不能訪問系統(tǒng)的軟硬資源。
隨之而來的是兩種運行模式(用戶態(tài)和核心態(tài)):
當(dāng)CPU處于核心態(tài)時就可以使用特權(quán)指令,同時切換到用戶態(tài)的指令也是特權(quán)指令。當(dāng)CPU處于用戶態(tài)時也只能使用非特權(quán)指令。
★★★中斷與異常
中斷:
中斷也被稱為外中斷,是指CPU執(zhí)行指令外部的事件。
異常也被稱為內(nèi)中斷,是指CPU執(zhí)行指令內(nèi)部的事件。
中斷和異常的分類:
外中斷可分為可屏蔽中斷和不可屏蔽中斷。
異常分為故障,自陷和終止。
中斷和異常的處理過程:
當(dāng)CPU在執(zhí)行用戶程序的第i條指令時檢測到一個異常事件,或者發(fā)現(xiàn)了一個中斷請求信號,這是CPU打斷當(dāng)前的用戶程序,然后轉(zhuǎn)到相應(yīng)的中斷或異常處理程序中去執(zhí)行。若中斷或者異常處理程序能夠解決相應(yīng)的問題,則在中斷或者異常處理程序最后,通過執(zhí)行中斷和異常返回指令,回到被打斷的用戶程序的下一條指令(i+1)條指令繼續(xù)執(zhí)行,若發(fā)現(xiàn)是不可修復(fù)的錯誤就終止用戶程序。
原語:
所謂原語就是由若干條指令組成的,用于完成某一特定功能的過程,它是有原子性的,也就是說原語在執(zhí)行過程中不能被中斷,只能一氣呵成。原子操作在內(nèi)核態(tài)下執(zhí)行,并且常駐內(nèi)存。
1.6系統(tǒng)調(diào)用:
所謂的系統(tǒng)調(diào)用是指用戶在程序中調(diào)用操作系統(tǒng)所提供的一些子功能,系統(tǒng)調(diào)用可視為特殊的公共子程序。
系統(tǒng)調(diào)用按功能可分為:
由于系統(tǒng)調(diào)用對整個系統(tǒng)的影響非常的大,因此需要由內(nèi)核程序負(fù)責(zé)完成,要運行在內(nèi)核態(tài),用戶可以通過陷入指令(trap/訪管指令)來發(fā)起系統(tǒng)調(diào)用,即是將CPU的使用權(quán)交給操作系統(tǒng)的內(nèi)核程序(CPU的狀態(tài)從用戶態(tài)轉(zhuǎn)變?yōu)閮?nèi)核態(tài))。讓內(nèi)核程序?qū)ο到y(tǒng)調(diào)用請求進行相應(yīng)得處理,處理完成后將CPU得使用權(quán)還給用戶程序(即由內(nèi)核態(tài)轉(zhuǎn)變?yōu)橛脩魬B(tài))。目的就是讓用戶程序不能執(zhí)行對系統(tǒng)影響大得操作。必須通過系統(tǒng)調(diào)用得方式請求操作系統(tǒng)代為執(zhí)行。增加了安全性。
列舉從用戶態(tài)轉(zhuǎn)變到內(nèi)核態(tài)的例子:
(1).用戶程序要求操作系統(tǒng)的服務(wù),即系統(tǒng)調(diào)用。
(2).發(fā)生一次中斷。
(3).用戶程序產(chǎn)生了一個錯誤狀態(tài)。
(4).用戶程序企圖執(zhí)行一條特權(quán)指令。
(5).從核心態(tài)轉(zhuǎn)向用戶態(tài)由一條指令實現(xiàn),這條指令也是特權(quán)指令(因為是在內(nèi)核態(tài)下執(zhí)行的指令),一般是中斷返回指令。
訪管指令是將用戶態(tài)轉(zhuǎn)向核心態(tài),因此它是在用戶態(tài)下使用的指令,不是特權(quán)指令。
1.7操作系統(tǒng)的結(jié)構(gòu)(新知識點):
大內(nèi)核: 所有的系統(tǒng)功能都放在了內(nèi)核里。這也保證了狀態(tài)切換的次數(shù)減少,性能增加內(nèi)核內(nèi)部的各個程序可以互相調(diào)用。缺點:所有的程序都放在內(nèi)核導(dǎo)致維護起來很難,并且當(dāng)一個程序出現(xiàn)錯誤,可能就導(dǎo)致整個內(nèi)核出現(xiàn)錯誤。
微內(nèi)核: 只把最核心的功能放入內(nèi)核,優(yōu)點:內(nèi)核易于維護,可靠性高,一個功能出錯不會影響內(nèi)核。缺點:性能低,需要頻繁的進行狀態(tài)切換。
1.8虛擬機:
虛擬機:使用虛擬化技術(shù)將一臺物理機虛擬化為多臺虛擬機器,每臺虛擬機都可以獨立運行1個操作系統(tǒng)。
二者對比:
第二類的虛擬機就是我們常用的Vmware,我們將虛擬機安裝在我們的宿主機上,所有的資源都依靠于宿主機,這也就意味著性能會差,但是可遷移性非常好,我們只需要將我們的鏡像文件ISO拷貝到另一臺電腦上即可。
第一章知識點補充:
1.操作系統(tǒng)管理計算機的硬件資源和軟件資源。
2.系統(tǒng)調(diào)用是操作系統(tǒng)為應(yīng)用程序使用內(nèi)核功能所提供的接口。
3.操作系統(tǒng)為編程人員提供的接口是程序接口,即系統(tǒng)調(diào)用。
4.用戶不能直接操作硬件資源,只能通過系統(tǒng)調(diào)用的方式來請求內(nèi)核為其提供服務(wù),間接的去訪問資源。
5.操作系統(tǒng)不能直接用來編程,配置操作系統(tǒng)的機器與裸機相比,資源利用率提高了。
6.操作系統(tǒng)的接口分為 命令接口 和 程序接口(系統(tǒng)調(diào)用)。
7.計算機開機后,操作系統(tǒng)被加載到RAM中。
8.實時操作系統(tǒng)必須在被控制對象的規(guī)定時間內(nèi)來處理來自外部的請求。
9.計算機通過硬件中斷機制完成了由用戶態(tài)轉(zhuǎn)變?yōu)楹诵膽B(tài)。
10.內(nèi)核包含四個部分:時鐘管理,中斷機制,原語和廣義指令。輸入和輸出涉及中斷操作,也屬于內(nèi)核。
11.關(guān)中斷屬于特權(quán)指令。
12.微內(nèi)核結(jié)構(gòu)中,內(nèi)核的功能越少越穩(wěn)定。支持分布式系統(tǒng)。windows屬于宏內(nèi)核
第二章:進程與線程
2.1進程:
進程的概念:
進程是程序的一次執(zhí)行過程,是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動,是具有獨立功能的程序在一個數(shù)據(jù)集合上運行的過程,他是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。
重點:
(1).進程是動態(tài)的,具有過程性。
(2).PCB是進程存在的唯一標(biāo)識。
(3).進程是進程實體的運行過程,是系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。
進程的特征: (1)動態(tài)性,(2),并發(fā)性(3),異步性(4),獨立性
2.2進程的狀態(tài)與轉(zhuǎn)換:
五種狀態(tài)以及五種狀態(tài)之間的轉(zhuǎn)換:
運行態(tài): 進程正在處理機上運行。
就緒態(tài): 進程獲得了除處理機之外的其他所有資源。一旦得到處理機就可以開始運行。
阻塞態(tài): 進程正在等待某一事件而暫停運行。
注意: 一個進程從運行態(tài)轉(zhuǎn)變到阻塞態(tài)是主動的行為,從阻塞態(tài)轉(zhuǎn)變?yōu)榫途w態(tài)是被動的。
2.3進程的組成:
PCB(最核心的進程控制塊,是進程存在的唯一標(biāo)識) + 程序段 + 數(shù)據(jù)段
2.4進程控制:
進程的創(chuàng)建: 終端用戶登錄系統(tǒng),作業(yè)調(diào)度,系統(tǒng)提供服務(wù)都會引起進程的創(chuàng)建。
進程的終止: (1).正常結(jié)束(2).異常結(jié)束,表示進程在運行時,發(fā)生了某種異常事件導(dǎo)致無法繼續(xù)運行(3).外界干預(yù)
進程的阻塞和喚醒
2.5進程通信:
進程通信是指進程之間的信息交換,其中我們所知道的PV操作則是低級通信方式,而高級通信方式是 共享內(nèi)存,消息傳遞,管道通信。
2.6線程:
在引入線程后,進程作為除CPU外的系統(tǒng)資源的分配單元,而線程則作為處理機的分配單元 ,是程序執(zhí)行流的最小單位。
引入進程的目的是更好的使多道程序并發(fā)執(zhí)行,提高資源利用率和系統(tǒng)吞吐量。引入線程則是減少程序在并發(fā)執(zhí)行時所付出的時空開銷,提高操作系統(tǒng)的并發(fā)性能。
2.7線程和進程的比較:
(1).調(diào)度:
擁有資源和獨立調(diào)度的基本單位都是進程,進程之間的切換開銷很大。而線程獨立調(diào)度的基本單位,線程之間切換的開銷遠(yuǎn)小于進程。同時線程之間的切換不會影響進程。進程之間的切換會影響線程。
(2).并發(fā)性:
進程之間可以并發(fā),一個進程中的多個線程也可以并發(fā),不同進程中的線程也可以并發(fā)。
(3).獨立性:
每個進程都擁有獨立的地址空間和資源。不允許其他進程訪問,線程共享進程的地址空間和資源,并且某個進程中的線程對其他進程是不可見的。
(4).系統(tǒng)開銷:
創(chuàng)建和撤銷進程的開銷要遠(yuǎn)大于創(chuàng)建和撤銷線程的開銷。
(5).支持多處理機:
進程只能運行在一個處理機上,對于多線程進程可以在多個處理機上運行。
2.8線程的實現(xiàn):
用戶級線程:
內(nèi)核級線程:
由圖可以看除內(nèi)核級線程是放在操作系統(tǒng)中的,因此是由操作系統(tǒng)進行管理的。線程的調(diào)度,切換等工作都是由內(nèi)核負(fù)責(zé)的,因此內(nèi)核級線程的切換必須在內(nèi)核態(tài)下完成。每個線程都有自己的線程控制塊(TCB),同時內(nèi)核級線程是操作系統(tǒng)能夠看到的線程。
優(yōu)點: 當(dāng)一個線程被阻塞時,別的線程還能正常運行,并發(fā)能力強,多線程可以在多核處理機上并行執(zhí)行。
缺點: 一個用戶級線程會占用多個內(nèi)核級線程,線程的切換需要切換到內(nèi)核態(tài),需要狀態(tài)轉(zhuǎn)換,開銷大。
2.9一對一模型:
2.10多對一模型:
2.11多對多模型:
注意: 內(nèi)核級線程要小于用戶級線程的。
2.12線程的狀態(tài)轉(zhuǎn)換:
線程的狀態(tài)轉(zhuǎn)換圖和進程類似,我們只需要關(guān)注三狀態(tài)轉(zhuǎn)換(就緒,運行,阻塞)
2.13進程調(diào)度:
進程調(diào)度的時機:
-
當(dāng)前運行的進程主動放棄處理機:
進程正常的運行完終止。
進程運行過程中發(fā)生異常終止。
進程主動請求進入阻塞。
-
當(dāng)前運行的進程被動放棄處理機:
在運行過程中來了一個優(yōu)先級更高的進程。
分配給進程的時間片用完。
有更緊急的事情要處理(I/O)。
進程調(diào)度的方式:
搶占式和非搶占式
重點知識:
進程在操作系統(tǒng)內(nèi)核程序臨界區(qū)是不能進行調(diào)度和切換的。
進程處于臨界區(qū)時是可以進行處理機調(diào)度的,為了防止某個進程一直等待臨界資源,占用CPU。
2.14調(diào)度算法:
重要的幾個公式:
(1).先來先服務(wù)(FCFS)(非搶占式):
按照作業(yè)到達(dá)的先后順序進行調(diào)度:
用于作業(yè)調(diào)度和