Опубликован: 24.04.2009 | Доступ: свободный | Студентов: 1180 / 358 | Оценка: 4.39 / 4.28 | Длительность: 18:45:00
Специальности: Программист
Лекция 6:

Архитектура встраиваемой ОС реального времени – CE 6.0

Управление питанием

Встраиваемые устройства часто работают от батарей, и даже устройства работающие от источника переменного тока необходимо проектировать с учетом эффективного потребления энергии.

Длительная работа от батареи является одним из основных конструкционных рассмотрений в таких устройствах, как сотовые телефоны. Большинство операционных систем включают поддержку для управления питанием, отключая части оборудования и возможно замедляя частоту работы процессора во время периодов неактивности. Следующая иллюстрация показывает состояния питания и переходы в CE 6.0.

Состояния питания и переходы CE 6.0

увеличить изображение
Рис. 6.13. Состояния питания и переходы CE 6.0

Менеджер питания позволяет управлять устройствами просто и независимо от базовой модели управления питанием в CE. В базовой модели питания CE устройства получают уведомления, что ОС приостанавливает и возобновляет работу. Это уведомление происходит в контексте прерывания, поэтому устройства строго ограничены в отношении того, что они могут делать во время приостановленного состояния, и как долго они могут это делать. Рисунок 6.13 показывает архитектуру управления питанием для CE.

Таблица 6.7 описывает переходы между состояниями для CE - в зависимости от используемого устройства.

Таблица 6.7. Переходы состояний питания
Переход Описание
Power-on reset Используемое устройство очищает рабочую RAM и инициализирует файловую систему.
Cold boot Первое применение питания, например, когда устанавливается резервная батарея.
Warm boot Переход из состояния питания On. Теплая загрузка очищает рабочую RAM.
On-to-Idle Переход из полностью выполняющегося состояния в состояние, в котором микропроцессор использует мало энергии.
Idle-to-On Переход микропроцессора из маломощной к работе в полную мощность.
On-to-Suspend Переход к остановке микропроцессора в результате определенных событий. Вызывается функция XXX_PowerDown драйвера устройства.
Suspend-to-On Переход остановленного микропроцессора к работе в полную мощность на основе определенных пробуждающих событий. Вызывается функция XXX_PowerUp драйвера устройства.
On-to-Critical off Переход, когда обнаруживается критически низкое напряжение питания. Для устройства необходимо реализовать функцию перехода в состояние Critical Off.
Архитектура Менеджера питания CE 6.0

Рис. 6.14. Архитектура Менеджера питания CE 6.0

Используя Менеджер питания устройства получают уведомления об изменении состояния питания как управляющие коды В/В (IOCTL). Так как IOCTL выполняются в контексте потока, разработчики драйвера имеют значительно большую гибкость в том, как они реализуют изменение состояния питания. Использование IOCTL для управления питанием позволяет также разделить состояние питания устройства и общее состояние питания ОС. Поэтому некоторые устройства можно выключить во время работы ОС, а другие можно оставить включенными, когда большая часть ОС приостановлена.

Кроме управления питанием устройства Менеджер питания уведомляет приложения о связанных с питанием событиях. Например, Менеджер питания информирует заинтересованные приложения, когда ОС восстанавливается из приостановленного состояния.

Менеджер питания реализован как динамически подключаемая библиотека (DLL), называемая Pm.dll, которая компонуется непосредственно с Device.exe. Device.exe вызывает точки входа в Pm.dll, когда вызываются прикладные интерфейсы программирования управления питанием. Исходный код для Pm.dll предоставляется вместе с Microsoft Platform Builder 4.0 и более поздними версиями, и OEM могут модифицировать его для своего устройства на основе CE.

Менеджер питания действует как посредник между устройствами, приложениями, и определяет состояния питания ОС. Он реализует следующее множество правил коммуникации между тремя этими частями:

  • Состояния питания ОС накладывает на все устройства ограничения на максимальное потребление питания.
  • Приложения накладывают ограничения минимального потребления питания на определенные устройства, чтобы получить минимальные уровни производительности.
  • Менеджер питания будет позволять устройствами благоразумно управлять своей собственной энергией, пока они удерживают уровни потребления энергии между заданными максимумом и минимумом.

Если минимальная граница потребления энергии задана выше, чем максимальная, питание устройства будет оставаться повышенным, пока устройство требуется приложению.

Устройства могут реализовать один или несколько состояний питания устройства. Количество состояний питания устройства ограничено. Если ОС переходит в приостановленное состояние, наложенные приложением минимальные ограничения на питание будут задаваться отдельно, пока ОС находится в приостановленном состоянии.

Состояния питания системы описывают для всех устройств максимальное состояние питания устройства. Системные состояния питания определяются OEM, описываются в реестре, и могут дополнительно иметь код для их поддержки в Менеджере питания. OEM может определить любое число системных состояний питания.

В инфраструктуре Менеджера питания OEM определяет состояния питания ОС, которые устанавливают максимальные состояния питания устройства. Устройства вызывают функцию DevicePowerNotify для регулировки своих собственных уровней питания, а приложения вызывают функцию SetPowerRequirement для проверки, что требуемые им устройства выполняются на приемлемом уровне производительности.

Менеджер питания управляет питанием устройств и улучшает общую эффективность питания операционной системы, обеспечивает управление питанием для каждого устройства, и сосуществуют с приложениями и драйверами, которые не поддерживают Менеджер питания. Можно использовать управление питанием для уменьшения потребления питания используемого устройства и для поддержки и сохранения файловой системы в RAM во время состояний питания on, idle, и suspend.

Менеджер питания предоставляет также следующие возможности:

  • Инфраструктуру, в которой устройства могут благоразумно управлять своим собственным питанием.
  • Механизм для разъединения состояния питания устройства и состояния системы suspend или resume.
  • Модуль, который имеет глобальное представление системной рабочей среды, статуса питания и состояний питания устройства. Можно настроить Менеджер питания, чтобы он принимал общесистемные решения о питании, которые подходят для устройства.

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

Менеджер питания управляет состояниями питания устройства в контексте состояний питания системы, которые определены OEM.

Состояния питания системы описываются в реестре, где можно определить любое число состояний. Состояния питания системы определяют верхнюю границу для состояний питания устройства.

Некоторые приложения могут требовать, чтобы заданное устройство обслуживалось на определенном уровне питания устройства. Например, приложение потокового аудио может требовать, чтобы его сетевая карта и аудио-кодек оставались с высоким уровнем питания во время воспроизведения музыки. Приложение потокового видео может нуждаться в сети и аудио, плюс оно может требовать, чтобы дисплей не переходил в режим хранителя экрана, и возможно, поддерживать включенной подсветку. Приложения могут требовать, чтобы Менеджер питания задавал требования минимального состояния питания устройства, используя функции API SetPowerRequirement и ReleasePowerRequirement.

Средства безопасности ОС

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

Доступны следующие технологии обеспечения улучшенной безопасности в устройствах и приложения:

  • Криптография и сертификаты предоставляют службы для использования криптографии. Эти службы допускают схемы шифрования/дешифрования данных, аутентификацию с помощь цифровых сертификатов, и кодирование/декодирование в и из ASN.1 в свои приложения. Разработчики приложений могут использовать функции в CryptoAPI не зная деталей нижележащей реализации. Провайдерами служб криптографии (CSP), включенными с CE, являются RSA Base Provider, Diffie-Hellman/DSS Provider и RSA Enhanced Provider.
  • Поддерживается Уровень безопасного сокета (SSL) версий 2.0 и 3.0. Они доступны через Службы Интернет Windows (WinInet) или непосредственно из Сокетов Windows (Winsock). SSL использует безопасные сокеты для отправки и получения кодированных данных по линиям коммуникации.
  • Менеджер параметров доступа предоставляет память для кэшированных параметров доступа, и активирует совместное использование общих параметров доступа.
  • Подсистема локальной аутентификации (LASS) является инфраструктурой для обеспечения аутентификации пользователей, независимо от вызванного приложения и механизма аутентификации. Аутентификация пароля предоставляет для проверки только один вариант, пароль. Однако LASS позволяет поддерживать развитые механизмы аутентификации, такие как биометрические параметры. Кроме того, можно использовать функции LASS для определения политик на основе событий для аутентификации пользователей. Она поддерживает также с помощью реестра аутентификацию на основе политики.
  • Чтобы помочь защитить секретную информацию и помочь избежать искажения данных, интерфейс прикладного программирования (API) защищенного хранилища предоставляет удобное решение для криптографии, управления ключами, и проблем работы пользователя. API защищенного хранилища получает параметры доступа регистрации пользователя для блокирования и разблокирования приватных данных.
  • Интерфейс провайдера поддержки безопасности (SSPI) является хорошо определенным общим интерфейсом для получения интегрированных служб безопасности для аутентификации, целостности сообщений, и приватности сообщений. Он предоставляет уровень абстракции между протоколами уровня приложения и протоколами безопасности. Можно использовать один из нескольких провайдеров безопасности, не зная деталей протокола безопасности. Провайдерами безопасности, включенными с CE, являются Windows NTLM Security Support Provider (SSP), Schannel (SSL/TLS) и Kerberos SSP.
  • Подсистема CE смарт-карт поддерживает CryptoAPI и модель драйвера устройства на основе CE для разработки устройства чтения смарт-карт. Дополнительные возможности поддержки PC/SC для переноса существующих драйверов устройств чтения смарт-карт и провайдеров услуг.
  • Чтобы помочь защитить операционную систему от потенциально небезопасных операций, разработчики операционных систем могут определить надежную среду, где могут выполняться только сертифицированные приложения. OEM могут воспрепятствовать загрузке неизвестных приложений, ограничить доступ к системному API, и воспрепятствовать доступу для записи к определенным частям системного реестра.
Архитектура системы безопасности CE

увеличить изображение
Рис. 6.15. Архитектура системы безопасности CE

Сетевые свойства ОС

Сетевые свойства и поддержка сети являются критически важным компонентом любой современной операционной системы. CE предоставляет ряд сетевых служб и свойств. CE предоставляет поддержку для приложений на основе Интернет. Поддерживаются следующие сетевые свойства:

  • Пакет протоколов TCP/IP. Эта технология поддерживает множество протоколов, которые позволяют взаимодействующим компьютерам и устройствам совместно использовать ресурсы в сети.
  • Сокет Windows (Winsock) для устройств на основе CE определяет программный интерфейс на основе знакомого интерфейса сокета из Университета Калифорнии в Беркли. Он включает множество расширений, созданных для использования преимуществ управляемых сообщениями особенностей CE. Она поддерживает Winsock 2.2, который обеспечивает более простой доступ к нескольким транспортным протоколам. Следуя модели Архитектуры открытых систем Windows (WOSA) Winsock определяет стандартный интерфейс провайдера службы (SPI) между интерфейсом прикладного программирования (API) и стеками протоколов. Winsock 2.2, с его экспортированными из Ws2.dll функциями, не ограничен стеками протоколов TCP/IP, как в случае Winsock 1.1.
  • Объект каталога IPSec v4, который позволяет двум клиентским устройствам в сети установить одноранговую коммуникацию, используя протокол IP Security (IPSec). Эта технология позволяет устройствам на основе CE участвовать в сетях, которые защищены IPSec.
  • Domain Discovery позволяет устройству CE обнаруживать сервер Active Directory для запроса.
  • Реализация Extensible Authentication Protocol позволяет коду аутентификации независимого поставщика взаимодействовать с реализацией Point-to-Point Protocol (PPP), включенной в Remote Access Service (RAS) на основе CE. Extensible Authentication Protocol (EAP) используется также с аутентификацией 802.1x и EAP over LAN (EAPOL).
  • Брандмауэр IP обычно используется на устройстве шлюза Интернет. Он может также использоваться как брандмауэр хоста. Брандмауэр помогает защитить устройство, на котором он выполняется, и помогает защитить устройства на приватной стороне шлюза. Брандмауэр блокирует трафик IP на уровнях транспорта и IP.
  • Общее соединение с Интернет (ICS) для CE состоит из совокупности технологий и служб, которые делают возможным соединение нескольких вычислительных и информационных устройств в сети, расположенных дома, в небольшом офисе, или в офисе филиала корпорации с Интернет через единственное соединение Интернет.
  • Средство Network Utilities для CE предоставляет несколько инструментов, которые можно использовать для разрешения проблем сетевых соединений. Они включают широко используемые инструменты, такие как ipconfig и ping.
  • Internet Protocol version 6 (IPv6) является пакетом стандартных протоколов, которые являются следующим поколением протоколов сетевого уровня для Интернет. IPv6 является ненадежным протоколом без соединения, который используется прежде всего для адресации и маршрутизации пакетов между хостами. Без соединения означает, что перед обменом данными сеанс не устанавливается. Ненадежный означает, что доставка не гарантируется. IPv6 всегда делает все возможное для доставки пакета. Пакет IPv6 может быть потерян, доставлен не в той последовательности, продублирован, или отсрочен. IPv6 не пытается исправить ошибки такого типа. Подтверждение доставленных пакетов и восстановление потерянных пакетов делается протоколами более высокого уровня, такими так TCP.
  • Реализация Windows Networking API/Redirector (SMB/CIFS) в CE предоставляет функции для установления и прекращения сетевых соединений и для доступа к файлам на серверах, поддерживающих Common Internet File System (CIFS). Доступ к этим данным делается возможным посредством сетевого API (WNet).

Операционная система CE реализует пакет протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). ОС включает стандартный стек TCP/IP, позволяющий устройствам на основе CE участвовать как одноранговые узлы сети и серверы в локальных (LAN) и удаленных сетях.

CE поддерживает следующие стандартные характеристики:

  • Возможность соединяться с несколькими сетевыми адаптерами с различными типами среды, например, 802.3 и 802.5.
  • Возможности логической и физической множественной адресации.
  • Возможность внутренней маршрутизации IP.
  • Internet Group Management Protocol (IGMP) (многоадресная передача IP).
  • Обнаружение дублирования IP-адреса.
  • Несколько используемых по умолчанию шлюзов.
  • Обнаружение неработающих шлюзов.
  • Автоматическое обнаружение Path Maximum Transmission Unit (PMTU).
  • Виртуальные частные сети (VPN).

и имеет также следующие усовершенствования производительности:

  • Настройка стека протоколов, включая увеличенные размеры используемого по умолчанию окна.
  • Масштабируемые размеры окон TCP (поддержка RFC 1323).
  • Выборочные подтверждения (SACK).
  • Быстрая повторная пересылка TCP.

Поддержка предоставляется, как для IPv4, так и для IPv6. Таблица 6.8 суммирует предоставляемые службы TCP/IP.

Архитектура пакета протоколов CE TCP/IP показана на рисунке 6.16.

Архитектура сети TCP/IP CE

Рис. 6.16. Архитектура сети TCP/IP CE
Таблица 6.8. Службы TCP/IP
Служба Описание
Клиент Dynamic Host Configuration Protocol (DHCP) Клиентам DHCP динамически присваиваются различные конфигурационные параметры, такие как IP-адрес, маска подсети, используемый по умолчанию шлюз, и другие критические данные сетевой конфигурации.
Windows Internet Name Service (WINS) WINS является клиентом имен NetBIOS, который управляет процессом разрешения имен, поддерживая актуальный список имен компьютеров NetBIOS и соответствующие IP-адреса.
Клиент Domain Name System (DNS) CE не поддерживает размещение сервера DNS. Однако CE запрашивает сервер DNS для разрешения имен, если такой сервер существует в сети.
Extended DNS Querying and Update Эта служба предоставляет протокол Dynamic DNS, который позволяет задать имя устройства в базе данных сервера DNS. Можно сделать это программным путем или можно сконфигурировать устройство для регистрации своего имени в базе данных автоматически, когда его имя изменяется, или когда становится доступным сетевой адаптер. CE также поддерживает Secure DNS для более защищенных, динамических обновлений. Вы можете теперь модифицировать или удалять несколько множеств записей ресурсов, которые ассоциированы с определенным именем. Dynamic Query and Modify позволяет запрашивать произвольные записи на сервере DNS.
Поддержка коммутируемого доступа (PPP/SLIP) CE реализует коммутируемый доступ к сети с помощью Remote Access Service (RAS) и Point-to-Point Protocol (PPP).
Печать в сети TCP/IP ВCE TCP/IP поддерживает сетевую печать через протокол Server Message Block (SMB). Он не предоставляет Windows Line Printer Remote (LPR) Spooler. Однако независимые поставщики программного обеспечения (ISV) и производители исходного оборудования (OEM) могут добавлять эту поддержку.
Агент расширения Simple Network Management Protocol (SNMP) Агент расширения SNMP предоставляет субагента MIB-2, который позволяет управлять и контролировать состоянием TCP/IP.
Поддержка глобальной сети (WAN) Эта служба предоставляет пользователям доступ в Интернет.
Утилиты связи TCP/IP Базовые утилиты связи TCP/IP, включая серверы File Transfer Protocol (FTP) и telnet. Сервер telnet позволяет осуществлять удаленное администрирование через стандартного клиента telnet. Образец сервера FTP используется для копирования файлов на и с удаленных компьютерных систем через сеть с помощью TCP/IP.
Network Utilities Многие инструменты разрешения сетевых проблем доступны для CE, например, ipconfig, iPv6, ipv6tun, netstat, ping route, и tracert.
Internet Protocol Helper (IP Helper) IP Helper предоставляет интерфейсы прикладного программирования (API), которые помогают в сетевом администрировании локального компьютера.
Удаленный вызов процедуры (RPC) Удаленный вызов процедуры Microsoft (RPC) используется для создания распределенных клиент/серверных программ. Стабы и библиотеки RPC управляют большинством процессов, связанных с сетевыми протоколами и коммуникацией. Это позволяет сосредоточиться на деталях приложения, а не на деталях сети.
Службы Windows HTTP (WinHTTP) WinHTTP предоставляет разработчикам поддерживаемый сервером, высокоуровневый интерфейс с протоколом Интернет HTTP/1.1.
Windows Internet (WinInet) WinInet управляет всей коммуникацией между приложением Winsock.
Windows Sockets (Winsock) Приложения обращаются к стеку TCP/IP через интерфейс Winsock.