🌕寫在前面
- 🍊博客主頁:kikoking的江湖背景
- 🎉歡迎關注🔎點贊👍收藏??留言📝
- 🌟本文由 kikokingzz 原創,CSDN首發!
- 📆首發時間:🌹2021年12月17日🌹
- 🆕最新更新時間:🎄2021年12月17日🎄
- ??堅持和努力一定能換來詩與遠方!
- 🙏作者水平很有限,如果發現錯誤,請留言轟炸哦!萬分感謝感謝感謝!

目錄
🔥1.作業系統的概念
📜例題1.作業系統加載的位置是(________)
🔥2.作業系統的特征
🍊2.1 并發
🍓并發概念
🍓并行概念
🍓單核與多核CPU
🍊2.2 共享
🍓互斥共享方式
🍓同時訪問方式
🍊2.3 并發與共享的關系
🍊2.4 虛擬
🍓時分復用技術
🍓空分復用技術
??與并發的關系
🍊2.5 異步
??與并發的關系
🔥3.作業系統能做啥?
🍊3.1 管理計算機系統資源
🍓 行程管理(處理機管理)
🍓 記憶體管理(存盤器管理)
🍓 檔案管理
🍓 設備管理
🍊3.2 為用戶與計算機硬體系統之間提供介面
?🍓命令介面
🍓程式介面
🍊3.3 擴充機器
🔥4.作業系統的發展與分類
🍊4.1 手工操作階段
🍊4.2 批處理階段
🍓單道批處理系統
🍓多道批處理系統
📜例題2.使用甘特圖求解計算
🍊4.3 分時作業系統
🍓分時技術
🍓分時作業系統
🍊4.4 實時作業系統
🍓演算法實作
🍊4.5 網路作業系統
🍊4.6 分布式作業系統
例題:多道批處理作業系統、分時作業系統和實時作業系統各有什么特點?
🔥5.作業系統的運行環境
🍊5.1 作業系統的兩類程式
💎特權指令
🍓內核程式
🍓應用程式
🍊5.2 CPU的兩種狀態
🍓內核態(核心態/管態)
🍓用戶態(目態)
🍊5.3 作業系統的內核
?🍓時鐘管理
🍓中斷處理
🍓原語
🍓系統控制的資料結構及處理
📜例題3
📜例題4
🍊5.4 中斷和例外
🍓中斷是什么?
🍓為什么需要中斷?
🍓外中斷
🍓例外(內中斷)
🍓中斷處理的程序
🍓中斷機制的基本原理
🍊5.4 系統呼叫
🍓什么是系統呼叫?
🍓系統呼叫與庫函式的區別?
🍓為什么系統呼叫是必須的?
🍓什么功能要用到系統呼叫?
🍓為什么要使用系統呼叫?
🍓系統呼叫的程序
🍓系統呼叫引出的問題
🔥6.作業系統的體系結構
🍓大內核與微內核
🔥1.作業系統的概念
作業系統是指控制和管理整個計算機系統的硬體與軟體資源,合理地組織、調度計算機的作業與資源的分配,進而為用戶和其他軟體提供方便的介面與環境的程式集合,作業系統是計算機系統中最基本的系統軟體
例子:作業系統的任務管理器如下
🍓系統軟體:計算機中負責管理、運行、控制和維護計算機系統資源的軟體;其包括作業系統、資料庫管理系統、語言處理系統、服務性程式、標準庫程式
🍓應用軟體:使用系統軟體所提供的服務為解決各種實際問題而編制的程式;如微信、QQ
🍓應用程式:一個游戲應用軟體包括程式(*.exe)和其他圖片(*.bmp)、音效(*.wav)等附件,那么這個(*.exe)稱作“應用軟體”;而它與其他檔案(圖片、音效等)在一起合稱“軟體”
📜例題1.作業系統加載的位置是(________)
???我是分割線???
🔥2.作業系統的特征
🍊2.1 并發
🍓并發概念
并發是指兩個或多個事件在同一時間間隔內發生,這些事件宏觀上是同時發生的,但微觀上是交替發生的;作業系統的并發性是指計算機中同時存在多個運行的程式,因此它具有處理和調度多個程式同時執行的能力,
并發的實作方式:通過分時實作
🍓并行概念
并行是指兩個或多個事件在用一時刻同時發生
🍓單核與多核CPU
單核CPU:同一時刻只能執行一個程式,各個程式只能并發地執行
多核CPU:同一時刻可以同時執行多個程式,多個程式可以并行地執行
例如:4核CPU可以并行地執行4個程式
🍊2.2 共享
資源共享即共享,是指系統中的資源可供記憶體中多個并發執行的行程共同使用
🍓互斥共享方式
系統中的某些資源,如列印機、磁帶機,雖然可供多個行程使用,但為使得所列印或記錄的結果不產生混淆,應規定在一段時間內只允許一個行程訪問該資源,
因此,當行程A訪問某個資源時,必須先提出請求,若此時該資源空閑,系統便將之分配給行程A使用,此后有其他行程也要訪問該資源時,就必須等待
獨占資源:把在一段時間內只允許一個行程訪問的資源稱為臨界資源或獨占資源
🍓同時訪問方式
系統中還有另一類資源,這類資源允許在一段時間內由多個行程“同時”訪問,“同時”通常上是宏觀上的“同時”,微觀上是交替訪問的(通過時間片的輪轉)
可供多個行程“同時”訪問的典型資源是磁盤設備,一些用重入編碼寫的檔案也可被“同時”共享,即允許若干個用戶同時訪問該檔案
🍊2.3 并發與共享的關系
·并發性:指計算機系統中同時存在著多個運行著的程式
·共享性:指系統中的資源可供記憶體中多個并發執行的行程共同使用
如果失去并發性,則系統中只有一個程式正在運行,共享性失去了存在的價值
如果失去共享性,則系統中的程式,例如QQ和微信不能同時訪問硬碟資源,就無法實作同時發送檔案,也就無法并發
可見,共享和并發之間你中有我,我中有你,互相不能分割
🍊2.4 虛擬
虛擬是指把一個物理上的物體變為若干邏輯上的對應物;用于實作虛擬的技術,稱為虛擬技術,作業系統中利用了多種虛擬技術來實作虛擬處理器、虛擬記憶體和虛擬外部設備等······
🍓時分復用技術
虛擬處理器技術是通過多道程式設計技術,采用讓多道程式并發執行的方法,來分時使用一個處理器的,將物理上的一個CPU虛擬為多個邏輯上的CPU,此時,盡管只有一個處理器,但它能同時為多個用戶服務,讓多個終端用戶感覺到有一個CPU在專門為它們服務,
🍓空分復用技術
可以采用虛擬存盤技術將一臺機器的物理存盤器變為虛擬存盤器,以便從邏輯上擴充存盤器的容量,此時,用戶感覺到的記憶體容量是虛的,我們把用戶感覺到的,但實際上并不存在的存盤器稱為虛擬存盤器
??與并發的關系
如果失去了并發性,則一個時間段內系統中只運行一道程式,那么就失去了實作虛擬性的意義了,因此,沒有并發性,就談不上虛擬性,
🍊2.5 異步
異步是指,在多道程式并發執行的情況下,由于資源有限,行程的執行并不是一貫到底的,而是走走停停,它以不可預知的速度向前推進,
??與并發的關系
如果失去了并發性,即系統一次只運行一道程式,系統只能串行地運行各個程式,那么每個程式的執行會一貫到底,只有系統擁有并發性,才可能導致異步性,
???我是分割線???
🔥3.作業系統能做啥?
🍊3.1 管理計算機系統資源
🍓 行程管理(處理機管理)
計算機中同時并發運行多個行程,此時作業系統負責管理這些行程何時創建、何時撤銷,避免這些行程之間發生沖突,合理共享
主要功能:行程控制、行程同步、行程通信、死鎖處理、處理機調度
🍓 記憶體管理(存盤器管理)
為多道程式運行提供良好環境,方便用戶使用及提高記憶體利用率
主要功能:記憶體分配回收、地址映射、記憶體保護與共享、記憶體擴容
🍓 檔案管理
作業系統中負責檔案管理的部分稱為檔案系統
文件管理包括:檔案存盤空間的管理、目錄管理及檔案讀寫管理和保護
🍓 設備管理
完成?用戶的I/O請求,方便用戶使用各種設備,并提高設備的利用率
設備管理包括:緩沖管理、設備分配、設備處理和虛擬設備
🍊3.2 為用戶與計算機硬體系統之間提供介面
🍓命令介面
用戶可以利用操作命令來組織和控制作業的執行
💎聯機命令介面(互動式)
·用戶與系統對話互動,告訴它做什么
由一組鍵盤操作命令組成,用戶通過控制臺輸入操作命令,來控制作業的執行,可見提供的介面是實時的,適用于分時或實時系統的介面
分時作業系統:是一種聯機的多用戶互動式的作業系統, 一般采用時間片輪轉的方式使一臺計算機為多個終端服務 ,
實時作業系統:它會按照排序運行、管理系統資源,并為開發應用程式提供一致的基礎
💎脫機命令介面(批處理命令介面)
·用戶寫一份說明書讓系統看著說明書做
由一組作業控制命令組成,用戶把需要執行的作業寫成一份作業操作說明書,連同作業一塊提交給系統,系統調度到該作業時,系統中的命令解釋程式逐條解釋執行說明書上的命令,從而間接控制作業的運行,適用于批處理系統,
批處理系統:指用戶將一批作業提交給作業系統后就不再干預,由作業系統控制它們自動運行,
🍓程式介面
咱們代碼設計師可以使用程式介面來請求作業系統服務,例如printf函式的底層使用了作業系統提供的顯示相關的“系統呼叫”
程式介面由一組系統呼叫(廣義指令)組成,用戶通過使用這些系統呼叫來請求作業系統為其提供服務,如使用各種外部設備、申請分配和回收記憶體等要求
例子:圖形化用戶界面(GUI)使用系統呼叫為其實作“拖拽洗掉服務”
🍊3.3 擴充機器
沒有任何軟體支持的計算機稱為裸機,在裸機上安裝作業系統,可以提供資源管理功能和方便用戶的服務功能,將裸機改造成為功能更強,使用更方便的機器,我們通常把覆寫了軟體的機器稱為擴充機器或虛擬機,
???我是分割線???
🔥4.作業系統的發展與分類
🍊4.1 手工操作階段
用戶在計算機上算題的所有作業都要人干預,如程式裝入、運行、結果的輸出等
缺點?:
1.用戶獨占全機,資源利用率低
2.CPU等待手工操作,CPU利用不充分
🍊4.2 批處理階段
🍓單道批處理系統
脫機技術:提前將作業資料輸入/輸出到磁帶,不需要每次都靠人力去安裝紙帶,相當于脫離了主機的控制,因此用于緩和/設備與主機之間的速度矛盾
每次主機記憶體中僅存放一道作業,每當它在運行期間,即下圖中的綠色和藍色時間期間,高速CPU便處于等待低速的I/O完成的狀態
單道批處理系統等特征:
1.自動性:在順利的情況下,磁帶上的一批作業能自動地逐個運行,而無須人工干預2.順序性:磁帶上的各道作業順序地進入記憶體,先調入記憶體的作業先完成?
3.單道性:記憶體中僅有一道程式運行,當該程式完成或發生例外時,才換入其后繼程式進入記憶體運行
缺點?:CPU有大量空閑時間等待I/O,導致資源利用率低
🍓多道批處理系統
引入中斷技術:多道程式設計允許多個程式同時進入記憶體并允許它們在CPU中交替地運行,當一道程式因I/O請求而暫停時,此時發生外中斷,CPU立即轉去運行另一道程式;
·可以說中斷技術使得多道批處理系統和I/O設備可與CPU并行作業
缺點?:無互動性,只能通過作業說明書互動
📜例題2.使用甘特圖求解計算
🍊4.3 分時作業系統
🍓分時技術
把處理器運行時間切分成很短的時間片,按時間片輪流把處理器分配給各聯機作業使用,若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時停止運行,把處理器讓給其他作業使用,等待下一輪再繼續運行,
🍓分時作業系統
計算機以時間片為單位輪流為各個客戶/作業服務,各個客戶可以通過終端與計算機進行互動
例如:下圖中每個時間片為50ms,有4個用戶,每隔200ms任何一個用戶都可以被回應;因此當時間片一定時,用戶數越多,回應的時間越長
?主要優點
1.用戶請求可以被即時回應,解決了人機互動問題
2.允許多個用戶同時使用一臺計算機,并且用戶對計算機的操作相互獨立,感受不到別人的存在
?主要缺點
1.不能優先處理一些緊急任務
2.作業系統對各個用戶/作業都是完全公平的,回圈地為每個用戶/ 作業服務一個時間片,不區分任務的緊急性
🍊4.4 實時作業系統
·誕生原因:為了能在某個時間限制內完成某些緊急任務而不需要時間片排隊,主要應用在需要對外界輸入立即做出反應對場合,不能有拖延,否則會產生嚴重后果
·在實時作業系統的控制下,計算機系統接收到外部信號后及時進行處理,并且要在嚴格的時限內處理完事件,實時作業系統的主要特點是及時性和可靠性,
🍓演算法實作
實時系統的行程調度,通常使用搶占式的優先級高者優先演算法
搶占式——保證在某段時間內只完成該任務,該任務占用全機
優先級高者——保證越緊急的任務,越優先執行
🍊4.5 網路作業系統
網路作業系統:是伴隨著計算機網路的發展而誕生的,能把網路中各個計算機有機地結合起來,實作資料傳送等功能,實作網路中各種資源的共享(如檔案共享)和各臺計算機之間的通信,(如:Windows NT 就是 一種典型的網路作業系統,網站服務器就可以使用)
🍊4.6 分布式作業系統
·若干計算機相互協同完成同一任務
分布式作業系統由多臺計算機組成并滿足下列條件:系統中任意兩臺計算機通過通信方式交換資訊;系統中每臺計算機都具有同等的地位;每臺計算機上的資源為所有用戶共享;系統中的任意臺計算機都可以構成一個子系統,并且還能夠重構;任何作業都可以分布在幾臺計算機上,由它們并行作業、協同完成這個任務
例題:多道批處理作業系統、分時作業系統和實時作業系統各有什么特點?
可見多道批處理的缺點是分時系統的優點;分時系統的缺點是實時系統的優點;實時系統的缺點是多道批處理的優點;可見三種作業系統互相彌補對方的缺點,環環相扣
???我是分割線???
🔥5.作業系統的運行環境
🍊5.1 作業系統的兩類程式
計算機系統中,CPU通常執行兩種不同性質的程式:一種是作業系統的內核程式;另一種是用戶自編的應用程式
💎特權指令
特權指令是指計算機中不允許用戶直接使用的指令;如I/O指令、置中斷指令、存取用于記憶體保護的暫存器、送程式狀態字到程式狀態字暫存器、修改PSW的指令、開中斷指令、關中斷指令等指令(會考!)
注意??:訪管指令(trap指令)不是特權指令,運行在用戶態中
🍓內核程式
1.內核程式是應用程式的管理者,因此能執行一些特權指令,當然它們也可以執行非特權指令,但是唯獨不能執行“訪管”指令
2.由很多內核程式組成了“作業系統內核”,簡稱“內核”
3.內核是作業系統最重要最核心的部分,也是最接近硬體的部分
🍓應用程式
1.被管理的應用程式出于安全考慮不能執行特權指令,不然一些惡意軟體要是能執行特權指令,你的電腦不就涼涼了~但是它們可以執行非特權指令
2.普通程式設計師寫的程式就是“應用程式”
🍊5.2 CPU的兩種狀態
·CPU有兩種狀態,一種是“內核態”,一種是“用戶態”
·CPU中有一個暫存器叫程式狀態字暫存器(PSW),其中有個二進制位,1表示“內核態”,0表示“用戶態”
🍓內核態(核心態/管態)
·處于內核態時,PSW中的二進制位 置1,說明此時正在運行的是內核程式,此時可以執行特權指令
·內核態——>用戶態:執行一條特權指令,修改PSW的標志位為“用戶態”,這個動作意味著作業系統主動讓出CPU使用權
🍓用戶態(目態)
·處于用戶態時,PSW中的二進制位 置0,說明此時正在運行的是應用程式,此時只能執行非特權指令
·用戶態——>內核態:由“中斷”觸發,硬體自動完成CPU狀態轉換,觸發中斷信號意味著系統將強行奪回CPU使用權
🍊5.3 作業系統的內核
🍓時鐘管理
??功能1 計時??
作業系統需要通過時鐘管理,向用戶提供標準的系統時間
??功能2 實作行程切換
作業系統通過時鐘中斷的管理,可以實作行程的切換;例如在分時作業系統中采用時間片輪轉調度,在實時系統中按截止時間控制運行,在批處理系統中通過時鐘管理來衡量一個作業的運行程度等
🍓中斷處理
(下文詳細介紹)
🍓原語
原語是作業系統底層的一些可被呼叫的公共小程式,它具有以下特點:
1.處于作業系統最底層,是最接近硬體的部分
2.這些程式的運行具有原子性,其操作只能一氣呵成(為了系統安全和便于管理)
3.這些程式的運行時間都特別短,而且呼叫頻繁
💎定義原語的直接方法:關閉中斷,讓其所有動作不可分割地完成后再打開中斷;系統中的設備驅動、CPU切換、行程通信等功能中的部分操作都可定義為原語,使他們成為內核的組成部分
🍓系統控制的資料結構及處理
系統中用來登記狀態資訊的資料結構有很多(如:各類鏈表、訊息佇列、緩沖區),為了實作有效的管理,系統需要一些基本的操作:
1.行程管理
2.記憶體管理
3.設備管理
📜例題3
答:本題使用排除法處理
B、D:都屬于中斷,在核心態執行
C:行程調度是作業系統內核行程,無需用戶干預,在核心態執行
A:命令解釋程式屬于命令介面,是四個選項中唯一能面對用戶的,它在用戶態執行
📜例題4
答:本題與上題的區別在于“發生”二字,而不是執行
A:系統呼叫發生在用戶態,被呼叫程式在核心態執行
B:外部中斷是用戶態到核心態的“門”,發生在用戶態,在核心態完成中斷程序
C:行程切換屬于系統呼叫執行程序中的事件,只能發生在核心態
D:缺頁產生后,用戶態發生缺頁中斷,然后進入核心態執行缺頁中斷服務程式
🍊5.4 中斷和例外
🍓中斷是什么?
作業系統內核作業在核心態,而用戶程式作業在用戶態,系統不允許用戶程式直接實作核心態的功能,而它們又必須使用這些功能,因此,需要在核心態建立一些“門”,以便實作從用戶態進入核心態,而唯一能進入這些“門”的途徑就是通過中斷和例外,發生中斷或例外時,運行用戶態的CPU會立即進入核心態,這是通過硬體實作的(例如,用一個特殊暫存器的一位來表示CPU所處的作業狀態,0表示核心態,1表示用戶態)
🍓為什么需要中斷?
因為作業系統的發展程序大體上是一個想方設法,不斷提高資源利用率的程序,而提高資源利用率就需要在程式未使用某種資源時,把它對那種資源的占有權釋放,而這一行為就需要通過中斷來實作,例如之前多道批處理時,當計算機CPU處理完資料后,便釋放那種資源,進而處理下一條資料,
🍓外中斷
指來自CPU執行指令以外的事情的發生,這一類中斷通常是與當前指令執行無關事件,即它們與當前處理機運行的程式無關
💎例1.時鐘中斷,表示一個固定的時間片已到,讓處理機處理計時??、啟動定時運行到任務
💎例2.I/O中斷,表示設備輸入/輸出處理已經完成,希望處理機能夠向設備發下一個輸入/輸出請求,同時讓完成輸入/輸出后的程式繼續運行
🍓例外(內中斷)
指源自CPU執行指令內部的事件
💎例1.試圖在用戶態下執行特權指令
💎例2.執行除法指令時發現除數為0—>若當前執行的指令是非法的,則會引發一個中斷信號
💎例3.有時候應用程式想要請求作業系統內核的服務,此時會執行一條特殊的指令:陷入指令,該指令會引發一個內部中斷信號
·執行陷入指令(訪管指令)意味著應用程式主動地將CPU控制權還給作業系統內核,系統呼叫就是通過陷入指令完成的,該陷入指令運行在用戶態,因此不是特權指令,
🍓中斷處理的程序
1.關中斷指令
CPU回應中斷后,首先要保護程式的現場狀態,在保護現場的程序中,CPU不應回應更高級的中斷源的中斷請求;否則若現場保存不完整,在中斷服務程式結束后,不能正常恢復并繼續執行現行程式
2.中斷處理時保存的資料
3.各中斷處理流程
🍓中斷機制的基本原理
·中斷向量表
🍊5.4 系統呼叫
🍓什么是系統呼叫?
系統呼叫是指用戶在程式中呼叫作業系統所提供的一些子功能,系統呼叫可視為特殊的公共子程式,系統中的各種共享資源都由作業系統統一掌管,因此在用戶程式中,凡是與資源有關的操作(如:存盤分配、進行I/O傳輸及管理檔案等),必須通過系統呼叫的方式向作業系統提出服務請求,并由作業系統代為完成,
🍓系統呼叫與庫函式的區別?
庫函式是語言或應用程式的一部分,可以運行在用戶空間,而系統呼叫是作業系統的一部分,是內核為用戶提供的程式介面,運行在內核空間中,而且許多庫函式會使用系統呼叫來實作功能,未使用系統呼叫的庫函式,其執行效率通查要比系統呼叫的高,因為系統呼叫時,需要背景關系的切換及狀態的轉換(由用戶態轉向核心態)
🍓為什么系統呼叫是必須的?
🍓什么功能要用到系統呼叫?
可見系統呼叫的這五大功能對系統的影響非常之大,因此必須要在內核態,使用某些特權指令才能完成,用戶可以通過使用陷入指令的方式來發起系統呼叫,
🍓為什么要使用系統呼叫?
使用系統呼叫的目的就是,用戶程式不能直接執行對系統影響非常大的操作,必須通過系統呼叫的方式請求作業系統代為執行,以便保證系統的穩定性和安全性,防止用戶程式隨意更改或訪問重要的系統資源,影響其他行程的運行,
🍓系統呼叫的程序
🍓系統呼叫引出的問題
系統呼叫程序需要用戶態與和核心態的切換,降低效率
???我是分割線???
🔥6.作業系統的體系結構
由勺ò干知,作業系統在內核態為應用程式提供公共服務,那么作業系統在內核態提供什么服務呢?怎么提供服務?對于這兩個問題的解答,我們需要理解作業系統的兩大體系結構:大內核和微內核
🍓大內核與微內核
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/384263.html
標籤:其他
上一篇:帶傀儡頭結點的雙向鏈表
下一篇:【資料結構】-排序-快速排序







🍓命令介面
















🍓時鐘管理



















