操做系統基本結構和原理簡介

前言程序員

部分朋友可能對底層較爲感興趣,但願多瞭解一些操做系統,該文爲這些朋友提供一些方便。操做系統博大精深,本文只能簡要介紹一二,皆爲操做系統基本知識,多數只能就就原理概念做扼要論述,具體細節有依賴於專門的教材予以論述。若想對部分細節較感興趣,也可與筆者交流。本文重於原理,不涉及具體系統,語言可能枯燥無味,望朋友們諒解。考慮到嚴謹性,本文參考教材上概念。因爲筆者能力有限,疏忽之處在所不免,還望各位朋友指正。算法

引論編程

1.1 操做系統的目標和做用安全

目前存在多種類型的OS,諸如多道批處理系統,分時系統,實時系統和早期曾存在的人工操做方式和單道批處理系統(已淘汰),目標各有側重。多道批處理系統重在提升資源利用率和吞吐量,分時系統重在人機交互,實時系統則要求能及時響應外部事件的請求。此外,微機操做系統還有單用戶單任務操做系統,例如CP/M和MS-DOS,單用戶多任務操做系統,例如Windows,和多用戶多任務操做系統,例如UNIX OS和它的兩個有名的變種Solaries和Linux OS.服務器

操做系統的目標通常有四個(1)有效性,有效性有兩個含義,提升系統資源利用率和吞吐量(2)方便性(3)可擴充性(4)開放性網絡

1.2 操做系統的做用併發

從通常用戶的觀點看,OS是用戶與硬件系統的接口。從資源管理的觀點看,OS是系統資源的管理者。異步

1.OS做爲用戶與計算機硬件系統的接口分佈式

用戶在OS的幫助下,可以方便、快捷、安全、可靠地操縱計算機硬件和運行本身的程序。用戶可經過三種方式使用計算機:(1)命令方式(2)系統調用方式(3)圖形、窗口方式模塊化

2.OS做爲計算機系統資源的管理者

在計算機中資源可分爲四類:處理器、存儲器、I/O設備以及信息。當計算機供多個用戶使用時,用戶對系統中共享的資源可能發生衝突,操做系統必須協調各資源的使用。

3.OS實現對計算機硬件資源的抽象

OS是鋪設在硬件上的多層軟件,不只增長系統功能還隱藏了對硬件操做的細節。

1.3 操做系統的基本特性

1.3.1 併發性

1.並行與併發

並行是指兩個或者多個事件在同一時刻發生,而併發是兩個或多個事件在同一時間間隔內發生。

2.引入進程

進程是指在系統中能獨立運行並做爲資源分配的基本單位,它是由一組機器指令、數據和堆棧等組成,是一個能獨立運行的活動實體。

3.進入線程

在引入線程的OS中,一般把進程做爲分配資源的基本單位,線程做爲獨立運行和調度的單位。線程比進程更小,基本不擁有資源,調度開銷很小,引入線程能夠提升系統的併發性。

1.3.2共享性

在操做系統環境下,共享是指資源可供內存多個併發執行的進程(線程)共同使用。共享有兩種:互斥共享和同時訪問。

1.3.3虛擬技術

操做系統有兩種虛擬技術,時分複用和空分複用。時分複用主要有虛擬處理機技術和虛擬設備技術,空分複用主要有虛擬磁盤和虛擬存儲器技術。

1.3.4異步性

進程是以不可預知的方式向前推動,但只要操做系統進程管理機制完善且運行環境不變,做業的運行將得到完整的結果。

1.4操做系統的主要功能

操做系統的主要任務是爲多道程序的運行提供良好的環境,以保證多道程序高效的運行,並最大限度的提升各類資源利用率和方便用戶使用。爲此,操做系統必須具有處理機管理,存儲器管理,設備管理和文件管理。

1.4.1處理機管理

1.進程控制

程序段、相關的數據段和PCB構成進程實體。進程有三種基本狀態(1)就緒,擁有除CPU之外的資源(2)執行(3)阻塞,發生某事件沒法執行。此外還有掛起,建立和終止狀態。

2.進程同步

進程同步的主要任務是協調多個進程的次序,使進程共享資源和相互合做,從而便程序的執行具備可再現性。進程有兩種制約關係:間接和直接。間接是競爭,直接是合做。進程同步的規則:(1)空閒讓進(2)忙則等待(3)有限等待(4)讓權等待

3.進程通訊

一般採用直接通訊方式,由源進程利用發送命令將消息掛到目標進程的消息隊列上,再由目標進程利用接收命令取出消息。此外還有共享存儲器和管道。

4.進程調度

高級調度,主要是做業調度,算法FCFS、SJF 高優先權

中級調度,將暫時不能運行的進程調度到外存上等待。

低級調度,進程調度,算法FCFS、SPF、時間片、多級反饋隊列

5.死鎖

條件:(1)互斥(2)請求與保持(3)不剝奪(4)環路等待

處理死鎖:預防、避免、檢測、解除

檢測主要使用銀行家算法。

1.4.2存儲器管理

存儲器管理的主要任務提供多道程序運行的環境,方便用戶使用,提升內存利用率和從邏輯上擴充內存,程序員可用內存遠大於實際內存,運行時使用請求段頁式分配內存,只需少許段便可運行。

程序裝入:絕對、可重定位和動態運行時。絕對須要熟悉內存使用狀況,可重定位目標模塊從0開始,裝入後重定位,不可移動。動態運行時可移動,目前主流。三者編譯都產生邏輯地址,絕對方式能夠指定物理地址,但不能運行多道程序。

1.內存分配

連續方式;單一連續分配、固定分區分配、動態分區分配、可重定位分區分配、對換

離散方式:基本分頁、基本分段、段頁式,請求分頁,請求分段,請求段頁式

如今主流操做系統使用的是段頁式也就是虛擬存儲器技術。

2.內存保護(硬件)

一種比較簡單的保護機制是設置兩個界限寄存器,訪問時檢查,由硬件實現。

3.地址映射

分頁是將進程的邏輯地址空間分紅若干大小相等的片,內存物理塊做一樣的劃分,分配內存時以頁爲單位。分段管理是將做業的地址空間劃分若干段,每段定義一組信息,方便編程和共享以及動態增加和連接。段頁式是二者的結合,先分段再分頁,請求式則是隻調入少許段運行,等到缺頁(段)時再調入。頁面置換算法:OPT、FIFO、LR、CLOCK、LFU PBA

分頁地址變換(硬件):頁表的功能由一組專門寄存器實現,系統設置一個PTR,頁表常駐內存,當進程訪問某個邏輯地址時,分頁地址變換機構將有效地址分爲頁號和頁內地址,以頁號檢索頁表,當頁號大於頁表長度時越界中斷,不然將頁表始址與頁號和頁表項長度的乘積相加,獲得物理地址。分段與此相似,只不過段長不等,地址變換時兼顧段長與段內地址。

4內存擴充

(1)請求調入

(2)置換,將暫時不能運行的進程調換到外存上,外存一般分爲文件區和對換區。

1.4..3設備管理

設備管理用於管理外圍設備,完成I/O請求,分配設備,提升設備利用率。主要有緩衝管理、設備分配和設備處理,比較簡單,目前較多使用SPOOLing技術,設備的中斷由操做系統和硬件共同實現。I/O控制方式:程序I/O方式、中斷方式、DMA方式、I/O通道、I/O處理機。

1.4.4文件管理

文件管理的主要任務是對用戶文件和系統文件進行管理,方便用戶使用,保證文件安全性。

1.文件的邏輯結構

文件其它方面較爲簡單,,操做系統創建文件時會創建FCB,記錄文件必備信息,基本操做經過FCB進行。邏輯結構有兩種:(1)有結構文件,又稱記錄式文件,有順序、索引和索引順序三種(2)無結構文件,又稱流式文件。UINX系統中,全部文件都視爲流式,系統不進行格式處理。

此外還有直接文件和哈希文件。

2.外存分配

(1)連續分配

(2)連接分配:隱式和顯式

(3)索引分配:單級、多級和混合

混合索引分配在UNIX採用,分爲直接、一次間接和屢次間接地址。最大可支持4TB文件。

3.目錄結構

(1)單級目錄

(2)兩級目錄

(3)多級目錄 相對兩級而言,層次結構清晰,查詢速度更快,能有效的進行文件管理和保護。UNIX、Linux、Windows都採用了該結構。

4.文件存儲空間管理

(1)空閒表法,相似於連續分配方式,創建空閒表,記錄空間盤塊號

(2)空閒鏈表法

(3)位示圖法,利用二進制的一位表示空閒盤塊使用狀況

(4)成組連接法,UNIX經常使用,將空閒盤塊分紅組,每一組的盤塊總數記入前一組的空閒塊中,第一組計入空閒盤塊號棧中。

5 文件共享與保護

(1)基於索引結點

(2)利用符號連接

保護主要依靠ACL實現,此外有用戶的口令和密碼。

1.5 OS結構設計

1.5.1傳統的操做系統結構

1.無結構操做系統

早期的操做系統只注重功能的實現和得到高的效率,沒有一致的設計思想,內部結構混亂,能夠任意調用,調試困難且難以維護。

2.模塊化結構OS

該技術使用分解和模塊化來控制大型軟件的複雜度,按其功能劃分爲若干個具備必定獨立結構的模塊,並規定之間的接口。設計中每個決定必須創建在另外一個的基礎上,但各模塊設計並進,形成決定的衝突性。

3.分層式結構OS

每一步的設計都是可靠的,每一層僅能使用其底層所提供的功能和服務,可以使系統的調試和驗證變得更容易。但所以系統效率下降,增長許多沒必要要的開銷。

1.5.2微內核OS結構

微內核能有效的支持多處理機運行,適用於分佈式環境。當今流行的OS,幾乎所有采用了微內核結構,如Mach OS和Windows。

1.微內核的基本概念(1)足夠小的內核(2)基於客戶/服務器模式(3)應用機制與策略分離(4)採用面向對象技術

2.微內核的基本功能(1)進程(線程)管理2)低級存儲器管理3)中斷和陷入管理

3.微內核的優勢(1)提升可擴展性(2)加強可靠性(3)可移植性(4)提供對分佈式系統的支持5)融入面向對象技術

4.存在的問題:運行效率低下,完成一次服務請求須要屢次上下文切換。

後記:本文只是讓讀者對操做系統結構有個大體的概念,什麼功能該操做系統實現,不少細節考慮到篇幅都省略了。此外,操做系統與計算機體系結構(CPU設計)、計算機網絡、計算機組成原理有着密切的關係,如有志於改善操做系統的朋友能夠去了解,會對操做系統的設計有更深的理解。

相關文章
相關標籤/搜索