作業系統(OS, Operating System)是介於電腦硬體與應用軟體之間的程式,除了提供執行應用軟體的環境,還負責分配系統資源。作業系統中實際負責管理系統資源的是數個不同的處理程式,而負責協調與控制這些處理程式,並維持整個作業系統正常運作的程式叫做核心(kernel)或監督程式(supervisor program)。核心是作業系統中最重要的程式,在電腦完成開機後,核心會常駐於記憶體,像這種常駐於記憶體的程式稱為常駐程式(resident),而在需要時才載入記憶體的程式則稱為非常駐程式(nonresident)。作業系統有以下三項主要的功能:
一、分配系統資源:
電腦經常會同時執行不同的程式或同時服務不同的使用者,這些程式或使用者就必須共同電腦的系統資源,而作業系統則必須扮演資源配置者的角色,負責協調與控制,將系統資源的分配與運用最佳化及公平化,進一步防止產生錯誤或不正確地使用電腦。
二、提供執行應用軟體的環境:
作業系統的重要功能之一是提供執行應用軟體的環境,以載入並執行應用軟體,做為應用軟體和電腦之間的橋樑,應用軟體無須瞭解如何驅動底層的硬體裝置,只要指定欲驅動的硬體裝置,作業系統就會代為驅動該裝置。
三、提供使用者介面:
使用者介面(user interface)是使用者和電腦硬體之間的橋樑,有時又稱為Shell。在過去,作業系統所提供的使用者介面是以命令列為主,使用者必須輸入指定的指令集,才能指揮電腦工作,如Unix、MS-Dos是屬於命令列使用者介面(command line user interface)。現在,作業系統所提供的使用者介面是以圖形化為主,如Windows、MacOS…等都屬於圖形化使用者介面(GUI, graphical user interface)。
作業系統的技術和膧腦硬體的發展息息相關,我們可以依照第一代到第四代電腦來做區分:
第一代電腦:由真空管所構成,並沒有作業系統的存在,必須以人工插卡的方式來進行工作。
第二代電腦:由電晶體所構成,輸入裝置是讀卡機,輸出裝置是打孔機,要執行工作,必須將程式、資料及控制訊息畫在固定格式的打孔卡片上,然後輸入電腦。這個時期的作業系統技術有單工系統、批次系統等。
第三代電腦:由積體電路(IC)所構成,電腦硬體大幅進步,這個時期所發展的作業系統技術有SPOOL、多元程式處理系統、分時系統等。
第四代電腦:採用超大型積體電路(VLSI)技術,微處理器的應用不侷限於電腦,還遍及家電或其它商業機器。這個時期的作業系統技術有多處理器系統、分散式系統、叢集式系統、即時系統、嵌入式系統、手持系統等。
批次系統
最早期的作業系統很簡單,就是將一個工作自動轉移到下一個工作,屬於單工系統(single task system),一次只能服務一位使用者,為了提昇效率,電腦的操作人員留下各個使用者的工作,透過工作控制程式(job control program)將這些工作加以排序,把相同或類似的工作集中在一起,稱為一個批次(batch),然後交給電腦分批執行,稱為批次處理(batch processing),用來進行批次處理的作業系統則稱為批次系統(batch system)。
線上同時週邊處理(SPOOL)
線上同同週邊處理(SPOOL, simultaneous peripheral operation on line)是把磁碟當成共用裝置,將所有等待執行的工作暫存於磁碟,再由控制程式依序從磁碟中讀取等待執行的工作加以處理。SPOOL的優點是可以協調各個速度不同的週邊裝置。
多元程式處理
多元程式處理(multiprogramming)的目的是同時服務多位使用者或多個程式,致力於讓CPU一直保持忙碌的狀態,以提昇CPU的使用率。在多元程式處理系統中,記憶體內會同時存放著多個工作,當所執行的工作在存取速度較慢的輸入/輸出裝置時,便會將CPU切換到記憶體內其它需要執行的工作,等之前的工作結束存取輸入/輸出裝置後,就會重新得到CPU,繼續尚未完成的工作,這樣CPU就能一直保持忙碌的狀態,而不會閒置下來。
分時系統
分時處理(time-sharing)是一種特殊形式的多元程式處理,倘若系統需要同時服務多位使用者,那麼可以將CPU時間分割成許多小段,稱為時間配額(time slice),輪流分配給各個使用者的工作,時間配額一到,無論目前的工作完成與否,都必須將CPU的使用權交給下一個工作,而尚未完成的工作再等CPU輪完一輪後又會回來,從中斷的地方繼續執行,這就是分時系統(time-sharing system),又稱為多工系統(multitasking system)。
多處理器系統
相對於多數系統只有一個CPU,也就是單處理器系統(single processor system),多處理器系統(multiprocessor system)則是擁有多個CPU的系統,這些CPU之間會緊密溝通,並共用匯流排、時脈、週邊裝置,甚至記憶體,又稱為平行系統(parallel system)或緊密耦合系統(tightly coupled system)。
分散式系統
網路的盛行造就了分散式系統(distributed system)的誕生,在分散式系統中,同一個工作可以拆成幾個部份,然後透過快速的網路連結指派給多部電腦分別執行,這些電腦或許位於不同的地點,之間透過Internet來聯繫。從使用者的觀點來看,他並不知道工作被分散到哪部電腦執行,所有分散的工作都是由分散式系統來執行。
叢集式系統
叢集式系統(clustered system)的特性類似多處理器系統,也是集合多個CPU一起完成工作,不過它們是由兩個或更多個別的系統集合而成,這些電腦會分享儲存裝置並經由區域網路連接在一起。