第二章WindowsCE系统结构.doc

第二章WindowsCE系统结构.doc

第二章 Windows CE系統結構 一般認為Windows CE是一個適合嵌入式應用的通用作業系統,然而,從系統的角度來看,Windows CE並不只是一個作業系統,它還包括對多種目標處理器以及週邊設備的支援,並提供了系統開發工具、應用開發工具、整合的應用程式 (例如IE),以及.NET Frameworks等等,所有這些元件構成了Windows CE系統的應用框架:在作業系統的基礎上,1) 提供方便的工具來開發BSP,使得基本的Windows CE作業系統kernel可以迅速被移植到某個專用嵌入式系統的硬體平臺上;2) 提供便捷的應用軟體發展平臺,以及應用程式在多種Windows平臺間的快速移植能力;3) 作業系統以及所支援的特性可以根據嵌入式應用程式的需要,進行配置管理,使開發者可以根據需求來選擇系統特性進行組合,建構出新系統。 本章主要從宏觀的角度,來分析整個Windows CE的架構。為了避免混淆,在沒有明確說明的情況下,本書中Windows CE指作業系統本身。 2.1 透視系統關鍵特性 Windows CE (包括開發平臺) 相當適合嵌入式應用程式的開發,它希望提供給使用CE作業系統來做嵌入式產品開發的人,如下的基本特性: 適應小型系統,為低成本計算能力較差的系統提供簡潔、高效、完善的控制機制 支援多種處理器和電腦架構,並支援多種裝置介面 遵循Windows平臺的應用開發規範:提供Win32 API等 作業系統各部分模組化,可根據特性訂製,以適應ROM,並以最佳的方式使用記憶體 為應用程式提供網路通訊、圖形使用者介面、資料庫、檔案等支援 支援即時應用 提供進階電源管理功能 這些特色使得Windows CE (包括開發平臺) 成為一個成功的商用系統。下面將從幾個方面來檢視系統所提供的具體能力。 2.1.1 作業系統kernel特性 記憶體架構 Windows CE提供了靈活的記憶體存取機制,使系統中不同類型的應用程式可以充分的使用系統提供的RAM、ROM以及Flash Memory,並選擇性的有效利用處理器提供的虛擬記憶體,記憶體保護等功能。記憶體管理可以劃分為三個部分:實體頁面管理,主要負責追蹤系統中實體記憶體的使用情況,為換頁程式選取可用的實體頁面,釋放不使用的實體頁面等;虛擬記憶體管理,主要管理系統的記憶體位址對應頁面的換進換出等;heap管理,主要管理處理程序空間內部的動態記憶體釋放與回收,以支援程式的動態資料結構。 系統中的32位元虛擬位址提供了4GB的虛擬記憶體空間,對於嵌入式應用來說,記憶體一般很小,因而系統在使用記憶體方面作了些限制,以提供更高效能的儲存空間管理。這些限制包括:大量的系統保留空間,實際上這些位址空間,通常不對應到任何的實體頁面;系統處理程序數最多只有32個,每個處理程序的實際可使用記憶體空間受到限制 (32MB);有固定的處理程序共用記憶體;有ROM位址的對應等。 Windows CE使用如圖2.1的記憶體配置 (memory layout)。 圖2.1 Windows CE的記憶體配置 由於限定了處理程序空間的大小和處理程序的數目,記憶體配置 (memory layout) 變得相對簡單,系統提供33個Slot供這些處理程序使用,其中,Slot 0是全域的共用記憶體,底部的一些Slot由重要的系統處理程序使用,kernel部分的靜態虛擬地址 (Static Virtual Addresses) 專門用來對應ROM、週邊設備等資源。NK Slot即NK.EXE的處理程序空間,NK.EXE是一個在kernel mode的處理程序,包括了作業系統kernel的程式碼。對實體記憶體相對比較緊缺的系統來說,對處理程序空間和處理程序數目的限制,將能有效的紓解記憶體系統可能的壓力。例如,某個應用系統限制6個處理程序,那麼系統對應中,將永遠不會用到第7個的Slot,系統作位址對應,將不考慮別的部分。更詳細的資訊請參看第4章的內容。 排程 Windows CE作業系統提供了對多種優先權(multi-priority)進行排程的能力,它的排程器基本上可以看成一個具有增強即時性能、支援更多系統結構、結構簡化的Windows XP排程器。表2.1顯示了二者主要的差別。 表2.1 Windows XP與Windows CE排程器的比較 Windows XPWindows CEProcess處理程序結構比較複雜,系統支援處理程序數目眾多。處理程序空間達4GB,可以掌握各種複雜資源處理程序結構比較簡單,系統最多支援32個獨立的處理程序。處理程序空間32MBThreadkernel基本排程單位基本上與Windows XP相同Fiber由使用者自己負責排程,排程代價小基本上和

文档评论(0)

1亿VIP精品文档

相关文档