計算機操作系統——概述

基本特徵

 

1. 併發

併發是指宏觀上在一段時間內能同時運行多個程序,而並行則指同一時刻能運行多個指令。

並行需要硬件支持,如多流水線、多核處理器或者分佈式計算系統。

操作系統通過引入進程和線程,使得程序能夠併發運行。

 

2. 共享

共享是指系統中的資源可以被多個併發進程共同使用。

有兩種共享方式:互斥共享和同時共享。

互斥共享的資源稱爲臨界資源,例如打印機等,在同一時刻只允許一個進程訪問,需要用同步機制來實現互斥訪問。

 

3. 虛擬

虛擬技術把一個物理實體轉換爲多個邏輯實體。

主要有兩種虛擬技術:時(時間)分複用技術和空(空間)分複用技術。

多個進程能在同一個處理器上併發執行使用了時分複用技術,讓每個進程輪流佔用處理器,每次只執行一小個時間片並快速切換。

虛擬內存使用了空分複用技術,它將物理內存抽象爲地址空間,每個進程都有各自的地址空間。地址空間的頁被映射到物理內存,地址空間的頁並不需要全部在物理內存中,當使用到一個沒有在物理內存的頁時,執行頁面置換算法,將該頁置換到內存中。

 

4. 異步

異步指進程不是一次性執行完畢,而是走走停停,以不可知的速度向前推進。

 

基本功能

 

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();

 

大內核和微內核

 

1. 大內核

大內核是將操作系統功能作爲一個緊密結合的整體放到內核。

由於各模塊共享信息,因此有很高的性能。

 

2. 微內核

由於操作系統不斷複雜,因此將一部分操作系統功能移出內核,從而降低內核的複雜性。移出的部分根據分層的原則劃分成若干服務,相互獨立。

在微內核結構下,操作系統被劃分成小的、定義良好的模塊,只有微內核這一個模塊運行在內核態,其餘模塊運行在用戶態。

因爲需要頻繁地在用戶態和核心態之間進行切換,所以會有一定的性能損失。

 

 

中斷分類

 

1. 外中斷

由 CPU 執行指令以外的事件引起,如 I/O 完成中斷,表示設備輸入/輸出處理已經完成,處理器能夠發送下一個輸入/輸出請求。此外還有時鐘中斷、控制檯中斷等。

 

2. 異常

由 CPU 執行指令的內部事件引起,如非法操作碼、地址越界、算術溢出等。

 

3. 陷入

在用戶程序中使用系統調用。

 

轉自:https://github.com/CyC2018/CS-Notes/blob/master/notes/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%20-%20%E6%A6%82%E8%BF%B0.md

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章