Многозадачность

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

Содержание

Свойства многозадачной среды

Примитивные многозадачные среды обеспечивают чистое «разделение ресурсов», когда за каждой задачей закрепляется определённый участок памяти, и задача активизируется в строго определённые интервалы времени.

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

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

Трудности реализации многозадачной среды

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

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

История многозадачных операционных систем

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

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

Одной из первых многозадачных систем была OS-360, используемая для компьютеров фирмы IBM и их советских аналогов ЕС ЭВМ. Разработки системы были сильно затянуты, и на начальное время фирма IBM выдвинута однозадачный DOS, чтобы удовлетворить заказчиков до полной сдачи OS-360 в эксплуатацию. Система подвергалась критике по причине малой надёжности и трудности эксплуатации.

В 1969 появилась система Unix с первым достаточно аккуратным алгоритмическим решением проблемы многозадачности. В настоящее время на базе Unix созданы десятки операционных систем.

На компьютерах PDP-11 и их советских аналогах СМ-4 использовалась многозадачная система RSX-11 (советский аналог ОС РВ), и система распределения времени TSX-PLUS, обеспечивающая ограниченные возможности многозадачности и многопользовательский режим разделения времени, эмулируя для каждого пользователя однозадачную RT-11 (советский аналог РАФОС). Последнее решение было весьма популярно из-за низкой эффективности и надёжности полноценной многозадачной системы.

Аккуратным решением оказалась операционная система VMS, разработанная первоначально для компьютеров VAX (советский аналог — СМ-1700) как развитие RSX-11.

Первый в мире мультимедийный персональный компьютер Amiga 1000 (1984 г.) изначально проектировался с расчётом на полную аппаратную поддержку вытесняющей многозадачности реального времени в ОС AmigaOS. В данном случае разработка аппаратной и программной части велась параллельно, это привело к тому, что по показателю квантования шедулера многозадачности (1/50 секунды на переключение контекста) AmigaOS долгое время оставалась непревзойдённой на персональных компьютерах.

Многозадачность обеспечивала также фирма Microsoft в операционных системах Windows. При этом Microsoft выбрала две линии разработок — на базе приобретённой ей Windows 0.9 [Источник?](которая после долгой доработки системы изначально обладавшей кооперативной многозадачностью аналогичной MacOS, вылилась в линейку ОС Windows 95, Windows 98, Windows Me), и на основе VMS, которые привели к созданию операционных систем Windows NT, Windows 2000, Windows XP. Использование опыта VMS обеспечило системам существенно более высокую производительность и надёжность. По времени переключения контекста многозадачности (квантование) только эти операционные системы могут быть сравнимы с AmigaOS и UNIX (а также его потомками, такими как Linux).

См. также

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home