Бригадное планирование

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

Чтобы разобраться с проблемой, которая может появиться, когда потоки процесса планируются независимо друг от друга, рассмотрим систему с потоками А0 и A1, принадлежащими процессу А, и потоками В0 и B1, принадлежащими процессу B. Потоки А0 и В0 выполняются в режиме разделения времени на центральном процессоре 0; потоки А1 и B1 выполняются в режиме разделения времени на центральном процессоре 1. Потоки А0 и А1 нуждаются в частом обмене данными. Схема обмена данными состоит в том, что А0 посылает А1 сообщение, затем А1 посылает обратно А0 ответ, после чего происходит еще одна такая же последовательность обмена данными, часто встречающаяся в ситуациях «клиент — сервер». Предположим, что все так удачно сложилось и сначала были запущены потоки А0 и В1, как показано на рис. 8.14.

На кванте времени 0 А0 посылает А1 запрос, но А1 не получает его, пока не будет запущен в кванте времени 1 на отметке 100 мс. Он тут же посылает ответ, но А0 не получает его, пока он снова не будет запущен на отметке времени 200 мс. В итоге получается одна последовательность «запрос — ответ» каждые 200 мс, а это не самый лучший результат с точки зрения производительности.

Решение этой проблемы заключается в бригадном планировании, являющемся развитием идеи совместного планирования (Ousterhout, 1982). Бригадное планирование состоит из трех частей:

1. Группа взаимосвязанных потоков планируется совместно.

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

3. У всех членов бригады кванты времени начинаются и заканчиваются одновременно.

Работоспособность бригадного планирования обеспечивается тем, что работа всех центральных процессоров планируется синхронно. Это означает, что время делится на дискретные кванты, как на рис. 8.14. К началу каждого нового кванта времени работа всех центральных процессоров подвергается перепланировке и на каждом из них запускается новый поток. К началу следующего кванта времени происходит следующее событие планирования. В промежутках планирование не осуществляется. Если поток блокируется, его центральный процессор простаивает до тех пор, пока не закончится квант времени.


Пример работы бригадного планирования показан на рис. 8.15. На нем изображен мультипроцессор с шестью центральными процессорами, используемый пятью процессами,

от А до Е, с общим количеством готовых к работе потоков, равным 24. В течение кванта времени 0 спланированы и запущены потоки от А0 до А6. В течение кванта времени 1 спланированы и запущены потоки В0, В1, В2, С0, С1 и С2. В течение кванта времени 2 запущены пять потоков, принадлежащих процессу Б, и поток Е0. Оставшиеся шесть потоков, принадлежащих процессу Е, запускаются в течение кванта времени 3. Затем цикл повторяется, и квант времени 4 ничем не отличается от кванта времени 0 и т. д.

Замысел бригадного планирования заключается в совместной работе всех потоков одного процесса, в одно и то же время, на различных центральных процессорах, при которой сообщение, посланное одним из потоков другому, сразу же доходит до адресата и тот может практически сразу же на него ответить. На рис. 8.15 все потоки процесса А запускаются вместе в течение одного кванта времени, и за этот квант они могут послать и получить в ответ огромное количество сообщений, исключая тем самым возможность возникновения проблемы, показанной на рис. 8.14.

8.2.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Бригадное планирование:

  1. 11.6.2. Колективна (бригадна) матеріальна відповідальність
  2. § 13.4. Колективна (бригадна) матеріальна відповідальність працівників
  3. Планирование телепередач
  4. Планирование, а не планы
  5. 11. КРИМИНАЛИСТИЧЕСКИЕ ВЕРСИИ И ПЛАНИРОВАНИЕ РАССЛЕДОВАНИЯ
  6. § 2. ПЛАНИРОВАНИЕ И СОДЕРЖАНИЕ НАБЛЮДЕНИЯ
  7. 10.2. Планирование и организация следственных действий
  8. 5.4. Планирование упражнений
  9. Искусство планирования спонтанного
  10. 5.9. Планирование социальных контактов
  11. 5.2.9. Планирование сроков достижения уже определённой цели
  12. Статья 437. Планирование, подготовка, развязывание и ведение агрессивной войны
  13. 11.3. Понятие и основные принципы планирования расследования в зависимости от исходной информации (следственной ситуации)
  14. Вопросы для самопроверки
  15. Программирование телевизионного вещания
  16. РЕЧЬ УСТНАЯ
  17. Классификация по логике построения психолого-педагогической деятельности I.
  18. Правило психологической ориентированности
  19. Линия 5-7 (Юпитер-Сатурн)
  20. Тезисы