學習資源: https://www.bilibili.com/video/av46264774/
一、操作系統概述
1.1 操作系統初步認識
- 操作系統與普通軟件有什麼區別? 功能上的區別(見1.2 功能)
- 沒有安裝操作系統,計算機能運行程序嗎? 能(bios)。
- 沒有安裝操作系統,普通用戶能正常使用嗎? 不能
基本功能:
- 提供操作界面
- 控制程序運行
- 管理系統系統資源
- 配置系統參數
- 監控系統狀態
- 工具軟件集合
思考:
- hello.exe 文件如何存放? (硬盤)
- hello.exe 如何啓動?
- 如何爲hello.exe分配內存? (內存)
- printf如何輸出字符串? (設備)
- while 死循環會不會獨佔CPU?
- 程序結束如何退出系統? (釋放內存等)
1.2 操作系統功能和定義
功能:
-
進程管理(CPU管理), 多個進行併發運行
- 進程控制: 創建、暫停、喚醒、撤銷
- 進程調度: 調度策略,優先級
- 進程通信: 進程間通信
-
內存管理
- 內存分配
- 內存共享
- 內存保護
- 虛擬內存
思考
-
有沒有遇到因爲內存小導致運行失敗的情況?
可能運行速度慢,但一定可以運行
-
一個循環程序,不斷的申請(malloc) 100M內存,在內存1G的機器上,一共可以申請多少次?
答: 實測可以19次, 1.85G內存,大於實際內存 1G。而且應用程序、操作系統沒有崩潰。
-
假如5個相同的上述程序同時運行呢?
操作系統仍然不會崩潰。每個程序的申請內存依然是1.85G。
-
設備管理
- 設備的分配和調度
- 設備的無關性
- 設備傳輸控制(設備和CPU,設備和內存)
- 設備驅動
-
文件管理
- 存儲空間管理(硬盤)
- 文件的操作
- 目錄的操作
- 文件和目錄的存取權限管理
-
網絡管理
定義: 操作系統是一個大型系統程序
- 提供用戶接口(圖形界面、命令),方便用戶控制計算機
- 負責爲應用程序分配和調度軟硬件資源,並控制與協調應用程序併發活動,幫助用戶存取和包含信息。
操作系統的地位:
1.3 操作系統發展歷史
用戶需求提升和硬件技術進步是操作系統發展的兩大動力。
計算機硬件發展的四個典型階段
- 電子管時代 1946-1955
- 晶體管時代 1955-1965
- 集成電路時代 1965-1980
- 大規模集成電路時代 1980-
速度、容量、穩定性、可靠性都得到逐步提高。
操作系統發展的四個典型階段
-
手工操作(無操作系統) 50年代早期
結構特點:
- 硬件: 電子管、接線面板
- 程序: 二進制程序,打孔: 紙袋和卡片
使用特點:
- 程序準備、啓動、結束: 手工處理,繁瑣耗時
缺點:
- 效率低: CPU有效運行時間極低
- 用戶獨佔
- 缺少交互
-
單道批處理系統 50年代
- 管理員事先將多個作業輸入到磁盤形成作業隊列
- 操作系統依次自動處理隊列中的每個作業(裝入-運行-撤出…)
- 程序的裝入和撤出: 自動完成,效率高
- 運行完畢,通知用戶取結果
特點:
- 批量: 作業隊列
- 自動: 識別作業,裝入和撤出
- 單道: 依次、串行
外設與CPU交替空閒和忙碌,CPU和外設利用率低。
-
多道批處理系統 60年代初
在內存中存放多道程序,當某道程序因爲某種原因(例如執行I/O操作時)不能繼續運行而放棄CPU時,操作系統便調度另一程序投入運行。這樣可以使CPU儘量忙碌提高系統效率。
- 提高系統CPU利用率
- 提高系統吞吐量
A,B兩道程序相互穿插運行,使CPU和外設都儘量忙碌。
特點:
- 多道: 內存同時存放多道程序
- 並行: 宏觀上
- 串行: 微觀上
缺點:
-
作業處理時間長
-
交互能力差
-
運行過程不確定
-
分時系統 60年代中
1.4 分時技術與分時操作系統
60年代硬件的兩個重大進展:
- 中斷技術 CPU收到外部信號(中斷信號)後, 停止當前工作,轉去處理該外部事件,處理完畢後回到原來工作的中斷處(斷點)繼續原來的工作。
- 通道技術 專門處理外設與內存之間的數據傳輸的處理機
分時操作系統的背景
- 事務性任務的湧現
- 交互性高
- 響應快速
- 要求支持多任務、多用戶
- 多終端計算機
- 高性能計算機(運算, CPU和內存) + 多個終端(輸入和顯示)
- 主機採用分時技術輪流爲每個終端服務,每個終端都感覺到是“獨佔”主機。
概念
- 主機以很短的"時間片"爲單位,把CPU輪流分配給每個終端使用,直到全部作業被運行完。
- 由於時間片很短,在終端數量不多的情況下,每個終端都能重新獲得CPU,使得每個終端都能得到及時響應。
- 等待週期 = 時間片 x 終端數量
分時系統的特點
- 多路調製性,多用戶聯機使用同一臺計算機
- 獨佔性, 用戶感覺獨佔計算機
- 交互性,及時響應用戶的請求
UNIX第一個實用化的分時系統操作
- 實現操作系統的可移植性
- 實現了硬件無關性
- 引進了"特殊文件"的概念: 把外設看作文件,實現對外設統一管理
1.5 典型操作系統類型
操作系統的進一步發展(分時系統的衍化)
- 微機操作系統 (windows, macos, linux)
- 多處理機操作系統
- 網絡操作系統 (普通操作系統 + 網絡通信 + 網絡服務)
- 實時操作系統 (某些任務要優先緊急處理, 強調作業完成的時限)
- 嵌入式操作系統 (andriod, linux)