Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Активизация процесса



Читайте также:
  1. E. Отождествление с растениями и ботаническими процессами.
  2. IV. Структура психодиагностического процесса.
  3. THORN; возможность протекания процесса коррозии, но не дает реальных представлений о скорости коррозии.
  4. Активизация богов
  5. АКТИВИЗАЦИЯ И ПРЕКРАЩЕНИЕ ДЕЙСТВИЯ СИСТЕМ, ОПОСРЕДСТВУЮЩИХ ПОВЕДЕНИЕ ПРИВЯЗАННОСТИ
  6. Активизация и укрепление состояния Я Взрослого
  7. Активизация общественного движения за развитие помощи слабоумным

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

Алгоритм "Активизировать процесс"

1. Процедура "Активизировать" помещает БУП в очередь-на-выполнение.

2. Проверяет, совпадают ли адрес БУП с адресом текущего выполняющегося процесса.

3. Если не совпадают, то процесс помещается в очередь-на-выполнение.

4. Если совпадает, то БУП уже находится в конце очереди-на-выполнение.

Общий вид алгоритма "Активизировать процесс", используемого при диспетчеризации.

· НАЧАЛО

· procedure DISPATCH

· обновить БУП активного процесса

· выбрать следующий "Готовый" процесс для передачи ему управления

· IF1< "Готовый" процесс найден>

· пометить его как "активный"

· выделить квант времени, установить командой SETTAME - интервальный таймер

· передать управление выбранному процессу

· FI1

· перевести CPU с состояние простоя (режим "холостого хода")

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

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

Чтобы задать квант времени, выделяемый процессу, диспетчер устанавливает интервальный таймер. Затем диспетчер использует команду LPS (Load Process Status) (загрузка состояния процесса) для загрузки информации о состоянии данного процесса и осуществляет передачу управления.

Если процесса в состоянии готовности нет, то диспетчер переводит CPU в состояние простоя. Выбор следующего процесса для диспетчеризации осуществляется несколькими способами (например, используя дисциплину RR - "круговой алгоритм"). Диспетчер циклически просматривает все БУП-ы, выбирает следующий процесс из тех, что находятся в готовности. Каждому активизированному процессу предоставляет одинаковый квант времени.

В ОС UNIX диспетчеризация организована по принципу динамического приоритета.

 

Ведущие и разделяемые процессами планировщики-диспетчеры


Рис. 4. Разделение планировщика-диспетчера

S - планировщик;

Pri - процесс.

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


Рис. 5. Централизация планировщика-диспетчера

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

Рис. 6. Схема взаимодействия планировщика-диспетчера со структурами
системных данных и примитивов ядра

Список процессов (см. ниже) построен на приоритетном базисе и содержит все процессы в состояниях от1 до 9 (для UNIX).

Планировщик вызывается примитивами ядра, при этом учитывается состояние дескрипторов процессов и структура процесса.

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


Рис. 7. Список готовности процессов

Планировщик работает со списком готовности процессов на основе дисциплины диспетчеризации с вытеснением. Эта дисциплина предполагаем, что планировщик гарантирует, что приоритет любого процесса, находящегося в состоянии "Развивающийся", больше или равен приоритету любого процесса, находящегося в состоянии "Готовый - Активный".

Пример планирования и диспетчеризации в системе разделения времени.

Предполагается наличие следующих структур:

· диспетчер - циклически проходит через очередь задач (процессов);

· программа инициализации - инициирует переменные и массивы;

· программа обработки входных данных - обрабатывает приходящие запросы на активацию (активизацию) процессов (задач) и на обновление файлов-дублей;

· программа управления таймером;

· программа обработки условных активаций - контролирует совпадающие пары запросов на активацию;

· предпланировщик реконфигурации - генерирует модификацию после получения всех запрошенных отчетов о состоянии управления ресурсами;

· планировщик процессов - выбирает из очереди с учетом приоритетов процесс и предоставляет процессор;

· программа обработки завершения процесса;

· программа управления ресурсами (перегрузка или недогрузка ресурсов).

Графическая интерпретация планирования и диспетчеризации представлена на рисунке 8.


Рис. 8. Временная диаграмма взаимодействия "Диспетчера" и задач

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


Дата добавления: 2015-07-10; просмотров: 220 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.013 сек.)