Способы организации многозадачных ОС
2. Способы реализации многозадачных операционных систем:
1) кооперативная многозадачность
В оперативной памяти находится несколько процессов. Один из них – в состоянии активности, ряд процессов в состоянии готовности. Активный процесс сам принимает решение о том, когда он передает управление другому процессу или операционной системе.
2) вытесняющая многозадачность
В оперативной памяти находится несколько процессов. Один из них – в состоянии активности, ряд процессов в состоянии готовности. Вопрос о передаче управления решается на уровне операционной системы диспетчером задач (планировщик процессов).
Для вытесняющей многозадачности существуют 3 стратегии планирования:
1) отдавать предпочтение более коротким процессам,
2) по возможности заканчивать вычисления в том же порядке, в каком они были начаты,
3) предоставлять всем пользователям (процессам пользователей) одинаковое время ожидания.
26. Диспетчеризация задач с динамическими приоритетами: Потребность в приоритетах в управлении потоками и процессами является результатом наличия в системе системных и пользовательских процессов.
Системные процессы выступают в роли обслуживающих процессов (серверные). В Windows (NT) существуют 32 приоритета. Приоритет присваивается операционной системой при создании процесса. Первые 16 приоритетов – для пользовательских процессов, остальные – для системных процессов.
Перевод «в фон» снижает приоритет потока. Поток может иметь приоритет ±2 к приоритету процесса.
В OS/2 есть 4 класса приоритетов в каждом классе 32 приоритета (всего 128):
1)
критический класс, включающий задачи реального времени, обладает самым высоким приоритетом.
2) серверный класс, к которому относятся задачи, представляющие собой элементы определенной системы.
3) регулярный (стандартный) класс, включающий все пользовательские задачи.
4) остаточный класс, который получает время, когда в очереди нет других классов.
Внутри каждого класса карусельная обработка.
25. . Диспетчеризация задач со статическими приоритетами Другим классом динамических алгоритмов являются динамические алгоритмы планирования со статическими приоритетами. Напомним, что принцип работы любого планировщика на основании приоритета состоит в том, что в каждый момент времени исполняется та задача, которая имеет наивысший приоритет. В случае динамических планировщиков со статическими приоритетами задач приоритет задачи, будучи однажды ей назначен, не изменяется с течением времени. Приводимые далее способы назначения приоритетов ориентированы на системы периодических задач.
Существует 2 распространенных способа назначения приоритетов:
· RMS (rate monotonic scheduling). Правило назначения приоритетов таково: чем меньше период задачи, тем выше у нее приоритет. Иными словами, чем чаще (отсюда rate) задача переходит в состояние готовности, тем ее приоритет выше.
· DMS (deadline monotonic scheduling). В этом алгоритме приоритеты назначаются по немного другому правилу: чем меньше относительный крайний срок задачи, тем выше ее приоритет.
Эти алгоритмы неоптимальны, так как при определенных условиях могут привести к превышению дедлайна, однако ввиду их относительной простоты именно они чаще используются в системах реального времени