Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ответы.doc
Скачиваний:
35
Добавлен:
27.10.2018
Размер:
21.59 Mб
Скачать

2 Мультизадачність, її розновиди

Современные ОС по-настоящему является мультизадачными, в них используется так называемая вытесняющая (preemptive) мультизадачность.

Как правило, пользователю нужно работать одновременно с несколькими программами. Поэтому возможность переключения программ имеет очень большое значение.

Переключение программ

Пользователи DOS активно работают с резидентными программами, организующими "переключательную" мультизадачность. Резидентная программа активизируется тогда, когда пользователь нажимает определенную для каждой резидентной программы комбинацию клавиш. В этом случае выполнение текущей программы приостанавливается и на экране появляется резидентная программа. Такое переключение программ "вручную" позволяет пользователю легко приступить к работе с другой программой, не завершая текущей, и затем вновь вернуться к прерванной программе.

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

Невытесняющая (nonpreemptive) мультизадачность

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

Это лучше, чем "переключательная" мультизадачность, но ни пользователь, ни программист, создающий приложения для Microsoft Windows, не может изменять приоритет приложений Windows.

Для каждой программы DOS ОС Microsoft Windows создаст отдельную виртуальную машину, но все приложения Windows работают на одной системной виртуальной машине. При этом пользователь может изменять приоритеты отдельных виртуальных машин, но не может изменять приоритет приложений Windows, работающих в рамках одной виртуальной машины.

Вытесняющая мультизадачность

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

Такая мультизадачность называется вытесняющей (preemptive). Она реализована в IBM OS/2, Windows95, 98, 2000, Microsoft Windows NTи в различных версиях UNIX.

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

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

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

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