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