Windows с быстрой реакцией
АрхивКомпания Microsoft, приступив к разработке Windows CE четыре года назад, выпустила версию 1.0 в начале 1997 года. После этого среди разработчиков распространялись спецификации версии 1.1, но в сентябре прошлого года была выпущена сразу версия Windows CE 2.0. А вскоре появилась и операционная система Windows CE 2.10. Однако уже известны некоторые характеристики и свойства следующей версии Windows CE (которой можно дать кодовое название 3.0), многие из которых должны способствовать повышению конкурентоспособности Windows CE как операционной системы реального времени. Уже сейчас существует довольно большой спрос на Windows CE, в том числе и на рынке операционных систем реального времени. Некоторая информация о производстве систем под управлением Windows CE и о партнерах Microsoft приведена во врезке.
Более полное представление об этой операционной системе можно составить, рассмотрев следующие аспекты: архитектура, особенности процессов и потоков, обработка прерываний, средства разработки и некоторые экспериментальные данные.
Архитектура
Архитектура Windows CE представлена на рис. 1. Наиболее интересным в этой операционной системе является ее модульность и четкое деление на платформно зависимую и платформно независимую части. Именно эти два свойства делают довольно легкой адаптацию Windows CE к конкретной платформе и конкретной задаче.
Рис. 1. Архитектура операционной системы Windows CE.
Благодаря модульности можно строить различные конфигурации операционной системы, отвечающие конкретным требованиям заказчика. Это позволяет существенно уменьшить потребность в памяти (за счет включения только необходимых компонентов) и охватить больший спектр приложений (за счет постепенного пополнения библиотеки компонентов). Здесь уместно привести конкретный пример: 8 апреля 1998 года объявлено о соглашении между Microsoft и Sony об использовании в бытовой аппаратуре Sony операционной системы Windows CE. Сейчас в Windows CE отсутствует возможность записывать, обрабатывать и воспроизводить видеосигнал, однако партнеры намерены разработать соответствующие модули.
Деление на платформно зависимую и платформно независимую части позволяет четко разделить обязанности и ответственность между Microsoft и разработчиками, осуществляющими перенос Windows CE на конкретную платформу. Основная задача разработчиков в этом случае состоит в реализации программного модуля между аппаратным обеспечением и ядром, называемого OEM Adaptation Layer (OAL). OAL включает в себя функции обработки прерываний, таймер реального времени, программируемый таймер, функции управления энергопотреблением, драйвера последовательного и параллельного портов, драйвера экрана, клавиатуры и других устройств.
Процессы и потоки
Windows CE является многопоточной операционной системой с вытесняющей многозадачностью. В каждый момент времени может быть запущено не более 32 процессов, количество потоков в каждом процессе ограничено только доступной оперативной памятью. Windows CE 2.10 поддерживает 8 уровней приоритета, а в следующих версиях предполагается увеличить это число до 32. Потоки с наивысшим приоритетом не вытесняются до их завершения. Приоритет потоков после создания не изменяется (исключение составляют изменения, инициированные механизмом инверсии приоритетов). Потокам выделяются кванты времени длительностью 25 мс (на платформах с процессором MIPS длительность квантов можно менять). Для синхронизации операционная система предоставляет мьютексы, критические секции и события (подробнее об этом читайте в статье "Окна в кармане", "Компьютерра" #42 (219)).
Обработка прерываний
Обработка прерываний - наиболее важная часть операционной системы реального времени. В Windows CE обработка прерываний разделена на два этапа: ISR (процедура обработки прерывания) и IST (поток обработки прерывания). При наступлении события, требующего прерывания активизируется соответствующая ISR, чья основная задача - получить от аппаратуры необходимую информацию и сохранить ее в памяти. На этом нахождение процессора в режиме прерывания заканчивается, и дальше обработка прерывания осуществляется в IST. Такая двухступенчатая схема позволяет существенно уменьшить задержки обработки прерываний (interrupt latency).
От операционной системы реального времени требуется также предсказуемость поведения, и, в первую очередь, наличие оценок времени выполнения ее основных функций. Конкретные количественные оценки Microsoft не публикует, однако приводит некоторые качественные характеристики. В частности, по заявлениям разработчиков Windows CE, системные вызовы ядра (KCALL) содержат только циклы с фиксированным количеством повторов (то есть вызовы ядра могут быть представлены в виде кода вообще без циклов), а это значит, что можно получить достаточно точные верхние оценки времени выполнения этих функций вне зависимости от входных аргументов. Для экспериментальной оценки параметров разрабатываемой системы реального времени имеются специальные инструменты в составе Windows CE Embedded Toolkit.
Средства разработки
Microsoft поставляет широкий спектр достаточно удобных средств разработки для Windows CE: Windows CE Toolkit for Visual C++ 5.0, Windows CE Toolkit for VisualBasic 5.0, Windows CE Toolkit for Visual J++ 1.1. Для разработчиков встроенных систем основным инструментом является Windows CE Embedded Toolkit for Visual C++ 5.0 (ETK)
ETK поражает прежде всего своим размером: он поставляется на трех компакт-дисках и при полной установке требует 1,6 Гбайт свободного дискового пространства. Большую часть этого пространства занимают библиотеки, из которых собирается Windows CE, скомпилированные для нескольких процессоров. Кроме этих библиотек в ETK входят кросс-платформные компиляторы, утилиты для построения Windows CE и создания образа операционной системы (этот образ предназначен для записи в ПЗУ), Windows CE SDK, Windows CE DDK, документация и примеры. Помимо отладчиков, которые входят в SDK, ETK содержит средства измерения производительности разрабатываемой системы, в том числе инструментальное ядро.
Процессоры, поддерживаемые в ETK
Производитель | Процессор |
AMD | 46DX5, K6, SC400 |
Hitachi | SH3 |
Intel | 486, Pentium |
Motorola | MPC821 |
NEC | Vr410x, Vr4200, Vr4300 (семейство MIPS) |
Philips | Poseidon (семейство MIPS) |
Toshiba | TX3912 (семейство MIPS) |
ETK позволяет переносить Windows CE на платформы, работающие под управлением процессоров из семейств MIPS, SH, x86 и PowerPC (см. таблицу). Построение операционной системы с помощью ETK в общем случае состоит из следующих шагов:
- перенос на новую платформу загрузчика Windows CE и утилиты ppsh, обеспечивающей загрузку бинарных файлов через параллельный порт;
- разработка и реализация OAL;
- перенос необходимых встроенных и дополнительных драйверов;
- построение операционной системы Windows CE из поставляемых библиотек и разработанных и перенесенных частей;
- дополнение операционной системы необходимыми приложениями;
- создание образа построенной системы для ПЗУ;
- загрузка образа, тестирование и отладка.
На сегодняшний день Windows CE Embedded Toolkit содержит наиболее полную подборку технической информации о Windows CE и некоторые исходные тексты. От себя могу сказать, что ETK существенно помогла мне при создании русификатора ParaWin CE именно благодаря тому, что можно посмотреть на операционную систему в "разобранном" виде и воспользоваться некоторыми полезными утилитами.
Эксперименты
Некоторые экспериментальные данные приведены на графике. Эти результаты получены с помощью утилиты Intrtime (1000 запусков, платформа Hitachi D9000, процессор SH3, частота процессора 58,98 МГц, частота системной шины 14,745 МГц). Данные взяты из публикаций в MSDN. Довольно трудно объяснить такой характер времени реакции операционной системы на прерывание; думаю, он служит предупреждением, что со временем найдется еще много странностей в поведении Windows CE. А пока просто обидно, что пик задержек приходится на десять потоков (а это примерно операционная система с парой запущенных приложений).
Рис. 2. Максимальное время задержки старта ISR в зависимости от количества работающих потоков в системе.
В принципе, поэкспериментировать с Windows CE и почувствовать себя разработчиком встроенных систем может каждый. Для этого достаточно иметь Embedded Toolkit и два компьютера - один для разработки, а другой для тестирования со следующей конфигурацией: Intel 486 или Pentium, RAM 16 Мбайт или более, видеокарта на базе чипа S3 или ET4000, мышка, подключенная к PS/2 или к COM2. Если нет необходимости пользоваться удаленным отладчиком, то эти компьютеры можно заменить одним, используя его по очереди для разработки и тестирования. Из ETK потребуются файл с образом операционной системы (он называется nk.bin) и утилита загрузки образа (loadcepc.exe). Кроме того, надо сделать загрузочную дискету с драйвером himem.sys.
Утилиту загрузки loadcepc найти легко, несколько сложнее найти nk.bin. Согласно документации Microsoft, на компакт-дисках с ETK среди примеров должны быть уже собранные версии Windows CE, в том числе и для платформы x86 с процессором i486. Однако на моих компакт-дисках с ETK beta эти файлы отсутствовали. Но это не страшно, сбор версии Windows CE для x86 на Pentium II 300 с 64 Мбайт памяти занимает две минуты. После чего можно грузиться с дискеты и запускать loadcepc. Правда, мне не удалось таким образом поработать с Windows CE, - после прорисовки десктопа компьютер неизбежно зависал, но я это связываю с особенностями бета версии ETK и надеюсь поработать с Windows CE на моем настольном PC, после того как достану коммерческую версию ETK.
Перспективы
Windows CE, довольно молодая операционная система (ей всего полтора года), пользуется уже широкой популярностью. Основная причина успеха заключается, видимо, в том, что эта операционная система - из семейства Windows и выпустила ее (и продвигает на рынке) фирма под управлением Билла Гейтса. Зная хватку этого человека, легко поверить в то, что он не упустит нарождающиеся рынки телевизионных приставок, бытовой техники и сверхпортативных вычислительных устройств, а заодно и потеснит производителей операционных систем на других рынках. Так что смело можно сказать: Windows CE будет расти и размножаться. Enjoy!
|