現代計算機系統由一個或多個處理器、主存、磁盤、打印機、鍵盤、鼠標、顯示器、網絡接口以及 各種其他輸入/輸出設備組成
軟件 與 操作系統
底層是硬件。硬件包括芯片、電路板、 磁盤、鍵盤、顯示器以及類似的設備。在硬件的頂部是軟件。
計算機運行模式:內核態和用戶態。
核心模式和用戶模式 (管態和目態)
核心模式一般指操作系統管理程序運行的狀態,具有較高的特權級別。
用戶模式一般指用戶程序運行時的狀態,具有較低的特權級別。
處理器處於管態時全部指令(包括特權指令)可以執行,可使用所有資源,並具有改變處理器狀態的能力。
當處理器處於用戶模式時,就只能執行非特權指令。特權級別不同,可運行指令集合也不同。特權級別越高,可以運行指令集合越大。高特權級別對應的可運行指令集合包含低特權級的。
核心模式到用戶模式的唯一途徑是通過中斷。
軟件中最基礎的部分是操作系統,它運行在內核態。在這個模式中,操作系統具有對所有硬件的完全訪問權,可以執行機器能夠運行的任何指令。
軟件的其余部分運行在用戶態下。在用戶態下,只使用了機器指令中的一個子集。特別地,那些會影響機器的控制或可進行I/O(輸入/輸出)操作的指令,在用戶態中的程序里是禁止的。
操作系統的用戶接口程序(shell或者GUI),處於用戶態程序中的最低層次。允許用戶運行其他軟件程序,如Web瀏覽器、電子郵件閱讀器或音樂播放器等。
操作系統運行在裸機之上,為所有其他軟件提供基礎的運行環境。
什么是操作系統?
操作系統:是控制和管理計算機系統內各種硬件和軟件資源、有效地組織多道程序運行的系統軟件(或程序集合),是用戶與計算機之間的接口。
1) OS是什么:是系統軟件(一整套程序組成,如UNIX由上千個模塊組成)
2) 管什么:控制和管理系統資源(記錄和調度)
操作系統和普通軟件(用戶態)之間的主要區別:
如果用戶不喜歡某個特定的電子郵件閱 讀器,他可以自由選擇另一個,或者選擇自己寫一個,但是他不能自行寫一個屬於操作系統一部分的時鍾中斷處理程序。這個程序由硬件保護, 防止用戶試圖對其進行修改。
看待操作系統三種觀點
擴展機器的觀點:
在機器語言一級上, 多數計算機的體系結構(指令集、存儲組織、I/O和總線結構) 是很原始的, 而且編程很困難,尤其是對輸入/輸出操作而言。
如果僅僅是裸機,則僅有機器語言可供用戶利用,機器語言是相當麻煩和晦澀的,更不要提使用機器語言操作內存、文件、外設等設備。
//C語言實現 main() { int a,b,sum; a=4;b=5; sum=a+b; } //機器語言實現 Debug: B8 04 00 //將數據04輸入CPU的AX寄存器 05 05 00 //將AX寄存器內數據加上05 A3 00 20 //將AX寄存器內數據存入內存單元[2000]中 CC //設置斷點
以磁盤文件操作為例:
1. 通過操作系統的資源管理器創建文件,並寫文件。
2. 程序員通過編程,操作文件。
#include "stdafx.h" #include <fstream.h> int main(int argc, char* argv[]) { ofstream fout; fout.open("c:\\output.txt"); fout << "大連理工大學" << "\n"; return 0; }
3. 通過匯編語言,BIOS系統底層接口實現。應用BIOS中斷例程對磁盤進行讀寫
BIOS提供的訪問磁盤的中斷例程為int 13h
入口參數:
(ah)=int 13h的功能號(2表示讀扇區、3表示寫扇區)
(al)=讀取的扇區數/寫入的扇區數
(ch)=磁道號
(cl)=扇區號
(dh)=磁頭號
(dl)=驅動器號 軟驅從0開始,0:軟驅A,1:軟驅B; 硬盤從80h開始,80h:硬盤C,81h:硬盤D。
es:bx指向接收從扇區讀入數據的內存區/將寫入磁盤的數據
將0:200中的內容寫入0面0道1扇區,匯編指令: mov ax,0 mov es,ax mov bx,200h mov al,1 mov ch,0 mov cl,1 mov dl,0 mov dh,0 mov ah,3 int 13h
幾乎每個計算機用戶都理解的一個抽象是文件。文件是一種有效的信息片段,諸如數碼照片、保存的電子郵件信息或Web頁 面等。處理數碼照片、電子郵件以及Web頁面等,要比處理磁盤的細節容易。 操作系統的任務是創建好的抽象,並實現和管理它所創建的抽象對象。
資源管理的觀點
四大類資源:處理機、存儲器、外設及信息(程序和數據等)
時間復用和空間復用方式實現資源共享:
時間復用
當一種資源在時間上復用時,不同的程序或用戶輪流使用它。先是第一個獲得資源的使用,然后下一個, 以此類推。例如,若在系統中只有一個CPU,而多個程序需要在該CPU上運行,操作系統則首先把該 CPU分配給某一個程序,在它運行了足夠長的時間之后,另一個程序得到CPU,然后是下一個,如此進行下去,最終,輪到第一個程序再次運行。 至於資源是如何實現時間復用的,誰應該是下一個以及運行多長時間等—則是操作系統的任務。
空間復用
每個客戶都得到資源的一部分,從而取代了客戶排隊。
通常在若干運行程序之間分割內存,這樣每一個運行程序都可同時入住內存。
通過虛擬內存技術,讓用戶感覺內存是無限大的,取之不盡,用之不竭。
資源管理的目的:為用戶提供一種簡單、有效使用資源的方法,充分發揮各種資源利用率。
人機交互的觀點
OS作為機器與用戶之間的接口
操作系統是人機交互的界面與接口,用戶與計算機進行的一切活動都是要經過操作系統。
操作系統的目標
方便性;通過命令,或鼠標等便可完成所希望的要求(包括網上信息查詢)。
有效性;如實現CPU、I/O設備的並行操作、對內外存中存放的信息進行統一管理避免無序和空間的浪費。
可擴展性;允許在不妨礙服務前提下,開發、測試和引進新的系統功能。如高性能芯片出現控制寄存器硬件機制后,操作系統經過擴展就實現了頁式存儲分配機制等。
操作系統包括哪些功能?
1 存儲器管理功能
內存分配: 記錄整個內存,按照某種策略實施分配,或回收釋放的內存空間。
地址映射: 硬件支持下解決地址映射,即邏輯到物理地址轉換。
內存保護: 保證各程序空間不受“進犯” 。
內存擴充: 通過虛擬存儲器技術虛擬成比實際內存大的多的空間來滿足實際運行的需要。
2 處理機管理功能
作業和進程調度: 后備隊列上(外存空間)的調度,作業調度(並不是所有類型機器都具有) 。CPU調度,進程調度。
進程通信: 由於多個程序(進程)彼此間會發生相互制約關系,需要設置進程同步機制。進程之間往往需要交換信息,為此系統要提供通信機制。
3 設備管理功能
緩沖區管理: 管理各類I/O設備的數據緩沖區,解決CPU和外設速度不匹配的矛盾。
設備分配: 根據I/O請求和相應分配策略分配外部設備以及通道、控制器等。
設備驅動: 實現用戶提出的I/O操作請求,完成數據的輸入輸出。這個過程是系統建立和維持的。
設備無關性: 應用程序獨立於實際的物理設備,由操作系統將邏輯設備映射到物理設備。
4 文件管理功能
文件存儲空間的管理:記錄空閑空間、為新文件分配必要的外存空間,回收釋放的文件空間,提高外存的利用率等。
目錄管理: 目錄文件的組織、及實現用戶對文件的“按名存取”、目錄的快速查詢和文件共享等。
文件的讀寫管理和存取控制: 根據用戶請求,讀取或寫入外存。並防止未授權用戶的存取或破壞,對各文件(包括目錄文件)進行存取控制。
5 用戶接口管理
命令界面: 系統提供一套命令,每個命令都由系統的命令解釋程序所接收、分析,然后調用相應模塊完成命令所需求功能。
圖形界面: 考慮用戶使用計算機的方便性,現代操作系統都提供了圖形用戶界面。它也是一種交互形式,只不過將命令形式改成了圖形提示和鼠標點擊。
程序界面: 也稱系統調用界面,是程序層次上用戶與操作系統打交道的方式。
操作系統的地位?
操作系統是裸機之上的第一層軟件,是建立其他所有軟件的基礎。它是整個系統的控制管理中心,既管硬件,又管軟件,它為其它軟件提供運行環境。
操作系統的基本特征?
1) 並發:並發性是指兩個或多個活動在同一給定的時間間隔中進行。
並發與並行的區別:並行性指兩個或多個事件在同一時刻發生,並發性指兩個或多個事件在同一時間間隔發生。
2) 共享:共享是指計算機系統中的資源被多個任務所共用。
3) 異步性/隨機性:每個程序什么時候執行,向前推進速度快慢,是由執行的現場所決定。但同一程序在相同的初始數據下,無論何時運行都應獲得同樣的結果。
操作系統的主要類型有哪些? 各有特點?
多道批處理系統、分時系統、實時系統、個人機系統、網絡系統和分布式系統
操作系統的三種基本類型:多道批處理系統、分時系統、實時系統。
多道程序系統:就是指允許多個程序同時進入內存並運行。即同時把多個程序放入內存,並允許它們交替在CPU中運行,它們共享系統中的各種硬、軟件資源。當一道程序因I/O請求而暫停運行時,CPU便立即轉去運行另一道程序。
單道程序的運行過程:在A程序計算時,I/O空閑, A程序I/O操作時,CPU空閑(B程序也是同樣);必須A工作完成后,B才能進入內存中開始工作,兩者是串行的,全部完成共需時間=T1+T2。
多道程序的運行過程:將A、B兩道程序同時存放在內存中,它們在系統的控制下,可相互穿插、交替地在CPU上運行:當A程序因請求I/O操作而放棄CPU時,B程序就可占用CPU運行,這樣 CPU不再空閑,而正進行A I/O操作的I/O設備也不空閑,顯然,CPU和I/O設備都處於“忙”狀態,大大提高了資源的利用率,從而也提高了系統的效率,A、B全部完成所需時間<<T1+T2。
多道程序設計技術不僅使CPU得到充分利用,同時改善I/O設備和內存的利用率,從而提高了整個系統的資源利用率和系統吞吐量(單位時間內處理作業(程序)的個數),最終提高了整個系統的效率。
多道程序系統的出現,標志着操作系統漸趨成熟的階段,先后出現了作業調度管理、處理機管理、存儲器管理、外部設備管理、文件系統管理等功能。
多道批處理系統:在前述的批處理系統中,引入多道程序設計技術后形成多道批處理系統(簡稱:批處理系統)。
特點:多道、成批
優點:資源利用率高、系統吞吐量大
缺點:等待時間長、沒有交互能力
特點:
多道:系統可同時容納多個作業。這些作業放在外存中,組成一個后備隊列,系統按一定的調度原則每次從后備作業隊列中選取一個或多個作業進入內存運行,運行作業結束、退出運行和后備作業進入運行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。
成批:在系統運行過程中,不允許用戶與其作業發生交互作用,即:作業一旦進入系統,用戶就不能直接干預其作業的運行。
批處理系統的追求目標:提高系統資源利用率和系統吞吐量,以及作業流程的自動化。
批處理系統的一個重要缺點:不提供人機交互能力,給用戶使用計算機帶來不便。
分時系統:把處理機的運行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一作業使用,等待下一輪時再繼續其運行。由於計算機速度很快,作業運行輪轉得很快,給每個用戶的印象是,好象他獨占了一台計算機。而每個用戶可以通過自己的終端向系統發出各種操作控制命令,在充分的人機交互情況下,完成作業的運行。
目標:對用戶響應的及時性,即不至於用戶等待每一個命令的處理時間過長。
分時:指若干並發程序對CPU時間的共享。它是通過系統軟件實現的。共享的時間單位稱為時間片。
特征:
多路性/同時性;宏觀上同時有多個用戶在運行
交互性;在終端上編輯、運行程序,或其它操作
獨占性;每個用戶一個終端,獨立操作,互不干擾
及時性;在很短時間內得到響應,小於2~3秒
優點:
響應快,界面友好
多用戶,便於普及
便於資源共享
實時系統:
背景: 雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時信息處理兩個應用領域的需求。於是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,並在嚴格時間范圍內完成對該事件的處理。
響應時間很快,可以在毫秒甚至微秒級立即處理
典型應用形式:過程控制系統、信息查詢系統、事務處理系統
分類:
(1)實時控制系統。當用於飛機飛行、導彈發射等的自動控制時,要求計算機能盡快處理測量系統測得的數據,及時地對飛機或導彈進行控制。
(2)實時信息處理系統。當用於預定飛機票、查詢有關航班、航線、票價等事宜時,要求計算機能對終端設備發來的服務請求及時予以正確的回答。
特點:
(1)及時響應。每一個信息接收、分析處理和發送的過程必須在嚴格的時間限制內完成。
(2)高可靠性。需采取冗余措施,雙機系統前后台工作,也包括必要的保密措施等。
通用操作系統:具有多種類型操作特征的操作系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。
個人計算機操作系統:個人計算機上的操作系統是聯機交互的單用戶操作系統,它提供的聯機交互功能與通用分時系統提供的功能很相似。
單用戶操作系統
單用戶操作系統特征:
個人使用:整個系統由一個人操縱,使用方便。
界面友好:人機交互的方式,圖形界面。
管理方便:根據用戶自己的使用要求,方便的對系統進行管理。
適於普及:滿足一般的工作需求,價格低廉。
多用戶操作系統:網絡操作系統、分布式操作系統。代表是UNIX,具有更強大的功能和更多優點。
網絡操作系統:網絡操作系統是網絡上各計算機能方便而有效地共享網絡資源,為網絡用戶提供所需的各種服務的軟件和有關規程的集合。
網絡操作系統與通常的操作系統有所不同,它除了應具有通常操作系統應具有的處理機管理、存儲器管理、設備管理和文件管理外,還應具有以下兩大功能: 提供高效、可靠的網絡通信能力; 提供多種網絡服務功能,如:遠程作業錄入並進行處理的服務功能;文件轉輸服務功能;電子郵件服務功能;遠程打印服務功能。
計算機網絡 = 計算機技術+通信技術
特征:分布性、自治性、互連性、可見性
功能
本機+網絡操作系統:本地OS之上覆蓋了網絡OS,可以是同構的也可以是異構的。
功能:實現網絡通信、資源共享和保護、提供網絡服務和網絡接口等
分布式操作系統:一組獨立的計算機展現給用戶的是一個統一的整體,就好像是一個系統似的。系統擁有多種通用的物理和邏輯資源,可以動態的分配任務,分散的物理和邏輯資源通過計算機網絡實現信息交換。
分布式操作系統是以一種傳統單處理器操作系統的形式出現在用戶面前的,盡管它實際上是由多處理器組成的。用戶應該不知曉他們的程序在何處運行或者他們的文件存放於何處,這些應該由操作系統自動和有效地處理。
分布式系統通常允許一個應用在多台處理器上同時運行,因此,需要更復雜的處理器調度算法來獲得最大的並行度優化。
定義:運行在不具有共享內存的多台計算機上,但用戶眼里卻像是一台計算機。(分布式系統無本地操作系統運行在各個機器上)
特征:分布式處理、模塊化結構、利用信息通信、實施整體控制
特點:透明性、靈活性、可靠性、高性能、可擴充性
用戶與操作系統打交道的手段稱為用戶接口。
從用戶的觀點看,操作系統是用戶與計算機之間的接口。
操作系統提供給程序員的接口是系統調用。系統調用是用戶或其他系統程序獲得操作系統服務的唯一途徑。
計算機的操作系統是一種系統軟件。