Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

· Очередь заданий (job queue) – cодержит множество всех процессов в системе. В нее попадает каждый новый процесс и остается в ней в течение всего пребывания в системе.

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

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

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

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


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

 

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

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


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

 

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

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

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

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

Кратковременный планировщик (планировщик процессора) – определяет, какие процессы должны быть выполнены следующими и каким процессам должен быть предоставлен процессор.

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


Рис. 8.6. Добавление в систему планировщика откачки и подкачки процессов.

Особенности планировщиков и процессов. Каждый планировщик имеет свои особенности поведения, как и каждый процесс.

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

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

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

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

· Ориентированными на ввод-вывод (I/O-bound) – процессы, которые тратят больше времени на ввод-вывод, чем на вычисления. Такие процессы обычно расходуют много коротких квантов процессорного времени.

· Ориентированные на использование процессора (CPU-bound) – процессы, которые тратят основное время на вычисления. Такие процессы расходуют небольшое число долговременных квантов процессорного времени.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.