01. 作業系統原理簡介

什麼是作業系統

• 讓使用者妥善地使用軟硬體資源的系統程式
• 電腦系統的四個組成要素
   – 硬體設備
   – 作業系統
   – 應用程式
   – 使用者
• 作業系統負責控制並協調分配硬體資源給各
個使用者,管理系統內的
   – 硬體
   – 軟體
   – 資料

         

作業系統(Operating System)是管理電腦硬體的一套軟體程式,並提供了應用程式的基礎。大型主機的作業系統主要被設計成硬體使用的最佳化。個人電腦(PC)作業系統支援複雜的遊戲、商業應用,以及期間的任何事情。手持式電腦的作業系統則被設計成能提供使用者可以輕易和電腦介面來執行程式的環境。因此,有些作業系統追求 方便,有些則必須追求 效率 。而其餘的則是方便和效率的某種組合。

 

作業系統的功能

 1.控制與管理電腦資源

 2.提供使用者介面

 3.載入執行應用軟體並提供服務

      作業系統可以說是硬體與軟體(或使用者)之間的橋樑,透過作業系統 的管理與幫忙,程式不必去理會繁雜的硬體控制細節,並能夠保護電腦 不受惡意程式所破壞。

      因為一個作業系統很大且複雜,他必須一個片段一個片段形成。每一個片段在系統中應該是一個小心定義輸入、輸出及功能適宜描繪的一部份。

 

作業系統做什麼

主要功能分為下列三項:

1.資源的管理

2.工作的管理

3.讓使用者使用方便

      我們由檢視整個電腦系統中作業系統角色開始討論起。一部電腦系統大致上可以分為四個單元(圖1.1):硬體(hardware)、作業系統(OS)、應用程式(application program)及使用者(user)。

      硬體(CPU、記憶體、I/O裝置)提供系統基本的運算資源,應用程式(文書處理程式、試算表、編譯器和網頁瀏覽器)藉著有效運用這些資源,來解決使用者的計算問題。作業系統控制和協調各個使用者的應用程式對於硬體資源的使用。

             

                            圖1.1 電腦系統各部門之概觀

      為了更完整瞭解作業系統角色,我們接著由二個觀點來探討作業系統:使用者觀點和系統觀點。

 

使用者觀點
• 個人電腦作業系統的設計考量- 一位使用者操作
   – 使用上的便利性
   – 執行的效能
   – 不重視系統資源使用率的最佳化、系統閒置

• 大型電腦或迷你電腦作業系統的設計考量
   – 藉由終端機連接到大型電腦或迷你電腦來共享電
      腦資源及交換訊息
   – 提高系統中資源的使用率(cpu時間、記憶體、I/O)
   – 使用者程式不會相互影響

 

• 工作站或伺服器作業系統的設計考量
   – 使用者可以獨佔系統中自己所控制的資源
   – 也與其他使用者共享網路和檔案伺服器
   – 考慮個人系統的獨占性多人系統的資源使用率
手持式系統作業系統的設計考量
   – 使用的方便性
   – 省電
   – 提高系統效能

系統觀點
• 作業系統是電腦上的資源分配者,負責管理並有效且公平地分配資源      (cpu時間、記憶體空間、檔案儲存空間、 I/O裝置)。

 

作業系統是一個控制程式,在開機後持續執行,以管理軟、硬體資        源,其核心(kernel)是作業系統運作的基本元件系統程式是除了核   心以外,幫助系統運作的程式,其他解決使用者的問題皆稱為應用程式

•電腦系統操作(起動Startup)
1.靴帶式程式(bootstrap program)存於唯讀記憶體(ROM)或可消除式唯讀記憶體(EEPROM)[通常稱為韌體firmware]
2. 將作業系統核心載入記憶體
3. 執行第一個行程(init)
4. 協調事件之中斷(interrupt), Windows、Unix均以相同方式處理中斷

      

 

作業系統負責
   – 管理程式的執行
   – 預防錯誤不正常地使用電腦
   – 注重 I/O 裝置的操作與控制
• 作業系統創造出一個便利的系統使用環境,是將控制硬體協調軟體分配系統資源函式集合而成的程式。

 

系統目標

個人電腦作業系統的主要目標是讓使用者可以方便地使用系統。
大型的多使用者電腦作業系統的主要目標是讓系統能夠更有效率地運作。
方便性與效率是相互衝突的

• 早期的電腦系統都考慮效率的問題

圖形使用者介面使得作業系統在執行的效率之外,更考慮了使用上的方便性
• 作業系統與電腦結構的發展有著密切關係,而且是互相影響的,使用者也提出許多想法來改進硬體的設計,帶動硬體功能上的發展,如
– 快取機制(cache) :L1 & L2 in Intel CPU
– 多媒體晶片(整合式晶片) :南北橋in Intel CPU

系統特徵遷移
• 電腦系統的特徵由純硬體系統,到有編譯產生應用程式,再到批次系統分時系,甚至發展出分散式系統容錯系統
• 有些以往只有在大型電腦上才有的功能,已經逐漸地在迷你電腦微型電腦、以及手持式電腦上發展,如 MULTICS (LINUX始祖)作業系統。

作業系統發展歷史
• 1965-1970由MIT發展MULTICS作業系統及公用程式於GE 645上執行
• 1970貝爾實驗室將MULTICS概念發展在PDP-11迷你電腦上的UNIX
• 1980年代UNIX作業系統的概念被大量應用在為型電腦及現今作業系統例如MS NT、IBM OS/2、Macintosh,皆可清楚看到大型電腦的特徵隨時間遷移到微型電腦上

• 個人工作站則發展出更快速、更精密的硬體,是一種大型的個人電腦,例如:SUN SPARC、HP/Apollo、IBM RS/6000、以及在Intel Pentium雙CPU架構的MS NT 或UNIX作業系統
• 許多大學或企業已經大量使用工作站或個人電腦所構成的區域網路
• 大型電腦與微型電腦之間的分界也越來越模糊

單節點系統
• 一般的電腦系統都是屬於單節點系統,如
   – 大型電腦系統
   – 個人電腦系統
   – 多處理器電腦系統—對稱與非對稱式架構
• 為了充分使用系統資源、提高 CPU 的使用率,單節點系統中發展出了批次系統元程式系統分時系統等技術。

大型電腦系統
• 批次系統
   – 使用者必須在控制台上操作
   – 輸入裝置只有讀卡機和磁帶機(已被硬碟取代)
   – 輸出裝置則有印表機、磁帶機和打孔機
   – 使用者與電腦系統之間沒有直接互動
   – 使用者須先將工作準備好,等工作執行完後,系統會將執行結果,連同記憶體與暫存器中的值一起輸出
   – 為了要加速電腦處理的速度,將性質接近的工集合成一批次,交由電腦一次執行。
   – 此種執行環境下cpu大部分是處於閒置狀態

 

• 多元程式系統
   – CPU與I/O裝置不可能一直處於忙碌的狀態
   – 讓CPU一直有工作可以計算,以提高CPU的使用率
   – 作業系統會選出幾個工作載入到記憶體,然後由記憶體中選出一個工作來執行(CPU排程)
   – 當 CPU 所執行的工作進入等待狀態時,切換到記憶體中的其他工作繼續執行
   – 作業系統需決定何時暫停並切換到另一工作、以及何時回來繼續執行
   – 所有工作會先存於工作池中(硬碟) ,然後載入到記憶體存放,若記憶體不夠,則作業系統只選擇部分工作出來執行此為工作排程

 

• 分時系統(1960-1970)
   – 分時系統也稱為多工系統,CPU 在記憶體中多個工作之間快速地切換,使用者可以與每個執行的程式進行互動。
   – 互動是使用者透過鍵盤或滑鼠直接對電腦溝通,等待執行結果,所以系統反應時間須很短
   – 每個使用者的執行時間都很短,所以只需短暫的CPU時間進行運算
   – 系統在使用者程式間快速切換,讓使用者覺得系統就像自己所獨占一樣
   – 分時系統使用CPU排程與多元程式設計來提供使用者執行各種程式

個人電腦系統
• 個人電腦作業系統缺乏保護作業系統的功能,使用者的程式可以修改甚至破壞作業系,且一開始的作業系統不算是多使用者系,也不支援多工系統,只提高系統使用的方便性
• 受到了許多大型電腦作業系統的影響,個人電腦作業系統也繼承了許多大型電腦的技術,包括了
   – Microsoft Windows
   – Apple Macintosh
   – Linux
   – IBM OS/2 等

• Apple MacOS X的核心是建構在Mach和FreeBSD UNIX上,具有豐富的圖形使用者介面虛擬記憶體及多工,基於這些技術,LINUX也愈來愈受使用者歡迎
• 由於微型電腦的價格低廉,大部分使用者都有自己的個人電腦,所以
   – CPU 的使用率已不再是主要考量。
   – 如何讓使用者更方便地使用電腦系統。
   – 檔案保護機制隨著網際網路的出現,使用者可經由別台電腦存取資料,檔案保護機制就變得十分重要

多處理器電腦系統
• 多處理器系統具有多顆 CPU,這些 CPU 共享系統中的匯流排時脈記憶體以及週邊裝置等。

• 多處理器系統有三大優點:
   – 提高產量:藉由CPU數目的增加,可縮短工作執行時間,n倍CPU數目並不能提高速度為n倍,因CPU間共享資源之故,所以必須相互協調而造成額外負擔
   – 降低成本:因 CPU 共享系統中的週邊裝置、儲存裝置、以及電源供應器等裝置
   – 提高可靠度:多顆 CPU若其中一顆故障,其他CPU仍可繼續工作,只是系統效能會降低,是一種逐漸降級(graceful degradation)[提供服務能力正比於硬體]或是容錯設計(fault tolerant)

• NonStop(Tandem)系統號稱不停系統(non-stop),就是因為它使用備份硬體及軟體來保證錯誤發生後,程式可以繼續執行,兩顆利用匯流排連在一起的相同CPU,有各自的硬體,其中一顆是另一顆的備份,系統執行過程中有一些檢查點,如果系統發生故障,備份CPU就會接管由最近一個檢查點繼續執行

對稱多重處理系統(SMP)中的每個處理器都執行一份相同的作業系統,彼此地位均等。