3470 ОСНОВЫ ОПЕРАЦИОННЫХ СИСТЕМ

Лабораторная работа № 4

УПРАВЛЕНИЕ ПРОЦЕССАМИ

Цель работы: изучение процессов и потоков в ОС, особенностей их возникновения, работы, планирования и диспетчеризации.

  1. 1. Теоретическая часть

1.1. Понятие «процесс»

Мультипрограммирование, или многозадачность, — это способ ор­ганизации вычислительного процесса, при котором на одном процессоре попере­менно выполняются сразу несколько программ.

Процесс – это ис­полняемый модуль, выполняющий задачу, поставленную ОС.

Для реализации мультипрограммирования ОС должна определить и офор­мить для себя те внутренние единицы работы, между которыми будут разделять­ся процессор и другие ресурсы компьютера. Следует сказать, что ОС поддерживает различные виды единиц работы: процесс, поток, нить и т. д., отличающиеся друг от друга объемом выполняемой работы. В данной работе речь пойдет только о процессах, хотя большинство из сказанного относится к другим единицам.

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

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

 

1.2. Создание процессов

Создание процесса состоит из многих операций. Основными из них являются:

—   присвоение процессу имени;

—   включение этого имени в список процессов;

—   определение начального приоритета процесса;

—   выделение процессу начальных ресурсов и т.д.

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

При управлении процессами ОС использует два основных типа информационных структур: дескриптор процесса и контекст процесса.

Дескриптор процесса содержит такую информацию, которая необходима ядру в течение всего цикла процесса независимо от того, находится он в активном или пассивном состоянии. Не следует путать понятия описатель и дескриптор (в переводе с английского “дескриптор” - описатель). Под описателем понимается совокупность структур, включая и дескриптор.

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

 

1.3. Планирование и диспетчеризация процессов

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

—   определение   момента    времени  для  смены    текущего   активного  процесса;

— выбор для выполнения процесса из очереди готовых процессов.

Диспетчеризация – это реализация найденного в результате планирова­ния решения, то есть перевод про­цессора с одного процесса на другой. Диспетчеризация сводится к следующему:

— сохранение контекста текущего процесса, который требуется сменить;

— загрузка контекста нового процесса, выбранного в результате  планирования;

— запуск нового процесса на выполнение.

ОС выполняет планирование процессов, принимая во внимание их состояние.

 

1.3.1. Состояния процесса

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

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

ожидание — пассивное состояние процесса, находясь в котором, он заблоки­рован по своим внутренним причинам;

готовность — пассивное состояние процесса, но в этом случае он за­блокирован в связи с внешним по отношению к нему обстоятельством.

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

Только что созданный процесс находится в состоянии готовности, он готов к выполнению и стоит в оче­реди к процессору. Когда в результате планирования подсистема управления принимает решение об активизации данного процесса, он переходит в со­стояние выполнения и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ожидания какого-нибудь события, либо будет принудительно «вытеснен» из процессора. В последнем случае процесс возвращается в состояние готовности. В это же состояние процесс переходит из состояния ожидания, после того как ожидаемое событие произойдет.

 

Процесс завершен или ошибка

 

 

Процесс выбран на                                       Процесс ожидает события

выполнение              Процесс                         Ожидаемое событие завершено

вытеснен                        (для невытесняющего алгоритма)

 

Событие

произошло

Созданный

процесс

Рис. 1. Граф состояний процесса в многозадачной среде

 

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

 

1.3.2. Вытесняющие и невытесняющие алгоритмы планирования

Все алгоритмы планирования условно можно разде­лить на два класса: вытесняющие и невытесняющие.

Невытесняющие алгоритмы основаны на том, что активному процессу позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление ОС для того, чтобы та выбрала из очереди другой готовый к выполнению процесс.

Вытесняющие алгоритмы — это такие способы планирования, в которых решение о переключении процессора с выполнения одного процесса на выполнение другого принимается ОС, а не задачей.

 

1.3.3. Алгоритмы планирования, основанные на квантовании

В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. В соответствии с этой концепцией каждому процессу поочередно для выполнения предоставляется ограниченный непрерывный период процессорно­го времени — квант. Смена активного процесса происходит, если:

—   процесс завершился и покинул систему;

—   произошла ошибка;

—   процесс перешел в состояние ожидания;

—   исчерпан квант процессорного времени, отведенный данному процессу.

Процесс, который исчерпал свой квант, переводится в состояние готовности и ожи­дает, когда ему будет предоставлен новый квант процессорного времени, а на вы­полнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Граф состояний процесса, изображенный на рис.2, соответствует алгоритму планирования, основанному на квантовании.

 

Процесс завершен или ошибка