Автор: Пользователь скрыл имя, 14 Октября 2011 в 10:29, реферат
Многозада́чность (англ. multitasking) — свойство операционной системы или среды программирования обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах.
1 Свойства многозадачной среды
2 Трудности реализации многозадачной среды
3 История многозадачных операционных систем
4 Типы псевдопараллельной многозадачности
4.1 Невытесняющая многозадачность
4.2 Совместная или кооперативная многозадачность
4.3 Вытесняющая или приоритетная многозадачность (режим реального времени)
5 Проблемные ситуации в многозадачных системах
5.1 Голодание (starvation)
5.2 Гонка (race condition)
Преимущества: возможность полной реализации многозадачного ввода-вывода в ядре ОС, когда ожидание завершения ввода-вывода одной программой позволяет процессору тем временем исполнять другую программу. Сильное повышение надежности системы в целом, в сочетании с использованием защиты памяти — идеал в виде «ни одна программа пользовательского режима не может нарушить работу ОС в целом» становится достижимым хотя бы теоретически, вне вытесняющей многозадачности он не достижим даже в теории. Возможность полного использования многопроцессорных и многоядерных систем.
Недостатки: необходимость особой дисциплины при написании кода, особые требования к его реентрантности, к защите всех разделяемых и глобальных данных объектами типа критических секций и mutex’ов.
Реализована в таких ОС, как:
Задержка времени от пробуждения потока до его вызова на процессор, в течение которой он находится в списке потоков, готовых к исполнению. Возникает по причине присутствия потоков с большими или равными приоритетами, которые исполняются все это время. Негативный эффект заключается в том, что возникает задержка времени от пробуждения потока до исполнения им следующей важной операции, что задерживает исполнение этой операции, а следом за ней и работу многих других компонентов.
Голодание создаёт узкое место в системе и не дает выжать из неё максимальную производительность, ограничиваемую только аппаратно обусловленными узкими местами.
Любое голодание вне 100 % загрузки процессора может быть устранено повышением приоритета голодающей нити, возможно — временным.
Как правило,
для предотвращения голодания ОС
автоматически вызывает на исполнение
готовые к нему низкоприоритетные
потоки даже при наличии
Недетерминированный порядок исполнения двух путей кода, работающих с одними и теми же данными и исполняемыми в двух различных нитях. Приводит к зависимости порядка и правильности исполнения от случайных факторов.
Устраняется
добавлением необходимых блокир
Информация о работе Проблемные ситуации в многозадачных системах