При построении системы управления процессами в большинстве современных ОС принята двухуровневая схема. Это означает, что в системе различают два вида планировщиков процессов, которые выполняют соответственно функции долгосрочного и краткосрочного планирования по использованию центрального процессора для развития на нем определенного множества процессов.
На уровень долгосрочного планирования выносят действия редкие в системе, но требующие больших системных затрат. На уровень краткосрочного планирования выносятся частые и более короткие по длительности действия по управлению процессами.
На уровне долгосрочного планирования объектами управления являются не отдельные процессы, а некоторые их объединения, рассматриваемые как единое целое, объединенное единым функциональным назначением. Такие объекты в различных ОС называют по-разному, например – задание, задача, работа, и т.п. Задача планировщика при этом – предоставить работе (задаче, заданию) некоторую виртуальную машину, имеющую в своем составе необходимые для выполнения работы компоненты (процессор, оперативную и внешнюю память, и т.п.).
На уровне краткосрочного планирования объектом управления являются процессы, которые выступают как потребители либо центрального процессора, если речь идет о внутренних процессах, либо других процессоров для внешних процессов. Необходимо отметить два важнейших свойства выполнения работ ОС на уровне краткосрочного планирования. Во-первых, причины, обусловливающие порождение и окончание процессов и отрабатываемые на этом уровне, являются внутренними. Другими словами, заявки или требования на порождение и уничтожение процессов поступают либо от процессов, управляемых на данном уровне, либо с уровня долгосрочного планирования. Во-вторых, особенностью стратегии распределения процессора на данном уровне, которую часто называют диспетчеризацией, является необходимость многократного распределения единственного процессора (за исключением многопроцессорных вычислительных систем) для каждого из планируемых процессов на интервалах их существования для достижения необходимого эффекта мультипрограммирования. Именно поэтому планирование распределения времени процессора в отношении каждого процесса называют краткосрочным.
Процессы могут выполняться параллельно до тех пор, пока не возникнет потребность в общении между ними. Для обеспечения такого рода взаимодействия необходимо специальным образом планировать и управлять ими в составе любой ОС. Специальные средства ОС устанавливают определенные ограничения на последовательность (очередность) выполнения взаимосвязанных параллельных процессов, обеспечения тем самым их синхронизацию и общение. В каждом конкретном случае синхронизация задается с помощью синхронизирующих правил, которые устанавливаются системой между процессами и определяют порядок их выполнения с целью обеспечения должного взаимодействия. Ранее нами были определены основные отношения типа: отношение предшествования, отношение приоритетности, отношение взаимного исключения. Эти отношения и определяют существо синхронизирующих правил. Реализация синхронизирующих правил осуществляется с помощью механизмов (средств) синхронизации. Такие механизмы весьма многочисленны по способам реализации, отличаются степенью эффективности и областями использования в различных ОС и будут рассмотрены в последующих разделах.
Особенности каждого конкретного взаимодействия между двумя или более параллельными процессами определяются задачей синхронизации. Количество различных задач синхронизации неограниченно. Однако некоторые из них являются типичными. К ним относятся: взаимное исключение, производители-потребители, читатели-писатели, обедающие философы и т.д. Большинство задач в реальных ОС по согласованию параллельных процессов можно ре шить либо с помощью этих типовых задач, либо с помощью их модификаций.
Сформулируем в общем виде постановку типовых задач синхронизации, не претендуя на формальный способ их постановки.
Задача взаимного исключения. Это фундаментальная по своему назначению задача. Любая ОС, управляющая параллельными процессами, должна обеспечить тот или иной вариант реализации ее решения. Необходимо согласовать работу n>1 параллельных процессов при использовании некоторого критического ресурса таким образом, чтобы удовлетворить следующим требованиям:
Задача “Производитель-потребитель”. Имеется большое число вариантов постановки и решения такой задачи в рамках конкретных ОС. Наиболее простой случай, когда взаимодействуют два процесса с жестко распределенными между ними функциями. Один процесс вырабатывает сообщения, предназначенные для восприятия и обработки другим процессом. Процесс, вырабатывающий сообщения, называют производителем, а воспринимающий сообщения — потребителем. Процессы взаимодействуют через некоторую обобщенную область памяти, которая по смыслу является критическим ресурсом. В эту область процесс-производитель должен помещать очередное сообщение (в простейшем случае предполагается, что область способна хранить только одно сообщение и сообщения фиксированной длины), а процесс-потребитель должен считывать очередное сообщение. Необходимо согласовать работы двух процессов при одностороннем (в простейшем случае) обмене сообщениями по мере развития процессов таким образом, чтобы удовлетворить следующим требованиям:
Попытка процесса-производителя поместить очередное сообщение в область, из которой не было считано предыдущее сообщение процессом-потребителем, должна быть блокирована. Процесс-производитель должен быть либо оповещен о невозможности помещения сообщения, либо переведен в состояние ожидания возможности поместить очередное сообщение через некоторое время в область памяти, по мере ее освобождения. Аналогично должна быть блокирована попытка процесса-потребителя считать сообщение из области в ситуации, когда процесс-производитель не поместил туда очередного сообщения. Возможны также несколько вариантов реакции на данную ситуацию — сообщение о невозможности считывания либо перевод процесса-потребителя в состояние ожидания поступления очередного сообщения. Если используется вариант с ожиданиями изменения состояния обобщенной области для хранения сообщения, необходимо обеспечить перевод ожидающих процессов в состояние готовности всякий раз, когда изменится состояние области. Либо процесс-производитель поместит очередное сообщение в область. Оно теперь может быть считано ожидающим процессом-потребителем. Либо процесс-потребитель считал очередное сообщение из области и обеспечил возможность ожидающему процессу-производителю послать очередное сообщение.
Множественность постановки задачи “производитель-потребитель” определяется тем, что число как процессов-потребителей, так и процессов-производителей может быть большим одного. Каждый из таких процессов может устанавливать не только одностороннюю, но и двустороннюю связь через одну и ту же обобщенную область или другие области. Области могут хранить не одно, а большее количество сообщений.
Если основа оригинала (карты пли плана) прозрачна, то копию можно снять при помощи стола со…
Определение координат точки. Пусть точка А (рис. 32) находится в квадрате, абсциссы и ординаты вершин…
Рельефом местности называется совокупность неровностей физической поверхности земли. В зависимости от характера рельефа местность делят…
Для обозначения на планах и картах различных предметов местности, применяются специально разработанные условные знаки. Для обличения…
В инженерной геодезии чаще всего пользуются топографическими картами. Их составляют в масштабах 1:10000, 1:25000, 1:50000…