本系列博文是西安電子科技大學出版社出版的《計算機操作系統》(第三版)湯小丹 樑紅兵 哲鳳屏 湯子瀛 一書的讀書筆記
特此註明爲讀書筆記,若有侵權,敬請通知本人
1.1操作系統的目標和作用
1.1.1 操作系統的目標
1. 有效性:
(1)提高了系統資源利用率,如使空閒的CPU和I/O保持忙碌狀態,有效的內存分配策略節省存儲空間等
(2)提高了系統的吞吐量
2. 方便性: 便於使用,如引入GUI操作界面
3. 可擴展性: 能適應於不同的計算機硬件、體系結構
4. 開放性: 遵循開放系統互聯(OSI) 的標準,兼容軟硬件,方便實現計算機互聯
1.1.2 操作系統的作用
1. 用戶和硬件間的接口:(1)命令方式 (2)圖形界面方式(3)系統調用(在應用程序中)
2. 管理計算機資源:如內存的分配與回收、CPU管理、I/O管理、文件管理等等
3. 抽象計算機系統資源:隱藏計算機硬件的細節,向上提供高級抽象
1.1.3 發展動力
1. 對計算機資源利用率的追求:如能提高I/O設備和CPU利用率的SPOOLing系統,提高存儲器系統利用率的虛擬存儲技術
2. 方便用戶
3. 硬件的更新迭代
4. 計算機體系結構的發展
1.2 操作系統的發展過程
無操作系統的計算機操作系統
問題:CPU和I/O之間速度鴻溝太大,CPU的空閒率高
解決方法:脫機輸入輸出技術(Off-Line I/O)
優點:
(1)減少了主機CPU的空閒時間(外圍機完成了輸入輸出設備和磁盤的連接)
(2)提高了I/O的速度,CPU在運行中需要數據的時候,可以從高速的磁帶/磁盤中將數據調入內存
單道批處理系統
相比”無操作系統的計算機操作系統“多了一個監督程序(Monitor)
(1)自動性
(2)順序性
(3)單道性(內存中僅有一道程序在運行)
多道批處理系統
精髓:由調度算法從隊列中選取若干作業調入內存,共享CPU等系統資源
好處:
(1)資源利用率高(CPU、內存、I/O)
(2)吞吐量大
壞處:
(1)平均週轉時間長(作業仍需要排隊,比如就算A申請I/O中斷了,CPU也會先跑B,不會跑C)
(2)無交互能力(提交後,直到其完成)
要解決的問題:處理器、內存、文件、I/O、作業的管理問題
分時系統
精髓:一主機,多終端共享資源,時間片
要解決的問題:及時接收,及時處理(重要,影響人機交互體驗)
實時系統
精髓:系統能及時響應外部事件的請求,在規定的時間內完成處理。相比分時系統更強調“可靠性”,不能有差錯。
微機操作系統的發展
1. 單用戶單任務操作系統:一次一個用戶,一次一個程序,例:MS-DOS
2. 單用戶多任務操作系統:一次一個用戶,若干程序併發執行,例:windows
3. 多用戶多任務操作系統:多個用戶終端連接一個主機,每個用戶有若干程序。每個用戶被分配時間片,在自己的時間片中,用戶 程序併發執行,例:UNIX
1.3 操作系統的基本特性
1.3.1 併發性
1. 並行、併發
並行:多個事件在同一時刻發生;併發:多個事件在同一個時間段內發生(一個時刻仍只允許發生一個事件)
只有在多處理器架構上,纔有並行。
2. 進程
爲什麼引入進程:爲了併發。如果沒有併發,程序是一個執行單元,要麼做完,要麼一點也不做,就變成單任務了。多個進程之間可以併發執行、交換信息
3. 線程
進程擁有自己的資源,調度的時候有一定開銷。爲什麼引入線程:爲減少調度開銷,提高併發度。一個進程有多個線程,它們共享這個進程的資源。結果:進程是分配資源的基本單位;線程是運行和調度的基本單位。
1.3.2 共享性
概念:系統資源供多個在內存中的併發執行的進程共享
實現方式:
1. 互斥共享
2. 同時訪問(單處理器上同時間段,不同時刻訪問;多處理器上可以實現同時刻訪問(真正的同時))
1.3.3 虛擬技術
概念:使一個物理實體對應多個邏輯實體
1. 時分複用技術
1)虛擬處理器技術(分時間片供多個用戶使用,就好像感覺每個用戶都有一個處理器爲它們服務一樣)
2)虛擬設備技術(比如打印機)
2. 空分複用技術
1)虛擬磁盤技術(一個盤片分成幾個卷,如windows上面的C、D、E盤等)
2)虛擬存儲器技術(在邏輯上擴大存儲器容量,後面在將存儲器一章的時候,會詳細介紹)
1.3.4 異步性
內存中有各種作業,處理器密集型的,I/O密集型的。由於各種原因,進程完成的時間是不可預知的,這就是進程的異步性。
1.4 操作系統的主要功能
1.4.1 處理器的功能
1. 進程控制
主要功能:創建,撤銷,終止進程;控制進程運行中的狀態轉化;爲進程創建,撤銷,終止線程
2. 進程同步
主要功能:協調多個進程(含線程)的運行
兩種方式:
(1)進程互斥
(2)進程同步
實現方法:最簡單:鎖,最常用:信號量
3. 進程通信
相互合作的進程之間需要交換信息
4. 調度
(1)作業調度
從後備作業隊列中,按算法選出若干作業,調入內存,建立進程,按算法插入就緒進程隊列
(2)進程調度
從就緒進程隊列中,按算法選出一個進程(一個處理器上),分配處理器,保存上下文信息,執行。
(另外,如果是在 “線程作爲運行和調度的基本單位” 的多線程OS中,就把上面的“進程”換成線程就好了。)
1.4.2 存儲器管理功能
1. 內存分配
作用:爲要運行的程序分配內存空間。
分類:
靜態內存分配:作業的內存空間在裝入時已確定,不得更改;也不準作業在內存中移動
動態內存分配:裝入時有一個大概的基本空間,後面可以再申請;允許作業在內存中移動
2. 內存保護
作用:確保程序都只在自己的那塊內存中運行
實現:由硬件作越界檢查,發現越界後與軟件配合處理
3. 地址映射
作用:把地址空間中的邏輯地址轉換爲內存空間中對應的物理地址,讓程序正確運行。
4. 內存擴充
作用:允許內存中有更多的程序併發執行
實質:用一些技術使內存能裝入更多的程序來併發執行,實際上並沒有提高內存的容量。
實現:
(1)請求調入功能:只裝入程序的一部分和部分數據就可以讓程序執行。運行到需要程序別的部分和新數據了,再叫OS從磁盤調入。
(2)置換功能:發現內存中沒有足夠空間來容納需要調入的程序和數據了,叫OS看看能不能把內存中暫時不用的程序和數據調回磁盤去,騰出空間納入亟需使用的程序和數據。
1.4.3 設備管理功能
1. 緩衝管理
2. 設備分配
3. 設備處理
1.4.4 文件管理功能
1. 存儲空間管理2. 目錄管理
3. 讀/寫管理、保護
1.4.5 OS和用戶間的接口
(1)用戶接口(2)程序接口(系統調用)