Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать
  1. Управление процессами

2.1 Состояния процессов и переходы между ними

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

Рис.1. Основные состояния процесса и переходы между ними

На рис. 1 показаны основные состояния процесса и возможные переходы между ними.

В реальной операционной системе может быть определено и большее количество состояний процесса (например, в UNIX – 9), добавлены переходы (например, прямой переход из состояния блокировки в состояние выполнения), но три показанных на рис. 1 состояния и переходы между ними являются базовыми, представленными в любой операционной системе.

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

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

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

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

Планирование без переключения имеет ряд недостатков, в частности:

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

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

В то же время, планирование без переключения выгодно для решения вычислительных задач. Это связано с наличием в процессоре кэша и буфера трансляции адресов для системы виртуальной памяти. В ходе выполнения программы в кэше и буфере трансляции накапливаются данные, активно используемые программой, что повышает скорость ее работы (см. рис. 2).

Рис.2. Зависимость производительности вычислений от времени работы процесса

Кроме того, перевод процесса в состояние выполнения, равно как и вывод процесса из этого состояния, являются достаточно сложными задачами, связанными с пересылкой значительных объемов данных. Таким образом, частые переключения процессов невыгодны и снижают производительность системы.