Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Состояния потоков



В мультипрограммной системе поток может находиться в одном из трех основных состояний /1/:

выполнение (running) – активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно управляется процессором;

ожидание (waiting) – пассивное состояние потока, находясь в котором поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);

готовность (ready) – также пассивное состояние потока, но в этом случае поток заблокирован в связи с внешним по отношению к нему событием (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).

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

 
 

Типичный граф состояний потока изображен на рис.2.1.

Только что созданный поток находится в состоянии готовности, он готов к выполнению и стоит в очереди к процессору. Когда в результате планирования ОС принимает решение об активации данного потока, он переходит в состояние выполнения и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ожидания какого-либо события, либо будет принудительно вытеснен из процессора, например, вследствие исчерпания отведенного данному потоку кванта процессорного времени. В последнем случае поток возвращается в состояние готовности. В это же состояние поток переходит из состояния ожидания, после того как ожидаемое событие произойдет. В состоянии выполнения в однопроцессорной системе может находиться не более одного потока, а в каждом из состояний ожидания и готовности – несколько потоков. Эти потоки образуют очереди соответственно ожидающих и готовых потоков. Очереди потоков организуются путем объединения в списки дескрипторов (описателей) отдельных потоков. Таким образом, каждый описатель потока обязательно содержит по крайней мере один указатель на другой описатель, соседствующий с ним в очереди.

Таким образом, движущей силой, меняющей состояния потоков, являются события, среди которых одними из основных являются прерывания.

Примечание. Взаимодействие введенных выше понятий (процесс, поток, ресурсы, состояния) можно пояснить следующей жизненной аналогией. Положим, студентка на кухне по рецептам готовит обед из нескольких блюд. На кухне есть плита с одной газовой горелкой, различные приспособления для приготовления продуктов (миксер, мясорубка, овощерезка, посуда, ножи и т.д.) и собственно продукты. Тогда кухня со студенткой, тексты рецептов, плита, набор приспособлений и продукты – это однопроцессорный компьютер, а приготовление обеда – процесс. Плита, набор кухонных приспособлений, продукты – это ресурсы компьютера, где плита – главный ресурс – процессор, кухонные приспособления – внешние устройства и устройства ввода-вывода компьютера, а продукты – данные для обработки. Рецепты приготовления отдельных блюд обеда – это выполняемые программы, а собственно студентка - это операционная система, управляющая компьютером. Приготовление отдельных блюд обеда – это параллельно выполняющиеся потоки одного процесса, которые разделяют ресурсы (плиту, кухонные принадлежности, продукты). Отдельные блюда (потоки) могут находиться на плите (выполняться), ждать своей очереди у плиты (быть в состоянии готовности) или ожидать каких-либо действий, например, добавления определенных продуктов по рецептам. Эти действия могут производиться по сигналам таймера – аналогов сигналов прерываний.

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

В ряде ОС, например, Windows 2000, вводят некоторые дополнительные состояния потоков, например /11/:

инициализирован (initialized) – в это состояние поток входит в процессе своего создания;

завершен (terminated) – в это состояние поток переходит заканчивая свое выполнение;

простаивает (standby) – это промежуточное состояние между готовностью и выполнением.

ОСНОВЫ ОРГАНИЗАЦИИ ПЛАНИРОВАНИЯ И





Дата публикования: 2015-04-07; Прочитано: 445 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...