Густав Олссон, Джангуидо Пиани - Цифровые системы автоматизации и управления (1087169), страница 103
Текст из файла (страница 103)
Продолжительность кванта времени влияет на производительность системы. При шротком кванте улучшается общее время обслуживания коротких процессов, Если веничива кванта сопоставима со временем, необходимым для перекшочения процессов, ш большая часть ресурсов процессора будет уходить на планирование и переключенне. Если величина кванта слишком большая, увеличивается время ожидания процесшв и, соответственно, время реакции. Процесс исполняется ло тех пор, пока не произойдет одно из следующих событий: — истек выделенный ему квант времени; — процесс заблокирован, например ждет завершения операции ввода/вывода; — процесс завершился; — вытеснен другим процессом, имеющим более высокий приоритет, например обработчиком прерываний. В многозадачной среде процесс может находиться в одном из трех состояний Ьис.10 6) ' Готов (гвадд).
Процесс может начать исполнение, как только освободится процессор. ' Исполнение (гцптпя, ехеси6пя). Процесс исполняется в данный момент, т. е, процессор исполняет его код. ' Ожи жидание, заблокирован (иа|стд, (ос)гед). для продолжения работы процессу не хвата тает какого-либо ресурса, за исключением ПП, либо он ждет наступления внешнего события.
Рвс. вс' 10.6. Состояния процесса 0 2 Управление системными ресурсами 427 426 Глава 10, Программирование систем реального Вр Реыеии На рис. 10.6 также показаны возможные переходы из одного состояния в „ Ругок 1. От "Загрузочный модуль на диске" к 'Тотов". Программа загружается (1 оаа) в оперативную память, настраиваются относительные адреса (ге1осаг1оя) В , выделяются рабочие области для данных, кучи и стека с соответствующими у„ казать лями и создается контекст процесса.
2. От 'Тотов" к "Исполнение". Планировщик выбирает первый в очереди го товыт процессов и передает ему управление. 3. От "Исполнение" к 'Тотов". Процесс либо исчерпал свой квант времеви ,ли а появился готовый для исполнения процесс с более высоким приоритетом 4. От "Исполнение" к "Ожидание". Для дальнейшего развития процесс д ждать наступления какого-либо внешнего события (завершения операции да/вывода или освобождения ресурса, например доступа к памяти, заблоки ванной другим процессом, или сигнала от другого процесса и т.
п.). Иногда Врс. цесс переводится в состояние ожидания до истечения некоторого интерваат времени с помощью явной инструкции в его программе. 5. От "Ожидание" к "Готов". Когда ожидаемое событие произошло или истекла заданное время, процесс переводится в состояние "Готов" и помещается в очередь готовых процессов, откуда затем выбирается планировщиком. 6. После выполнения последней инструкции программы операционная системз удаляет процесс из памяти и освобождает все выделенные ему ресурсы, включая память. 10.2.5. Стратегии выбора процесса Существует несколько возможных стратегий выбора готовых процессов из очереди.
Для определения той или иной стратегии приходится принимать во внимание нссколька противоречащих друг другу факторов — общее время, необходимое для решения задач ~ ограничение на время реакции, важность и т. п, Мы рассмотрим две сгратегни ана алоиза ные тем, которые применяются при арбитраже шины (раздел 8.2.10), наиболее простой стратегией выбора является циклическии (гоипй-год ) ° н овавноя год — процессы выбираются последовательно один за другим в фикснр . ето а — ВРС' порядке и через равные интервалы времени. Основное достоинство метод ВЫДЕЛЯЮТСЕ стота, однако, поскольку процессам с различными требованиями выд екватно СВОИ Равные ресурсы процессора, некоторые из них обслуживаются неадекв потребностям.
ь 5 П а3кдоя Более сложный принцип выбора основан на приоритетах ~рпопГ/ез). ПР 'йез . П и кажа переключении планировщик передает управление готовому процес у есс с наивысше" етсе приоритетом. Приоритет присваивается процессу в момент его созд соз ания и остает' постоянным в течение всего времени — статический приоритет(ТГабср у . приоритет, как правило, определяется на основе информации, предоставлеа" пользователем.
нятв""' Планирование на основе статических приоритетов может привести к неп Рия ситуациям. Процесс с наивысшим приоритетом, если он не находится даниЯ, будет Всегда ВыбиратьсЯ длЯ ИсполнениЯ и практически полностью ми с одн мать процессор. Нетривиальным является также выбор между процессами с ковым приоритетом. Для искл~очепия подобной ситуации применяется к акой л' горитм динамического назначения приоритетов (Иупаппс рпопГу ауосаГ1оп). На„имер, планировщик снижает приоритет исполняемого процесса на фиксирован„ю величину.
В результате его приоритет будет ниже, чем у другого готово~о про„са, который затем и выбирается для исполнения, Таким образом обеспечивается зи ииолнение всех процессов. Через некоторое время ожидающим процессам возвраются номинальные значения нх приоритетов. Этот метод обеспечивает исполне„ие процессов даже с низким приоритетом и гарантирует, что процесс с высоким на„льным приоритетом не будет непрерывно занимать процессор. Разница в первоначально назначенных приоритетах приволнт к тому, что процес,, с более высокими приоритетами будут получать управление чаще, чем другие. паоцессы, обращение к которым происходит более интенсивно и/или время реакции гаторых ограничено, получают в начальный момент более высокие приоритеты; меиее важным процессам, для которых допустима отложенная реакция, присваиваются голее низкие приоритеты.
Планирование процессов, основанное на приоритетах, работает хорошо, только если разные процессы имеют неодинаковые приоритеты. Присвоение наивысших пэиоритетов всем процессам не повышает скорость исполнения, так как это не увсаичнвает быстродействие процессора, — каждый процесс будет ждать в очереди до гех пор, пока все остальные не будут выполнены. Система, в которой всем процессам ааисвоены одинаковые приоритеты, работает по циклическому принципу.
НаилучВие результаты достигаются в системе реального времени, если относительные приарятеты тщательно выбраны и сбалансированы. Подробнее вопрос о приоритетах аассматривается в разделе 10.6.7. 10.2.6, Управление оперативной памятью Наиболее важным ресчрсом после процессора является оперативная память. Ме'ады управления, используемые в системах реального времени, обычно проще, чем ' Яаогопользовательских системах с разделением времени. В крупных вычислительиых системах с множеством пользователей большинство программ и данных хранятся Во вторичной (внешней) памяти — жесткий диск — и загружаются в оперативную иач 'мять только при необходимости. Это приемлемо для систем разделения времени и вкет этной обработки, в которых несущественно, начнется задание мипутои раньше или п позже.
Однако в системах реального времени задержек исполнения быть не долВно,ппоэтому все необходимые модули предварительно загружаются в оперативную измять. ть. Тем не менее в системах реального времени может возникнуть необходииость в Меха в выгрузке содержимого части оперативной памяти на диск. еханизм расширения оперативной памяти сверх физически установленного абъема за ° а за счет временной выгрузки на диск не используемых в данный момент проЪаим и и данных называется виртуальной памятью (таттиа( тетогу).
Работа виртуальис" памяти сов, и ево мяти основана на предположении, что объем памяти, требуемый для пропесРевосходит размер доступной оперативной памяти. устройства массовой Мяти, на , например жесткий диск, используемые для реализации этого механизма, Важны о |обладать как достаточной емкостью, так и значительным быстродействием. Р ционная система копирует с диска в оперативную память только те части промера асса и области его данных, называемые страницами (радез), которые непосред- ПВС ино используются в данный момент, оставя"я остальную часть Во Внешней памя- 428 Глава 10, Программирование систем реального време„ ~ изаимные исключения и тупики 10 ти. Для загрузки наиболее часто используемых страниц и для уменыцен ия числа о .
ращений к диску применяются различные стратегии оптимизации. Меха низмвн т альной памяти позволяет процессу иметь адресное пространство больше, е, чем Раз„,' выделенной ему реальной оперативной памяти, С другой стороны, прим мсцение вн . туальной памяти существенно увеличивает накладные расходы и заме . едлЯет Раб системы из-за многократных обращений к диску. сту Ц 1рименение виртуальной памяти в системах реального времени вызва вано в основ ном экономическими причинами.
Стоимость хранения единицы инфор Рмации в о не ративной памяти выше, чем во вторичной памяти. Еше олной важной р ~ " причиной яв. ляется надежность работы. В случае системного сбоя можно восстан овить Работ процесса. Если сбой или перерыв в электропитании происходит, когда вс а вся системк находится только в оперативной памяти, все процессы и их данные буд ут потеряны н восстановить их будет невозможно. В системах реального времени представляет интерес только быстрая и эфф и эч фектив ная виртуальная память. Чтобы быстро реагировать на внешние сигналы, соотве„. ствующие служебные процедуры должны постоянно храниться в оперативной паня ти.
Другим важным соображением, относящимся к использованию вторичной памяти в задачах реального времени, является ее работоспособность в производственной среде — жесткие диски и дискеты нельзя использовать в уоловиях сильных вибраций, ударов или интенсивных магнитных полей. Одно из существенных различий между многопользовательскими операционными системами и системами реального времени касается управления файлами. В многопользовательских системах наиболее важными проблемами является структурз каталогов и защита файлов, Управление и зашита каталогов с соответствующим контролем прав доступа при каждом обращении требуют таких наклалных расходов, которые обычно неприемлемы для систем реального времени.
Однако, как правило, в системах реального времени эти меры не нужны, поскольку лисковая память нс пользуется в основном для протоколов и отчетов, а все процессы принадлежат олнэ. му "пользователю". Поэтому применение сложных механизмов управления файламн в системах реального времени обычно не оправдано. Наиболее сложные операционные системы для достижения оптимальных харак теристик позволяют настраивать параметры управления процессором и памятью.