Другие - Майкрософт и мир встраиваемых операционных систем

Новости it-компаний

IBM продемонстрировала новый метод повышения производительно

News image

Корпорация IBM объявила, что ей удалось разработать метод трехкратного повышения производительности стандартных транзисторов интегральных схем с по...

IBM предложила 3D-экран за $20

News image

На 22 ежегодной конференции Flat Information Displays лаборатория по дисплеям фирмы IBM продемонстрировала недорогой способ по...

Авторизация



Развитие технологий:

Компания AMD (Advanced Micro Device)

Компания AMD (Advanced Micro Device), основанная в 1969 году в Калифорнии, является одним из крупнейших производителей процессоров. До не столь да...

Микропроцессор Intel 80286

В 1982 году фирма Intel выпустила новый микропроцессор Intel 80286, который имел 134 тыс. транзисторов и был разработан по 1,5 ми...


Майкрософт и мир встраиваемых операционных систем
Компании - Другие

 майкрософт  и мир встраиваемых операционных систем

Помните шутку: что бы было, если бы автомобили работали под управлением Windows? А они уже работают!
Александр Шаповал, системный инженер Microsoft
Мы не зря решили поместить в качестве эпиграфа к нашей статье слова системного инженера компании Майкрософт Александра Шаповала, которые он произнес на одной из конференций, посвященных мобильным технологиям. Действительно, сегодня Майкрософт весьма успешно расширяет рынки сбыта своих операционных систем.

Сейчас она активно завоевывает симпатии корпоративных заказчиков и продвигает свои серверные решения, начав сотрудничество с государственными ведомствами разных стран (в том числе и России), подразумевающее предоставление им исходных кодов ОС.

Но основу будущего успеха Майкрософт все же видит в дальнейшей экспансии своих программных продуктов в нашу повседневную жизнь. Руководство софтверного гиганта прекрасно понимает, что число компаний, ведущих свой бизнес и производство с применением персональных компьютеров, как ни крути, все же не бесконечно, то же самое можно сказать и о домашних пользователях . Некоторым людям вообще не нужна большая персоналка, они вполне обходятся карманным компьютером или электронным органайзером, другие даже не умеют работать на компьютере (хотя таких в последнее время становится все меньше!). А вот количество людей, пользующихся разнообразной сложной техникой, например автомобилями, - просто огромно и в будущем будет только увеличиваться!

Именно поэтому Майкрософт решила стать еще ближе к потребителю и начала разрабатывать целое семейство новых операционных систем, работающих не только на ПК, но и на других интеллектуальных устройствах, очень часто используемых в быту или на производстве. Очевидно, что управление сотовыми телефонами, автомобилями и станками диктует совсем другие требования к операционной системе, чем, скажем, управление сервером, а уж тем более - домашней персоналкой. Поэтому перед Майкрософт стояла весьма непростая задача - создать совсем особую, непохожую на своих десктопных собратьев ОС, а лучше - сразу несколько. Для сотовых телефонов и тех бытовых электронных устройств, которые не очень чувствительны к небольшим временным задержкам исполнения кода, - одну, а для автомобилей, станков, сборочных конвейеров и прочей техники, требующей получения ответа от микропроцессора в кратчайший и, главное, предсказуемый отрезок времени, - другую. Обычно такие операционные системы называют системами реального времени (Real Time System, RTS).

Интуитивно понятно, что система, работающая в режиме реального времени , должна моментально реагировать на внешние события. Например, если пользователь нажал клавишу на клавиатуре, то тут же на экране должна появиться соответствующая этой клавише буква. И если появление буквы на экране - не столь критичный по времени процесс (в крайнем случае пользователь может и подождать), то, например, с запаздыванием между нажатием на педаль тормоза и реакцией тормозной системы автомобиля мириться никто не будет! На практике моментальный отклик системы реализовать невозможно. Во-первых, хотя бы потому, что современные процессоры работают не с бесконечной скоростью, а значит, обработка одиночного события, строго говоря, займет у них какое-то количество тактов. И, во-вторых, не стоит забывать, что система-то у нас многозадачная! Всегда может произойти такое количество одновременных событий, что даже самый мощный микропроцессор будет довольно долго их все обрабатывать.

Например, водитель нажал на педаль тормоза, одновременно с этим один из датчиков зафиксировал потерю сцепления с дорожным покрытием переднего левого колеса, кроме того, от таймера пришло сообщение, что микропроцессору прямо сейчас необходимо определить, какое количество топливной смеси и под каким давлением должно быть впрыснуто в один из цилиндров двигателя; мы уже не говорим, что в этот момент, помимо всего прочего, встроенному MP3-проигрывателю может потребоваться считать с диска и декодировать очередной фрагмент музыкального произведения, а почтовому клиенту - скачать из Интернета несколько новых писем.

Жизнь далека от совершенства. Поэтому, принимая во внимание объективное положение вещей, специалисты называют системами реального времени такие системы, которые на любое событие гарантированно реагируют в течение заранее определенного интервала времени. Естественно, чем он меньше - тем лучше. Но если ОС отреагировала на событие, это вовсе не означает, что она займется решением той новой задачи, которая у нее появляется в связи с произошедшим событием. Вполне возможно, у нее есть более важные дела. Какой задачей пренебречь, а какой отдать все ресурсы центрального микропроцессора, чтобы ее выполнение уложилось в заранее отведенные временные рамки, должна решить специальная часть операционной системы - планировщик. Понятно, что каким бы умным ни был планировщик, он не волшебник, не маг и не кудесник, а значит, должным образом может распланировать только те задачи, выполнение которых принципиально может быть осуществлено за отведенный промежуток времени. Так, если какое-то событие периодически возникает через каждые 10 миллисекунд (например срабатывание системы зажигания), а на его обработку уходит 11 миллисекунд, то такая задача называется не поддающейся планированию, и решить ее невозможно. Что же делать, если она все-таки возникла?

Поведение системы будет зависеть от того, используется ли система реального времени с жестким детерминизмом (Hard RTS) или гибкая (Soft RTS). Чтобы продемонстрировать разницу между ними, Нэт Фрамптон (Nat Frampton) в статье Real Time and Windows Embedded , опубликованной на сайте www.microsoft.com, приводит в качестве примера небольшой цех, производящий пластиковые ящики. А конкретно, ту ступень конвейера, на которой выявляются и удаляются из общего потока бракованные ящики. Устройство, отбраковывающее ящики, изображено на рисунке, оно состоит из специального сенсора (Box Sensor), манипулятора (Divert Area) и микроконтроллера (Controller).

Микроконтроллер, получив информацию от сенсора, должен принять решение: позволить ли ящику пройти дальше по конвейеру или столкнуть его с помощью манипулятора в специальный сборник. Однако если контроллер задержится с принятием решения, то ящик успеет проскочить манипулятор, и попытка столкнуть его с конвейера может закончиться неудачей. В лучшем случае дефектный ящик просто не будет отбракован, в худшем - ящик застрянет и застопорит весь конвейер, при этом продолжение производства будет возможно только после вмешательства недовольных бородатых мужиков из мобильной бригады ремонтников. В гибкой системе реального времени конвейер будет остановлен до тех пор, пока микроконтроллер не вынесет свой приговор и не сконфигурирует должным образом манипулятор. Система реального времени с жестким детерминизмом всегда уложится с вынесением очередному ящику приговора за то время, пока он движется по конвейеру от сенсора до манипулятора, т. о. гарантируется, что конвейер никогда не будет останавливаться.

Очевидно, что если Майкрософт хочет занять рынок операционных систем для самолетов и автомобилей, то ей необходимо создать операционную систему реального времени с жестким детерминизмом, ведь самолет - не конвейер, его нельзя на время подвесить в воздухе , пока микропроцессор занят обработкой прерываний от различных устройств или выполнением внутренних сервисов ОС. Основная сложность для Майкрософт заключалась не в том, что создание операционной системы реального времени очень сложное и ответственное дело - со многими сложнейшими задачами ее инженеры весьма успешно справлялась все эти годы. Проблема заключалась в том, что опыта создания подобных систем у нее до этого момента не было, а значит, ядро ОС пришлось бы создавать практически с нуля . Неплохие наработки в виде ядра операционной системы NT и даже те усовершенствования, которые в него внесли в ходе разработки Windows 2000 и Windows XP, годились лишь для создания гибких систем реального времени. Кроме того, даже для создания гибкой системы реального времени ядро Windows XP нуждалось в очень серьезной переработке! Ведь если рассмотреть алгоритмы работы планировщика XP и тщательно замерить время, затрачиваемое ОС на обработку некоторых событий, то окажется, что ее характеристики весьма далеки от требуемых для RTS.

Хотя Windows XP и смотрится очень неплохо на фоне операционных систем Windows 9x, мы бы, признаемся, не рискнули заранее сказать, сколько времени ей может понадобиться, чтобы отреагировать на нажатие какой-нибудь клавиши во всех возможных контекстах...

Это и понятно, у XP совсем другие задачи, нежели управление спутниками или линиями по производству жевательной резинки. В то же время, как оказалось, ее ядро после некоторой доработки вполне можно использовать как базу для построения квази-RTS (иначе говоря - гибкой системы). Такая ОС действительно была разработана и сейчас носит гордое имя Windows XP Embedded. Подробнее об архитектуре ядра Windows XP вы можете прочесть в нашей статье Администрирование Windows XP , а часть вторую - на сайте издательства Компьютер-Прайс (...). Windows Embedded, конечно, весьма интересна, но так как она представляет собой ОС не совсем реального времени , мы ее подробно описывать не будем.

Майкрософт все же очень хотелось иметь свою собственную ОС реального времени с жестким детерминизмом. И ею стала Windows CE. Последняя версия Windows CE 4.2 сочетает в себе архитектуру RTS и обладает множеством других возможностей, присущих настольным версиям ОС от Майкрософт : MS SQL сервер, поддержка COM/DCOM, набор стандартных программ (WordPad и т. д.), весьма мощное обеспечение сетевого взаимодействия - LAN 802.11, 802.1x, 802.3, 802.5, Bluetooth, IrDA, Dial-up, PPP, VPN, Internet Explorer for Win CE, - всего не перечислить. Для нее даже разработана своя собственная среда программирования - eMbedded Visual C++ 4.0.

Изначально Windows CE использовалась как встраиваемая ОС в Pocket PC. Адаптировать ее для использования в качестве автомобильной встраиваемой операционной системы было гораздо проще, чем ту же XP, так и было решено сделать. Поэтому Windows Automotive выглядит как несколько урезанная Windows CE, но, тем не менее, с ее ядром и базовыми функциями.

Обращает на себя внимание и большое число поддерживаемых ЦПУ. Версии с 2.12 по 4.2 поддерживают (у каждой конкретной версии этот список свой) более 300 моделей процессоров, в том числе от таких производителей, как AMD, Hitachi, Hynix, IBM, Intel, MIPS Technologies, Motorola, National Semiconductor, NEC, Samsung, SiS, Toshiba, Transmeta, VIA. Видно, что не все они даже относятся к семейству x86, есть и MIPS-процессоры, и PowerPC-процессоры, и еще более экзотические. Так что проблем совместимости с железом, по идее, быть не должно.

Итак, какие преимущества дает автомобилистам Win Automotive? Их несколько:

- беспроводной доступ к Интернету и множеству сетевых сервисов. Даже инженеры Майкрософт ставят эту возможность на первое место в ряду значимых для покупателя! И то правда: стоите вы в ужасающей пробке на въезде в какой-нибудь Нью-Йорк и ползаете в свое удовольствие... по любимым сайтам!

- Hands-free связь внутри салона вашего автомобиля.

- Как в некотором роде следствие - голосовое управление системой.

- Кстати, в пробку попасть будет не так-то просто. Специальные системы автонавигации заранее предупредят вас об опасности возникновения такой ситуации.

- Раз у вас в машине есть Интернет, значит, будут и развлечения. Вы сможет заказать и тут же прослушать любимую музыку, посмотреть кино.

- Постоянное наблюдение за состоянием вашего автомобиля, его подсистем и отдельных узлов. Действительно ценная вещь, которая поможет не потратить деньги (см. пункты выше), а наоборот, сэкономить.

- Защита от угона.

Идея работы в Интернете прямо из машины развивается в соответствии с концепцией Майкрософт Connected car Initiative , что дословно можно перевести как подключенная машина . На сайте, посвященном этому проекту, есть весьма забавная статья, в подробностях описывающая райскую жизнь автовладельца будущего: ему даже не придется думать о том, когда поменять масло - машина сама напомнит об этом, сообщит адрес и расписание работы ближайшей сервисной станции, где это можно будет сделать, а также расскажет обо всех новшествах и изменениях, произошедших за последнее время в области замены масла... Один маленький вопрос шевелится в голове: если в США это будет в будущем, то когда же Windows Automotive придет в Россию...

Это было лицо Windows Automotive, обращенное в сторону потребителя . А как выглядит та ее часть, которая будет обращена в сторону разработчика и, конкретно, программиста?

Как и у систем на основе Windows NT, у Windows Automotive 32-битное ядро, которое, в общем-то, и обеспечивает большую часть ее real-time функциональности. Ядро разбито на гранулы - маленькие модули, из которых можно собрать полностью готовое ядро, оптимально подходящее для той или иной аппаратной платформы и конкретной цели использования - т. н. гранульное компонентное представление ядра (Granular Kernel Componentization). Ядро ОС размером меньше 200 Кб, если можно так выразиться, все еще дышит , то есть может более-менее полноценно работать.

Планировщик задач поддерживает аж 256 уровней приоритета, а также вложенные прерывания. Кстати, заметим, что до версии 3.0 ядро Windows CE поддерживало только 7 уровней приоритета, что сильно усложняло жизнь разработчикам приложений под CE. Функции обработки прерываний (ISR) и потоки сервисов прерываний (IST) выполняются весьма шустро: среднее время выполнения ISR на Pentium 166МГц составляет 2,8 мкс, а IST - 17,9 мкс.

Для справки Майкрософт приводит такие данные: при работе на 200-мегагерцевом SH4 ЦПУ от Hitachi: характерное время загрузки ОС занимает меньше 1 секунды, а время отклика на аппаратное прерывание - порядка 10 мкс. В случае, если используется другое оборудование, эти времена могут незначительно изменяться (опять же, по словам Майкрософт ).

Здесь нужно отметить, что Windows Automotive - далеко не единственная ОС реального времени. Microsoft приходится конкурировать с другими вполне солидными производителями ПО - QNX Software Systems, Wind River и огромным количеством разнообразных Linux-компаний. По оценке аналитиков, на долю Microsoft сейчас приходится всего чуть более 10% рынка встраиваемых систем, хотя, конечно, такое положение вполне может измениться в ближайшее время. И все же (тоже для сравнения!) приведем одну из характеристик популярной японской ОС реального времени Tron (The Real-time Operation system Nucleus). Скорость реакции у нее составляет всего 1 мкс. Это гораздо лучше, чем у Майкрософт .

Тогда что заставляет таких гигантов автомобилестроения, как BMW и Honda, заключать партнерские соглашения о поддержке Windows Automotive? Ответ очевиден: разработчики, пишущие программы для существующих ОС Microsoft (а таких миллионы), легко могут включить в них и поддержку Windows Automotive, благодаря тому, что в ней используется все тот же, привычный всем программистам, Win32 API. Таким образом, для ОС от Майкрософт будет иметься (и уже сейчас есть) множество приложений и программ, а для других RTS - нет. Сюда же следует добавить возможность эмуляции среды Windows Automotive на Windows 2000 и Windows XP, что тоже весьма приятно для разработчиков. Добавим, что изначально в Windows Automotive интегрирован набор API AYGShell, обеспечивающий совместимость с этой ОС и существующих приложений для Pocket PC 2000 - 2003. Плюс, как мы отмечали, у ОС имеется возможность голосового управления, соответственно, в ней имеется расширение API десктопных систем - Speech API (SAPI) версии 5.0. В нем содержатся стандартные функции по распознаванию речи и переводу ее в текст. А также имеется поддержка (уже встроенная в ОС!) самых разнообразных форматов мультимедиа.

А теперь угадайте, какую операционную систему при прочих равных условиях выберет производитель, и какую - среднестатистический покупатель? Думается, ответ и на тот, и на другой вопрос очевиден - это Windows Automotive.

 


Читайте:


Добавить комментарий


Защитный код
Обновить

Кто на самом деле первым открыл транзистор?

News image

К сожалению, мировая слава первооткрывателя не всегда достается тем, кто действительно был первым. Это в полной мере можно отнести к ге...

История компьютера в лицах. Сеймур Крей

News image

Сеймур Крей, создатель первого в мире суперкомпьютера, родился в городке Chippewa Falls, штат Висконсин, в 1925 году. Семья Креев имеет ан...

Жесткие диски для ноутбуков становятся тоньше

News image

На данный момент жесткие диски для ноутбуков могут быть толщиной 9,5 мм и 12,5 мм. Первые получили наибольшее распространение, а об...

Financial Times обещает iTablet уже в следующем месяце

News image

Конец декабря редакция Financial Times решила скрасить очередной порцией слухов о планшетнике Apple. По данным издания, это устройство, покорившее заголовки СМ...

MacBU подытоживает две тысячи девятый год

News image

Как прошел 2009 год в компании, которую традиционно принято считать вторым крупнейшим разработчиков ПО для платформы Apple Macintosh? В Microsoft Ma...

Планшетный Мак покажут 26 января?

News image

За несколько дней до начала нового 2010 года онлайн-пресса разразилась новым потоком слухов на тему планшетного компьютера Apple: сначала хорошо ос...

VESA официально утвердила стандарт mini DisplayPort

News image

Презентованный Apple осенью 2008-го новый видеоинтерфейс mini DisplayPort (сокращенно mDP) вызвал неоднозначную реакцию, отголоски которой оставались различимыми вплоть до вчерашнего дн...

Внедрение 6-ядерных процессоров Intel Xeon может потребовать

News image

Изданию Fudzilla стали известны подробности по первому 6-ядерному процессору Intel Xeon. Он получит обозначение Core i7 980X, а его несущая тактовая ча...