При многозадачности, что не выжимает, механизм планирования распределен между системой и прикладными программами. Прикладная программа, получивши управление от операционной системы, самая определяет момент завершения своей очередной итерации и передает управление ОС с помощью некоторого системного вызова, а ОС формирует очереди задач и выбирает согласно некоторому алгоритму (например, с учетом приоритетов) такую задачу на выполнение. Такой механизм создает проблемы как для пользователей, так и для разработчиков.
Для пользователей это означает, что управление системой теряется на произвольный период времени, которое определяется приложением (а не пользователем). Если приложение тратит слишком много времени на выполнение какой-либо работы, например, на форматирование диска, пользователь не может переключиться из этой задачи на другую задачу, например, на текстовый редактора, в то время как форматирование длился бы в фоновом режиме. Эта ситуация нежелательная, потому что пользователи обычно не хотят долго ждать, когда машина завершит свою задачу.
Поэтому разработчики приложений для non-preemptive операционного среды, возлагая на себя функции планировщика, должны создавать приложения так, чтобы они выполняли свои задачи небольшими частями. Например, программа форматирования может отформатировать одну дорожку дискеты и возвратить управление системе. После выполнения других задач система возвратит управление программе форматирования, чтобы и отформатировала такую дорожку. Подобный метод деления времени между задачами работает, но он существенным образом утрудняет разработку программ и предъявляет повышенные требования к квалификации программиста. Программист должен обеспечить "дружеское" отношение своей программы к другим выполняемым одновременно с ней программам, достаточно часто отдавая им управление. Крайним проявлением "недружественности" приложения есть его зависания, которые приводит к общему краху системы. В системах из многозадачностьюъъ, что выжимает, такие ситуации, как правило, исключенные, потому что центральный планировочный механизм снимет зависшую задачу по выполнению.
Однако распределение функций планировщика между системой и приложениями не всегда является недостатком, а при определенных условиях может быть и преимуществом, потому что дает возможность разработчику приложений самому проецировать алгоритм планирования, более всего подходящий для данного фиксированного набора задач. Потому что разработчик самый определяет в программе момент времени отдачи управления, то при этом исключаются нерациональные прерывания программ в "неудобные" для них моменты времени. Кроме того, легко решаются проблемы общего использования данных: задача во время каждой итерации использует их монопольно и уверенная, что на протяжении этого периода никто другой не изменит эти данные. Существенным преимуществом non-preemptive систем есть более высокая скорость переключения из задачи на задачу.
Примером эффективного использования многозадачностиъъ, что не выжимает, есть сервер Netware, в котором, в значительной степени благодаря этому, достигнутая высокая скорость выполнения файловых операций. Меньше удачным оказалось использование многозадачностиъъ, что не выжимает, в операционной среде Windows 3.х.
Однако почти во всех современных операционных системах, ориентированных на высокопроизводительное выполнение приложений (UNIX, Windows NT, OS/2, VAX/VMS), реализованная многозадачность, что выжимает. В последнее время дошла очередь и к ОС класса настольных систем, например, OS/2 Warp и Windows 95. Возможно в связи с этим многозадачностьъъ , что выжимает , часто называют искренней многозадачностью.
Возможно стоит прочитать:
- А вот статистика, полученная годом позже, в ноябре 2007 года:
- Определить термин CMS довольно трудно
- Указатель текстов
- Область Cache Settings
- Default WYSIWYG Editor
- Лента новостей
- Алгоритм Token Ring
- Неделимые транзакции
- Примитивы, которые блокируют и не блокируют
- Современные архитектуры файловых систем
- Интерфейсы
- Пиктограмма Menus
- Четвертый период (1980 - действительное время)
- Эволюция ОС: Второй период (1955 - 1965)
- Многозадачность
- Распрелеяемые роли
- Модификация имени меню
- Коммерческие версии микроядер
- Основной и резервные контроллеры домена
- Семейство CORBA
- Интерфейс сервиса каталогов
- Очередь незавершенных работ
- Средства защиты объектов в NDS
- Третий период (1965 - 1980)
- Вопрос реализации нитей
- Инсталляция Joomla! на виртуальном сервере в сети
- Шаг 6: главная конфигурация
- Введите следующие параметры в инсталляции ХАМРР Lite:
- Изменения в деталях
- Проекты Google Summer of Code
- Алгоритм Token Ring
- Неделимые транзакции
- Примитивы, которые блокируют и не блокируют
- Современные архитектуры файловых систем
- Четвертый период (1980 - действительное время)
- Эволюция ОС: Второй период (1955 - 1965)
- Многозадачность
- Распрелеяемые роли
- Коммерческие версии микроядер
- Основной и резервные контроллеры домена
- Семейство CORBA
- Интерфейс сервиса каталогов
- Очередь незавершенных работ
- Средства защиты объектов в NDS
- Третий период (1965 - 1980)
- Вопрос реализации нитей
- Независимая от устройств прослойка операционной системы
- Примитивы, которые блокируют и не блокируют
- Разные уровни привилегий
- Алгоритмы планирования процессов
- Четвертый период (1980 - действительное время)
- Контекст и дескриптор процесса
- Многозадачность
- Особенности аппаратных платформ
- Файловая система AFS
- Семейство CORBA
- Современные модели
- Интерфейс сервиса каталогов
- Очередь незавершенных работ
- Средства защиты объектов в NDS
- Централизованный алгоритм
- Вопрос реализации нитей
- Независимая от устройств прослойка операционной системы
- Примитивы, которые блокируют и не блокируют
- Разные уровни привилегий
- Алгоритмы планирования процессов
- Четвертый период (1980 - действительное время)
- Контекст и дескриптор процесса
- Многозадачность
- Особенности аппаратных платформ
- Файловая система AFS
- Семейство CORBA
- Современные модели
- Интерфейс сервиса каталогов
- Очередь незавершенных работ
- Средства защиты объектов в NDS
- Централизованный алгоритм
- Вопрос реализации нитей
s#0