Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Операционные системы: О аспекты параллелизма Планирование ЦП Линёв А.В. 2007 Тема обсуждения у д Потокам для выполнения нужен центральный ц р процессор р ц р (Ц (ЦП)) Если потоков больше, чем процессоров ОС должна процессоров, обеспечить возможность поочередного использования р р потоками процессоров Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 2 из 45 Что такое "планирование"? р П Планирование – распределение времени центрального процессора Процесс Поток Процесс Поток Поток Центральный процессор Поток Поток Поток Процесс Поток Поток Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 3 из 45 Что такое "планирование"? р П Планирование – распределение времени центрального процессора Планирование бывает долгосрочное – принятие решений о запуске и откладывании запуска заданий среднесрочное – принятие решений й о временном вытеснении процессов на диск краткосрочное (диспетчеризация) – выбор потока, которому следует предоставить ЦП При реализации планирования используется механизм переключения контекстов процессов и потоков Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 4 из 45 График р ф выполнения потока а) Длинные блоки вычислений Ожидание завершения ввода-вывода Короткие блоки вычислений б) Время а) Потоки, ограниченные возможностями ЦП б) Потоки, ограниченные возможностями ввода-вывода Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 5 из 45 А если потоков несколько? Для каждого потока можно построить график его выполнения в однозадачной среде Ожидание завершения вводавывода или наступления некоторого события Поток2 Поток1 Время Если имеются 2 потока и 1 центральный процессор, операционная система должна определить последовательность использования центрального ц р процессора р ц р потоками Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 6 из 45 А если потоков несколько? Завершение состояния ожидания – переход в состояние «готов к исполнению» Поток2 Поток1 П Поток в состоянии «готов к исполнению» Время Хорошо ли мы распределили время ЦП между потоками? Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 7 из 45 Критерии р р оценки алгоритмов р планирования… Общие Об критерии Справедливость – всем выделяется равное количество времени ЦП Баланс – обеспечение загрузки всех устройств системы Накладные расходы – процент ресурсов, потребляемых планировщиком Масштабируемость – увеличение потребления ресурсов планировщиком при увеличении числа объектов планирования Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 8 из 45 Критерии р р оценки алгоритмов р планирования… Справедливость – всем выделяется равное количество времени ЦП Как измерить справедливость? Одинаковое время потребления ЦП? Одинаковое количество выполненных команд? Честно на уровне потоков? процессов? пользователей? Что если один процесс ограничен возможностями ЦП, а другой – возможностями ввода-вывода? Иногда нужно быть несправедливым и явно оказывать предпочтение некоторым определенным классам потоков/запросов/событий (иметь систему р р ), но… приоритетов), следует избегать голодания (starvation) – ситуации, когда некоторым потокам процессор может не выделяться в течении неограниченного времени Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 9 из 45 Критерии р р оценки алгоритмов р планирования… Системы пакетной обработки данных Пропускная способность – среднее число заданий, полностью выполняемых в единицу времени (час, сутки,…) Оборотное Об время – среднее время между запуском задания и завершением его обработки Эффективность – средний процент загрузки центрального процессора Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 10 из 45 Критерии р р оценки алгоритмов р планирования… Интерактивные И системы Время отклика – среднее время между возникновением события и завершением его обработки Время ожидания – среднее время между переходом потока из состояния "ожидание" в состояние "готов к выполнению" и предоставлением ему ЦП Соразмерность – соответствие производительности ожиданиям пользователя Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 11 из 45 Критерии р р оценки алгоритмов р планирования Системы реального времени Окончание обслуживания к сроку Предсказуемость – соблюдение временных ограничений при выполнении некоторого заранее оговоренного множества системных вызовов Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 12 из 45 Моменты планирования р Создание нового процесса Создание нового потока Завершение потока или процесса Блокирование потока (переход из состояния "выполнение" в состояние " "ожидание") ") Разблокирование потока (переход из состояния "ожидание" в состояние "готов к выполнению") Срабатывание таймера Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 13 из 45 Невытесняющие алгоритмы р планирования… Выбирают поток, передают ему центральный ц р процессор р ц ри позволяют работать вплоть до блокировки либо до того момента, момента когда поток сам отдаст центральный процессор Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 14 из 45 Невытесняющие щ алгоритмы р планирования Потоки TID=99 TID=10 TID=5 TID=1 Время ЦП Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 15 из 45 Вытесняющие алгоритмы р планирования… В Выбирают б поток и позволяют ему работать б некоторое максимально возможное фиксированное ф с ро а ое время. ре Если с к концу о цу зада заданного о о интервала времени поток все еще работает, он приостанавливается, и управление переходит к другому потоку (если существует поток, поток готовый к исполнению). Вытесняющее планирование требует прерываний по таймеру, происходящих в конце отведенного периода времени. При отсутствии таймера возможна реализация только невытесняющих алгоритмов. Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 16 из 45 Вытесняющие алгоритмы р планирования… Потоки TID=99 TID=10 TID=5 TID=1 Все верно? Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование Время ЦП 17 из 45 Вытесняющие алгоритмы р планирования… Потоки TID=99 TID=10 TID=5 TID=1 Часть потоков может не потреблять Время ЦП каждый свой квант полностью Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 18 из 45 Вытесняющие алгоритмы планирования а ро а на а многопроцессорных системах Потоки TID=99 TID=10 TID=5 TID=1 Время ЦП На двухпроцессорной системе у потоков одновременно выполняются не более двух Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 19 из 45 First Come – First Served (FCFS или FIFO)… Невытесняющий Планировщик поддерживает очередь готовых к выполнению потоков и предоставляет ЦП первому потоку из очереди При переходе в состояние "готов к выполнению" поток помещается в выполнению конец очереди Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 20 из 45 First Come – First Served (FCFS или FIFO) Список еще не запущенных ущ потоков Список потоков в состоянии «готов к выполнению» B Поток в состоянии выполнения A Нижний Новгород 2007 C Центральный процессор I J D E F G H Потоки в состоянии ожидания Операционные системы: аспекты параллелизма Планирование 21 из 45 Shortest Job First (SJF) ( ) Невытесняющий Планировщик выбирает на выполнение самую короткую задачу Похож на FCFS, но для каждого потока вводится дополнительная характеристика – ожидаемое время выполнения, выполнения и потоки в очереди готовых к выполнению отсортированы в порядке увеличения ее значения Автоматически определить время выполнения программы невозможно, невозможно следовательно, его должен задавать пользователь, запускающий программу Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 22 из 45 Shortest Remaining g Time ((SRT)) Невытесняющий Н й Планировщик р щ выбирает р на выполнение задачу, имеющую ру время р д до наименьшее планируемое окончания выполнения У каждого потока 2 дополнительные характеристики – ожидаемое время выполнения и у уже потребленное р время ЦП Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 23 из 45 Round Robin (RR) ( ) RR - вытесняющий аналог FCFS Список потоков в состоянии «готов к выполнению» B Поток в состоянии выполнения A Нижний Новгород 2007 C Центральный процессор Операционные системы: аспекты параллелизма Планирование D E F G H Потоки в состоянии ожидания 24 из 45 Shortest Remaining g Processing g Time first (SRPT) Вытесняющий Считается, что каждый поток обрабатывает последовательность запросов Для каждого потока вычисляется характеристика, оценивающая время обработки б б одного запроса. Например: T(0)=0, T(n+1) = a*t(n) + (1- a)*T(n) T(n) – значение характеристики после выполнения n-ого n ого запроса t(n) – время обработки n-ого запроса a – коэффициент фф ц ((0 ≤ a ≤ 1)) На выполнение выбирается поток с минимальным значением характеристики t0 t1 t2 tn Время ЦП Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 25 из 45 Приоритетное р р планирование р Необходим дифференцированный д д к потокам подход В системе могут одновременно существовать служебные процессы и процессы, запущенные пользователями Пользователи могут различаться по статусу Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 26 из 45 Приоритетное р р планирование р очереди приоритетов самый высокий приоритет р р Приоритет 4 Приоритет 3 Приоритет 2 Приоритет 1 Нижний Новгород 2007 самый низкий приоритет Операционные системы: аспекты параллелизма Планирование 27 из 45 Приоритетное р р планирование р При П использовании приоритетного планирования, если в системе всегда готов к выполнению хотя бы б один из высокоприоритетных потоков, то потоки с низкими приоритетами никогда не будут выполнены. Поэтому, как правило, у некоторые р используются модификации этого алгоритма. Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 28 из 45 Приоритетное р р планирование… р В модификациях ф часто разделяют р базовый приоритет потока и эффективный приоритет потока Базовый приоритет назначается потоку посредством некоторого системного вызова, например, инициированного выполнением команды пользователя Эффективный приоритет используется планировщиком р щ при р выборе р потоков на исполнение и может им изменяться в соответствии с реализованным алгоритмом р планирования Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 29 из 45 Приоритетное р р планирование р Для предотвращения бесконечной работы высокоприоритетных потоков планировщик может уменьшать с каждым тактом таймера й эффективный приоритет выполняющегося потока Для предоставления низкоприоритетным потокам центрального процессора планировщик может проверять время, в течение которого поток находился в состоянии готовности к исполнению Возможно адаптивное и динамическое изменение приоритетов адаптивное изменение – коррекция эффективных приоритетов на основании набора правил динамическое изменение – регулярный пересчет эффективных приоритетов на основании значений некоторой совокупности параметров Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 30 из 45 Планирование р в Windows… 31 Приоритеты реального времени Относительные приоритеты потоков 16 15 Изменяемые приоритеты 10 Базовый приоритет процесса – 10 (ABOVE_NORMAL) 15 Time Critical 12 11 10 9 8 Highest g Above Normal Normal Below Normal Lowest 1 1 0 Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование Idle 31 из 45 Планирование р в Windows Размер Р кванта Эффективный приоритет потока Приоритет потока уменьшился до базового значения Повышение приоритета по окончании ожидания Приоритет потока Снижение приоритета по истечении кванта Вытеснение более приоритетным потоком до истечения кванта Выполнение Ожидание Выполнение Время Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 32 из 45 Параметры р р пересчета р приоритетов Каким пользователем запущен процесс или сформировано задание Насколько важной является поставленная задача, т. е. каков приоритет р р ее выполнения Сколько процессорного времени запрошено пользователем для решения задачи Каково соотношение процессорного времени и времени, необходимого для осуществления операций ввода-вывода ввода вывода Какие ресурсы вычислительной системы (оперативная память, устройства ввода-вывода, специальные библиотеки и системные программы и т. д.) и в каком количестве необходимы б заданию Сколько времени прошло со времени выгрузки процесса на диск или его загрузки в оперативную память Сколько оперативной памяти занимает процесс Сколько времени ЦП было уже предоставлено потоку Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 33 из 45 Планирование р с использованием многоуровневых очередей планирование р очереди р д внутри очереди приоритетов RR Приоритет 4 RR Приоритет 3 FCFS Приоритет 2 RR Приоритет 1 Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование самый высокий приоритет р р самый низкий приоритет 34 из 45 Multi-Level Feedback Queue Q (MLFQ) При использовании многоуровневых очередей с обратной связью поток не постоянно приписан к определенной й очереди, а может мигрировать из очереди в очередь в зависимости от своего поведения Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 35 из 45 Параметры р р алгоритма р MLFQ Q Количество очередей р для потоков,, находящихся в состоянии готов к исполнению Алгоритм планирования, планирования действующий между очередями Алгоритмы планирования, планирования действующие внутри очередей Правила помещения родившегося потока в одну из очередей Правила перевода потоков из одной очереди в другую Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 36 из 45 Пример… р р Количество очередей: 4 Алгоритм планирования, действующий между очередями: приоритетное планирование (приоритеты 1-4, 1 4 наивысший приоритет - 4) Алгоритмы планирования в очередях Пр.4. Пр.3. Пр.2. П 1 Пр.1. RR с размером кванта 8 RR с размером кванта 16 RR с размером кванта 32 FCFS Новый поток поступает в очередь с наивысшим приоритетом Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 37 из 45 Пример… р р Создание потока Пр.4 – RR с квантом 8 Пр.3 – RR с квантом 16 Пр.2 – RR с квантом 32 П 1 – Фоновые, Пр.1 Ф FCFS Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 38 из 45 Пример… р р Правила перевода потоков из одной очереди в другую если поток из очереди Пр.4. не завершил обработку до завершения кванта, он переводится в очередь Пр.3 если поток из очереди Пр.3. Пр 3 не завершил обработку до завершения кванта, он переводится в очередь Пр.2 если поток из очереди Пр.2. не завершил обработку до завершения кванта, кванта он переводится в очередь Пр.1 Пр 1 после завершения ожидания ввода с клавиатуры потоки из очередей Пр.1,2,3 переводятся в очередь Пр.4 после завершения операций дискового ввода-вывода потоки из очередей Пр.1,2 переводятся в очередь Пр.3 после завершения ожидания всех других событий потоки из очереди Пр.1 переводятся в очередь Пр.2 Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 39 из 45 Пример р р Создание С потока Пр.4 – RR с квантом 8 Завершение ожидания ввода с клавиатуры Требуемое время ЦП > 8 Пр.3 – RR с квантом 16 Завершение дискового ввода-вывода Т б Требуемое время ЦП > 16 Пр.2 – RR с квантом 32 Требуемое время ЦП > 32 Завершение ожидания других событий Пр.1 – Фоновые, FCFS Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 40 из 45 Заключение Существует несколько уровней планирования Существуют различные алгоритмы планирования Определены критерии оценки алгоритмов планирования (зачастую противоположные) В реальных системах реализуются гибридные алгоритмы, использующие, к тому же, адаптивные или динамические приоритеты Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 41 из 45 Вопросы р д для обсуждения у д Какие критерии оценки алгоритмов планирования вы считаете более важными в настоящее время? ? Windows использует у адаптивное д планирование. Попробуйте предположить условия, условия при которых адаптивно изменяется приоритет потока. Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 42 из 45 Задание для самостоятельной работы Предложите П свой й алгоритм планирования Найдите описание проблемы р приоритетов р р и изучите у инверсии способы ее решения [1] Напишите программу, программу изменяющую статические составляющие приоритета своего потока и потока другого процесса (Win32 или UNIX) Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 43 из 45 Литература р ур 1. Таненбаум Э. Современные р ц системы. 2-е изд. д операционные СПб.: Питер, 2002. 2 Карпов В.Е., 2. В Е Коньков К К.А. А Введение в операционные системы. Курс лекций. й 2 2-е изд. М.: ИНТУИТ.РУ,, 2005. Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 44 из 45 Тема следующей ду щ лекции ц – Синхронизация-1 Необходимость синхронизации Задача взаимного исключения и ее решения Нижний Новгород 2007 Операционные системы: аспекты параллелизма Планирование 45 из 45