✔ 最佳答案
作業系統
維基百科,自由的百科全書
(重定向自作業系統)
跳转到: 导航, 搜索
圖片參考:
http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Operating_system_architecture.png/400px-Operating_system_architecture.png
圖片參考:
http://zh.wikipedia.org/skins-1.5/common/images/magnify-clip.png
作業系統簡略架構
圖片參考:
http://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Linux_architecture.png/400px-Linux_architecture.png
圖片參考:
http://zh.wikipedia.org/skins-1.5/common/images/magnify-clip.png
作業系統架構,以Linux為例
作業系統(Operating System,簡稱OS)是一管理電腦硬件與軟件資源的程式,同時也是電腦系統的核心與基石。OS身負諸如管理與配置記憶空間(Memory space)、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網絡與管理檔案系統等基本事務。OS也提供一個讓使用者與系統互動的操作介面(請參照殼及圖形用戶界面)。
OS的型態非常多樣,不同機器安裝的OS可從簡單到複雜,可從手機的嵌入式系統到超級電腦的大型操作系統。許多OS製造者對OS的定義也不大一致,例如有些OS整合了圖形化使用者介面,而有些OS僅使用文字介面,而將圖形介面視為一種非必要的應用程式。
OS理論是電腦科學中一個古老而又活躍的分支,而作業系統的設計與實現則是軟體工業的基礎與核心。
[編輯] 功能
作業系統位於底層硬體與用戶之間,是兩者溝通的橋樑。用戶可以通過作業系統的用戶界面,輸入命令。作業系統則對命令進行解釋,驅動硬體設備,實現用戶要求。以現代觀點而言,一個標準個人電腦的OS應該提供以下的功能:
行程管理(Processing management)
記憶空間管理(Memory management)
檔案系統(File system)
網絡通訊(Networking)
安全機制(Security)
使用者介面(User interface)
驅動程式(Device drivers)
[編輯] 行程管理
主條目:行程和執行緒
不管是常駐程式或者應用程式,他們都以行程為標準執行單位。當年運用馮紐曼架構建造電腦時,每個中央處理器最多隻能同時執行一個行程。早期的OS(例如DOS)也不允許任何程式打破這個限制,且DOS同時只有執行一個行程(雖然DOS自己宣稱他們擁有終止並等待駐留(TSR)能力,可以部分且艱難地解決這問題)。現代的作業系統,即使只擁有一個CPU,也可以利用多行程(multitask)功能同時執行複數行程。行程管理指的是作業系統調整複數行程的功能。
由於大部分的電腦只包含一顆中央處理器,在單核心(Core)的情況下多行程只是簡單迅速地切換各行程,讓每個行程都能夠執行,在多核心或多處理器的情況下,所有行程透過許多協同技術在各處理器或核心上轉換。越多行程同時執行,每個行程能分配到的時間比率就越小。很多OS在遇到此問題時會出現諸如音效斷續或滑鼠跳格的情況(稱做崩潰(Thrashing),一種OS只能不停執行自己的管理程式並耗盡系統資源的狀態,其他使用者或硬件的程式皆無法執行)。行程管理通常實踐了分時的概念,大部分的OS可以利用指定不同的特權等級(priority),為每個行程改變所佔的分時比例。特權越高的行程,執行優先順序越高,單位時間內佔的比例也越高。互動式OS也提供某種程度的回饋機制,讓直接與使用者互動的行程擁有較高的特權值。
除了行程管理之外,OS尚有擔負起行程間通訊(IPC)、行程異常終止處理以及死結(Dead lock)偵測及處理等較為艱深的問題。
在行程之下尚有執行緒的問題,但是大部分的OS並不會處理執行緒所遭遇的問題,通常OS僅止於提供一組API讓使用者自行操作或透過虛擬機器的管理機制控制執行緒之間的互動。
[編輯] 記憶體管理
根據帕金森定律:「你給程式再多記憶體,程式也會想盡辦法耗光」,因此程式設計師通常希望系統給他無限量且無限快的記憶體。大部分的現代電腦記憶體架構都是階層式的,最快且數量最少的暫存器為首,然後是快取、記憶體以及最慢的磁碟儲存裝置。而OS的記憶體管理提供尋找可用的記憶空間、配置與釋放記憶空間以及交換記憶體和低速儲存裝置的內含物……等功能。此類又被稱做虛擬記憶體管理的功能大幅增加每個行程可獲得的記憶空間(通常是4GB,既使實際上RAM的數量遠少於這數目)。然而這也帶來了微幅降低執行效率的缺點,嚴重時甚至也會導致行程崩潰。
記憶體管理的另一個重點活動就是藉由CPU的幫助來管理虛擬位置。如果同時有許多行程儲存於記憶裝置上,作業系統必須防止它們互相干擾對方的記憶體內容(除非透過某些協定在可控制的範圍下操作,並限制可存取的記憶體範圍)。分割記憶體空間可以達成目標。每個行程只會看到整個記憶體空間(從0到記憶體空間的最大上限)被配置給它自己(當然,有些位置被OS保留而禁止存取)。CPU事先存了幾個表以比對虛擬位置與實際記憶體位置,這種方法稱為分頁(paging)配置。
藉由對每個行程產生分開獨立的位置空間,OS也可以輕易地一次釋放某行程所佔據的所有記憶體。如果這個行程不釋放記憶體,OS可以結束行程並將記憶體自動釋放。