基本特征
并發
共享
虛拟
異步
基本功能
程序管理
記憶體管理
檔案管理
裝置管理
系統調用
宏核心和微核心
中斷分類
外中斷
異常
陷入
1.并發
并發:宏觀上,一段時間能運作多個程式,實際上是時間片輪轉
并行:同一時刻運作多個指令,需要硬體支援,如多流水線,多核處理器或分布式計算系統
作業系統引入程序和線程,使程式能夠并發運作
2.共享
共享:系統中的資源可以被多個并發程序共同使用
互斥共享:互斥共享的資源稱為臨界資源,如列印機,在同一時間隻允許一個程序通路,需要同步機制來實作互斥通路
同時共享
3.虛拟
虛拟技術:把一個實體實體轉化為多個邏輯實體
時分複用技術 && 空分複用技術
多個程序在處理器上并發執行使用的時分複用技術,每個程序輪流占用處理器,每次執行一小個時間片并快速切換
虛拟記憶體使用了空分複用技術,它将實體記憶體抽象為位址空間,每個程序都有各自的位址空間。位址空間的頁被映射到實體記憶體,位址空間的頁并不需要全部在實體記憶體中,當使用到一個沒有在實體記憶體的 頁時,執行頁面置換算法,将該頁置換到記憶體中。
4.異步
異步:程序不是一次性執行完畢,而是走走停停,以不可知的速度向前推進。
異步是相對同步而言的,同步就是等待,異步就是不等待。
程序管理:程序控制,程序同步,程序通信,死鎖處理,處理機排程
記憶體管理:記憶體配置設定,位址映射,記憶體保護與共享,虛拟記憶體
檔案管理:檔案存儲空間的管理,目錄管理,檔案讀寫管理和保護
裝置管理:完成使用者的I/O請求,友善使用者使用各種裝置,并提高裝置的使用率等。主要包括緩沖管理,裝置配置設定,裝置處理,虛拟裝置等。
如果一個程序在使用者态需要使用核心态的功能,就進行系統調用進而陷入核心,由作業系統代為完成
linux的系統調用主要有以下這些:
Task
Commands
程序控制
fork(); exit(); wait();
程序通信
pipe(); shmget(); mmap();
檔案操作
open(); read(); write();
裝置操作
ioctl(); read(); write();
資訊維護
getpid(); alarm(); sleep();
安全
chmod(); umask(); chown();
宏核心:将作業系統功能作為一個緊密結合的整體放到核心。由于各子產品共享資訊,是以有很高的性能。
微核心:由于作業系統不斷複雜,是以将一部分作業系統功能移除核心,進而降低核心的複雜性。移出的部分根據分層的原則劃分成若幹服務,互相獨立。
在微核心結構下,作業系統被劃分成小的、定義良好的子產品,隻有微核心這一個子產品運作在核心态,其餘子產品運作在使用者态。因為需要頻繁地在使用者态和核心态之間進行切換,是以會有一定地性能損失。
中斷分類
外中斷:由CPU執行指令以外的事件引起,如I/O完成中斷,表示裝置輸入/輸出處理已經完成,處理器能夠發送下一個輸入/輸出請求。此外還有時鐘中斷、控制台中斷等。
異常:由CPU執行指令以内的事件引起,如非法操作碼、位址越界、算術溢出等。
陷入:在使用者程式中使用系統調用。
參考資料:https://github.com/CyC2018/CS-Notes/blob/master/notes/