Планирование работ

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

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

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

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

Так, при выделении памяти, устройств и файлов работам планировщик может использовать дисциплины FCFS или SJN и определённый извне приоритет планирования, отличающийся от диспетчерского приоритета. Этот приоритет может назначаться исходя из критериев стоимости или из таких факторов, как объем требуемой памяти или использование резидентного компилятора. Если примененная дисциплина не является дисциплиной FCFS, то должны быть предусмотрены средства, гарантирующие, что каждая работа когда-нибудь будет выбрана. Одним из возможных подходов здесь является увеличение приоритета работы всякий раз, когда она оказывается менее срочной, чем другие, т. е. когда работа рассматривается, но не выбирается для решения. Другим подходом является установка максимального количества таких возможных “игнорировании” работы. Когда этот максимум достигается, то работе выделяется процессор, независимо от того, имеются ли другие (в том числе и более срочные) работы. Третий подход состоит в применении принципа, при котором приоритет увеличивается с течением времени.

 

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

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

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

Далее...

   Обложка   Учебник   Экзамен   Глоссарий   Информация 
Hosted by uCoz