操作系統基本概念
win、Android、ios、macos、linux
操作系統的概念
1、負責管理協調硬件、軟件等計算機資源的工作
2、為上層的應用程序、用戶提供簡單易用的服務
3、操作系統是系統軟件,而不是硬件
定義
操作系統是指控制和管理整個計算機系統的硬件和軟件資源,並合理地組織調度計算機的工作和資源的分配,以提供給用戶和其他軟件方便的接口和環境,它是計算機系統中最基本的系統軟件。
操作系統的功能和目標
進程是一個程序的執行過程
執行程序之前需要將程序放到進程當中,才被cpu處理
作為用戶和計算機硬件之間的接口
命令接口:允許用戶直接使用
程序接口:允許用戶通過程序間接使用
gui:圖形用戶接口
所有提供的功能可以統稱為用戶接口
命令接口,允許用戶直接使用
聯機命令接口=交互式命令接口(一步一步的)
脫機命令接口=批處理命令接口(批處理文件,說一堆,做一堆
程序接口:調用目錄下對應的dll文件(又叫系統調用,可創建一些功能,只能通過用戶程序間接使用
總體的概括
作為最接近硬件的層次
實現對硬件機器的拓展
裸機就是純硬件,沒有任何軟件支持的,在裸機上安裝的操作系統可以提供資源管理功能和方便用戶的服務功能,將裸機改造成功能更強、使用更方便的機器
把覆蓋了軟件的機器叫擴充機器、又叫虛擬機
總結

操作系統的特征
並發
兩個或兩個以上的事件同一時間間隔內發生
宏觀上同時發生
微觀上交替發生
並行:兩個或多個事件同一時刻內同時發生
操作系統並發是指計算機系統同時存在着多個運行着的程序
共享
系統內的資源可供內存中的多個並發執行的進程共同使用
兩種共享方式:
互斥共享 提供給多個進程使用,但一個時間段內只允許一個進程訪問該資源
同時共享 允許一個時間段內由多個“進程”(宏觀上同時、微觀上可能是交替的對資源進行訪問)同時對他們進行訪問
並發和共享的關系
互為存在條件的
虛擬
指把一個物理上的實體變為若干個邏輯上的對應物。物理實體是實際存在的、邏輯上的對應物是用戶感受到的
微觀上處理機在各個微小的時間段內交替的為各個進程服務
虛擬技術:
空分復用技術(虛擬存儲器技術
時分復用技術(虛擬處理器
如果無並發性、則一個時間段內系統中只能運行一道程序,就失去了虛擬性的意義
無並發,談不上虛擬
異步
在多道程序環境下,允許多個程序並發執行,但資源有限,進程的執行不是一貫到底的,而是走停不斷的,以不可預知的速度向前推進
失去並發性、只能串行的處理各個進程,每個進程的執行會一貫到底
只有並發、才可能有異步
發展和分類
手工操作階段
缺點:
用戶獨占全機、人機速度矛盾導致資源利用率極低
批處理階段
單道批處理系統
引用脫機輸入/輸出技術(用磁帶完成),並監督程序負責控制作業的輸入、輸出
優點:資源利用率有所提升
缺點:內存中只能有一道程序運行,只有該程序運行完才能進入下一道程序,cpu有大量的時間在空閑等待I/O完成。資源利用率低
多道批處理系統
優點:多道程序並發執行、共享計算機資源。資源利用率提高,cpu和其他資源保持忙碌的狀態、系統吞吐量增大
缺點:沒有人機交互,用戶時間響應時間長
分時操作系統
計算機以時間片為單位,輪流為各個用戶、作業服務,各個用戶可通過終端與計算機進行交互
優點:
用戶響應請求可被及時響應、解決了人機交互的問題
允許多用戶同時使用一台計算機,並且對計算機的操作相互獨立,感覺不到他人的存在
缺點:
不能有限處理一些緊急任務
循環用戶,不區分任務的緊急性
實時操作系統
主要優點:
能夠響應一些緊急任務、某些進階任務不需要時間排隊
在實時操作系統的控制下、計算機系統接受到外部信號后及時處理、在嚴格的時間限制內處理完成事件
主要特點:及時性、可靠性
網絡操作系統
能把各個計算機有機的結合起來,實現數據傳送等功能,實現網絡中各個資源的共享(文件貢獻)和各台計算機之間的通信(win net典型的網絡操作系統、網站服務器就可以使用
分布式操作系統
分布性和並行性
系統中各台計算機地位相同,任何工作都可以分布在這些計算機上,由他們並行、協同完成這個任務
個人計算機操作系統
win xp
macos

OS的運行機制和體系結構
指令
什么是指令?
例如C語言代碼翻譯成機器語言指令的二進制讓計算機識別從而運行
就是處理器能識別、執行的最基本命令
特權指令:不允許用戶程序使用
非特權指令:例如普通的運算指令
cpu怎樣判斷是否執行特權指令?
用戶態此時cpu只能執行非特權指令
核心態非特權、特權都可執行
程序狀態寄存器(PSW)中的某標志位來標識當前處理器處於什么狀態
內核程序
系統的管理者,既可以執行特權指令,也可以執行非特權指令,運行在核心態
應用程序
為了確保系統正常能安全的運行,普通應用程序只能執行非特權指令,運行在用戶態
操作系統內核
原子性:要么執行,不可被中斷、要么不執行
內核時計算機配置上的底層軟件,時是操作系統最基本、最核心的部分
實現操作系統內核功能的那些程序就是內核程序
上圖與硬件緊密的模塊
可能屬於內核,對不同的操作系統,對內核功能的划分可能不一樣
操作系統的體系結構:大內核、微內核
操作系統的體系結構

知識點:
特權指令只能在核心態下執行
內核程序只能在核心態下執行
中斷和異常
中斷的概念和總用
當中斷發生時,cpu會立即進入核心態
當中斷發生后,當前運行的進程暫停運行,並由操作系統的內核對中斷進行處理
對不同的中斷信號,會進行不同的處理
發生中斷,意味着要操作系統介入,開展管理工作。由於操作系統的管理工作(e:進程切換、分配I/O設備等)需要使用特權指令,因此cpu要從用戶態轉換為核心態。中斷可以使cpu從用戶態切換為核心態,使操作系統獲得計算機的控制權。有中斷,才能實現多道程序並發執行
用戶態到核心態切換怎樣實現的
用戶態到核心態 是通過中斷實現的,並且中斷是唯一途徑
核心態到用戶態 通過執行一個特權指令,將程序狀態字(PSW)的標志位設置為”用戶態“
中斷的分類
信號來源判斷是內還是外中斷

另一種分類

外中斷的處理過程

執行每個指令后,cpu都會檢查是否當前有外部中斷信號
如果檢測到外部中斷信號,則需要保護被中斷進程的cpu環境
根據中斷信號類型轉入相應的中斷處理程序
恢復本來的cpu環境並退出中斷,返回原進程繼續往下執行
系統調用
什么是系統調用
應用程序通過系統調用請求操作系統的服務。系統中的各種共享資源都由操作系統統一掌管,因此在用戶程序中,凡是與資源有關的操作(存儲分配、i/o操作、文件管理等)都必須通過系統調用的方式向操作系統提出服務請求,由操作系統代為完成。這樣可以保證系統的穩定性和安全性,防止用戶進行非法操作
作用
操作系統提供給應用程序使用的接口
應用程序通過系統調用來請求獲得操作系統的服務
系統調用會使處理器從用戶態進入核心態

哪些操作需要系統調用完成?
凡是與資源有關的操作、會直接影響到其他進程的操作,一定需要操作系統接入,即需要通過操作系統調用來實現
一些系統調用的相關處理需要在核心態下進行
系統調用和庫函數的區別

反過來就是
應用程序通過編程語言進行對庫函數的調用,從而更方便的對操作系統調用
系統調用的過程
高級語言通過編譯成匯編語言

傳遞系統調用參數---執行陷入指令(用戶態)---執行系統調用相應服務程序(核心態)---返回用戶程序
陷入指令在用戶態執行的,但執行過后立即引發一個內中斷,使cpu進入核心態
發出系統調用請求實在用戶態,而對系統調用的相應處理在核心態下進行
陷入指令的作用是唯一一個只能用戶態下執行,而不可在核心態執行的指令

















