操作系統精髓與設計原理學習筆記二:操作系統概述

一、 簡介,目標和功能:

操作系統爲應用程序提供與硬件交互的接口。他的主要功能室爲運行中的程序動態的分配可共享的系統資源。

操作系統是控制應用程序執行的程序,並充當應用程序和計算機硬件之間的接口。目標:方便、有效、擴展能力。

1、作爲用戶/計算機接口

操作系統爲程序員屏蔽了硬件細節,併爲程序員使用系統提供了方便的接口。他可以作爲中介,使程序員和應用程序更容易的訪問和使用這些功能與服務。

2、作爲資源管理器

一臺計算機就是一組資源,這些資源用於對數據的移動、存儲和處理,以及對這些功能的控制。而操作系統負責管理這些資源。

操作系統實際上不過是一組計算機程序,與其他計算機程序類似,他們都給處理器提供指令,主要區別在於程序的意圖。操作系統控制處理器使用其他系統資源,並控制其他程序的執行時機。

但是,處理器要做任何意見這類事情,都必須停止執行操作系統程序,而去執行其他程序。因此,這是操作系統釋放對處理器的控制,讓處理器去做其他一些有用的工作,然後用足夠長的時間恢復控制權,讓處理器準備好做下一件工作。

操作系統有一部分在內存中,其中包括內核程序和當前正在使用的其他操作系統程序,內核程序包含操作系統中最常使用的功能。內存中的其餘部分包含用戶程序和數據,他的分配由操作系統和處理器中的存儲管理硬件聯合控制完成。


二、操作系統的發展:

1、串行處理,反應了用戶必須順序訪問計算機的事實。

2、簡單批處理系統,

簡單批處理方案的中心思想是使用一個稱爲“監控程序”的軟件,通過使用這類操作系統,用戶不再直接訪問機器,相反,用戶把卡片或磁帶中的作業提交給計算機操作員,由他把這些作業按順序組織成一批,並將整個批作業放在輸入設備上,供監控程序使用。每個程序完成處理後返回到監控程序,同時,監控程序自動加載下一個程序。

監控程序角度:監控程序每次從輸入設備中讀取一個作業。讀入後,當前作業唄防止在用戶程序區域,並且把控制權交給這個作業。當作業完成後,它將控制權返回給監控程序,監控程序立即讀取下一個作業。每個作業的結果被髮送到輸出設備(如打印機),交付給用戶。

處理器角度:“控制權交給作業”僅僅意味着處理器當前去和執行的都是用戶程序中的指令,而“控制權返回給監控程序”的意思是處理器當前從監控程序中取指令並執行指令。

監控程序完成調度功能:一批作業排隊等候,處理器儘可能迅速的執行作業,沒有任何空閒時間。監控程序還改善了作業的準備時間。

監控程序或者說批處理操作系統,只是一個簡單的計算機程序。它依賴於處理器可以從內測的不同部分去指令的能力,以交替的獲取或釋放控制權。

缺點:對批處理操作系統來說,用戶程序和監控程序交替執行。這樣存在兩方面缺點。一部分內存交付給監控程序;監控程序消耗了一部分機器時間。

3、多道批處理系統,

單道程序設計:處理器話費一定的運行時間進行計算,直到遇到一個IO指令,這是它必須等到這個IO指令結束後才能繼續執行。

這種低效率是可以避免的。假設內存空間容得下操作系統和兩個用戶程序,那麼當一個作業需要等待IO時,處理器可以切換到另一個可能不需要等待IO的作業。進一步還可以擴展存儲器以保存三、四個或更多的程序,並且在他們之間進行切換。這種處理成爲多道程序設計或多任務處理,它是現代操作系統的主要方案。

多道程序批處理系統必須依賴於某些計算機硬件功能,對多道程序設計有用的最顯著的輔助功能是支持IO中斷直接存儲器訪問的硬件。通過中斷驅動的IO或DMA,處理器可以爲一個作業發出IO命令,當設備控制器執行IO操作時,處理器執行另一個作業;當IO操作完成時,處理器被中斷,控制權被遞給操作系統中的中斷處理程序,然後操作系統把控制權傳遞給另一個作業。

對準備運行的多個作業,他們必須保留在內存中,這就需要內存管理;此外,如果多個作業都準備運行,處理器必須決定運行哪一個,這需要某種調度算法

4、時分系統,

對許多作業來說,需要提供一種模式,以使用戶可以直接與計算機交互。

正如多道程序設計允許處理器同時處理多個批處理作業一樣,它還可以用於處理多個交互作業。對後一種情況,由於多個用戶分享處理器時間,因而該技術成爲分時。在分時系統中,多個用戶可以通過終端同時訪問系統,由操作系統控制每個用戶程序以很短的時間爲單位交替執行。

系統時鐘以大約0.2一個的速度產生中斷,在每個時鐘中斷處,操作系統恢復控制權,並且將處理器分配給另一個用戶。因此,在固定的時間間隔內,當前用戶被搶佔,另一個用戶被載入。這項技術稱爲時間片技術。(爲了以後便於恢復,保留老的用戶程序狀態,在新的用戶程序和數據被讀入前,老的用戶程序和數據被寫出到磁盤。隨後,當獲得下一次機會時,老的用戶程序代碼和數據被恢復到內存中。)

時分和多道程序設計印發了操作系統中的許多新問題


三、主要成就:

1、進程:

進程的概念是操作系統設計的核心。

定義:一個正在執行的程序。計算機中正在運行的程序的一個實例。可以分配給處理器並由處理器執行的一個實體。

計算機系統發展的三條主線:

多道程序批處理操作。爲了讓處理器和IO設備同時保持忙碌狀態,以實現最大效率。(其關鍵機制是,在響應標示IO事物結束的信號時,操作系統將對內存中主流的不同程序進行處理器切換)

通用的分時。其主要涉及目標是能及時響應當用戶的要求,但是由於成本原因,又要可以同時支持多個用戶。

實時事物處理系統。在這種情況下,很多用戶都在對數據庫進行查詢或修改。

系統程序員在開發早起的多道程序和多用戶交互系統時使用的主要工具是中斷。一個已定義事件(如IO完成)的發生可以暫停任何作業的活動。處理器保存某些上下文(如程序計數器和其他寄存器),然後跳轉到中斷處理程序中,處理中斷,然後恢復用戶被中斷的作業或其他作業的處理。

進程可以視爲由三部分組成:一段可執行程序;程序所需要的相關數據(變量、工作空間、緩衝區);程序的執行上下文。

執行上下文又稱進程狀態,是操作系統用來管理和控制進程所需的內部數據。這種內部信息和進程是分開的,因爲操作系統信息不允許被進程直接訪問。

進程切換的過程包括保存B的上下文和恢復A的上下文。

進程被當做數據結構來實現。一個進程可以正在執行,也可以等待執行。任何時候整個進程狀態都包含在他的上下文環境中。

一個被分配了資源的進程可分解爲多個併發的線程,這些線程相互協作執行,完成進程的工作。

2、內存管理:

責任:進程隔離,自動分配和管理,支持模塊化程序設計,保護和訪問控制,長期儲存。

文件系統實現了長期存儲,它在一個有名字的對象中保存信息,這個對象被稱爲文件。對程序員來說,文件時一個很方便的概念;對操作系統來說,文件時訪問控制盒保護的一個有用單元。

虛存機制允許程序從邏輯的角度訪問存儲器。在分頁系統中,進程由許多固定大小的塊組成,這些塊稱爲。程序通過虛地址訪問字,虛地址由頁號和頁中的偏移量組成,進程的每一頁都可以防止在內存中的任何地方。分頁系統提供了程序中使用的虛地址和內存中的實地址或物理地址之間的動態映射。

一個進程的所有頁都保存在磁盤中,當進程執行時,一部分頁在內存中。如果需要訪問的某一頁不在內存中,存儲管理硬件檢測到,然後安排載入這個缺頁。這個配置成爲虛擬內存

程序設計語言的指令可以訪問虛存中的程序和數據。可以通過給每個進程一個唯一的不重疊的虛存空間來實現進程隔離;也可以通過時兩個虛存空間的一部分重疊來實現內存共享。

3、調度和資源管理,

調度和資源管理任務是一個基本的操作系統研究問題。

操作系統中維護着多個隊列,每個隊列代表等待某些資源的進程的簡單列表。(短程隊列,長程隊列,IO隊列)

短程隊列由在內存中並等待處理器可用的隨時準備運行的進程組成,任何一個這樣的進程都可以再下一步使用處理器。由時間片輪轉或優先級調度策略決定運行哪個進程。

長程隊列是等待使用處理器的新作業的列表。操作系統通過把長程隊列中的作業轉移到短程 隊列中,實現往系統中添加作業,這時內存的一部分必須分配給新到來的作業。

每個IO設備都有一個IO隊列,可能有多個進程請求使用同一個IO設備,所有等待使用一個設備的進程在該設備的隊列中排隊。

如果發生了一箇中斷,則操作系統在中斷處理程序入口得到處理器的控制權。進程可以通過服務調用明確的請求某些操作系統的服務。在這種情況下,服務調用處理程序是操作系統的入口點。在任何情況下,只要處理中斷或服務調用,就會請求短期掉賭球選擇一個進程執行。


四、現代操作系統的特徵:

1、微內核體系結構,

大多數操作系統都有一個單體內核,操作系統應該提供的大多數功能由這些大內核提供(包括調度,文件系統,網絡,存儲管理等)。典型情況下,這個大內核是作爲一個進程實現的,所有原始都共享相同的地址空間。

微內核體系結構只給內核分配一些最基本的功能(地址空間,進程間通信,基本調度),其他的操作系統服務都是由運行在用戶態下且與其他應用程序類似的進程提供的,這些進程可根據特定的應用和環境需求進行定製。

微內核方法可以使系統結構的設計更加簡單、靈活,很適合於分佈式環境。實質上,微內核可以以相同的方式與本地和遠程的服務進程交互,使分佈式系統的構造更爲方便。

2、多線程,

多線程技術室指吧執行一個應用程序的進程劃分成可以同時運行的多個線程。

線程,可分派的工作單元。它包括處理器上下文環境和棧中自己的數據區域。線程順序執行,並且是可中斷的,這樣處理器就可以轉到另一個線程。

進程,一個或多個線程和相關係統資源的集合。這嚴格對應於一個正在執行的程序的概念。通過把一個應用程序分解成多個線程,程序員可以再很大程度上控制應用程序的模塊性和應用程序相關事件的時間安排。

多線程對執行許多本質上獨立、不需要串行處理的應用程序是很有用的(例如監聽和處理很多客戶請求的數據庫服務器)。在同一個進程中運行多個線程,在線程間來回切換所涉及的處理器開銷要比在不同進程間進行切換的開銷少。

3、對稱多處理器,

對稱多處理操作系統可調度進程或線程到所有的處理器運行。

對多道程序設計而言,一次只能執行一個進程,此時所有別的進程都在等待處理器。對多處理系統而言,多個進程可以分別在不同的處理器上同時運行。

即使在但處理器機器中,多線程對結構化的應用程序和內核進程也是很有用的。由於多個處理器可以並行運行多個進程,因而對稱多處理計算機對非線程化的進程也是有用的。

對稱多處理技術一個很有吸引力的特徵是,多處理器的存在對用戶是透明的。操作系統負責在多個處理器中調度線程或進程,並且負責處理器間的同步。

分佈式操作系統使用戶產生錯覺,使多機系統好像具有一個單一的內存空間、外存空間及其他的統一存取措施。


五、針對多處理器和多核操作系統:

同步用來實現互斥及事件排序。多處理器操作系統中,鎖是一種通用的同步機制。

大多數應用都可以劃分成可並行執行的多個子任務,而這些子任務會以多進程或多線程的形式實現。

早期的計算機,一個程序運行在一個單獨的處理器上。而多道程序設計的出現,使得美國應用程序都好像運行在一個專用的處理器上。多道程序設計基於進程這一概念,進程是運行環境的抽象。

爲了管理進程,操作系統需要一塊受保護的空間,以避免用戶和程序的干擾,於是出現了內核模式和用戶模式的區別。


六、其他:

信號:內核通過信號通知進程

系統調用:進程是通過系統調用來請求系統服務的

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