現代操作系統筆記 1

操作系統的任務是爲用戶程序提供一個更好、更簡單、更清晰的計算機模型,管理計算機硬件設備。

用戶與操作系統之間進行交互的程序,基於文本的稱爲shell,基於圖形的稱爲GUI,他們實際上並不是操作系統的一部分。

操作系統的簡化視圖如下:


多數計算機擁有兩種運行模式:內核態和用戶態。

操作系統運行在內核態,對硬件具有完全的訪問權,其餘軟件運行在用戶態,使用機器指令的一個子集,那些會影響機器控制或是I/O操作的,在用戶態中的程序是禁止的。

用戶接口程序:shell或GUI,處於用戶態最底層,允許用戶運行其他程序。

操作系統運行在裸機上,爲其他軟件提供基礎運行時環境。

操作系統不允許用戶修改,由硬件保護。

在用戶態下的程序也能協助操作系統完成特權功能,這些軟件很難劃分是否屬於操作系統。

什麼是操作系統:

可以理解爲運行在內核態上的軟件,但不總是符合現實。操作系統執行兩個基本獨立的任務:爲程序員提供各個資源集的清晰抽象,並管理這些硬件資源,下面從不同功能角度介紹。

1.擴展機器

由於機器語言的複雜性,需要對硬件進行抽象化,隱藏對硬件操作的一些具體細節。文件就是對磁盤的抽象,對磁盤的操作,可以簡化爲文件的讀寫。

抽象是管理複雜性的一個關鍵。好的抽象可以把一個幾乎不可能管理的部分劃分爲兩個可管理的部分,一個是有關抽象的定義和實現,一個是隨時用這些抽象解決問題。操作系統的任務是創建好的抽象,並實現和管理它所創建的抽象對象。

操作系統的實際用戶是應用程序,直接與操作系統及其抽象打交道。而最終用戶與用戶接口提供的抽象打交道,shell或是GUI。

2.資源管理者

上面的概念講了操作系統嚮應用程序提供各種抽象,另一種觀點是用來管理複雜系統的各個部分。操作系統的任務是在相互競爭的程序之間有序的控制硬件。

資源管理通過用以下兩種不同方式實現多路複用:在時間上覆用和在空間上覆用。

時間上覆用:不同程序或用戶輪流使用。

空間上覆用:將內存劃分爲多個部分給不同的應用程序。

操作系統的歷史:

第一代:真空管和穿孔卡片

第二代:晶體管和批處理系統

第三代:集成電路芯片和多道程序設計

第四代:個人計算機

計算機硬件介紹:

一般的計算機可以抽象爲以下的模型:


1.處理器:

從內存中讀取指令並執行,每一個CPU有專門的指令集,寄存器的出現加快了訪問數據的速度。

程序計數器保存後一條指令的地址。

堆棧指針指向內存中當前棧的頂端。

程序狀態字PSW保存了條件碼位、CPU優先級、模式(用戶態還是內核態)以及其他控制位。

在時間多路複用CPU中,操作系統會終止正在運行的某個程序並啓動另一個程序,停止一個運行的程序時,必須保存所有的寄存器,稍後程序再次運行時可以把這些寄存器重新載入。

流水線:分開的取指單元、解碼單元和執行單元。

超標量CPU:多個執行單元,一個執行單元空閒,就檢查緩衝區是否有可用的指令。


CPU有用戶態和內核態兩種模式,由PSW控制,內核態運行時,CPU可以使用每一條指令,用戶態運行時,只能使用部分指令。

爲了從操作系統中獲得服務,需要使用系統調用。

TRAP指令把用戶態切換爲內核態,並啓動操作系統,工作完成後,系統調用後面的指令把控制權返還給用戶。

計算機使用陷阱(TRAP)而不是一條指令來執行系統調用。多數陷阱由硬件引起,用於警告異常。

多線程和多核芯片:

多線程允許CPU保持兩種不同的線程狀態,在納秒級的時間內來回切換。多線程不提供真正的並行處理。

每個線程在操作系統看來像是單獨的CPU。

圖中多核芯片上有效的裝有4個小芯片,每一個小芯片都是一個獨立的CPU。


2.存儲器:

由於無法同時滿足速度快、容量大、價格便宜多個優勢,出現分層次結構。


頂層的存儲器速度較高,容量較小,底層反之。

寄存器與CPU相同材料製成,與CPU一樣快。存儲容量是:32位CPU中32*32位,64位CPU中64*64位。

高速緩存多數由硬件控制。主存被分割爲高速緩存行,典型大小爲64個字節,地址0~63對應高速緩存行0,地址64~127對應高速緩存行1。最常用的高速緩存行放置在CPU內部或是接近CPU的高速緩存中。當某個程序需要讀取一個存儲字時,高速緩存硬件檢查所需要的高速緩存行是否在高速緩存中,若果是,稱爲高速緩存命中,不需要訪問內存,未命中則需要訪問內存。

在任何的緩存系統中,需要考慮的問題:

1.何時把一個新的內容放入緩存

2.把新內容放在緩存的哪一行上

3.在需要時,應該把哪個內容從緩存上移走

4.應該把新移走的內容放在某個較大存儲器的何處

CPU中設計了兩種緩存,第一級L1總在CPU中,通常用來將以解碼的指令調入CPU的執行引擎。對於頻繁使用的數據字,多數芯片設計有第二個L1緩存。二級緩存L2用來存放近來所使用的若干兆字節的內存字。L1和L2的差別在於時序,L1的訪問不存在延時,L2的訪問存在1或2個時鐘週期。

主存稱爲隨機訪問存儲器(RAM),過去有時稱爲磁芯存儲器。

只讀存儲器(ROM)不可修改,一般用於啓動計算機的引導加載模塊。

EEPROM和閃存可以擦除和重寫,但重寫比寫入RAM更高數量級的時間。在電子設備中,閃存常用於存儲媒介。

CMOS存儲器是易失性的,許多計算機用來保存當前時間和日期,由電池驅動。

3.磁盤:

磁盤的容量大,但隨即訪問速度慢,原因在於磁盤是機械裝置:


在一個磁盤中有一個或多個金屬盤片,以5400、7200或10800rpm的速度旋轉。邊緣有一個機械臂。信息寫在磁盤上的一些列同心圓上。在任意給定臂的位置,每個磁頭可以讀取一段環形區域,稱爲磁道,把一個給定臂的所有磁道合併起來,組成了一個柱面。

每個磁道劃分爲若干個扇區,扇區的典型值都是512字節。

虛擬內存機制:將程序放在磁盤上,將主存作爲一種緩存,用來保存最頻繁使用的部分程序。這種機制需要快速的映像內存地址,以便把程序生成的地址轉化爲有關字節在RAM中的物理地址。由存儲器管理單元(MMU)完成。

4.磁帶:

一般用於磁盤的備份。

5.I/O設備:

I/O設備一般包括兩個部分:設備控制器和設備本身。

控制器的任務是爲操作系統提供一個簡單的接口,通常在控制器中需要安裝一個小的計算機。

設備本身有個相對簡單的接口,因爲接口既不能做很多工作,又已經被標準化了。IDE磁盤控制器可以適應任意一種IDE磁盤。

專門與控制器對話,發出命令並接受響應的軟件稱爲設備驅動程序。爲了使用設備驅動程序,需要裝入到操作系統中,在內核態中運行,裝入有3中途徑:

第一種:將內核與設備驅動程序重新鏈接,重啓系統(UNIX)

第二種:操作系統文件中設置一個入口,並通知該文件需要一個設備驅動程序,然後重啓系統,在啓動時,操作系統會尋找設備驅動程序並裝載(Windows)

第三種:操作系統在運行時接受新的設備驅動程序並立即裝好,無需重啓(熱插拔設備)

每個設備都有用於通信的寄存器,所有設備寄存器的集合構成了I/O端口空間。

有些計算機中,設備寄存器映射到操作系統的地址空間,不需要專門的I/O指令。另一些計算機中,設備寄存器被放入一個專門的I/O空間中,每個寄存器都有一個端口地址。這些機器提供內核態可使用的專門的IN/OUT指令,供設備驅動器讀寫這些寄存器使用。

輸入和輸出的方式分爲三種:

第一種:用戶程序發出一個系統調用,內核將其翻譯爲一個對應設備驅動程序的過程調用。然後設備驅動程序啓動I/O並在一個連續不斷的設備中檢查該設備,看該設備是否完成工作。I/O結束後,設備驅動程序把數據送到指定地方,並返回。然後操作系統將控制返回給調用者。這種方式稱爲忙等待,需要一直佔用CPU。

第二種:設備驅動程序啓動設備並且讓該設備在操作完成時返回一箇中斷。設備驅動程序在這個時刻返回。操作系統接着在需要時阻塞調用者並安排其他操作,當設備驅動程序檢測到設備的完成時,發出一箇中斷通知操作完成。


一旦CPU決定取中斷,通常程序計數器和PSW被壓入當前堆棧中,CPU被切換到用戶態。設備編號可以稱爲部分內存的一個引用,用於尋找該設備中斷處理程序的地址。這部分內存稱爲中斷向量。當中斷處理程序開始後,取走以入棧的程序計數器和PSW,並保存之,然後查詢設備的狀態。當中斷處理程序全部完成後,返回先前運行的用戶程序中尚未執行的頭一條指令。

第三種:爲I/O使用一種特殊的直接存儲器訪問(DMA)芯片,可以控制在內存和某些控制器之間的位流,無需持續的CPU干預。CPU對DMA芯片進行設置,啓動DMA。當DMA芯片完成時,引發一箇中斷。

在中斷關閉時,多個設備發出中斷,中斷控制器決定使用哪個,取決於設備的靜態優先級。

6.總線:


圖中含有8個總線:高速緩存、局部、內存、PCI、SCSI、USB、IDE、ISA

兩個主要的總線:早期IBM PC的ISA總線和後繼者PCI總線

CPU通過局部總線與PCI橋芯片對話PCI橋芯片通過專門的存儲總線與存儲器對話。

三個專門的總線:USB、IDE和SCSI。IDE用來連接諸如磁盤和CD-ROM,USB用來連接所有慢速I/O設備,SCSI用來連接高速硬盤和掃描器

7.啓動計算機:

主板上的BIOS程序->BIOS檢查基本硬件->通過存儲在CMOS中的設備清單決定啓動設備->操作系統詢問BIOS獲得配置信息->調入內核等

操作系統大觀園:

1.大型機操作系統

OS/390 面向多個作業的同時處理,提供3種服務:批處理、事物處理、分時處理

2.服務器操作系統

通過網絡同時爲若干個用戶服務

3.多處理器操作系統

4.個人計算機操作系統

5.掌上計算機操作系統

6.嵌入式操作系統

7.傳感器節點操作系統

8.實時操作系統

9.智能卡操作系統


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章