Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
колок.docx
Скачиваний:
78
Добавлен:
16.03.2016
Размер:
903.61 Кб
Скачать

10) Поясните суть и основные типы планирования потоков.

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

  • Приоритет потока

  • Время ожидания в очереди

  • Накопленное время выполнения

  • Интенсивность ввода вывода

ОС планирует выполнение потоков независимо от того, принадлежат они одному или разным процессам.

Планирование потоков заключается в решении 2-х основных задач:

  • Определение момента времени смены текущего активного потока

  • Выбор для выполнения очередного потока из очереди готовых потоков

11) Чем динамическое планирование потоков отличается от статического?

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

Другой тип планирования – статический. Используется в системах с заранее известным составом мультипрограммной смеси. Статический планировщик принимает решение заранее.

12) Поясните суть и порядок диспетчеризации потоков.

Диспетчеризация заключается в реализации найденного планировщиком решения, т.е. в переключении процессора с одного потока на другой.

До прерывания выполнения потока ОС запоминает его контекст, который отражает:

1. состояние аппаратуры ЭВМ во время прерывания потока

2. параметры операционной среды (ссылки на открытые файлы, данные о незавершенных операциях)

Порядок диспетчеризации следующий:

1. происходит сохранение контекста текущего потока, подлежащего смене

2. загрузка контекста нового потока, выбранного в результате планирования

3. запуск нового потока на выполнение

13) Как организуются и переупорядочиваются очереди потоков?

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

Такая организация очередей позволяет легко их переупорядочивать, включать и исключать потоки, переводить потоки из одного состояния в другое.

14) Чем различаются вытесняющие и невытесняющие алгоритмы планирования?

Множество алгоритмов планирования можно разделить на 2 класса:

1. Вытесняющий алгоритм (решение о прекращении выполнения потока выполняет ОС)

Все диспетчерские функции выполняет ОС

2. Невытесняющий (решение принимается самим потоком)

Эти функции разделены между ОС и приложениями, а управление средой теряется на произвольный период времени, определяемый самим приложением.

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

В системах с вытесняющей многозадачностью ситуации с зависанием исключены, т.к. ЦПМ всегда может снять зависшую задачу с выполнения. Однако поручение части функций планирования приложению может быть и преимуществом, т.к. дает разработчику возможность самому проектировать алгоритм планирования наиболее подходящей для данного набора задач.