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

34. Планировщик задач. Механизм планирования

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

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

В рамках однопроцессорной вычислительной системы обычно используются следующие классические дисциплины планирования:

  1. FIFO - очередь задач (First In, First Out)

  1. LIFO - очередь задач (стек) (Last In, First Out)

Варианты LIFO и FIFO иллюстрируют статическое планирование исполнения процессов в однопроцессорной системе под управлением операционной системы с монопольным доступом к процессору (операционная система без вытеснения процесса).

  1. Круговое обслуживание задач на базе FIFO очереди

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

Можно выделить два подхода к планированию исполнения процессов в многопроцессорных системах:

  1. Work Sharing - централизованное планирование, при котором планировщик контролирует единый пул задач в системе и назначает задачи процессорам;

  2. Work Stealing - децентрализованное планирование, при котором единый планировщик отсутствует, а процессоры сами выбирают какие задачи им исполнять;

35. Тупик: понятие, условие наличия, предотвращение.

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

Условия возникновения взаимной блокировки

Было показано, что для возникновения ситуации взаимной блокировки, необходимо выполнение следующих четырех условий одновременно:

  1. Условие взаимного исключения ( англ. mutual exclusion ). Каждый ресурс в текущий момент или занят ровно одним процессом или свободный. То есть, ресурсы находятся в режиме эксклюзивного пользования.

  2. Условие удержания и ожидания ( англ. hold and wait ). Процессы, в текущий момент удерживают полученные ранее ресурсы, могут делать запросы на получение новых ресурсов.

  3. Условие отсутствия принудительного освобождения ресурсов ( англ. no preemption ). Невозможно заставить процесс освободить ранее полученные ресурсы.Процесс, обладающий ресурсами, должен сам их увольнять.

  4. Условие циклического ожидания ( англ. circular wait ). Должно существовать кольцевая последовательность из двух или более процессов, каждый из которых ожидает увольнение ресурса, удерживаемого следующим членом последовательности. Иными словами, должно существовать множество процессов {P0, P1,... Pn}, так, что процесс P 0 ожидает освобождения ресур процесса P 1, P 1 ожидает P 2,..., P N - 1 ожидает P N, а P N ожидает освобождения ресурсов процессом P 0.

Для возникновения ситуации взаимной блокировки, необходимо выполнение всех четырех условий одновременно. Если хотя бы одно из условий не выполняется, взаимная блокировка невозможна.

Для предотвращения тупиковбыло предложено 3 стратегических принципа в 1969 году одним из сотрудников фирмы IBM Хавендером :

1) Каждый процесс должен запрашивать все требуемые ресурсы сразу и не может начать выполняться, пока все ресурсы не будут выделены.

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

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

Всем ресурсам даются уникальные номера и процессу выделяются ресурсы в порядке возрастания их номеров.

Соседние файлы в папке shpory