Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2_teoria.doc
Скачиваний:
2
Добавлен:
25.09.2019
Размер:
687.62 Кб
Скачать

4.1.Управление процессами и потоками.

Мультипрограммирование или мультизадачность – это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера. Мультипрограммирование призвано повысить эффективность использования вычислительной системы. Наиболее часто используемыми критериями эффективности являются:

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

  • Удобство работы пользователей – возможность интерактивной работы одновременно с несколькими приложениями на одном компьютере;

  • Реактивность системы – способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата.

В зависимости от выбранного критерия эффективности ОС делятся на системы пакетной обработки, системы разделения времени и системы реального времени. Дальнейшее изложение материала будет относиться, в основном, к системам разделения времени.

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

Процесс в системах разделения времени может находится в одном из следующих состояний:

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

  • Готовности к выполнению – ресурсы могут быть предоставлены, тогда процесс перейдет в состояние выполнения;

  • Блокирования или ожидания – затребованные ресурсы не могут быть предоставлены, или не завершена операция ввода/вывода.

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

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

  • Идентификатор процесса;

  • Тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

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

  • Переменную состояния, которая определяет, в каком состоянии находится процесс;

  • Адрес защищенной области памяти, в которой хранятся текущие значения регистров процессора, если процесс прерывается, не закончив работы. Эта информация называется контекстом задачи.

  • Информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться;

  • Место или адрес для организации обмена информацией с другими процессами;

  • Параметры времени запуска (момент времени, когда процесс должен активизироваться и периодичность этой процедуры);

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

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

Для аппаратной поддержки работы ОС с описателями процессов в процессорах могут быть реализованы соответствующие механизмы. Так, например, в микропроцессорах Intel 80х86, начиная с 80286, есть специальный регистр TR (регистр задачи), указывающий местонахождение TSS (сегмента состояния задачи), в котором при переключении задач автоматически сохраняется содержимое регистров процессора.