Проблема синхронизации процессов

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

Итак, операционная система выполняет следующие основные функции, связанные с управлением процессами и задачами:

□ создание и удаление задач;

□ планирование процессов и диспетчеризация задач;

□ синхронизация задач, обеспечение их средствами коммуникации.

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

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

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

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

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

Рисунок 2.2 – Схема выполнения процессов

Задачи моделирования процессов следует решать с учетом поэтапных преобразований данных. С этой целью необходимо разработать информационную модель системы ЧПУ, по которой можно было бы оценивать:

· содержание входной информации;

· содержание выходной информации;

· математический аппарат или алгоритм преобразований одной информации в другую (концептуальную модель).

Для построения информационной модели необходимо провести:

· анализ информации, необходимой для управления процессом и для оценки состояния технологического оборудования;

· анализ управляющих воздействий, которые обеспечивают необходимое качество технологического процесса и работы оборудования;

· анализ промежуточной информации, обрабатываемой в СЧПУ.

Анализ технологических процессов и работы оборудования целесообразно проводить в следующей последовательности:

· выделить узлы оборудования и в каждом узле определить исполнительные и информационные устройства;

· установить язык и средства управления для каждого узла;

· составить списки (таблицы) входных, выходных, аварийных и блокировочных сигналов, а также сигналов прерываний;

· определить массивы, в которые будет передаваться исходная информация.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: