Какие проявления закона Мэрфи в системах реального времени вы знаете?

На протяжение многих лет было замечено, что во многих системах РВ различные сигналы реального времени принимаются в порядке, обратном их приоритетам по стандарту POSIX.

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

Если такое ПО - разработанное, отлаженное и безупречно работающее на одной программной платформе, по каким-то причинам (например, в связи с прекращением поддержки ОС со стороны разработчика) переносится на другую платформу, в которой реализовано поведение использованного в программе API, отличное от исходной платформы, предсказуемость нарушается и при эксплуатации ПО возможно появление ошибок. В лучшем случае это будут легко выявляемые ошибки без критических последствий. Однако многолетняя практика эксплуатации ПО РВ показывает, что редко возникающие трудно обнаруживаемые программные ошибки в полном соответствии с законом Мёрфи проявляются в самый неподходящий момент и нередко приводят к катастрофическим по материальному ущербу и/или человеческим жертвам последствиям. Поэтому если возникают какие-то неясности для потенциально мобильного ПО в соответствии реализаций API друг другу и/или стандартам, эти неясности должны быть разрешены и устранены в возможно короткое время.

58. Когда вытесняющий на основе приоритетов планировщик принимает решения?

Если к концу заданного интервала времени процесс все еще работает.

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

Приоритетное планирование требует прерываний по таймеру, происходящих в конце отведенного периода времени (решения планирования могут, например, приниматься при каждом прерывании по таймеру, или при каждом k-ом прерывании), чтобы передать управление планировщику.

59. Какие алгоритмы диспетчеризации/планирования потоков доступны в ОС Neutrino?

В операционной системе QNX6 поддерживается несколько дисциплин планирования потоков: FIFO, карусельная (циклическая, round-robin, RR) и спорадическая**. Этот атрибут потока будет учитыватьсятолько, если микроядру приходится выбирать между потоками с одинаковым уровнем приоритета. Дисциплины планирования будут описаны дальше.

Дисциплина планирования FIFO

Если потоку задана дисциплина планирования FIFO (First In First Out, первый на входе, первый на выходе), то он может выполняться сколь угодно долго. Управление будет передано другому потоку только если поток будет вытеснен более приоритетным потоком, поток заблокируется или добровольно отдаст управление. При использовании этой дисциплины планирования, поток, который выполняет длительные математические вычисления, может полностью захватить процессор (т.е. не позволит выполняться потокам с тем же и более низким приоритетом).

Карусельная дисциплина планирования

Эта дисциплина планирования полностью аналогичная FIFO, за исключением того, что поток не выполняется «бесконечно», а работает только на протяжении определённого кванта времени (timeslice). По истечении кванта времени микроядро ставит процесс в конец очереди потоков, готовых к выполнению, и управление передаётся следующему потоку (на том же уровне приоритета). Если же на этом уровне приоритета нет других потоков в состоянии READY, то потоку выделяется ещё один квант времени.

Квант времени, который выделяется потокам с карусельной дисциплиной диспетчеризации для работы, может быть определён при помощи функции sched_rr_get_interval(). На самом деле квант времени (timeslice) ровно в четыре раза больше тактового интервала (ticksize). В свою очередь, тактовый интервал равен 1мс в системах с процессором 40МГц и выше и 10мс в системах с более медленным процессором***. Получается, что в привычных нам x86 компьютерах и ноутбуках квант времени равен 4мс.

Спорадическая дисциплина планирования

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

60. В чём разница между дисциплинами планирования RR и FIFO?

Планирование по принципу FIFO (first-in-first-out)

Принцип FIFO, “первый пришедший обслуживается первым”, является наиболее простой дисциплиной планирования. ЦП предоставляется процессам в порядке их прихода в очередь готовности. После того, как процесс получает ЦП в свое распоряжение, он выполняется до завершения, т.е. это дисциплина планирования без переключения, поэтому ее не рекомендуют использовать в системах с разделением времени. Как правило, принцип FIFO редко используется самостоятельно в качестве основной дисциплины обслуживания, чаще он комбинируется с другими дисциплинами, например, диспетчирование процессов может выполняться согласно их приоритетам, однако процессы с одинаковыми приоритетами диспетчируются по принципу FIFO.

Циклическое планирование round robin (RR)

Планирование по принципу RR предполагает диспетчирование процессов по принципу FIFO, но каждый процесс получает временной квант, в течение которого он может использовать ресурсы ЦП. Если завершения процесса не происходит по истечении кванта времени, то этот процесс переводится в конец списка готовых к выполнению процессов, а ресурсы ЦП предоставляются следующему процессу из списка. Такой алгоритм планирования подходит, например, для работы с разделением времени, когда система должна гарантировать приемлемые времена ответа для всех интерактивных пользователей. Очевидно, если квант времени выбирается слишком большим, то система RR фактически вырождается в FIFO, т.к. каждому процессу выделяется достаточно времени для завершения. Если же квант времени выбирается слишком малым, то контекстные переключения начинают играть доминирующую роль, что в итоге ухудшает характеристики системы.

61. Классификация алгоритмов планирования задач в СРВ

Выделяют 2 класса АП:

1. Алгоритмы со статическим расписанием (другие названия - off-line, static, clock-driven) расписание запуска задач составляется заранее, до старта системы. Во время работы системы планировщик лишь следует этому расписанию.

2. Алгоритмы с динамическим расписанием (другие названия - on-line) расписание запуска задач составляется в ходе функционирования системы.

При этом АП второго типа, в свою очередь, подразделяются на:

1. Алгоритмы со статическими приоритетами (приоритеты задач не изменяются с течением времени)

2. Алгоритмы с динамическим приоритетами (разные работы одной и той же задачи могут иметь разный приоритет)

В обоих случаях в каждый момент времени исполняется та задача, которая имеет наивысший приоритет.

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

62. Какие алгоритмы планирования со статическими (фиксированными) приоритетами вы знаете?

Rate-monotonic (RM).

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

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

Исходный RM подход имеет ряд ограничений:

· Все задачи должны быть независимы друг от друга, т.е. между ними нет ни взаимодействия, ни общих ресурсов.

· Все задачи должны быть периодическими.

· Все задачи могут быть приостановлены другими задачами с более высокими приоритетами. Однако ни одна задача не может блокироваться, ожидая внешнего события.

· Время выполнения постоянно.

· Для задач определено время выполнения в худшем случае.

· Все задачи имеют крайний срок, эквивалентный их периоду.

Было проведено большое количество исследований для расширения этих методов. В результате этих работ были сняты или ослаблены ограничения, налагаемые на задачи в исходной модели.

Так в протоколе приоритетных границ (Priority Ceiling Protocol) и некоторых других похожих (Stack Resource Protocol) удалось избавиться от ограничения на взаимодействие задач. Также было предложено много методов приведения непериодических задач к периодическим.

Deadline Monotonic (DM).

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

Такой метод расстановки приоритетов будет оптимальным, если выполняются следующие условия:

· множество задач – фиксированное множество жёстких задач;

· задачи периодические или спорадические;

· задачи имеют определённое (известное) время выполнения в худшем случае;

· для задач определён критический момент, то есть время выполнения в худшем случае.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: