Понятие процесса и операции над процессами

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

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

В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.

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

36. Алгоритмы планирования процессов

Существует достаточно большой набор разнообразных алгоритмов планирования, которые предназначены для достижения различных целей и эффективны для разных классов задач. Многие из них могут использоваться на нескольких уровнях планирования.

Простейшим алгоритмом планирования является алгоритм FCFS (First-Come, First-Served). Процессы, находящиеся в состоянии "готовность", выстроены в очередь. Когда процесс переходит в состояние "готовность", ссылка на его PCB помещается в конец этой очереди. Выбор нового процесса для исполнения осуществляется из начала очереди с удалением оттуда ссылки на его PCB. Очередь подобного типа называется FIFO (First In, First Out). Алгоритм осуществляется не вытесняющим планированием.

Модификацией алгоритма FCFS является алгоритм, получивший название Round Robin или сокращенно RR. По сути дела, это тот же самый алгоритм, только реализованный в режиме вытесняющего планирования. Реализуется такой алгоритм так же, как и предыдущий, с помощью организации процессов, находящихся в состоянии готовность, в очередь FIFO.

Для FCFS и RR существенным является порядок расположения процессов в очереди процессов, готовых к исполнению. Если короткие задачи расположены в очереди ближе к ее началу, то общая производительность этих алгоритмов значительно возрастает. Если же таких процессов два или больше, то для выбора одного из них можно использовать алгоритм FCFS. Квантование времени при этом не применяется. Описанный алгоритм получил название "кратчайшая работа первой" или Shortest Job First (SJF). SJF - алгоритм краткосрочного планирования может быть как вытесняющим, так и не вытесняющим. При приоритетном планировании каждому процессу присваивается определенное числовое значение – приоритет, в соответствии с которым ему выделяется процессор. Планирование с использованием приоритетов может быть как вытесняющим, так и не вытесняющим. Подход, получивший название многоуровневых очередей, повышает гибкость планирования: для процессов с различными характеристиками применяется наиболее подходящий им алгоритм.

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

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

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

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

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

При этом ОС выполняет следующие функции:

– определяет момент снятия с выполнения активного потока;

– запоминает его контекст;

– выбирает из очереди готовых к выполнению потоков следующий;

– запускает новый поток на выполнение, загружая его контекст.

При не вытесняющем мультипрограммировании механизм планирования распределен между ОС и прикладными программами. Прикладная программа, получив управление от ОС, сама определяет момент завершения очередного цикла своего выполнения и только затем передает управление ОС. ОС формирует очереди потоков и выбирает в соответствии с некоторым правилом следующий поток на выполнение. Такой механизм создает проблемы как для пользователей, так и для разработчиков приложений. Для пользователей это означает, что управление системой теряется на произвольный период времени, который определяется приложением. Если приложение тратит слишком много времени на выполнение какой-либо работы, пользователь не может переключиться на другую задачу, например, на текстовый редактор, в то время как форматирование продолжалось бы в фоновом режиме.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: