Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АОПИ. Старое / АОПИ. Глава 1. Вопросы и ответы (01_04_19).rtf
Скачиваний:
82
Добавлен:
10.09.2019
Размер:
3.53 Mб
Скачать

Системы реального времени

Критерием эффективности этих систем является способность выдерживать заранее заданные интервалы времени между запуском программы и получением результата (управляющего воздействия). Это время называется временем реакции системы, а соответствующее свойство системы реактивностью (способность выполнения критически важных задач в течение заранее заданных временных интервалов). Требования ко времени реакции зависят от специфики управляемого процесса.

В ОСРВ «мультипрограммная смесь» представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из текущего состояния объекта) или в соответствии с расписанием плановых работ.

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

В ОСРВ не стремятся максимально загружать все устройства, наоборот, при проектировании программного управляющего комплекса обычно закладывается некоторый «запас» вычислительной мощности на случай пиковой нагрузки. Статистические аргументы о низкой вероятности возникновения пиковой нагрузки, основанные на том, что вероятность одновременного возникновения большого количества независимых событий очень мала, не применимы ко многим ситуациям в реальных системах управления. Например, в системе управления атомной электростанцией в случае возникновения крупной аварии атомного реактора многие аварийные датчики сработают одновременно и создадут коррелированную нагрузку. Если ОСРВ не спроектирована для поддержки подобной пиковой нагрузки, то может случиться так, что система не справится с работой именно тогда, когда она нужна в наибольшей степени.

Для разработки приложений реального времени используются средства профилирования (т. е. точного измерения времени выполнения конкретных методов).

Если задержка реакции системы на события недопустима, то ОС называется системой жесткого реального времени (hard real-time system). В противном случае — системой мягкого реального времени (soft real-time system).

——————————————————————————

14 Вопрос. Определение задачи. Преимущества и недостатки процессов и потоков.

——————————————————————————

Задача — набор операций, предназначенных для выполнения логически-законченной функции системы.

Два типа задач:

— процессы (Process).

— потоки (Thread).

Процесс — это отдельно загружаемый программный модуль, который во время исполнения имеет в памяти отдельное адресное пространство для данных.

Поток — это составная часть процесса. Каждый процесс содержит как минимум один поток.

Преимущества потоков:

1. Внутри одного программного модуля (например, exe-файла) может размещаться множество потоков, максимальное количество которых в большинстве ОС ограничивается только объемом оперативной памяти.

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

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

Как правило, контекст потока значительно меньше контекста процесса.

Время переключения между потоками значительно меньше времени переключения между процессами.

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

Недостатки потоков:

1. Потоки не могут подгружаться динамически, т. е. при добавлении нового потока необходимо ввести соответствующие изменения в исходный код и перекомпилировать приложение. Процессы, в отличие от потоков, подгружаемы, что позволяет динамически изменять функции системы непосредственно в ходе её работы. Кроме того, процессам соответствуют отдельные программные модули, которые могут быть разработаны сторонними специалистами или компаниями. Например, библиотеки DLL. Тем самым обеспечивается дополнительная гибкость и возможность использования ранее разработанного ПО.

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

——————————————————————————