第一章 操作系統引論--筆記

本系列博文是西安電子科技大學出版社出版的《計算機操作系統》(第三版)湯小丹 樑紅兵 哲鳳屏 湯子瀛 一書的讀書筆記

特此註明爲讀書筆記,若有侵權,敬請通知本人



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)程序接口(系統調用)


1.5 OS結構設計


1.5.1 傳統的操作系統結構


1. 無結構操作系統 :適用於小系統,功能拓展起來,代碼量一多就很難管理。

2.模塊化操作系統 :模塊化,有助於系統拓展。但是模塊化開發之間的順序不確定--無序性。

3. 分層式操作系統:改進模塊化操作系統,使模塊之間的開發有序,但是代價是降低系統的效率。

1.5.2 客戶-服務器 模式


優點:
數據分佈處理:不用全放在一個主機上、
靈活:改變一個客戶機上的軟件不會對其他的客戶機和服務器造成影響

缺點:不可靠,一個服務器故障,導致多個客戶機請求失敗、佈置格局費時--服務器負荷太重,會增加響應時間

1.5.3 面向對象程序設計


特點:對象(模擬現實)--易於理解、繼承--可擴展性、封裝--隱蔽性

1.5.4 微內核OS結構


1. 概念:
1)微內核足夠小,僅實現與硬件相關的基本功能,作爲基礎。
2)基於“客戶-服務器”模式。客戶指用戶進程,服務器指處理這個進程的服務器,如進程服務器。微內核是來調控它們的交互               的,彷彿獨立於模式之外的“神之手”。
3)底層機制放在微內核中,高層的策略算法放在OS的其他部分。
4)也是使用面向對象技術編程的

2. 功能:
1)進/線程管理 2)低級存儲器管理(硬件相關) 3)中斷和陷入管理

3. 優點:
1)可擴展:OS中增加一個新的服務器,就方便地擁有新功能了。
2)可靠:有微內核的調控,客戶進程或者服務器出問題了,也不會影響到別的部分
3)可移植:微內核和硬件相關,移植的時候基本只需改動微內核,而微內核代碼量小,因此可移植性高。

4. 問題:
由於3優點中的2)可靠,意味着客戶進程和服務器交互的時候,常常需經微內核調控,上下文切換成本高,系統運行效率受影響。

發佈了36 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章