
- •Самарская государственная академия путей сообщения
- •Организация вычислительных процессов в эвм и системах Арбитраж, планирование и диспетчеризация
- •Самара 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. Изучение динамического повышения приоритетов при нехватке процессорного времени
- •Библиографический список Основная литература
2.2. Состояния потоков
В мультипрограммной системе поток может находиться в одном из трех основных состояний /1/:
выполнение (running) – активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно управляется процессором;
ожидание (waiting) – пассивное состояние потока, находясь в котором поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);
готовность (ready) – также пассивное состояние потока, но в этом случае поток заблокирован в связи с внешним по отношению к нему событием (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).
В течение своей жизни каждый поток переходит из одного состояния в другое в соответствии с алгоритмом планирования потоков, принятым в данной операционной системе.
Т
ипичный
граф состояний потока изображен на
рис.2.1.
Только что созданный поток находится в состоянии готовности, он готов к выполнению и стоит в очереди к процессору. Когда в результате планирования ОС принимает решение об активации данного потока, он переходит в состояние выполнения и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ожидания какого-либо события, либо будет принудительно вытеснен из процессора, например, вследствие исчерпания отведенного данному потоку кванта процессорного времени. В последнем случае поток возвращается в состояние готовности. В это же состояние поток переходит из состояния ожидания, после того как ожидаемое событие произойдет. В состоянии выполнения в однопроцессорной системе может находиться не более одного потока, а в каждом из состояний ожидания и готовности – несколько потоков. Эти потоки образуют очереди соответственно ожидающих и готовых потоков. Очереди потоков организуются путем объединения в списки дескрипторов (описателей) отдельных потоков. Таким образом, каждый описатель потока обязательно содержит по крайней мере один указатель на другой описатель, соседствующий с ним в очереди. Очевидно, что движущей силой, меняющей состояния потоков, являются события, среди которых одними из основных являются прерывания.
Примечание. Взаимодействие введенных выше понятий (процесс, поток, ресурсы, состояния) можно пояснить следующей жизненной аналогией. Положим, студентка на кухне по рецептам готовит обед из нескольких блюд. На кухне есть плита с одной газовой горелкой, различные приспособления для приготовления продуктов (миксер, мясорубка, овощерезка, посуда, ножи и т.д.) и собственно продукты. Тогда кухня со студенткой, тексты рецептов, плита, набор приспособлений и продукты – это однопроцессорный компьютер, а приготовление обеда – процесс. Плита, набор кухонных приспособлений, продукты – это ресурсы компьютера, где плита – главный ресурс – процессор, кухонные приспособления – внешние устройства и устройства ввода-вывода компьютера, а продукты – данные для обработки. Рецепты приготовления отдельных блюд обеда – это выполняемые программы, а собственно студентка - это операционная система, управляющая компьютером. Приготовление отдельных блюд обеда – это параллельно выполняющиеся потоки одного процесса, которые разделяют ресурсы (плиту, кухонные принадлежности, продукты). Отдельные блюда (потоки) могут находиться на плите (выполняться), ждать своей очереди у плиты (быть в состоянии готовности) или ожидать каких-либо действий, например добавления определенных продуктов по рецептам. Эти действия могут производиться по сигналам таймера – аналогов сигналов прерываний.
Если студентка по просьбе друзей готовит на кухне одновременно несколько разных обедов – это аналогия выполнения однопроцессорным компьютером группы процессов, изолированных друг от друга (вкусы друзей могут не совпадать). Очевидно, что наличие на кухне нескольких плит – это аналогия мультипроцессорного компьютера – позволяет приготовить несколько обедов или один обед существенно быстрее.
В ряде ОС, например Windows 2000, вводят некоторые дополнительные состояния потоков /11/:
инициализирован (initialized) – в это состояние поток входит в процессе своего создания;
завершен (terminated) – в это состояние поток переходит, заканчивая свое выполнение;
простаивает (standby) – это промежуточное состояние между готовностью и выполнением.