Процессам часто нужно взаимодействовать друг с другом, например, один процесс может передавать данные другому процессу, или несколько процессов могут обрабатывать данные из общего файла. Во всех этих случаях возникает проблема синхронизации процессов, которая может решаться приостановкой и активизацией процессов, организацией очередей, блокированием и освобождением ресурсов.
Итак, операционная система выполняет следующие основные функции, связанные с управлением процессами и задачами:
□ создание и удаление задач;
□ планирование процессов и диспетчеризация задач;
□ синхронизация задач, обеспечение их средствами коммуникации.
Создание задачи сопряжено с формированием соответствующей информационной структуры (дескриптора), а ее удаление — с расформированием. Создание и удаление задач осуществляется по соответствующим запросам от пользователей или от самих задач. Задача может породить новую задачу. При этом между задачами появляются «родственные» отношения. Порождающая задача называется «отцом», «родителем», а порожденная — «потомком». Отец может приостановить или удалить свою дочернюю задачу, тогда как потомок не может управлять отцом.
|
|
|
Процессор является одним из самых необходимых ресурсов для выполнения вычислений. Поэтому способы распределения времени центрального процессора между выполняющимися задачами сильно влияют и на скорость выполнения отдельных вычислений, и на общую эффективность вычислительной системы. Основным подходом в организации того или иного метода управления процессами, обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных целей, является организация очередей процессов и ресурсов. При распределении процессорного времени между задачами также используется механизм очередей.
Решение вопросов, связанных с тем, какой задаче следует предоставить процессорное время в данный момент, возлагается на специальный модуль операционный системы, чаще всего называемый диспетчером задач. Вопросы же подбора вычислительных процессов, которые не только можно, но и целесообразно решать параллельно, возлагаются на планировщик процессов.
Самую простую модель процесса можно построить исходя из того, что в любой момент времени процесс либо выполняется, либо не выполняется, т.е. имеет только два состояния. Если бы все процессы были бы всегда готовы к выполнению, то очередь по этой схеме могла бы работать вполне эффективно. Такая очередь работает по принципу обработки в порядке поступления, а процессор обслуживает имеющиеся в наличии процессы круговым методом (Round-robin). Каждому процессу отводится определенный промежуток времени, по истечении которого он возвращается в очередь.
|
|
|
Однако в таком простом примере подобная реализация не является адекватной: часть процессов готова к выполнению, а часть заблокирована, например, по причине ожидания ввода-вывода. Поэтому при наличии одной очереди диспетчер не может просто выбрать для выполнения первый процесс из очереди. Перед этим он должен будет просматривать весь список, отыскивая незаблокированный процесс, который находится в очереди дальше других. Отсюда представляется естественным разделить все невыполняющиеся процессы на два типа: готовые к выполнению и заблокированные. Полезно добавить еще два состояния, как показано на рисунке 2.2.

Рисунок 2.2 – Схема выполнения процессов
Задачи моделирования процессов следует решать с учетом поэтапных преобразований данных. С этой целью необходимо разработать информационную модель системы ЧПУ, по которой можно было бы оценивать:
· содержание входной информации;
· содержание выходной информации;
· математический аппарат или алгоритм преобразований одной информации в другую (концептуальную модель).
Для построения информационной модели необходимо провести:
· анализ информации, необходимой для управления процессом и для оценки состояния технологического оборудования;
· анализ управляющих воздействий, которые обеспечивают необходимое качество технологического процесса и работы оборудования;
· анализ промежуточной информации, обрабатываемой в СЧПУ.
Анализ технологических процессов и работы оборудования целесообразно проводить в следующей последовательности:
· выделить узлы оборудования и в каждом узле определить исполнительные и информационные устройства;
· установить язык и средства управления для каждого узла;
· составить списки (таблицы) входных, выходных, аварийных и блокировочных сигналов, а также сигналов прерываний;
· определить массивы, в которые будет передаваться исходная информация.
После проведения анализа составляется схема связей между всеми компонентами информационных массивов. Линии этих связей обозначают конкретные задачи прикладного программного обеспечения.