10.8. Заключение
Операционная система предоставляет процессам логическую среду, состоящую из времени ЦП и оперативной памяти. Операционные системы для многопользовательских приложений и приложений реального времени имеют много общего, но техника программирования должна быть разной — приложения реального времени могут требовать времени реакции порядка 1 мс. При программировании в реальном времени ис- I пользуются специальные функции для координации работы различных процессов. I Для обычных программ эти функции не требуются. Кроме этого, программы реального времени управляются прерываниями и могут явно ссылаться на время.
Центральная проблема многозадачного программирования и программирования в реальном времени — координация доступа к защищенным ресурсам. Существует много общего между распределением процессорного времени, защитой ресурсов и управлением доступом к общей шине. Во всех этих случаях ресурс — процессорное время, память, шина — в определенном смысле ограничен и должен распределяться между различными объектами безопасно, эффективно и справедливо. Стратегия разделения ресурсов, которая может основываться на простом циклическом или сложном динамическом механизме планирования, должна позволять избегать тупиков и блокировок, обеспечивать выделение ресурсов всем запрашивающим объектам и максимальную эффективность исполнения процессов. На нижнем уровне наиболее простым средством синхронизации является инструкция test_and_set. Наиболее часто используемые методы синхронизации и связи — это семафоры и почтовые ящики, которые в разных операционных системах реализуются по-разному.
Результаты теории параллельного программирования играют важную роль на практике, так как соответствующие решения подкреплены формальными доказательствами. Это справедливо в особенности для систем реального времени, поскольку тестирование программ в этом случае представляет особую трудность. Применение проверенных методов дает разумную гарантию правильности соответствующих приложений.