
- •Самарская государственная академия путей сообщения
- •Организация вычислительных процессов в эвм и системах Арбитраж, планирование и диспетчеризация
- •Самара 2005
- •Рецензенты: к.Т.Н., доцент н.А. Локтев (нпц «Информационные и транспортные системы»);
- •1.Мультипроцессорный и мультипрограммный
- •3.Основы организации планирования
- •4.Планирование вычислительных процессов
- •6.Практические и лабораторные работы
- •1.Мультипроцессорный и мультипрограммный способы организации вычислительных процессов
- •1.1. Мультипроцессорные системы и арбитраж
- •1.2. Мультипрограммные системы
- •1.3. Гиперпотоковая организация вычислений
- •2.Процессы и потоки в вычислительных системах
- •2.1. Определение процессов, потоков и ресурсов вс
- •2.2. Состояния потоков
- •3. Основы организации планирования и диспетчеризации процессов и потоков
- •3.1. Принципы планирования процессов и потоков
- •3.2. Классификация алгоритмов планирования (вытесняющие и невытесняющие, бесприоритетные и приоритетные алгоритмы)
- •3.3. Линейные алгоритмы планирования
- •3.4.Алгоритмы планирования, основанные на квантовании
- •3.5.Алгоритмы планирования, основанные на приоритетах
- •3.6. Смешанные алгоритмы планирования
- •4. Планирование вычислительных процессов
- •4.1. Принципы планирования в системах реального времени
- •4.2.Планирование с предельными сроками
- •4.3.Частотно-монотонное планирование
- •5.Планирование в windows 2000
- •5.1. Уровни приоритетов потоков в Windows 2000
- •5.2. Особенности алгоритмов планирования в Windows 2000
- •5.3.Учет квантов и управление их величиной
- •5.4.Динамическое повышение приоритета
- •5.5.Планирование потоков в симметричных мультипроцессорных системах
- •6. Практические и лабораторные работы по планированию процессов и потоков
- •6.1. Изучение диспетчера задач и системного монитора
- •6.2. Мониторинг использования ресурсов вычислительной системы
- •Запустите системный монитор.
- •Добавьте на график различные счетчики объекта «Память» и понаблюдайте за их изменением в процессе работы вычислительной системы.
- •6.3. Учет квантов и управление их величиной
- •6.4. Изучение изменения состояния потоков при планировании
- •6.5. Изучение динамического изменения приоритета потока активного процесса
- •6.6.Изучение динамического повышения приоритета gui-потоков
- •6.7. Изучение динамического повышения приоритетов при нехватке процессорного времени
- •Библиографический список Основная литература
3.3. Линейные алгоритмы планирования
Эти алгоритмы планирования реализуют выполнение процессов и потоков в порядке очереди, которая организуется согласно тем или иным соглашениям/7,8,12/.
Самой простой в реализации является дисциплина обслуживания, при которой процессы и потоки выполняются в порядке их появления в ВС. Этот алгоритм называется «первым пришел – первым обслужен» или FCFS (First come – First Served). Те процессы и потоки, которые были заблокированы в процессе выполнения, после перехода в состояние готовности вновь ставятся в очередь готовности. При этом возможны два варианта.
В первом наиболее простом варианте разблокированный процесс или поток ставится в конец очереди готовых процессов и потоков.
Во втором варианте планировщик помещает разблокированный процесс или поток перед теми процессами или потоками, которые еще не выполнялись. Таким образом, образуются две очереди: одна очередь образуется из новых процессов или потоков, а вторая очередь - из ранее выполнявшихся, но попавших в состояние ожидания. Такой подход позволяет реализовать стратегию обслуживания «заканчивать выполнение процессов или потоков в порядке их появления». Рассмотренный алгоритм относится к невытесняющим.
Примечание. Простой аналогией рассмотренному алгоритму может служить прием экзаменов у студентов, когда к преподавателю образуется две очереди: первая – студентов, отвечающих на вопросы экзаменационных билетов, а вторая – студентов, уже ответивших на вопросы билетов и готовящих ответ на дополнительные вопросы преподавателя.
К основным преимуществам этого алгоритма можно отнести его простую реализацию, справедливость и малые затраты системных ресурсов на формирование очереди задач.
Существенным недостатком алгоритма является рост среднего времени ожидания обслуживания при увеличении загрузки ВС, причем короткие процессы, требующие небольших затрат машинного времени, вынуждены ожидать столько же, сколько и трудоемкие.
Избежать указанного недостатка позволяет невытесняющий алгоритм, при котором планировщик выбирает первым для выполнения самый короткий процесс (задачу). Этот алгоритм называется «кратчайший процесс (задача) – первый» или SJN (Shortest Job Next)/7,8,12/. Алгоритм позволяет уменьшить оборотное время – среднее время от момента поступления процесса (задачи) на выполнение до завершения выполнения.
Пусть имеется четыре процесса со временем выполнения первого - a, второго - b, третьего – c и четвертого - d. Тогда первый процесс выполнится через время ta=a, второй – через время tb=a+b, третий через время tc=a+b+c, а четвертый через время td=a+b+c+d. Следовательно, среднее оборотное время to вычисления четырех процессов равно to=(ta+tb+tc+td)/4 =(4a+3b+2c+d)4. Очевидно, что вклад времени a в среднее больше, чем всех остальных интервалов времени, поэтому первым должен выполняться самый короткий процесс, а последним – самый длинный, вносящий вклад, равный собственному оборотному времени. Этот вывод справедлив для любого количества процессов и потоков.
Пример 3.1. Положим, имеется четыре процесса со временем выполнения первого a=10, второго b=8, третьего c=6 и четвертого d=4 единиц времени.
Вычислим среднее оборотное время to1 четырех процессов для случая выполнения в порядке a-b-c-d. Это время равно to1=(4a+3b+2c+d)4=20.
Вычислим среднее оборотное время to2 четырех процессов для случая выполнения в порядке «кратчайший процесс - первый», т.е. d-c-b-a. Это время равно to2=(4d+3c+2b+a)4=15. Очевидно, to1> to2.
Рассмотренный алгоритм прост и эффективен, но предполагает, что времена выполнения процессов известны заранее, что не всегда возможно. Усовершенствованные планировщики этого типа позволяют производить перестановку процесса в очереди процессов в случае значительного превышения реальных затрат над заказанными.
Следующей версией предыдущего алгоритма планирования является алгоритм наименьшего оставшегося времени выполнения или SRT (Shortest Remaining Time)/7,8,12/. В соответствии с этим алгоритмом планировщик всякий раз выбирает на выполнение процесс с наименьшим оставшимся временем выполнения. Когда появляется новый процесс, его полное время выполнения сравнивается с оставшимся временем выполнения текущего процесса. Если время выполнения нового процесса меньше, текущий процесс приостанавливается и управление передается новому процессу. Этот алгоритм позволяет быстро обслуживать короткие процессы.
Упражнение 3.1. В каком порядке в зависимости от уровня подготовки студентов преподавателю целесообразно проводить опрос студентов на экзамене, чтобы экзамен не был чрезмерно долгим? В каком порядке в зависимости от сложности вопросов в экзаменационном билете студенту целесообразно отвечать на вопросы в билете, чтобы сократить сроки ответа?