Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Преимущества многопоточности



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

Задачи

Как уже говорилось, СРВ — это программно-аппаратный комплекс, осуществляющий мониторинг какого-то объекта и/или управление им в условиях временнЫх ограничений. Возникающие на объекте события подлежат обработке в СРВ. Будем сопоставлять каждому типу события задачу.

ЗАДАЧА (TASK) — блок программного кода, ответственный за обработку тех или иных событий, возникающих на объекте управления.

Задача может быть «оформлена» в виде:

РАБОТА ЗАДАЧИ (JOB) — процесс исполнения блока программного кода в ходе обработки события.

Каждая работа задачи характеризуется следующими временными параметрами:

· данные.

Виды задач: процессы, потоки (нити).

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

Потоки могут пользоваться общими участками кодов и данных в рамках одного программного модуля.

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

1) Способность размещаться внутри одного программного модуля => экономия внешней и внутренней памяти.

2) Позволяет эффективно организовать межзадачный обмен сообщениями.

3) Как правило, контекстов меньше, чем потоков, следовательно, время переключения между потоками меньше, чем между процессами.

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

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

2) Преимущество процесса: процессы могут динамически загружаться, следовательно, функции программы могут быть расширены; процессам соответствуют отдельные программные модули, которые могут быть разработаны различными исполнителями/фирмами.

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

4) Преимущество процесса: процессы защищены от взаимного влияния, обращение к данным приводит к обработке прерывания.

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

Основные свойства задач.

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

Приоритет задачи – целое число, которое показывает важность задачи по отношению к другим задачам.

В СРВ различают динамические (изменяются во времени) и статические (постоянные во времени) приоритеты.

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

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

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

Статус/состояние задачи – задача:

- Активна;

- Готова к выполнению;

- Блокирована;

- Пустая (задача выполняется когда в системе нет других готовых к выполнению задач, имеет низший приоритет);

- Многократный запуск задач (многозадачная СРВ позволяет запускать несколько копий одной и той же задачи, каждая создает свой управляющий блок, для нее выделяется своя область памят).

Режимы планирования задач.

Планирование является центральной частью ОСРВ.

Функции планировщика – определять какая из задач должна выполняться в системе в каждый момент времени.

Принцип работы планировщика.

1) Цикличность работы алгоритмов – каждая задача выполняется циклически.

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

3) Кооперативная многозадачность – задача выполняется пока она сама не передаст управление другой задаче – редко применяется в СРВ.

4) Приоритетная многозадачность с вытеснением – более часто используется в СРВ; высокоприоритетная задача может вытеснить выполняемую задачу с низким приоритетом.

Синхронизация задач в СРВ.

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

В большинстве СРВ их элементы способны передавать/принимать синхронные и асинхронные сообщения.

Часть ОП в СРВ называется «почтовый ящик».

- Новое сообщение стирает старое (даже когда старое сообщение не обработано);

- Новое сообщение – в конец очереди сообщений

- Стандартный подход – FIFO.

Связь между процессами в ОСРВ.

Для ОСРВ характерна развитость механизмов синхронизации процессов и передачи данных между ними. К таким механизмам относятся семафоры, мьютексы, события, сигналы, средства для работы с разделяемой памятью, каналы данных (pipes), очереди сообщений. Многие из подобных механизмов используются и в ОС общего назначения, но их реализация в ОСРВ имеет свои особенности - время исполнения системных вызовов почти не зависит от состояния системы и в каждой ОСРВ есть, по крайней мере, один быстрый механизм передачи данных от процесса к процессу.

Семафор – средство синхронизации доступа к ресурсам.

Участки программ, где происходит обращение к разделяемым ресурсам, называется критичной секцией. Чтобы гарантировать, что критичная секция используется в каждый момент времени только одним потоком, используют механизм, подобный семафорам, который называется mutex – сигнализирует другим потокам, что критическая секция уже кем-то выполняется. «Смертельный захват» - зависание программы, в СРВ – причина: задачи не поделили ресурсы. Циркулярный захват – более двух задач.

Алгоритмы планирования задач в СРВ должны находиться в соответствии с методами управления доступам ко всем ресурсам и должны соответствовать критериям оптимального функционирования системы.

Инверсия (девальвация) – эффект похож на «смертельный захват», но более сложный.

1 – приоритет высокий

2 – среднеприоритетная задача

3 – низкоприоритетная задача

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

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





Дата публикования: 2015-10-09; Прочитано: 1729 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...