Книги: Программирование в стандарте POSIX. Часть 2
Настоящий курс является продолжением курса "Программирование в стандарте POSIX. Часть 1". В принципе, разделение единой темы на две части носит скорее технический, чем принципиальный характер, однако у второй части есть свой стержень - мобильное программирование приложений реального времени.
Обеспечение мобильности программного обеспечения - задача исключительной важности и сложности. Для приложений реального времени она важна и сложна вдвойне. Важность проистекает из многочисленности подобных систем и ответственности решаемых ими задач. Сложность является следствием разнообразия и частой смены аппаратных платформ, а также того обстоятельства, что в понятие семантической корректности входит дополнительный компонент - соблюдение временных ограничений.
По сравнению с предыдущими редакциями, стандарт POSIX-2001 существенно расширен средствами программирования систем реального времени. Их изучение представляется весьма актуальным, способным оказать существенную помощь разработчикам приложений.
Основной структурной единицей приложения реального времени является поток управления. Потоки стали первой темой настоящего курса. Средства их синхронизации - тема номер два. Среди рассматриваемых механизмов - мьютексы, условные переменные, блокировки чтение-запись, спин-блокировки и барьеры. К средствам межпотокового взаимодействия можно отнести сигналы реального времени, очереди сообщений, семафоры.
Объекты в памяти - это и инструмент повышения эффективности приложений, и средство передачи данных между их компонентами. Стандарт POSIX-2001 позволяет добиться мобильности даже для традиционно немобильных подсистем работы с типизированной памятью.
Разумеется, в число рассматриваемых в курсе тем вошло приоритетное планирование. Здесь особый интерес представляет политика спорадического планирования, необходимая для работы в реальном, насыщенном событиями окружении.
Приложения реального времени сложно не только разрабатывать, но и отлаживать. Для решения этой проблемы в стандарте POSIX-2001 предусмотрен механизм трассировки, который целесообразно применять и на этапе эксплуатации приложений.