2007年8月21日 星期二

Symbian OS

Symbian是由EricssonPanasonicNOKIASimens AGSony Ericsson等公司所共同開發並擁用的專為手機硬體而設計的作業系統,其包含了函式庫(libraries)、用戶界面(user interface)架構和共用工具(common tools)的參考實現(reference implementation),Symbian作業系統的前身是Psion的EPOC作業系統,當初僅設計為ARM架構處理器獨佔使用。
Symbian的設計特性
以Symbian作業系統為基礎的智慧型手機,在使用者介面上的設計則是以套件形式提供廠商多種不同的選擇,比如說常見於Sony Ericsson手機的UIQ介面,Nokia手機的Series 60Series 80Series 90等,以及諸如封閉式平台如由Fujitsu、Mitsubishi、Sony Ericsson和Sharp合作開發應用於NTT DoCoMo所採用的FOMA(Freedom of Mobile Multimedia Access,世界上第一個WCDMA網路)等等。提供不同型態的手機操作方式(介面與輸入方式),以及程度不等的擴展性。
而Symbian本身也是一款支援先佔式多工、多執行緒,以及具備記憶體保護功能的作業系統,由於最初是專為行動裝置所設計,一般行動裝置(如手機)等在硬體資源上都相當有限,無法如桌上平台作業系統般,對硬體需求可以無限制的膨脹。為了要儘可能在維持系統的可操作性以及穩定性的前提之下,延長採用Symbian作業系統的行動裝置的使用時間,因此它在資源控管上就進行得非常嚴格,除了利用各種方式來降低記憶體的需求以外,程式寫作是採用事件驅動的方式,當記憶體中沒有應用程式發出事件處理需求,中央處理器將會被關閉,藉以節省電源消耗。

記憶體管理是Symbian程式設計的最重要部分
由於Symbian OS本身就是針對記憶體與運算資源都頗為受限的硬體來開發,應用程式可能在各種情況之下碰到記憶體耗盡,或者是硬體資源被其他應用程式佔用的情況,這些例外情況無法透過修改程式碼來獲得改進,因此必須遵守幾個規則:
■ 不要佔用不必的記憶體空間。
■ 當程式執行完畢,必須記得將所使用到的資源釋放出來。
■ 在程式對作業系統本身申請記憶體佔用時,都必須準備好面對記憶體不足的情況。
■ 當記憶體不足的情況出現時,就必須將應用程式回歸到原始狀態,並且將原本佔用到的資源回吐出來。
Symbian OS中的執行緒管理與工作進程管理
在Symbian OS中,每個工作進程都包含了一個或多個執行緒,執行緒是程式執行的基本單位,由於Symbian OS中是屬於先佔式多工設計,這也意味著,每個執行緒都有自己的執行時間,除非系統將CPU使用權轉移到其他執行緒中。當系統調度時,執行緒的定址空間是受到保護的,因此每個使用者端執行緒都有自己的專屬空間與時間,可避免互相受到干擾。每個執行緒都有各自的stack以及heap,heap可以是私有的,也可以被其他執行緒所共享。雖然Symbian OS支援多執行緒執行,但基本上還是為單執行緒工作處理做最佳化,因此在應用程式開發上,大多推薦以Active Object(類似協同式多工的一種處理方式)來代替多執行緒的執行方式。

沒有留言: