Всего на сайте:
166 тыс. 848 статей

Главная | Электроника

СРВ. Управление временем.  Просмотрен 134

http://isai.ucoz.ru/_ld/0/62_ZVH.pdf

  1. СРВ. Межзадачная коммуникация и синхронизация.

Взаимодействие между задачами и разделение ресурсов

Многозадачным системам необходимо распределять доступ к ресурсам. Одновременный доступ двух иболее процессов к какой либо области памяти или другим ресурсам

представяет определённую угрозу. Существует 3 способа решения этой проблемы

· Временное блокирование прерываний

· Двоичные семафоры

· Посылка сигналов

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

На однопроцессорных системах наилучшим решением является приложение запущенное в режиме ядра[10], которому позволено блокирование прерываний. Пока прерывание заблокировано приложение используетресурсы процесса единолично, никакая другая задача или прерывание не может выполнятся. Таким образомзащищаются все критичные ресурсы. После того как приложение завершит критические действия, онодолжно разблокировать прерывания, если таковые имеются. Временное блокирование прерыванияпозволено только тогда, когда самый долгий промежуток выполнения критической секции меньше, чемдопустимое время реакции на прерывание. Обычно этот метод защиты используется только когда длинакритического кода не превышает нескольких строк и не содержит циклов. Этот метод идеально подходит длязащиты регистров.

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

Выделение памяти

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

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

Вовторых, память может стать фрагментированной в случае разделения свободных ее участков ужезапущенными процессами. Это может привести к остановке программы из-за её неспособностизадействовать новый участок памяти. Алгоритм выделения памяти, постепенно увеличивающийфрагментированность памяти, может успешно работать на настольных системах, если те перезагружаютсяне реже одного раза в месяц, но является неприемлемым для встроенных систем, которые работают годамибез перезагрузки.

Простой алгоритм с фиксированной длиной участков памяти очень хорошо работает в несложныхвстроенных системах.

Также этот алгоритм отлично функционирует и в настольных системах, особенно тогда, когда во времяобработки участка памяти одним ядром следующий участок памяти обрабатывается другим ядром. Такиеоптимизированные для настольных систем ОСРВ как Unison Operating System или DSPnano RTOSпредоставляют указанную возможность.

 

http://dic.academic.ru/dic.nsf/ruwiki/1069864

Предыдущая статья:СРВ. Управление задачами. Следующая статья:Мамочка и смысл жизни. Психотерапевтические истории
page speed (0.0104 sec, direct)