Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: свободно | ВУЗ: Санкт-Петербургский государственный университет
Лекция 8:

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

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >

Переключение с одного процесса на другой

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

Переключение с одного процесса на другой.

увеличить изображение
Рис. 8.3. Переключение с одного процесса на другой.

На схеме изображено два процесса – P0 и P1. При прерывании или системном вызове в процессе P0 операционная система сохраняет его состояние в его PCB и переключает процессор на процесс P1 (аналогично обрабатывается процесс P1). Показаны периоды исполнения и простаивания каждого из процессов.

Очереди, связанные с диспетчеризацией процессов

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

  • Очередь заданий (job queue) – cодержит множество всех процессов в системе. В нее попадает каждый новый процесс и остается в ней в течение всего пребывания в системе.
  • Очередь готовых процессов (ready queue) – наиболее часто используемая и изменяемая очередь, содержащая множество всех процессов, находящихся в основной памяти и готовых к выполнению. В нее попадает каждый новый процесс, который система допускает к выполнению, а также каждый процесс после выполнения ввода-вывода или наступление ожидаемого события.
  • Очереди процессов, ожидающих ввода-вывода (device queues) – множества процессов, ожидающих результата работы устройств ввода-вывода (для каждого устройства организуется своя очередь).

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

На рис. 8.4 изображена схема организации очереди готовых процессов и очередей к устройствам ввода-вывода.

Очередь готовых процессов и очереди к устройствам ввода-вывода.

увеличить изображение
Рис. 8.4. Очередь готовых процессов и очереди к устройствам ввода-вывода.

Как видно из схемы, в очереди готовых процессов находятся те процессы, ввод-вывод в которых завершен. Процессы, выполняющие ввод-вывод или ждущие возможности его выполнить (освобождения соответствующего устройства) стоят в очереди к устройству. Некоторые устройства могут быть свободны, другие – содержать более одного процесса в очереди. Следует также обратить внимание на организацию очереди, с точки зрения представления данных. Полезный прием состоит в том, что для очереди хранится не только ссылка на начало (голову), но и ссылка на конец (хвост), что позволяет более эффективно управлять очередями (например, быстро добавить элемент в конец очереди). Место процесса в очереди определяется его приоритетом, о котором речь ниже. Более подробно алгоритмы работы с очередями (как с одной из классических структур данных) описаны в монографии Д. Кнута [ 15 ] .

Схема диспетчеризации процессов и работа с очередями представлена на рис. 8.5.

Графическое представление диспетчеризации процессов.

увеличить изображение
Рис. 8.5. Графическое представление диспетчеризации процессов.

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

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков