第四章 作業系統
1.作業系統概述
桌面常見四大作業系統
windows Mac Linux Unix
windows
*Windows作業系統
*微軟公司首次在PC機上嘗試圖形介面,1985年發行
*基於MS-DOS
Mac
*Mac系統是基於Unix核心的圖形化作業系統
*蘋果產品專屬作業系統
Linux
*Linux作業系統可以用在很多硬體中,例如路由器,手機,電腦,視訊遊戲控制檯等。問們最常用的安卓就是以Linux為基礎開發的。
常用的手機作業系統
Symbian OS-昨日皇者
-硬體要求低,省電,不適用於觸控式螢幕。
蘋果IOS——高貴華麗
-功能強大,系統穩定
-設計風格簡潔
-價格過高,過於封閉,軟體收費。
Windows Phone——全新面貌
-優點:易用性,有內建office套件和Outlook;
-缺點:應用軟體少
BlackBerry——高階商務
-穩定性非常好
安卓——當今潮流
-基於Liunx作業系統
-優點:開源,聯盟,軟體豐富,免費
-缺點:系統碎片化,軟體質量參差不齊
Harmony(鴻蒙)OS
-全新的面向全場景的分散式作業系統
-創造一個超級虛擬終端互聯的世界,將人,裝置,場景有機地聯絡在一起。
-目前已經應用到華為智慧屏,華為手錶上。
基本功能
提供操作介面,控制程式執行,管理系統資源,配置系統引數,監控系統狀態,工具軟體集合。
1.2作業系統定義和功能
作業系統的定義
作業系統是一個大型系統程式
*提供使用者介面,方便使用者控制計算機
*負責為應用程式分配和排程軟硬體資源,並控制與協調應用程式併發活動,幫助使用者存取和保護資訊。
作業系統地地位
作業系統地功能一:程序管理
程序管理(CPU管理,處理機管理)
*程序控制:建立,暫停,喚醒,撤銷
*程序排程:排程策略,優先順序
*程序通訊:程序間通訊
作業系統的功能二:儲存管理
快取記憶體:緩解CPU的速度和記憶體之間的矛盾
作業系統的功能三:裝置管理
-管理計算機額系統中所有外圍裝置,主要任務控制裝置和CPU之間進行I/O操作
*裝置的分配和排程
*裝置傳輸控制
*裝置驅動
作業系統的功能四:檔案管理
-有效地組織檔案地儲存和修改,高效地提供檢索服務,並保護檔案安全
*儲存空間管理
*檔案地操作
*目錄的操作
*檔案和目錄的存取許可權管理
1.3作業系統的發展和分類
推動作業系統發展的主要動力
1.提高資源的利用率和系統性能
2.方便使用者:除錯程式,事務處理,服務非專業使用者
3.裝置技術的發展:CPU的位寬度,快取。。。
總而言之:出現問題,解決問題;提出需求,滿足需求
(1)手工操作(無作業系統)
電子管時代(1946-1955)
結構特點
硬體:電子管,接線面板(按鈕,開關)
程式語言:機器語言
輸入輸出:紙帶或卡片
使用特點
程式準備/啟動/結束:手工處理,繁瑣耗時
缺點
效率低:CPU有效執行時間極低
使用者獨佔:資源利用率低
主要矛盾-計算機處理能力的提高,手工操作的低效率(造成浪費)
提高效率的途徑-批處理
(2)單道批處理系統
50年代末-60年代中(電晶體)
*利用磁帶/磁碟把若干個作業分類變成作業執行序列,每個批作業由一個專門的監督程式(Monitor)自動依次處理。可使用匯編語言開發。
*優點:改善CPU和I/O裝置的效率,提高吞吐量
*缺點:磁碟/磁帶需要人工裝卸,作業需要人工分類,監督程式易遭到使用者程式的破壞(程式之間存在越界)
主要問題
*CPU和I/O裝置使用忙閒不均
-對計算為主的作業,外設空閒
-對I/O為主的作業,CPU空閒
(3)多道批處理系統
60年代中-70年代中(積體電路),利用多道批處理提高資源的利用率
*多道:記憶體中同時存放幾個作業
*併發:巨集觀上並行執行,微觀上序列執行
*使用者離線使用計算機:作業提交後直到結束或出錯,使用者無法互動
*當前執行的作業需做I/O處理時,CPU轉而執行下一個作業
優點
*資源利用率高:CPU,記憶體
*作業吞吐量達
缺點
*平均週轉時間長:短作業的週轉時間顯著增長
*互動性差:作業完成後或出錯,才能與使用者互動,不利於除錯和修改
多道批處理帶來的技術問題
作業排程:作業的現場儲存和恢復-儲存上下文
資源共享:資源的競爭和程序制約-互斥和同步
記憶體使用:提高記憶體使用率-覆蓋,交換和虛擬儲存
記憶體保護:系統和應用儲存區不可衝突-儲存保護
出現:作業管理,處理機管理,儲存管理,裝置管理,檔案管理
通道和中斷技術
《中斷技術
*CPU收到外部訊號(中斷訊號)後,停止當前工作,轉去處理該外部事件,處理完畢後回到原來工作的中斷處(斷點)繼續原來的工作
《通道技術
*專門處理外設與記憶體之間的資料傳輸的處理機。
《監督程式由於容易受到使用者程式的干擾,所以發展為執行系統,常駐記憶體。
(4)分時作業系統
*事務性任務的湧現
*互動性高,相應快速
*要求支援多工,多使用者
*多終端計算機
*高效能主機+多個終端
*主機:運算,CPU+記憶體
*終端:輸入和顯示
*主機採用分時技術輪流為每個終端服務。每個終端都感覺到時‘獨佔’主機
分時技術的概念
*主機以很短的‘時間片’為單位,將CPU輪流分配給每個終端使用,直到全部作業被執行完
*由於時間片很短,在終端數量不多的情況下,每個終端都能很快重新獲得CPU,使得每個終端都能得到及時響應。
分時系統的特點
多路調製性
*多使用者聯機使用同一臺計算機
獨佔性
*使用者感覺獨佔計算機
互動性
*及時響應使用者的請求,每個時間片結束後會有時鐘中斷,這時使用者就可以去幹預和了解程式執行的情況。
(5)實時作業系統
*用於工業工程控制,軍事實時控制,金融等領域
——響應時間短,在規定的時間之內完成;可靠性高
(6)通用作業系統
*目前的作業系統,通常具有分時,實時和批處理功能,又稱作通用作業系統
*適用於計算,事務處理等多種領域
*執行在多種硬體平臺上,如UNIX,Windows等
*應用於通用化,小型化的環境上。
作業系統的進一步發展
*在個人計算機上配置的作業系統
*常用的個人計算機作業系統:
單使用者單任務:MS DOS
單使用者多工:OS/2,MS Windows 3.x,Windows 95,Windows NT,Windows 2000 Professionanl
多使用者多工UNIX(SCO UNIX,Solars x86,Liunx,FreeBSD)
網路作業系統
基於計算機網路的。計算機網路中有一臺配置高,效能好的計算機,稱為伺服器,它是網路的核心,其他計算機稱為工作站。
伺服器上裝有網路作業系統,負責統一管理網路資源,實現資訊交換,資源共享和各種網路的應用
分散式作業系統
分散式系統由分散式作業系統管理,各結點主機不再有自己的作業系統,無主次之分。
分散式作業系統負責全系統的資源分配與排程,任務劃分,資訊傳輸和控制協調工作,併為使用者提供一個統一的介面,便於使用者執行操作和使用系統資源。
分散式系統常用於分散式計算和處理,將大型任務分解,使多個主機協作完成,可以充分利用各種資源,從而使計算機系統處理能力增強,速度更快,可靠性更高。‘
1.3作業系統的發展和分類
按使用者介面——命令列介面;圖形使用者介面
按使用者數——單使用者;多使用者
按任務數——單任務;雙任務
按系統功能——批處理;分時;實時;網路;分散式;個人計算機
2.程序管理
2.1程序
定義
程序是程式在某個資料集合上的一次執行活動
資料集合:軟/硬環境,多個程序共存/共享的環境
程序的特徵
動態性:程序是程式的一次執行過程,動態產生/消亡
併發性:程序同其它程序一起向前推進
非同步性:程序按各自速度向前推進
獨立性:程序是系統分配資源和排程CPU的單位
程序與程式的區別
動態與靜態
程序是動態的:程式的一次執行過程
程式是靜態的:一組指令的有序集合
暫存與長存
程序是暫存的:在記憶體駐留
程式是長存的:在介質上長期儲存
程式和程序的對應
一個程式可能有多個程序
程序的狀態
執行狀態(Running)
程序已經佔有CPU,在CPU上執行
就緒狀態(Ready)
具備執行條件但由於無CPU,暫時不能執行
阻塞狀態(Block)【等待(Wait)狀態】
因為等待某項服務完成或訊號不能執行的狀態
如等待:系統呼叫,I/O操作,合作程序訊號。。。
程序狀態的變遷
程序的狀態可以依據一定的條件相互轉化。
1.就緒-執行:程序排程
2.執行-就緒:時間片到;被搶佔
3.執行-阻塞:請求服務;等待訊號
4.阻塞-就緒:服務完全;訊號來到
2.2程序控制
程序控制的概念
——在程序生存全期間,對其全部行為的控制
四個典型的控制行為:建立程序,撤銷程序,阻塞程序,喚醒程序
2.3執行緒
概念(Thread)
(1)執行緒是可由CPU直接執行的實體;
(2)每個程序都有相應的執行緒,在執行程式時,實際上是執行相應的一系列執行緒;
(3)程序是資源(定址空間,暫存器組,堆疊空間)分配的最小單位,執行緒是程式執行的最小單位
(4)程序和執行緒都是一個時間短的描述,是CPU工作時間短的描述
(5)多個執行緒共享CPU可以實現併發執行。注意:巨集觀上是並行的,微觀上還是分時切換序列的。
執行緒技術典型使用場景
*多個功能需要併發
*需要改善視窗互動性
使用執行緒的麻煩
(1)程式難以除錯
(2)併發過程難以控制
(3)執行緒安全問題
3.儲存管理
3.1儲存管理的功能