Posix.
Разработка бортового программного обеспечения космического аппарата
Стандарт POSIX был разработан в качестве стандартного интерфейса сервисов операционных систем. Основным назначением стандарта является предоставление возможности разработки и создания переносимых приложений. Позднее данный стандарт был существенно дополнен специфическими для режима реального времени особенностями. Спецификации стандарта POSIX определяют стандартный механизм взаимодействия… Читать ещё >
Posix. Разработка бортового программного обеспечения космического аппарата (реферат, курсовая, диплом, контрольная)
Стандарт POSIX был разработан в качестве стандартного интерфейса сервисов операционных систем. Основным назначением стандарта является предоставление возможности разработки и создания переносимых приложений. Позднее данный стандарт был существенно дополнен специфическими для режима реального времени особенностями. Спецификации стандарта POSIX определяют стандартный механизм взаимодействия прикладного ПО и операционной системы. Исторически при своем создании и дальнейшем развитии, стандарт POSIX был тесно связан со стандартами Unix-подобных операционных систем и непосредственно с ОС UNIX. Несмотря на этот факт разработчики многих ОС, включая ОСРВ, ставят перед собой целью реализовать в своих разработках соответствие стандарту POSIX. Соответствие стандарту POSIX для ОС и аппаратной платформы должно быть сертифицировано при помощи исполнения на них набора специфических тестов. В случае если ОС не является Unix-подобной, выдержать соответствие тестовым проверкам становится чрезвычайно сложной задачей. Наборы тестовых инструкций реализованы только для POSIX 1003.1a. По причине того, что стандарт POSIX представляется совокупностью факультативных интерфейсов, реализация всего множества которых не является обязательной, разработчики ОС предпочитают реализовать только часть стандартного интерфейса. При этом появляется понятие POSIX-комплиантности системы — частичное или полное соответствии системы стандарту. Несмотря на то, что стандарт POSIX в своей основе содержит многие основополагающие принципы операционной системы Unix, он затрагивает основополагающие абстракции которые в большинстве относятся ко всем операционным системам, а расширения стандарта в части реального времени могут быть применимы к подавляющему большинству ОСРВ. В настоящее времени стандарт POSIX рассматривается как раздел взаимодополняющих стандартов: IEEE Std 1003. n (где n — это индекс).
Стандарт 1003.1a (OS Definition) перечисляет базовые интерфейсы ОС — поддержку работы с единственным процессом, поддержку работы с множеством процессов, управление системой заданий, сигналов, группами пользователей, файловыми системами, атрибутами файлов, управление файловыми устройствами, блокировкой файлов, устройствами ввода/вывода, специализированными устройствами, системными базами данных, именованными каналами и очередями FIFO, а также поддержку языка программирования Си.
Стандарт 1003.1b (Realtime Extensions) содержит расширения стандарта относящиеся к поддержке реального времени. К ним относятся:
- -сигналы реального времени;
- -планирование выполнения (с учетом приоритетов, циклическое планирование);
- -таймеры;
- -синхронный и асинхронный ввод/вывод;
- -ввод/вывод с приоритетами;
- -синхронизация файлов;
- -блокировка памяти, разделяемая память, передача сообщений, семафоры.
Для соответствия стандарту POSIX, ОС должна реализовать не менее 32 уровней приоритетов для процессов. POSIX определяет три основных политики диспетчеризации и планирования исполнения процессов:
- -SCHED_FIFO — процессы обрабатываются порядке поступления в очередь исполнения и выполняются до полного завершения;
- -SCHED_RR — round robin — циклическое планированиеданная дисциплина выделяет каждому текущему процессу, готовому для исполнения, квант времени по окончании которого процесс принудительно прерывается и помещается в конец очереди исполнения;
- -SCHED_OTHER — планирование процессов, использующее SCHED_OTHER, является реализационно-зависимым и не является переносимым между платформами.
Стандарт 1003.1c (Threads) относится к механизмам реализации мультипрограммирования в пределах одного процесса — реализация механизма потоков, диспетчеризация потоков на основе приоритетов, взаимоисключающие семафоры — мьютексы (объекты синхронизации при межпоточном взаимодействии, при захвате себя одним потоком не дают возможности захвата другим потокам), наследование приоритетов для объектов синхронизации, переменные состояния.
Стандарт 1003.1d определяет механизмы дополнительных расширений реального времени — семантика порождения новых процессов, спорадическое серверное планирование, мониторинг процессов и потоков времени исполнения, таймауты функций блокировки, управление устройствами и прерываниями.
Стандарт 1003.21 относится к распределенным системам реального времени и определяет функции поддержки распределенного взаимодействия, организации буферизации данных, перемещение управляющих блоков, синхронных и асинхронных операций, ограниченной блокировки, приоритезации сообщений, меток сообщений, и реализаций протоколов.
Стандарт 1003.2h относится к сервисам, отвечающих за работоспособность системы.