Проников А.С. 1995 Т.2 Ч.2 (830967), страница 39
Текст из файла (страница 39)
Рассмотрим набор таких состояний. Работающий процесс — единственный в каждый момент времени процесс, которому предоставлен процессор. Готовый процесс — полностью подготовленный к работе процесс, ожидающий выделения ему процессора (готовые процессы стоят в очереди, которая может быть простой или с приоритетами). Ожидающий процесс — процесс, задерживающий сам себя до совершения некоторого события или до 199 получения некоторого сообщения, после чего он переходит в состояние готового процесса, Приостановленный процесс — процесс, задержанный другим процессом, Пассивный процесс — процесс, который выведен из поля действия ОС РВ, но может быть возвращен обратно (вновь создан) работающим процессом. Решение о переходе процесса из одного состояния в другое может приниматься ОС РВ самостоятельно (при переходе из состояния «Работающий» в состояние «Готовый»), по факту наступления события или посылки сообщения (при переходе из состояния «Ожидающий» в состояние «Готовый»), под влиянием прямых указаний в работающем процессе (при всех других переходах).
Таким образом, операции ОС РВ следующие: СОЗДАТЬ вЂ” создание процесса; ЗАВЕРШИТЬ, УДАЛИТЬ вЂ” завершение процесса, удаление процесса из поля действия ОС РВ; ПРИОСТАНОВИТЬ вЂ” приостановка развития процесса, ПРОДОЛЖИТЬ вЂ” запуск приостановленного ранее процесса; ОЖИДАТЬ вЂ” ожидание события; ПОЛУЧИТЬ вЂ” получение сообщения, задержка процесса, если сообщение еще не послано; ПОСЛАТЬ вЂ” посылка сообщения. Работа ОС РВ заключается в управлении переходами процессов из одного состояния в другое вплоть до их выполнения, но прн этом должны соблюдаться все необходимые условия квазипараллельного развития процесса.
Процесс представляет собой систему действий, реализующую определенную функцию в вычислителе и оформленную так, что управляющий механизм вычислителя (например, ОС РВ) может перераспределять его ресурсы в целях мультнпрограммирования. Процесс объединяет саму программу и некоторую управляющую структуру — дескриптор. Последний содержит данные о приоритете н состоянии процесса, указывает адрес стека, в котором сохраняется вектор прерывания процесса, содержит начальный адрес выполняемой программы. ОС РВ работает именно с дескрипторами, а не с программными текстами.
Разбиение задач ЧПУ (геометрнческой, логической, технологической и терминальной) на процессы осуществляют путем выделения логически независимых или мало зависимых программных фрагментов. Подобная процедура неоднозначна. Можно предположить, что лучше иметь много малых (т. е. алгоритмическн простых) процессов, чем несколько больших (алгоритмически сложных), поскольку это позволяет строить гибкую структуру программно-математического обеспечения, в которой одни и те же процессы используются для реализации различных функций. Однако слишком большое число процессов усложняет систему программ, затрудняет ее модификацию и отладку и приводит к чрезмерным потерям времени, связанным собственно с работой ОС РВ (эта работа является своеобразными накладными расходами по отношению к основной н необходимой переработке информации).
Разбиение задач ЧПУ на процессы можно связать с определением заданий ЧПУ. Рассмотрим этот подход применительно к модулю интерполяции, имеющему наряду с другими модулями собственный процессор. Работа модуля представляет собой процедуру переработки информации на пути от входа к выходу. Фиксируя отдельные этапы этой процедуры в виде буферов н информационных векторов и обозначая связи между буферами и векторами на путях передачи информации, получим информационный граф (рис. 10.39), отражающий концептуальную модель базы данных модуля интерполяции. Суть построения подобного графа в том, чтобы выделить информационные объекты, ис- 200 пользуемые в любом режиме работы устройства ЧПУ и отражающие специфику каждого режима. На каждом этапе информационного преобразования следует объединять однородную информацию, для которой частота обращения и требования к скорости обработки примерно одинаковы. При этом возникают информационные компоненты, состоящие из связанных по вертикали массивов: массивов источников, объектных, загрузочных, главных и промежуточных массивов, массивов потребителей.
Группа массивов одного компонента вместе с приданными компоненту процедурами и представляет собой законченный модуль обработки информации. На рис. !0.39 массивы источников представлены буфером, прини- Рис. 10.39. Информационный граф, отображаюший концептуальную модель базы дан- ных модуля интерполяции: 01 — буфер модуля электроевтомзтики; 52 — буфер модуля вводе; 11 — вектор управления ведениями; 12 — вектор о-фуниций; 13 — вектор объектною кедре; ы — вектор коррекций инструмента; 15 — вектор управления экранам; 21 — вектор сообщений от модуля электроэвтомэтики; 22 — вектор буферного кедре; 23 — вентер сообщений для модуля электроввтомзткки; 81 — вектор упрэвления прнводэми подачи; 32 — вектор интерполяции; 33 — вектор рабочего нэдрз; Зев вектор коррекций режимов; 41 — вектор визуализации; Я вЂ” буфер модуля приводов; 52 — буфео модул» электроевтомзтики; 53 — буфер модуля ввода мающим очередной кадр управляющей программы ЧПУ из модуля ввода, а также буфером, принимающим из модуля электроавтоматики сообщения о ее готовности.
Центральную роль в объектнрсх лгассивах играет объектный кадр управляющей программы ЧПУ, на основе информации которого и с учетом коррекции инструмента подготовляется затем буферный кадр. Вектор управления заданиями построен заранее — в модуле ввода, а в модуле интерполяции он продублирован и служит для его настройки на выполнение функций ЧПУ, заданных с панели оператора и в управляющей программе.
Вектор гз-функций содержит действующую цепочку подготовительных функций — по одной из каждой группы б-функций. Вектор управления экраном собирает информацию, указывающую на выбор оператором определенного набора сведений для показа на экране. Загрузочные массивы готовят информацию, необходимую перед активизацией очередного кадра управляющей программы; при этом учитывается текущее состояние электроавтоматики и формируется сообщение для управления ею. Главные массивы представлены: от- 201 рабатываемым рабочим кадром управляющей программы; вектором коррекций, задаваемых с панели оператора; результатами интерполяционных расчетов (в векторе интерполяции); накопленными значениями координат исполнительных органов (в векторе управления приводами) . Промежуточным массивам принадлежит вектор визуализации, в котором подготовлена информация для передачи на экран дисплея, а массивы потребителей включают буферы, в которых накапливается информация для передачи другим модулям.
Автономный модуль обработки информации какого-либо компонента базы данных получает информацию от объектов другого компонента и преобразует ее в вид, требуемый на входе объектов других компонентов. Заданием ЧПУ служит совокупность действий, выполняемых за один шаг или несколько шагов, заключающихся в обслуживании массива или семантически однородной группы массивов одного компонента базы данных и включающих законченные процедуры в составе задачи ЧПУ. Первый шаг задания обязательно включает прием выходной информации от компонента, который в данный момент служит источником информации по отношению к рассматриваемому. Задание завершается подготовкой принадлежащих ему объектов.
Все промежуточные фазы выполнения задания связаны с преобразованием информации. Следовательно, в базе данных каждая связь между отдельными компонентами означает начало нового шага задания. Реализация параллельных процессов сводится к выполнению в среде ОС РВ параллельных заданий, способ построения которых был рассмотрен. Настройка задания производится директивами языка управления заданиями, которые включают: указания, поступающие с панели оператора; указания от управляющей программы ЧПУ; указания от предыдущих выполненных заданий. Отдельные процессы активизируются посредством задания, настроенного соответствующим образом. Причем это может быть сделано двумя способами: во-первых, путем привлечения упомянутой выше операции СОЗДАТЬ, переводящей процессы в поле действия ОС РВ; во-вторых, путем построения задания по типу настраиваемого программно-реализованного автомата-интерпретатора, самостоятельно вызывающего все свои процессы по мере их необходимости.