В. Столлингс - Операционные системы (1114679), страница 98
Текст из файла (страница 98)
Прн конкуренции процессов за обладание ресурсами и временем процессо гема не является полностью детерминированной. В операционных системах ного времени запросы процесса на обслуживание диктуются внешними события и синхронизацией. Насколько детерминированно система способна удовлетв росы, зависит в первую очередь от скорости, с которой она способна реагиро прерывания, а также от того, обладает ли система достаточной пропускной ностью для обработки всех запросов за требуемое время. Мерой способности операционной системы к детерминированному функ юванию служит длительность максимальной задержки между поступлени тему прерывания от высокоприоритетного устройства и началом его обр В операционных системах, не являющихся системами реального врем задержка может составлять от десятков до сотен миллисекунд, в то в ' в операционной системе реального времени такая задержка должна и хн|ою границу от нескольких микросекунд до миллисекунды.
Сходной с детерминизмом характеристикой является чувствительность ~ы. Детерминизм сосредоточен на времени задержки перед распознаван 'рывания; чувствительность же рассматривает вопрос о том, сколько вре буется операционной системе для обслуживания прерывания после расп ~ия. Чувствительность включает следующее. Количество времени, требующееся для начальной обработки прерыван начала выполнения подпрограммы обработки прерывания (1п$еггир1 ве гоп11пе — 188.).
Если выполнение 1БВ требует переключения процессо задержка оказывается большей, чем при 1БВ, которая может выполнятьс пределах контекста текущего процесса. Количество времени, требующееся для выполнения 18В. Обычно зто в зависит от используемой аппаратной платформы. Влияние вложенных прерываний. Если 1ЯВ может быть прервана и плением нового прерывания, то обслуживание текущего прерывани дет отложено. Детерминизм и чувствительность в совокупности образуют время отклика на внешнее событие. Требования ко времени отклика являются критическими для систем реального времени, которые должны отвечать временным требовани ям со стороны устройств, внешних потоков данных и т.п. Управление со стороны пользователя в системах реального времени обычно значительно шире, чем в обычной операционной системе.
В типичной операционной системе, не являющейся системой реального времени, пользователь либо не в со стоянии управлять функцией планирования операционной системы, либо может осуществлять только самое общее руководство типа группирования пользователей по нескольким классам приоритетов; однако в системах реального времени важной со ставляющей является обеспечение возможности тонкой настройки приоритетов задач. Пользователь должен иметь возможность разделять задачи на жесткие и мягкие и определять относительные приоритеты в пределах каждого класса.
Кроме того, системы реального времени позволяют пользователю определять и такие характеристики, как использование страничной организации памяти или свопинг процессов, а также определять, какие процессы должны постоянно находиться в основной памяти, какой алгоритм дисковых операций должен использоваться, какие права у процессов из разных групп и многое другое. Надежность в системах реального времени — очень важный вопрос.
Случайная ошибка в обычной системе может быть в худшем случае обработана просто посредством перезагрузки системы; сбой одного из процессоров в обычной многопроцессорной системе приведет к снижению уровня обслуживания до замены или починки этого процессора. Но система реального времени работает, как и следует из ее названия, с событиями в реальном времени, и потеря производительности может привести к катастрофическим последствиям — от финансовых потерь до потерь оборудования и человеческих жизней. Но даже система реального времени должна быть разработана таким образом, чтобы уметь отреагировать на ошибки разного типа.
Восстановление после сбоев — эта характеристика системы, которая описывает способность системы сохранить максимальную функциональность и не потерять данные при сбое. Например, типичные традиционные системы СХ1Х при обнаружении повреждения данных ядра выводят соответствующее сообщение на системную консоль, сбрасывают дамп памяти на диск для последующего анализа и прекращают работу системьк Система же реального времени будет пытаться либо исправить ситуацию полностью, либо минимизировать ее влияние на продолжающуюся работу системы. Обычно система информирует пользователя или пользовательский процесс о необходимости корректирующих действий и продолжает работу, возможно, со сниженным уровнем обслуживания. Если необходимо выключение системы, она пытается сохранить согласованность файлов и данных.
Важным аспектом восстановления после сбоев является стабильность системы. Система стабильна, если в случаях, когда невозможно выдержать предельные сроки всех задач, она выдерживает предельные сроки для наиболее критических, высокоприоритетных задач (даже если не всегда удается выдержать ус" ловия работы над некоторыми менее критическими задачами). Для того чтобы соответствовать приведенным требованиям, современная система реального времени обычно включает [ВТАМ89): ° быстрое переключение процессов и/или потоков; Часть 4.
Планиров Глава 10. Многопроцессорное планирование и планирование... 621 > малый размер (с минимальной функциональностью); способность быстрого отклика на внешние пр ние прерывания; многозадачность со средствами взаимодействия про я процессов (такими, как семафоры, сигналы, события); использование специальных последовательны ф й ых фа лов„способных к накоплению данных с высокой скоростью; вытесняющее планирование на основе систем емы приоритетов; минимизация периодов времени, когда прерывания запрещены В наличие примитивов для задержки выполи ыполнения задачи на определенное время, а также приостановки и продолжения выполнени ния; специализированные таймеры и системы тайм-аутов.
Сердцем системы реального времени являетс ется краткосрочный планировщик ач. При разработке такого планировщика беспристрастность и м д р ни отклика первостепенными задачами него в еме ть и минимизация и не являются; зато на пе - !' й план выходит завершение (или начало) б Р- ало) ра оты всех жестких задач реальнозремени в рамках их предельного времени и по воз ~нчества мягких задач. о возможности максимал о воз симального Большинство сов мен ают с и е е ре ных операционных систем реального вре времени не ра-,' им об азом чтоб ред льным временем непосредственно.
Вместо э им разом, чтобы обеспечить их максимальную чувствительность, с тем что- -':.;,, при наступлении предельного времени задача немедленно посту нение. С этой точки з е тупала на вы-:,'..",:," точки зрения приложения реального времени обычно требуют, ." бы детерминированное в мя откл ре ика находились в интервале от долей милекунд до нескольких миллисек унд при широком диапазоне условий. Некото- '!;:: специализированные приложения например 3 р в моделировании военных са-:,~ " етов, часто налагают ограничение от 10 до 100 микросекунд [А1.ТА891. На рис.
10.4 продемонст и ован р р ван ряд возможных вариантов планирования з; льного времени. В вытесняю щем планировщике с использованием круговой ~тегии задача реального в м ремени добавляется к очереди готовых к выполив задач, ожидаю их нас щ наступления следующего кванта времени (см. . 10.4,а). В этом сл ае в е уч время планирования в целом неприемлемо для при:ений реального в мени. В ре . В невытесняющем планировщике мы можем исьзовать механизм и ио ит р ритетного планирования, дающий заданиям реального аени наивысший п ио итет. р р тет. Б этом случае готовые задания реального време. будут выполняться с аз же р у же после блокирования текущего процесса либо вы. аения его до конца ( ис. (р .
10.4,б). Такая методика может привести к большим, нескольких секунд, за е ж у д д ржкам при выполнении в критический момент медюй низкоприоритетной з ач р задачи, так что этот подход также неприменим. Боприемлемый подхо сост д д состоит в комбинировании приоритетов с прерываниями юера. При этом точки вытеснен вытеснения равноудалены друг от друга.
При достиже" точки вытеснения выполня лняющееся в настоящий момент задание вытесняет."сли в наличии имеется бол более высокоприоритетное задание в состоянии ожи~я; таким об азом выт Р, еснение заданий в этом случае оказывается частью ~ операционной системы. 3 ы. Здесь задержки могут быть порядка нескольких тисекунд (рис. 10.4,в). для ., ).
Для ряда приложений реального времени задержки! вня вполне адекватны, но могут оказаться неприемлемыми для более требовательных приложений. В таком случае можно применить подход, иногда именуемый немедленным вытеснением. Он заключается в том, что операционная система отвечает на прерывание практически немедленно, если только она не выполняет код критического раздела, который не может быть прерван.
Задерж ки планирования при этом снижаются до 100 микросекунд и менее. Планирование реального времени Планирование реального времени является одной из областей, в которых ведутся активные исследовательские работы. В этом разделе мы приведем краткий обзор различных подходов к проблеме планирования реального времени и рассмотрим два распространенных класса алгоритмов планирования. В обзоре алгоритмов планирования реального времени 1КАМА941 замечено, что различные алгоритмы планирования зависят от того, (1) выполняет ли система анализ планируемости, и если да, то (2) выполняется он статически или динамически и (3) приводит ли он к непосредственному выполнению функции планирования или же к построению расписания, согласно которому в процессе работы осуществляется диспетчеризация заданий.
На основе этого автор определяет следующие классы алгоритмов. е Статическое планирование с использованием таблиц. При этом выполняется статический анализ осуществимости планирования„.результатом анализа является план, который в процессе работы системы определяет, когда должно начаться выполнение заданий. е Статическое вытесия|ощее планирование иа основе приоритетов.
В этом случае также выполняется статический анализ, но расписание не создается. Вместо этого на основе проведенного анализа заданиям назначаются приоритеты, с тем чтобы далее можно было использовать традиционный вытесняющий планировщик, работающий с учетом приоритетов заданий. е Динамическое планирование на основе расписания. Осуществимость планирования определяется в процессе работы (динамически). Поступающее в систему задание принимается только в том случае, если определена возможность его выполнения с учетом всех временных требований. Одним из результатов анализа является расписание, используемое для принятия решения о диспетчеризации задания. Динамическое планирование наилучшего результата. При этом анализ осуществимости планирования не выполняется; система пытается удовлетворить все предельные сроки и снимает те выполняющиеся процессы, предельные сроки которых нарушены.
Часть 4. Планирова Глава 10. Многопроцессорное цланирование и планирование... $23 юеюгвеа ° ~ В~~ а) Круговое планирование с вытеснением О:киданиеследующей Точка вытеснения Время планирования Запрос процесса реального времени го времени немедленно есс и выполняется Текущий процесс блокируется ° а Время планирования В или эаверщается б) Невытесняющеепланирование на основе приоритетое в) Вытесняющее планирование на основе приоритетов с точками вытеснения Статическое планирование с использоваиием таблиц применимо для пе риодических заданий. Входной инФормацией для анализа являются время по ступления заданий в систему, время выполнения, предельные сроки выполне ния и относительный приоритет каждого задания.