【操作系統 1】操作系統概述


一、操作系統概述

操作系統是指控制和管理整個計算機系統的硬件和軟件資源,並合理地組織調度計算機的工作和資源的分配,以提供給用戶和其它軟件方便的接口和環境,它是計算機系統中最基本的系統軟件。

 二、操作系統的功能和目標 -- 作為系統資源的管理者

進程是一個程序的執行過程,執行前需要將該程序放到內存中,才能被CPU處理。

① 操作系統作為系統資源的管理者(這些資源包括軟件、硬件、文件等),需要提供什么功能?

作為系統資源的管理者

(1)提供的功能

  • 處理機管理
  • 存儲器管理
  • 文件管理
  • 設備管理

(2)目標

  • 安全
  • 高效

用微信和朋友視頻聊天的過程:

② 操作系統作為用戶與計算機硬件之間的接口,要為其上層的用戶、應用程序提供簡單易用的服務,需要實現什么功能?

作為計用戶和計算機硬件之間的接口

(1)提供的功能

  • 命令接口(聯機命令接口、脫機命令接口)
  • 程序接口
  • GUI圖形用戶界面

(2)目標,方便用戶使用

 命令接口:允許用戶直接使用

程序接口:允許用戶通過程序間接使用

GUI:現代操作系統中最流行的圖形用戶接口

1、命令接口

聯機命令接口 = 交互式命令接口

大概的意思就是你說一句,系統做一句。

比如cmd命令:

脫機命令接口 = 批處理命令接口

2、程序接口

比如C:\Windows\System32\user32.dll l程序員在程序中調用user32.dll(該調用即為系統調用)即可實現創建窗口等功能。只能通過用戶程序間接使用。

3、GUI圖形用戶界面

用戶可以使用形象的圖形化界面進行操作,而不再需要使用復雜的命令或參數了。

③ 操作系統作為最接近硬件的層次,需要在純硬件的基礎上實現什么功能?

需要提供的功能和目標:實現對硬件機器的拓展

沒有任何軟件支持的計算機稱為裸機,在裸機上安裝操作系統,可以提供資源管理功能和方便用戶的服務功能,將裸機改造成功能更強、使用更方便的機器。

通常把覆蓋了軟件的機器稱為擴充機器,又稱為虛擬機。

三、操作系統的特征

1、並發

指多個事件在同一事件間隔內交替發生。

2、並行

指多個事件在同一時刻同時發生。

一個單核處理機CPU同一時刻只能執行一個程序,因此操作系統會負責協調多個程序交替執行(這些程序微觀上是交替執行的,但是宏觀上看起來就像同時執行)

當今的計算機,一般都是多核CPU,比如我現在用的聯想小新Pro16的CPU就是I5 11300H,它是一個四核CPU,這意味着同一時刻可以有4個程序並行執行,但是操作系統的並發性依然必不可少。因為電腦可能開着十幾個應用程序,比如微信、谷歌、騰訊、酷狗音樂、Excel等等,都是需要同時工作的,而且電腦運行時,電腦系統自帶的程序,也數不勝數。

3、共享

共享即資源共享,是指系統中的資源可供內存中多個並發執行的進程共同使用。

兩種資源共享的方式:

(1)互斥共享方式

系統中的某些資源,雖然可以提供給多個進程使用,但一個時間段內只允許一個進程訪問該資源。

如對攝像頭設備的共享使用。

(2)同時共享方式

系統中的某些資源,允許一個時間段內有多個進程“同時”對它們進行訪問。

所謂的“同時”往往是宏觀的,而從微觀上講,這些進程可能是交替地對該資源進行訪問的,即分時共享。

如對硬盤資源的共享使用。

4、虛擬

虛擬是指把一個物理上的實體變為若干個邏輯上的對應物。物理實體是實際存在的,而邏輯上對應物是用戶感知到的。

用一個例子來理解:

眾所周知,一個程序需要放入內存並給它分配CPU才能執行。

GTA5游戲需要4GB的運行內存,QQ需要256MB的內存,迅雷需要250MB的內存,網易雲音樂需要256MB的內存...

我的電腦4GB。

問題:這些程序同時運行需要的內存遠遠大於4GB,那么為什么它們還可以在我的電腦上同時運行呢?

答:這是虛擬存儲器技術。實際只有4GB的內存,在用戶看來似乎遠遠大於4GB。這應用了虛擬機技術中的“空分復用技術”。微觀上處理機在各個微笑的時間段內交替為各個進程服務。

5、異步

異步是指,在多道程序環境下,允許多個程序並發執行,但由於資源有限,進程的執行不是一管到底的,而是走走停停,以不可預知的速度向前推進,這就是進程的異步性。

如果失去了並發性,則系統只能串行的處理各個進程,每個進程的執行會一貫到底,只有系統擁有並發性,才有可能導致異步性。

6、總結

如果沒有並發和共享,就談不上虛擬和異步,因此並發和共享是操作系統的兩個最基本的特征。

四、操作系統的發展和分類

1、手工操作階段

缺點:人機速度矛盾

2、批處理階段

(1)單道批處理系統(引入脫機輸入輸出技術)

優點:緩解人機速度矛盾

缺點:資源利用率較低

(2)多道批處理系統(操作系統開始出現)

優點:多道程序並發執行,資源利用率高

缺點:不提供人機交互功能

3、分時操作系統

優點:提供人機交互功能

缺點:不能有限處理緊急任務

4、實時操作系統

(1)硬實時系統

必須在絕對嚴格的規定時間內完成處理

(2)軟實時系統

能接受偶爾違反時間規定

(3)優點:能優先處理緊急任務

5、網絡操作系統

6、分布式操作系統

7、個人計算機操作系統

五、操作系統的運行機制和體系結構

1、什么是指令

簡單來說,指令就是處理器CPU能識別、執行的最基本命令,比如:加法指令就是讓CPU進行加法運算。 

 2、兩種指令、兩種處理器狀態、兩種程序

(1)兩種指令

① 特權指令

如內存清零指令,不允許用戶程序使用

② 非特權指令

如普通的運算指令

(2)兩種處理器狀態

① 用戶態

此時CPU只能執行非特權指令

② 核心態

特權指令、非特權指令都可以執行

用程序狀態字寄存器中的某標志位來標識當前處理器處於什么狀態。如0為用戶態,1為核心態。

(3)兩種程序

① 內核程序

操作系統的內核程序時系統的管理者,既可以執行特權指令,也可以執行非特權指令,運行在核心態。

② 應用程序

為了保證系統能安全運行,普通應用程序只能執行非特權指令,運行在用戶態。

3、操作系統中的哪些功能應該由內核程序實現呢?

 內核是計算機上配置的底層軟件,是操作系統最基本、最核心的部分。

實現操作系統內核功能的那些程序就是內核程序。

(1)與硬件關聯較緊密的模塊

① 時鍾管理

實現計時功能

② 中斷處理

負責實現中斷功能

③ 原語

  • 是一種特殊的程序
  • 出於操作系統最底層,是最接近硬件的部分
  • 這種程序的運行具有原子性,其運行只能一氣呵成,不可中斷
  • 運行時間較短、調用頻繁

(2)對系統資源進行管理的功能

  • 進程管理
  • 存儲器管理
  • 設備管理

有的操作系統不把這部分功能歸為“內核功能”,也就是說,不同的操作系統,對內核功能的划分可能並不一樣。

4、操作系統的體系結構可以分為大內核和微內核。

(1)大內核:

  • 將操作系統的主要功能模塊都作為系統內核,運行在核心態
  • 優點:高性能
  • 缺點:內核代碼龐大,結構混亂,難以維護

(2)微內核:

  • 只把最基本的功能保留在內核。
  • 優點:內核功能少,結構清晰,方便維護
  • 缺點:需要頻繁地在核心態和用戶態之間切換,性能低

六、中斷和異常

1、中斷的概念和作用

  1. 當中斷發生時,CPU立即進入核心態
  2. 當中斷發生后,當前運行的進程暫停運行,並由操作系統內核對中斷進行處理
  3. 對於不同的中斷信號,會進行不同的處理

發生了中斷,就意味着需要操作系統介入,開展管理工作。由於操作系統的管理工作(比如進程切換、分配IO設備等)需要使用特權指令,因此CPU要從用戶態切為核心態。中斷可以使CPU從用戶態切換為核心態,使操作系統獲得計算機的控制權。有了中斷,才能實現多道程序並發執行。

用戶態和核心態的切換是通過中斷實現的,並且中斷是唯一途徑。

2、中斷的分類

(1)內中斷

信號來源:CPU內部

① 陷阱

有意而為之的異常,如系統調用

② 故障

由錯誤條件引起的,可能被故障處理程序修復,如缺頁。

③ 終止

不可恢復的錯誤造成的結果,終止處理程序不再將控制返回給引發終止的應用程序,如整數除0。

(2)外中斷

信號來源:CPU外部

① IO中斷請求

② 人工干預

3、外中斷的處理過程

  1. 執行完每個指令后,CPU都要檢查當前是否有外部中斷信號
  2. 如果檢測到外部中斷信號,則需要保護被中斷進程的CPU環境(如程序狀態子PSW、程序計數器PC、各種通用寄存器)
  3. 根據中斷信號類型轉入相應的中斷處理程序
  4. 恢復原進程的CPU環境並退出中斷,返回原進程繼續往下執行

七、系統調用

1、什么是系統調用

系統調用是操作系統提供給應用程序使用的接口,可以理解為一種可供應用程序調用的特殊函數,應用程序可以發出系統調用請求來獲得操作系統的服務。

2、系統調用作用

應用程序通過系統調用請求操作系統的服務,服務中的各種共享資源都由操作系統統一掌管,因此在用戶程序中,凡是與資源有關的操作(如存儲分配、IO操作、文件管理等),都必須通過系統調用的方式向操作系統提出服務請求,由操作系統代為完成。這樣可以保證系統的穩定性和安全性,防止用戶進行非法操作。

3、系統調用的分類

  1. 設備管理(完成設備的請求、釋放、啟動等功能)
  2. 文件管理(完成文件的讀寫、創建、刪除等功能)
  3. 進程控制(完成進程的創建、撤銷、阻塞、喚醒等功能)
  4. 進程通信(完成進程之間的消息傳遞、信號傳遞等功能)
  5. 內存管理(完成內存的分配、回收等功能)

系統調用相關處理涉及到對系統資源的管理,對進程的控制,這些功能需要執行一些特權指令才能完成,因此系統調用的相關處理需要在核心態下進行。

4、系統調用的過程簡介

傳遞系統調用參數 -> 執行陷入指令(用戶態) -> 執行系統調用相應服務程序(核心態) -> 返回用戶程序。

小總結:

  1. 陷入指令是在用戶態執行的,執行陷入指令之后立即引發一個內中斷,從而CPU進入核心態
  2. 發出系統調用請求的是用戶態,而對系統調用的相應處理在核心態下進行
  3. 陷入指令是唯一一個只能在用戶態執行,而不可在核心態執行的指令

往期精彩內容:

Java知識體系總結

【全棧最全Java框架總結】SSH、SSM、Springboot

超詳細的springBoot學習筆記

常見數據結構與算法整理總結

Java設計模式:23種設計模式全面解析

Java面試題總結(附答案)

10萬字208道Java經典面試題總結(附答案,建議收藏)

MySql知識體系總結

Linux知識體系總結

【Vue基礎知識總結 1】Vue入門

Redis知識體系總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM