
Архитектура
Архитектура Windows CE представлена на рис. 1. Наиболее интересным в этой операционной системе является ее модульность и четкое деление на платформно зависимую и платформно независимую части. Именно эти два свойства делают довольно легкой адаптацию Windows CE к конкретной платформе и конкретной задаче
Рис. 1. Архитектура операционной системы Windows CE
Благодаря модульности можно строить различные конфигурации операционной системы, отвечающие конкретным требованиям заказчика. Это позволяет существенно уменьшить потребность в памяти (за счет включения только необходимых компонентов) и охватить больший спектр приложений (за счет постепенного пополнения библиотеки компонентов). Деление на платформно зависимую и платформно независимую части позволяет четко разделить обязанности и ответственность между Microsoft и разработчиками, осуществляющими перенос Windows CE на конкретную платформу. Основная задача разработчиков в этом случае состоит в реализации программного модуля между аппаратным обеспечением и ядром, называемого OEM Adaptation Layer (OAL). OAL включает в себя функции обработки прерываний, таймер реального времени, программируемый таймер, функции управления энергопотреблением, драйвера последовательного и параллельного портов, драйвера экрана, клавиатуры и других устройств.
Ядро
Основа операционной системы, ядро, было написано программистами Microsoft с нуля. В результате получилось компактное и быстрое ядро, которое поддерживает подмножество (примерно 500 из 1000) вызовов интерфейса Win32 и, кроме того, обладает набором интерфейсов, разработанных специально для handheld-компьютеров и встроенных систем управления.
Одно из нововведений - встроенная база данных, для работы с которой в ядро Windows CE включена поддержка database API. Аналогов этому интерфейсу в других версиях Windows пока нет. Через database API разработчики программного обеспечения без лишних хлопот получат в свое распоряжение готовую к использованию систему управления реляционными базами данных.
Процессы и потоки
Windows CE является многопоточной операционной системой с вытесняющей многозадачностью. Разработчики с самого начала проектировали Windows CE как многозадачную и многопоточную операционную систему с вытесняющей многозадачностью. Но, несмотря на это, ядро поддерживает работу не более 32 процессов одновременно. Количество же потоков в каждом процессе ограничено только объемом доступной системе памяти.
Планировщик процессов поддерживает дискретные значения приоритетов потоков - от 0 (максимальный) до 7 (минимальный). На потоки с максимальным приоритетом не распространяется "вытесняющая многозадачность": получив управление, поток с приоритетом 0 выполняется до тех пор, пока он сам не вернет управление операционной системе. Потокам выделяются кванты времени длительностью 25 мс (на платформах с процессором MIPS длительность квантов можно менять). Для синхронизации потоков используются стандартные методы: критические секции, мьютексы, и события, очереди сообщений и т. д. Не реализованы только семафоры - разработчикам предлагается заменять их с помощью критических секций.