【作業系統筆記】第一章
作業系統第一章
資料來源:《計算機作業系統 第四版》 湯小丹版本
作業系統課程 國家級精品課 電子科技大
作業系統概念引入
定義:
作業系統——是邏輯上的第一層軟體,它是對硬體系統功能的首次擴充,是填補人與機器之間的鴻溝
作業系統:
時計算機系統中的一個系統軟體,管理和控制計算機系統中的硬體和軟體資源,合理地組織計算機的工作流程,以便有效利用這些資源為使用者提供一個功能強、使用方便的工作環境,從而在計算機與使用者之間起到介面的作用
軟體的分類:
- 應用軟體
- 系統軟體
對作業系統的認識:
一. 從使用者的觀點來看作業系統
虛擬機器的觀點:
作業系統是建立在計算機硬體平臺上的虛擬機器器,它為應用軟體提供了許多比計算機硬體功能更強或計算機硬體所沒有的功能。(比方說,作業系統讓大的任務,分成一塊一塊,放在小的記憶體中,分批處理。使用者是無感知的)
作業系統在虛擬機器中充當管理員和協調員的角色,管理計算機的軟硬體資源,並協調多工、多程序的執行。
擴充:功能、計算機數量
使用者環境的觀點
計算機使用者使用計算機提供的使用者介面
計算機使用者:終端使用者、程式設計師。
如何實現?
使用者介面
命令介面:
使用者可通過該介面向作業發出命令以控制作業的執行。可分為聯機使用者介面和離線使用者介面。
聯機使用者介面:這是為連線使用者提供的,它由一組鍵盤操作命令及命令解釋程式所組成
(使用者和計算機聯絡起來控制——所以叫聯機使用者介面——一個命令一個命令輸入)
- 字元形式:靈活但是難記
- 選單形式
- 圖形形式
離線使用者介面:
批處理介面。
使用者用jcl把需要對作業進行的控制和干預,實現寫在作業說明書上,然後將作業聯通作業說明書一起提交給系統。當系統排程到該作業時,在呼叫命令解釋程式,對作業說明書上的命令,逐條地解釋執行。
(比方說.config檔案——所有的命令建一個檔案)
程式介面
程式介面
又叫程式程式設計介面。
該介面是為使用者程式在執行中訪問系統資源而設定的,是使用者程式取得作業系統服務的唯一途徑。
他是由一組系統呼叫組成的,每一個系統呼叫都是一個能完成特定功能的子程式,每當應用程式要求os提供某種服務(功能)時,便呼叫具有相應功能的系統呼叫。
- 不同的系統其呼叫形式不同
二. 是從系統設計者(系統分析員)的觀點來看作業系統
資源管理的觀點
該觀點認為,作業系統時計算機系統中各類資源的管理者,他負責分配、回收以及控制系統中各種軟硬體資源
- 監視資源
- 分配/回收資源
- 保護資源
根據自願的使用狀況、滿足資源請求、提高資源利用率,以及協調各程式和使用者對資源的使用衝突。
資源型別:
作業(任務)組織的觀點
該觀點認為,作業系統時計算機系統工作流程的組織者,他負責協調在系統中執行的各個應用軟體的執行次序。
用於巨型機和大型伺服器上,以批檔案方式提交作業,請求主機逐個執行
主機作業系統負責組織、協調各個作業的執行,報告執行結果或錯誤資訊。
減少了人工干預
作業系統的主要功能:
程序管理
程序管理(處理機管理):按照一定的演算法把處理機分配給程序(執行緒),並對其進行有效的管理和控制
程序控制:程序控制的主要功能是為作業建立程序、撤銷已結束的程序,以及控制程序在執行過程中的狀態轉換(在整個過程的執行過程中還要監管)
程序的同步:是為多個程序的執行進行協調
兩種協調方式:
程序互斥方式:這時址諸程序(執行緒)在對臨界資源(一次只能提供一個資源佔用的資源)進行訪問時,應採用互斥方式;
程序同步方式:指程序相互合作區完成共同的任務時,諸程序之間的協調
- 實現程序同步採用訊號量機制
3.程序通訊——是程序之間的資訊交換
當相互合作的程序(執行緒)處於同一計算機系統時,通常在他們之間時採用直接通訊方式,即由源程序利用傳送命令直接將資訊(message)掛到目標程序的訊息佇列上,以後由目標程序利用接受命令從其訊息佇列中取出訊息
4.程序排程——是從程序的就緒佇列中,按照一定的演算法,選出一新程序,把處理機分配給它,使程序投入執行。
儲存器管理
主要任務:
為多道程式的執行提供良好的環境,方便使用者使用儲存器,提高儲存器的綠用率以及能衝邏輯上擴充記憶體
儲存器管理功能:
1. 記憶體分配
- 靜態分配方式:每個作業執行之前分配好記憶體空間,在作業的整個執行期間不再改變。
- 動態分配方式:每個作業子執行前或執行中,均可申請新的附加記憶體空間,以適應程式和資料的動態增長。
記憶體分配的機制中的結構和功能
- 記憶體分配的資料結構,該結構用語記錄記憶體空間的使用情況(儲存控制塊——通過資料結構描述那塊佔了那塊沒佔。)
- 記憶體分配功能——為使用者程式分配記憶體空間
- 記憶體回收功能——當用戶不再需要的記憶體時,系統回收記憶體的功能
2.記憶體保護
保證每個程式都只在自己的記憶體空間內執行,彼此互不干擾。
實現的技術:
界限暫存器(軟體檢查):記下了某個程式的起始位置和結束位置。方式一:訪問一個地址,如果在起始位置和結束位置之間,你這個程式就可以訪問這個地址。方式二:或者起始位置知道了,這個程式的尺寸知道了,也可以控制。
越界檢查都有硬體支撐。
3. 地址對映
地址空間:
目標程式或裝入程式限定的空間,稱為”地址空間“。但願的編號稱為邏輯地址,又稱為相對地址(相對0而言)。
記憶體空間:
由記憶體中的一系列單元所限定的地址範圍稱為”記憶體空間“,其中的地址稱為”實體地址“
地址對映:
執行時,將地址空間中的邏輯地址轉換為記憶體空間中與之對應的無力地址,稱為地址對映。
4. 記憶體擴充
藉助於虛擬儲存技術
從邏輯上區擴充記憶體容量,使使用者所感覺到的記憶體容量比實際記憶體容量大的多。
擴充記憶體必須具有記憶體擴充機制
- 請求調入功能。在程式執行過程中,若所需的程式和資料尚未裝入記憶體,可由os從磁碟中將所需部分調入記憶體,繼續執行。
- 置換功能。將記憶體中的一部分暫時不用的程式和資料調出道磁碟上,然後將所需調入的部分裝入記憶體。
————實現小空間執行大程式
裝置管理
主要任務:
是完成使用者程序提出的i/o請求;為使用者程序分配其所需的I/O裝置;提高cpu和I/O裝置的利用率;提高I/O速度;方便使用者使用I/O裝置。
裝置管理具有的功能:
1. 裝置處理程式(裝置驅動程式)
基本任務:用於實現cpu和裝置控制器之間的通訊,即由cpu向裝置控制器發出i/o命令,要求他完成制定的i/o操作。
2. 裝置分配:
基本任務:是根據使用者程序的i/o請求,按照某種裝置分配策略,位置分配其所需的裝置,不同的裝置型別(獨佔、共享)而採用不同的裝置分配方式。
3.緩衝管理
有效滴緩和cpu和i/o裝置速度不匹配的矛盾,不同的
檔案管理
主要任務:
是對使用者檔案和系統檔案進行管理,以方便使用者使用,並保證檔案的安全性。
檔案管理的主要功能
1.檔案儲存空間的管理:
是對諸多檔案及檔案的儲存空間,實施統一的管理。基於資料結構(mcb)對儲存空間進行分配和回收的功能。
2.目錄管理:
為每個檔案簡歷目錄項,並對眾多的目錄項加一有效的組織與管理(例如,按名存取,檔案共享)
3.檔案的讀/寫管理和保護
- 檔案的讀/寫管理:是根據使用者的請求,從外存中讀取資料或將資料寫入外存
- 檔案保護
作業管理
作業系統的安全
作業系統的基本特徵:
- 併發
- 共享
- 虛擬
- 不確定性
併發是最重要的特徵,其他特性都以併發為前提
沒有併發,哪來共享(大家執行,存在共享)空間不夠怎麼辦?需要虛擬。當前到底哪一個任務在執行?所以以不確定的方式在執行。
所以,併發誓最重要的特徵。
併發:
併發——並行性和併發性,併發執行的過程
並行性是指兩個或多個時間在同一時刻發生
兩個任務總有某一時刻在同時發生(cpu角度)
併發性是指兩個或多個時間在同一時間間隔內發生
在cpu來看,兩個任務是交替進行的,但是在大一點的巨集觀角度看,他們是在一段時間內發生的,在這個時間段內是同時發生的
任務共行
從巨集觀上看,任務共性是指系統中有多個任務同時執行
從微觀上看,任務共性是指單處理機系統中的任務併發( Task Concurrency:即多個任務在單個處理機上交替執行)或多處理機系統中的任務並行(Task Parallelism:即多個任務在多個處理機上同時執行)
共享
所謂共享是指系統中的資源可供記憶體中多個併發執行的程序共同使用。
1. 互斥共享方式
- 把一段時間內只允許一個程序訪問的資源,稱為臨界資源。
- 系統中臨界資源可以提供給多個程序使用,但一次僅允許一個程序使用,稱為互斥共享方式。
2.同時使用的方式
- 從巨集觀上看,資源共享是指多個任務可以同時使用系統中的軟硬體資源
- 從微觀上看,資源共享是指多個任務可以交替互斥地使用系統中的某個資源,例如磁碟。
虛擬
所謂虛擬是指通過某種技術把一個物理實體變為若干個邏輯上的對應物。
- 虛擬處理機:分時實現
- 虛擬裝置:spooling技術(比如印表機)
- 虛擬儲存器:虛擬儲存管理實現(小空間執行大程式)
不確定性:
- 執行結果的不確定性(如何保證一致性就成了問題)
- 非同步性——是指程序以非同步的方式執行,程序是以人們不可預知的速度向前推進。
作業系統的發展
一、單道批處理系統
- 在記憶體中僅存一道作業執行,其他任務都在磁碟上,執行結束或出錯,才呼叫另一道作業執行
- 單道批處理系統主要特徵:自動性、順序性、單道性。
- 單道批處理系統主要優點:減少人工操作,解決了作業的自動接續
- 單道批處理系統主要缺點:平均週轉時間長,沒有互動能力
二、多道批處理系統
多道程式的概念:
在記憶體中存放多道作業執行,執行結束或出錯,自動排程記憶體中的另一道作業執行。
多道程式帶來的好處:
- 提高cpu的利用率
- 提高記憶體和I/O裝置屢用屢
- 增加系統吞吐率
主要特徵:多道性,無序性,排程性(程序排程和作業排程)
- 多道處理的主要優點:提高了資源利用率和吞吐能力
多道批處理的主要缺點:平均週轉時間長,沒有互動能力
單道和多道的比較
三、分時作業系統
一、 產生:
使用者需要:人機互動、共享主機、便於使用者上機
分時系統人是可以互動的。使用者之間不影響。
二、 分時系統的實現方法
簡單分時系統
執行一個時間片後,停下來,再來下一個程式,再執行一個時間片,再來下一個程式。。。所有的程式都沒有結束。又開始從頭來。
具有“前臺”和“後臺”的分時系統(通用作業系統)
在前臺的作業仍然是按照分時執行。在a調出b掉進的時候,cpu空間,這時候執行後臺的作業。將c開始執行
。雖然c開始在執行,b的優先順序高,只要前臺有作業,就執行前臺,c停止了。但是c還貯存在記憶體中,又開始排程作業的空隙時,c又開始執行了。
感覺後臺作業就跟狗一樣。。。人不要了過來叼一口。。。
對於前臺:安時間片執行
對於後臺:在記憶體中按照批處理
多道分時系統
三、 分時系統的特徵:
- 多路性:多個使用者分時使用一臺計算機
- 獨立性:獨立執行,不混淆,不破壞
- 及時性:系統能在很短的時間內得到回答
- 互動性:能實現人機對話
五、 影響響應時間的若干因素
簡單分時系統
使用者按照時間片進入的:
Ti(響應時間) =NQ+To.s +Twasp
N:使用者數
Q:時間片
To.s:系統開銷——管理時間——恢復環境的時間——改不了
Twap:資訊交換時間——程式掉進調出的時間
改善影響時間的方法:
採用重入碼減少資訊的對換量
採用虛擬儲存技術,減少資訊對換量
你這換的少啦,時間就能成倍所見
四、實時系統
定義:
所謂實時系統:是計算機及時響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有事實裝置和實施任務協調一致的執行。
分類:——主要考慮響應時間——發出請求 立即響應
實時控制系統(硬)
實時資訊處理系統(軟)
eg:
導彈傳送系統
實時系統與分時系統特徵的比較
- 多路性:能對多個物件進行控制
- 獨立性:資訊採集和對物件的控制也都是彼此互不干擾的。
及時性:資訊查詢系統對實時性的要求是依據人所能接受的等待時間確定的。二多媒體系統實時性的要求是,播放出來的音樂和電視能令人滿意。實時控制系統的實時性則是以控制物件所要求的截止時間來確定的,一般為秒級到毫秒級
互動性:優先互動,互動太多會影響進度
- 可靠性:高可靠,還有過載防護能力——雙機熱備份
作業系統結構
1、模組化os 結構
- 使用分塊結構的系統包含若干module(模組);其中,每一塊實現一組基本概念一起與其相關的基本屬性
- 塊一塊之間的相互聯絡:
所有各塊的實現均可以任意引用其他各塊所提供的概念及屬性
優缺點:
優點:
- 提高了os設計的正確性、可理解性和可維護性
- 增強了os的可適應性
- 加速了os的開發過程
缺點:
- 對模組的劃分及對介面的規定要精確描述很困難
- 從功能觀點來劃模組時,未能將共享資源噩耗獨佔資源加以區別
2、分層式
使用分層結構包含若干layer(層);其中,每一層實現一組基本概念以及與其相關的基本屬性
- 層一層之間的相互關係
- 所有各層的實現不依賴其以上各層所提供的概念及其屬性,只依賴其直接下層所提供的概念及屬性
- 每一層均對其上各層隱瞞其下各層的存在
bois:基本輸入輸出系統——硬體
dos:單任務單使用者的系統——很多都是對磁碟的操作。對上提供程式介面,對下層依賴模組呼叫
command:使用者的命令