WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 || 3 |

«ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ В ЗКОНОМИКЕ Под редакцией профессора В.И. Лойко 2-е издание, переработанное и дополненное Допущено Министерством сельского хозяйства Российской Федерации в качестве ...»

-- [ Страница 2 ] --

Вот тут и могут появиться задания, ожидающие обработки вечно.

Основными показателями эффективности рассматриваемой систе мы являются: среднее число занятых каналов (т.е. ЭВМ) — среднее число заданий в очереди — и в системе — среднее время пребывания задания в системе — очереди — Как видно, полученная математическая модель довольно проста и позволяет легко рассчитать показатели эффективности вычислитель ной системы. Очевидно, что для уменьшения времени пребывания за дания в системе, а значит, и в очереди требуется при заданной интен сивности потока заявок либо увеличивать число обслуживающих ЭВМ, либо уменьшать время обслуживания каждой ЭВМ, либо и то, и другое вместе.

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

Как указывалось, организация очереди, поддержание ее струк туры возлагаются на диспетчера а передача заданий из очере ди на обработку в вычислительные машины, поддержание дис циплины обслуживания в очереди (поддержка системы приори тетов) осуществляются диспетчером Д2 (см. рис. 4.2). В вы числительной системе диспетчеры реализуются в виде управляю щих программ, входящих в состав операционных систем ЭВМ.

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

4.3. ОРГАНИЗАЦИЯ ПЛАНИРОВАНИЯ ОБРАБОТКИ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ Эффективность обслуживания вычислительных задач (их про грамм) зависит прежде всего от среднего времени обслуживания поэтому в вычислительной системе (и в многомашин ной, и в одномашинной особенно) требуется решать проблему минимизации времени обработки поступивших в систему зада ний. Иногда эта проблема трансформируется в задачу макси мизации загрузки устройств ЭВМ. являющихся носителями ре сурсов.

При решении вычислительной задачи ЭВМ использует свои ресурсы в объеме и последовательности, определяемых алгорит мом решения. К ресурсам ЭВМ относятся объем оперативной и внешней памяти, время работы процессора, время обращения к внешним устройствам (внешняя память, устройства отображе ния). Естественно, что эти ресурсы ограничены. Поэтому и тре буется найти наилучшую последовательность решения поступив ших на обработку вычислительных задач. Процесс определения последовательности решения задач во времени называется плани рованием. При планировании необходимо знать, какие ресурсы и в каком количестве требует каждая из поступивших задач. Ана лиз потребности задачи в ресурсах производится на основе ее программы решения. Программа состоит, как правило, из огра ниченного набора процедур (по крайней мере к этому с известными для данной ВС затратами ресурсов. После анализа поступивших программ решения задач становится ясно, какая задача каких ресурсов требует и в каком объеме. Критерии, ис пользуемые при зависят от степени ти алгоритмов решаемых задач. Крайних случаев два: порядок использования устройств ЭВМ при решении задач строго задан их алгоритмами, а порядок использования устройств ВС в зада чах заранее не известен. Для первого случая приемлем критерий минимизации суммарного времени решения вычислительных за дач, для второго — максимизации загрузки устройств ВС.

Пример.

Рассмотрим модель планирования вычислительного процесса при минимизации суммарного времени [21].

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

где — ресурса при выполнении г'-й процедуры, т;

j = Знание матриц ресурсозатрат при выполнении программ позволя ет вычислить суммарные затраты каждого из ресурсов по всем про граммам решения вычислительных задач, поступивших в ВС, и соста вить их матрицу ресурсозатрат. Обозначим поступившие в ВС про граммы решения задач через — ресурса на выполнение г'-й задачи = 1,..., = 1,...,..., — ресурсы ВС. Матрица ресурсозатрат по задачам запишется в виде В вычислительной системе ресурсы чаще всего используются пос ледовательно. Поэтому на основе матрицы можно выделить после довательность прохождения через обработку задач, которая миними зирует суммарное время. Одним из методов нахождения такой после довательности, т. е. планирования, является метод решения задачи Джонсона [32], относящийся к теории расписаний и дающий эффектив ный и строгий алгоритм. При этом учитываются следующие ограни чения:

• для любого устройства ВС выполнение последующей вычисли тельной задачи не может начаться до окончания предыдущей;

• каждое устройство в данный момент может выполнять только одну вычислительную задачу;

• начавшееся выполнение задачи не должно прерываться до пол ного его Если в процессе обработки данных используется п устройств (ре сурсов) ВС, нахождение оптимальной последовательности поступаю щих на решение т задач, минимизирующих суммарное время обра ботки, потребует перебора вариантов. Например, если в ВС по ступило всего шесть заданий = 6), использующих всего два ресурса (п - 2), то для нахождения оптимальной последовательности после со ставления матрицы потребуется произвести (6!) переборов, т.е.

518400. Если же m - 10, то потребуется порядка переборов. Ясно, что даже для ЭВМ это многовато.

Алгоритм Джонсона, полученный для п = 2, требует перебора толь ко от + 1) / 2 вариантов, т.е. для нашего примера (т = 6) необходимо будет проделать 21 перебор, что значительно меньше, чем 518400. При и > 2 задачу планирования по критерию минимума суммарного време ни обработки сводят к задаче Джонсона путем преобразования матри цы Например, если п = 3 (т. е. три ресурса), то производится попар ное сложение первого и второго, второго и третьего столбцов и таким образом получают двухстолбцовую матрицу После преобразова ния следует проверить, выполняются ли вышеперечисленные условия.

Если это не так, то задача планирования не имеет строгого решения и используют эвристические алгоритмы.

Для пояснения алгоритма Джонсона представим матрицу Т„ как двухстолбцовую:

Алгоритм Джонсона состоит в следующем.

1. В матрице Т„ определяется..., 2. Из задач..., выбираются задачи, для которых ресурсоем кость хотя бы по одному устройству была равна т.е. в данном случае выбирают задачи 3/, у которых хотя бы одна из двух (Напомним, что — это номер — номер устройства, = j = 2.) 3. Задачи группируют по минимальному времени их исполнения на первом и втором устройствах, т.е. и 4. В начало последовательности обрабатываемых задач ставят to), в конец — 5. Задачи, вставленные в последовательность обрабатываемых задач, исключаются из матрицы Т„.

6. Для новой матрицы повторяются пункты 7. Задачи полученные из новой матрицы, ставятся в середину составленной ранее последовательности обраба тываемых задач и т. д.

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

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

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

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

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

В ПК применяют в основном режим поэтому их операционные системы не имеют в своем составе про грамм диспетчирования, планировщика и супервизора. Но в бо лее мощных ЭВМ, таких, как серверы и особенно мейнфреймы, подобные управляющие программы оказывают решающее влия ние на работоспособность и надежность ВС. Например, к UNIX серверам могут обращаться с заданиями одновременно сотни пользователей, а к мэйнфреймам типа S/390 тысячи.

4.4. ПРЕОБРАЗОВАНИЕ ДАННЫХ К важнейшим процедурам технологического процесса обра ботки относится также процедура преобразования данных. Она связана с рассмотренной выше процедурой ОВП, поскольку про грамма преобразования данных поступает в оперативную память ЭВМ и начинает исполняться после предварительной обработки управляющими программами процедуры ОВП. Процедура пре образования данных состоит в том, что ЭВМ выполняет типо вые операции над структурами и значениями данных (сортиров ка, выборка, арифметические и логические действия, создание и изменение структур и элементов данных и т.п.) в количестве и последовательности, заданных алгоритмом решения вычисли тельной задачи, который на уровне реализуется последовательным набором машинных команд (машинной про граммой).

На логическом уровне алгоритм преобразования данных выглядит как программа, составленная на формализованном че ловеко-машинном языке — алгоритмическом языке программиро вания. ЭВМ понимает только машинные команды, поэтому про граммы с алгоритмических языков с помощью программ-трансля торов переводятся в последовательность кодов машинных команд.

Программа преобразования данных состоит из описания типов данных и их структур, которые будут применяться при обработ ке, и операторов, указывающих ЭВМ, какие типовые действия и в какой последовательности необходимо проделать над данными и их структурами.

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

Первый критерий особо важен в режиме реального времени, а второй — в мультипрограммном режиме.

Программа решения вычислительной задачи преобразует зна чения объявленных типов данных, и, следовательно, в процессе выполнения программы происходит постоянная циркуляция по токов значений данных из памяти ЭВМ и обратно. При выпол нении программы к одним и тем же значениям данных могут об ращаться различные процедуры и операции, сами операции об работки могут между собой комбинироваться различным образом и многократно повторяться и дублироваться. Следовательно, задачей управления процедурой преобразования данных являет ся, с одной стороны, минимизация информационных потоков между памятью ЭВМ и операциями (процессором), с другой — исключение дублирования операций в комплексах функциональ ных программ.

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

Операции Информационные элементы 4.4. Граф преобразования данных Этот граф можно сделать раскрашенным, е пометить раз личным цветом дуги, относящиеся к разным информационным элементам. Тогда задача минимизации информационных пото ков в графовой интерпретации будет состоять в разбиении рас крашенного графа на подграфы (модули), при котором миними зируется суммарное число дуг различного цвета, связывающих выделенные подграфы Для удобства математического описания задачи управления процедурой преобразования данных и метода ее решения сведем граф, представленный на рис. 4.4. к табличной форме, располо жив по строкам выполняемые операции, а по столбцам — эле менты множества идентификаторов исходных, промежуточных и выходных данных, связанных с выполнением этих операций.

На пересечении строки и столбца ставится если операция и информационный связаны. Другими словами, получим матрицу L:

если информационный элемент Dj используется при выпол нении операции - 0 -- противном случае;

— 1 j 1,..., При таком представлении задача состоит в разбиении множе ства операций преобразования данных матрицы L на непересека ющиеся подмножества (модули), суммарное число информацион ных связей между которыми минимально. При решении задачи должны быть учтены ограничения: на число выделяемых подмно жеств (модулей);

на число информационных элементов, входящих в один модуль;

на число информационных связей между выделяе мыми модулями;

на совместимость операций в модулях.

Данная задача может быть сведена к задаче линейного про граммирования и решена с использованием стандартных приклад ных программ.

Алгоритм решения большой и сложной задачи, особенно ком плекса задач, включает многократное использование типовых операций в различных комбинациях. Причем эти комбинации тоже могут многократно исполняться в соответствующих частях боль шой программной системы. Поэтому второй частью задачи уп равления процедурой преобразования данных являются выделе ние в алгоритмах решения задач (или задачи) общих операцион ных комбинаций, выделение их в общие модули и упорядочение таким образом общей схемы алгоритма обработки данных. Эта задача на логическом уровне может быть представлена как зада ча укрупнения графов алгоритмов [32].

Граф алгоритма представляет собой древовидный граф, узла ми которого являются операции над данными, а дугами — связи (отношения) между операциями в алгоритме. В корне графа рас положена головная (начальная) операция ОТ которой после ее выполнения происходит переход к операции А\ или, затем к Аз,..., (рис. 4.5).

Рис. 4.5. Граф алгоритма Приведенный граф можно разметить, написав возле дуг чис ло обращений от операции к операции (например, от А\ к в процессе выполнения алгоритма. Для детерминирован ных алгоритмов число обращений > для вероятностного ал горитма число < 1, так как оно определяет вероятность обра щения операции к операции При анализе алгоритмов решения вычислительных задач можно выделить общие совокуп ности операций (пересечения графов). На рис. 4.6 алгоритмы и имеют три общие операции, составляющие подмножество операций, входящих одновременно и в множество операций ал горитма Р\, и в множество операций алгоритма (заштрихо ванная часть рис. 4.6).

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

На рис. 4.7, представлен фрагмент вычислительного гра фа программной системы, головным является вычислительный модуль Ему подчинены модули, находящиеся на нижележа щих уровнях. На самом нижнем уровне расположены модули, выполняющие элементарные типовые операции.

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

Изложенный подход реализуется методом структурного програм применяемым при создании программных комплексов.

Рис. 4.7. Фрагмент вычислительного графа программной системы Процедура преобразования данных на физическом уровне осуществляется с помощью аппаратных средств вычислительной системы (процессоры, оперативные и внешние запоминающие устройства), управление которыми производится машинными программами, реализующими совокупность алгоритмов решения вычислительных задач.

4.5. НЕТРАДИЦИОННАЯ ОБРАБОТКА ДАННЫХ 4.5.1. ПАРАЛЛЕЛЬНАЯ ОБРАБОТКА Необходимость параллельной обработки данных возникает, когда требуется сократить время решения данной задачи, увеличить пропускную способность, улучшить использование системы [20].

Для распараллеливания необходимо соответствующим обра зом организовать вычисления. Сюда входит следующее:

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

• автоматическое обнаружение параллелизма. Последователь ная программа автоматически анализируется, в результате мо жет быть выявлена явная или скрытая параллельная обработка.

Последняя должна быть преобразована в явную.

Рассмотрим описывающий последовательность процес сов большой программы (рис. 4.8).

4.8. Граф выполнения большой программы Из рис. 4.8 видно, что выполнение процесса Р$ не может на чаться до завершения процессов и и, в свою очередь, вы полнение процессов не может начаться до завершения процесса Р\.

В данном случае для выполнения программы достаточно трех процессоров.

Ускорение обработки данных на многопроцессорной системе определяется отношением времени однопроцессорной обработ ки к времени многопроцессорной обработки т.е.

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

Чтобы обнаружить явную параллельность процессов, анализи руются множества входных (считываемых) переменных R (Read) и выходных (записываемых) переменных W (Write) каждого про цесса. Два процесса i, j (ioj) могут выполняться параллельно при следующих условиях:

Это означает, что входные данные одного процесса не долж ны модифицироваться другим процессом и никакие два процесса не должны модифицировать общие переменные. Явная параллель ная обработка может быть обнаружена среди процессов, удов летворяющих этим условиям. Для использования скрытой парал лельной обработки требуются преобразования программных конструкций: такие, как уменьшение высоты деревьев арифмети ческих выражений, преобразование линейных рекуррентных со отношений, замена операторов, преобразование блоков IF и DO в канонический вид и распределение циклов.

4.5.2. КОНВЕЙЕРНАЯ ОБРАБОТКА Конвейерная обработка улучшает использование аппаратных ресурсов для заданного набора процессов, каждый из которых применяет эти ресурсы заранее предусмотренным способом. Хо рошим примером конвейерной организации является сборочный транспортер на производстве, на котором изделие последователь но проходит все стадии вплоть до готового продукта. Преиму щество этого способа состоит в том, что изделие на своем пути использует одни и те же ресурсы, и как только некоторый ресурс освобождается данным изделием, он сразу же может быть использован следующим изделием, не ожидая, пока предыдущее изделие достигнет конца сборочной линии. Если транспортер не сет аналогичные, но не тождественные изделия, то это последо вательный конвейер;

если же все изделия одинаковы, то это век торный конвейер.

Последовательные конвейеры. На рис. 4.9, а представлена схе ма устройства обработки команд, в котором имеются четыре сту пени: выборка команды из памяти, декодирование, выборка опе ранда, исполнение.

Рис. 4.9. Схема устройства обработки команд:

а — ступени конвейера;

б — временная диаграмма работы Ускорение обработки в данном устройстве измеряется отно шением времени необходимого для последовательного выпол нения L заданий (т.е. выполнения L циклов на одной обрабаты вающей ступени), ко времени выполнения той же обработки на конвейере. Обозначим через время обработки на г'-й ступе ни, а через — соответствующее время для самой медленной сту пени (рис. Тогда, если L заданий (команд) проходят через конвейер с п ступенями, эффективность конвейера определяется выражением Векторные конвейеры. В них создается множество функцио нальных элементов, каждый из которых выполняет определен ную операцию с парой операндов, принадлежащих двум разным векторам. Эти пары подаются на функциональное устройство, и функциональные преобразования со всеми элементами пар век торов проводятся одновременно. предварительной подготов ки преобразуемых векторов используются векторные регистры, на которых собираются подлежащие обработке векторы.

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

В этом случае на конвейер поступает множество одинаковых команд.

4.5.3. КЛАССИФИКАЦИЯ АРХИТЕКТУР ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ Многопроцессорные системы ориентированные на достижение сверхбольших скоростей работы, содержат десятки или сотни сравнительно простых процессоров с упрощенными блоками управления. Отказ от универсальности применения та ких вычислительных систем и специализация их на определенном круге задач, допускающих эффективное распараллеливание вы числений, позволяют строить их с регулярной структурой связей между процессорами.

Удачной признана классификация Флина, которая строится по признаку одинарности или множественности потоков команд и данных [21].

Структура (один поток команд — один поток данных), или (Single Instruction stream — Single Data stream), — од нопроцессорная ЭВМ (рис. 4.10).

Структура ОКМД (один поток команд, много потоков данных), или (Single Instruction stream, Multiple Data stream), — матричная многопроцессорная система. МПС содержит некото рое число одинаковых и сравнительно простых быстродейству ющих процессоров, соединенных друг с другом и с памятью дан ных таким образом, что образуется сетка (матрица), в узлах ко торой размещаются процессоры (рис. 4.11). Здесь возникает сложная задача распараллеливания алгоритмов решаемых задач для обеспечения загрузки процессоров. В ряде случаев эти вопро сы лучше решаются в конвейерной системе.

.

Рис. 4.10. Структура (SISD):

CPU— процессор • 4.11. Структура (SIMD) Структура МКОД (много потоков команд — один поток дан ных), или MISD (Multiple Instruction stream — Single Data stre am), — конвейерная МГТС (рис. 4.12). Система имеет регулярную структуру в виде цепочки последовательно соединенных процес соров, или специальных вычислительных блоков (СВБ), так что информация на выходе одного процессора является входной ин формацией для следующего в конвейерной цепочке.

Рис. 4.12. Структура МКОД (MISD) Процессоры (СВБ) образуют конвейер, на вход которого оди нарный поток данных доставляет операнды из памяти. Каждый процессор обрабатывает соответствующую часть задачи, пере давая результаты соответствующему процессору, который исполь зует их в качестве исходных данных. Таким образом, решение 4.13. Структура МКМД (MIMD) задач для некоторых исходных данных развертывается последо вательно в конвейерной цепочке. Это обеспечивает подведение к каждому процессору своего потока команд, т.е. имеется множе ственный поток команд.

Структура МКМД (много потоков команд — много потоков данных), или (Multiple Instruction stream — Multiple Data stream) — представлена на рис.

Существует несколько типов МКМД. К ним относятся: муль типроцессорные системы, системы с мультиобработкой, машинные системы, компьютерные сети.

4.5.4. ТИПЫ МУЛЬТИПРОЦЕССОРНЫХ СИСТЕМ Системы параллельной обработки данных. Любая вычисли тельная система (будь то суперЭВМ или персональный компью тер) достигает своей наивысшей производительности благодаря использованию высокоскоростных элементов обработки инфор мации и параллельному выполнению операций. Именно возмож ность параллельной работы различных устройств системы (ра боты с перекрытием) служит базой для ускорения основных опе раций обработки данных.

Можно выделить четыре типа архитектуры систем параллель ной обработки.

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

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

2. Машины типа SIMD. Эти машины состоят из большого числа идентичных процессорных элементов, имеющих собствен ную память;

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

Модель вычислений для машины SIMD очень похожа на модель вычислений для векторного процессора: одиночная операция вы полняется над большим блоком данных.

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

Модели вычислений на векторных и матричных ЭВМ настоль ко схожи, что эти ЭВМ часто обсуждаются как эквивалентные.

3. Машины типа MIMD. Термином мультипроцессор называ ют большинство машин типа MIMD, и он часто используется в качестве синонима для машин типа MIMD (подобно тому, как термин "матричный процессор" применяется к машинам типа SIMD). В мультипроцессорной системе каждый процессорный элемент выполняет свою программу достаточно независимо от других процессорных элементов. Процессорные элементы, конеч но, должны как-то связываться друг с другом, что делает необхо димым более подробную классификацию машин типа MIMD. В мультипроцессорах с общей памятью (сильносвязанных мульти процессорах) имеется память данных и команд, доступная всём процессорным элементам. С общей памятью процессорные эле менты связываются с помощью общей шины или сети обмена. В противоположность этому варианту в слабосвязанных многопро цессорных системах (машинах с локальной памятью) вся память делится между процессорными элементами, и каждый блок памя ти доступен только связанному с ним процессору. Сеть обмена связывает процессорные элементы друг с другом.

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

4. Многопроцессорные машины с Многие современные суперЭВМ представляют собой многопроцессорные системы, в которых в качестве процессоров используются век торные процессоры, или процессоры типа SIMD. Такие машины относятся к машинам класса MSIMD.

Многопроцессорные системы за годы развития вычислитель ной техники прошли ряд этапов. Исторически первым стало ос воение технологии SIMD. Однако в настоящее время наметился устойчивый интерес к архитектурам MIMD. Этот интерес глав ным образом определяется двумя факторами:

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

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

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

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

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

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

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

Многопроцессорные системы с общей памятью. К этой группе относятся машины с общей (разделяемой) основной памятью, объединяющие до нескольких десятков (обычно менее 32) про цессоров. Сравнительно небольшое количество процессоров в таких машинах позволяет иметь одну централизованную общую память и объединить процессоры и память с помощью одной шины. При наличии у процессоров кэш-памяти достаточного объема высокопроизводительная шина и общая память могут удовлетворить обращения к памяти, поступающие от несколь ких процессоров. Поскольку при этом имеется единственная па мять с одним и тем же временем доступа, эти машины иногда называются UMA (Uniform Memory Access). Такой способ орга низации со сравнительно небольшой разделяемой памятью в на стоящее время является наиболее популярным. Архитектура по добной системы представлена на рис. 4.14.

Требования, предъявляемые современными процессорами к быстродействию памяти, можно существенно снизить путем при менения больших многоуровневых кэш-модулей. При этом не сколько процессоров смогут разделять доступ к одной и той же памяти. Начиная с 1980 г. эта идея, подкрепленная широким рас пространением микропроцессоров, стимулировала многих раз работчиков на создание небольших мультипроцессоров, в кото рых несколько процессоров разделяют одну физическую память, соединенную с ними с помощью разделяемой шины. Из-за мало го размера процессоров и заметного сокращения требуемой по лосы пропускания шины, достигнутого за счет возможности реа лизации достаточно большой кэш-памяти, такие машины стали исключительно благодаря оптимальному соотно шению "стоимость / производительность". В первых разработ Рис. 4.14. Типовая архитектура мультипроцессорной системы с общей памятью ках подобного типа машин удавалось разместить весь процессор кэш-память на одной плате, которая затем вставлялась в зад нюю панель, и с помощью последней реализовывалась шинная архитектура. Современные конструкции позволяют разместить до четырех процессоров на одной плате (рис. 4.14).

В такой машине кэш-память может содержать как мые, так и частные данные. Частные данные — это данные, кото рые используются одним процессором, в то время как разделяе мые данные используются многими процессорами, по существу обеспечивая обмен между ними. Когда кэшируется элемент част ных данных, их значение переносится в кэш-память для сокраще ния среднего времени доступа, а также для уменьшения требуе мой полосы пропускания. Поскольку никакой другой процессор не использует частные данные, этот процесс идентичен процессу для однопроцессорной машины с кэш-памятью. Если кэшируют ся разделяемые данные, то разделяемое значение реплицируется (от лат. replicare — обращать назад, отражать) и может содер жаться не в одной кэш-памяти, а в нескольких. Кроме сокраще ния задержки доступа и уменьшения требуемой полосы пропус кания такая репликация данных способствует также общему со кращению количества обменов. Однако кэширование разделяемых данных создает новую проблему — когерентность (от лат.

cohaerentia — сцепление, связь) кэш-памяти.

Мультипроцессорная когерентность кэш-памяти возникает из-за того, что значение элемента данных в памяти, хранящееся в двух разных процессорах, доступно этим процессорам только через их индивидуальные кэш-модули.

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

протоколы на справочника (directory based). В этом слу чае информация о состоянии блока физической памяти содержится только в одном месте — справочнике (физически справочник мо жет быть распределен по узлам системы);

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

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

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

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

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

• Первое условие, очевидно, связано с определением когерент ного (согласованного) состояния памяти: если бы процессор все гда считывал только старое значение данных, мы сказали бы, что память некогерентна.

Необходимость строго последовательно выполнять операции записи также является очень важным условием. Представим себе, что строго последовательное выполнение операций записи не со блюдается. Тогда процессор Р1 может записать данные в ячейку, а затем в эту ячейку выполнит запись процессор Р2. Строго пос ледовательное выполнение операций записи гарантирует два важ ных следствия для этой последовательности операций записи. Во первых, оно гарантирует, что каждый процессор в машине в не который момент времени будет наблюдать запись, выполняемую процессором Р2. Если последовательность операций записи не соблюдается, то может возникнуть ситуация, когда какой-нибудь процессор будет наблюдать сначала операцию записи процессо ра Р2, а затем — записи процессора Р1 и будет хра нить это записанное процессором Р1 значение неограниченно Многопроцессорные системы с локальной памятью и машинные системы. Вторую группу машин составляют крупно масштабные системы с распределенной памятью. Для того чтобы поддерживать большое количество процессоров, приходится ос новную память распределять между ними, в противном случае полосы пропускания памяти может просто не хватить для удов летворения запросов, поступающих от очень большого числа процессоров. Естественно, при таком подходе также требуется реализовать связь процессоров между собой. На рис. 4.15 пока зана структура такой системы.

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

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

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

Существуют два различных способа построения крупномас штабных систем с распределенной памятью. Простейший способ заключается в том, чтобы исключить аппаратные механизмы, обеспечивающие когерентность кэш-памяти, и сосредоточить внимание на создании масштабируемой системы памяти. Разра ботано несколько машин такого типа. Наиболее известным при мером подобной системы является компьютер T3D компании Cray Research. В этих машинах память распределяется между узлами (процессорными элементами) и все узлы соединяются между со бой посредством того или иного типа сети. Доступ к памяти мо жет быть локальным или удаленным. Специальные контроллеры, размещаемые в узлах сети, могут на основе анализа адреса обра щения принять решение о том, находятся ли требуемые данные в локальной памяти данного узла или они размещаются в памяти удаленного узла. В последнем случае контроллеру удаленной па мяти посылается сообщение для обращения к требуемым данным.

Чтобы обойти проблемы когерентности, разделяемые (общие) данные не кэшируются. Конечно, с помощью программного обес печения можно реализовать некоторую схему кэширования раз деляемых данных путем их копирования из общего адресного пространства в локальную память конкретного узла. В этом слу чае когерентностью памяти также будет управлять программное обеспечение. Преимущество такого подхода состоит в том, что необходима минимальная поддержка со стороны аппаратуры, хотя наличие, например, таких возможностей, как блочное (груп повое) копирование данных, было бы весьма полезным. Недо статком такой организации является то, что механизмы программ ной поддержки когерентности подобного рода кэш-памяти ком пилятором весьма ограничены. Существующая в настоящее время методика в основном подходит для программ с хорошо структу рированным параллелизмом на уровне программного цикла.

Машины с архитектурой, подобной Cray T3D, называют про цессорами (машинами) с массовым параллелизмом (МРР — Massively Parallel Processor). К машинам с массовым параллелиз мом предъявляются взаимно исключающие требования. Чем боль ше объем устройства, тем большее число процессоров можно расположить в нем, тем длиннее каналы передачи управления и данных, а значит, меньше тактовая частота. Происшедшее возра стание нормы массивности для больших машин до 512 и даже 64000 байт процессоров обусловлено не увеличением размеров машины, а повышением степени интеграции схем, позволившей за последние годы резко поднять плотность размещения элемен тов в устройствах. Топология сети обмена между процессорами в такого рода системах может быть различной.

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

4.5.5. КОНЦЕПЦИЯ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ С УПРАВЛЕНИЕМ ПОТОКОМ ДАННЫХ Существуют трудности, связанные с автоматизацией парал лельного программирования, необходимой для широкого круга задач матричных ВС. В связи с этим актуальными являются ис следования новых путей построения высокопроизводительных вычислительных систем, к которым относятся вычислительные системы с управлением потоком данных, или потоковые ВС [13].

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

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

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

Потоковая программа размещается в массиве ячеек команд (рис. 4.16).

Команда наряду с кодом операции содержит поля, куда зано сятся готовые операнды, и поле, содержащее адреса команд, в которые должен быть направлен в качестве операнда результат Рис. 4.16. Схема работы процессора с управлением потоком данных операции. Кроме того, каждой команде поставлен в соответствие двухразрядный тег (располагаемый в управляющем устройстве), разряды которого устанавливаются в 1 при занесении в тело ко манды соответствующих операндов. В состоянии тега (оба операнда готовы) инициируется запрос к операционному ком мутатору (ОК) на передачу готовой команды в соответствующее коду операции операционное устройство (ОУ).

Результат выполнения команды над ее непосредственно адре суемыми операндами направляется через командный коммутатор (КК) согласно указанным в команде адресам в ячейки команд и помещается в поля операндов. Далее указанная процедура цик лически повторяется, причем управление этим процессом полно стью децентрализовано и не нуждается в счетчике команд.

4.6. УПРАВЛЕНИЕ РЕСУРСАМИ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ 4.6.1. ОДНОПРОЦЕССОРНЫЕ СИСТЕМЫ ОПЕРАТИВНОЙ ОБРАБОТКИ В системах обработки данных в качестве основного критерия эффективности используется среднее время обслуживания заявок.

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

Алгоритм RR. Простейшее правило планирования обес печивающее выполнение указанного требования, задается алго ритмом циклического обслуживания (рис. — алгоритмом RR (Round-Robin).

Рис. 4.17. Алгоритм Заявки на выполнение работ поступают с интенсивностью в очередь О, откуда они выбираются и исполняются процессо ром CPU. Для обслуживания отдельной заявки отводится посто янный квант q, достаточный для выполнения несколь ких тысяч операций. Если работа была выполнена за время q, она покидает систему. В противном случае она вновь поступает в конец очереди и ожидает предоставления ей очередного кванта процессорного времени.

Алгоритм FB. Для обеспечения еще более быстрой реакции системы на короткие работы в системах оперативной обработ ки используются алгоритмы многоуровневого циклического пла нирования. Одним из таких алгоритмов является алгоритм (Foreground-Background).

Заявки на выполнение работ поступают в очередь (рис.

Работы, стоящие в очереди получают квант процессорного Рис. 4.18. Алгоритм FB времени q. Если за это время работа была выполнена, то она по кидает систему. В противном случае заявка на работу переносит ся в очередь откуда она может быть занесена в очереди Очереди обслуживаются в следующем порядке. Если имеется хотя бы одна заявка в очереди то эта заявка непре менно обслуживается. Заявки из очереди СЬ обслуживаются при условии, что нет заявок в очереди О\. Аналогично заявки из оче реди обслуживаются только в том случае, если все очереди пусты. Заявка, достигшая последней очереди оста ется в ней до полного завершения работы.

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

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

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

Алгоритм планирования с учетом приоритетов очень эффек тивен для ЭВМ с ограниченной емкостью оперативной памяти, не позволяющей разместить в ней программы всех работ, вы полняемых системой. В таком случае в оперативной памяти раз мещается только небольшая часть программ, а остальные про граммы хранятся во внешней памяти — на магнитном диске.

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

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

Алгоритм Корбато. Приоритетность программ для систем со свопингом может назначаться в соответствии с алгоритмом Кор бато. Здесь априорно принимается следующее предположение:

программы с большей длиной более трудоемкие. Исходя из этого предположения приоритеты программам присваиваются на ос нове где [х] — целая часть X;

— длина программы в байтах;

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

Отношение / определяет число квантов времени, необ ходимых для загрузки программы в оперативную память и для вывода ее из оперативной 4.6.2. МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ ПРИ ОБРАБОТКЕ ПАКЕТОВ ЗАДАЧ С ПРЕРЫВАНИЯМИ Рассмотрим систему с п идентичными процессорами, с помо щью которой необходимо решить L независимых задач;

каждая задача решается одним процессором в течение времени ?,, =,..., L. Требуется найти алгоритм, который для каждого данного пакета (набора) задач строил бы расписание решения задач на процессорах системы, обеспечивающее минимально возможное время решения. При этом достигается максимально возможная производительность системы. в двухпроцессорной си стеме и при наборе задач с временем их 3;

3;

2;

2;

2 воз можны различные варианты назначения задач на решение. При ведем некоторые из них (рис. 4.19).

Варианты расписаний для двухпроцессорной системы:

— работает один работают два процессора;

в — используется алгоритм Очевидно, что наилучший в смысле минимизации общего вре мени решения задач вариант в, для которого время Т решения пакета задач совпадает с соответствующим оптимальным значе нием Т = = 0 и в данном случае равно величине = max {max Величина является нижней границей для оптимального зна чения Действительно, длина Т любого расписания не может быть меньше ни max — максимального из времен решения за дач пакета, ни величины определяющей длину расписа ния в том случае, когда до момента завершения решения после дней из задач пакета ни один процессор не простаивает, т.е. все процессоры имеют %-ную загруженность.

В общем случае даже при и = 2 задача поиска оптимального значения Т при условии решения задач является NP-трудной, т.е.

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

Рассмотрим предложенный Макнотоном в 1959 г. алгоритм построения оптимального по длине расписания с не более чем прерываниями.

Алгоритм Макнотона заключается в предварительном упо рядочении задач по убыванию времени решения и назначении задач последовательно по порядку номеров одну за другой на процессоры системы справа налево от уровня Примем: и = 2, L - 4, время решения задач: 5;

4;

3;

2. Тогда 0 = max {5, 1/2 • (5 + 4 + 3 + 2)} = 7;

а расписание, полученное в соответствии с алгоритмом Макнотона, имеет вид, показанный на рис. 4.20.

В данном случае число прерываний равно единице.

Покажем, что и-1 (максимальное число прерываний для рас писания, полученного в соответствии с алгоритмом Макнотона) является достижимой границей числа прерываний.

. 5 10 4.20. Оптимальное расписание Для доказательства этого построим такой пример пакета за дач, для которого алгоритм Макнотона дает расписание с чис лом прерываний Пусть: L = п + 1 и п, п + 1.

Тогда: 8 = max {п,\/п + = п + 1, а расписание, получа емое в соответствии с алгоритмом Макнотона, имеет вид, пока занный на рис. 4.21.

4.21. Расписание для «-процессорной системы по Макнотону Число прерываний в этом случае, как видно, равно и требовалось показать. Покажем теперь, что любое оптимальное расписание для этого пакета задач также имеет не менее п-\ пре рываний. Очевидно, что в любом оптимальном расписании ни один процессор не простаивает на интервале [0, п + ]. Предполо жим, что существует некоторое оптимальное расписание с чис лом прерываний, меньшим Тогда по крайней мере два про цессора (для определенности возьмем и обслуживают заяв ки без прерываний. Очевидно, эти процессоры обслуживают задачи и в интервале [0, п] без прерываний (если решение этих задач начинается позже момента времени t = 0, значит, до этого момента на этих процессорах решались некоторые другие задачи, решение которых прерывается в мо менты начала решения задач и Найдутся моменты време ни /', такие, что n

Так как мы пришли к противоречию, делаем вывод о том, что предположение о числе прерываний, меньшем п-\, в оптималь ном расписании ложно.

4.6.3. МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ ПРИ ОБРАБОТКЕ ПАКЕТОВ НЕЗАВИСИМЫХ ЗАДАЧ БЕЗ ПРЕРЫВАНИЙ Рассмотрим систему, содержащую п идентичных процессоров,, на которой необходимо решить без прерываний набор из L неза висимых задач с временами решения i = 1,..., L. Получение рас писания с минимальным временем решения и в этом случае явля ется NP-трудной задачей. Один из наиболее эффективных и не трудоемких алгоритмов организации таких LPT (Longest-Processing Task first — самая длинная задача реша ется первой), являющийся частным случаем алгоритма критичес кого пути для независимых задач. Суть этого алгоритма заклю чается в назначении задач в порядке убывания времени решения на освобождающиеся процессоры. Сотрудником фирмы BellLaboratories, США, Грэхемом в 1967 г. был получен следую щий результат: при использовании алгоритма LPT для распреде ления любого пакета П = {Z,} независимых задач без прерыва ний в системе с п идентичными процессорами справедливо:

где Т — время решения пакета П при распределении задач алгоритмом — длина оптимального расписания.

Очевидно, что Приведенная оценка является наилучшей.

4.6.4. ПРОИЗВОДИТЕЛЬНОСТЬ МУЛЬТИПРОЦЕССОРНЫХ СИСТЕМ С ОБЩЕЙ И ИНДИВИДУАЛЬНОЙ ПАМЯТЬЮ Для увеличения производительности в состав вычислительной системы может вводиться несколько процессоров, способных функционировать параллельно во времени и независимо друг от друга и вместе с тем взаимодействовать между собой и с другим оборудованием системы. Вычислительные системы, содержащие несколько процессоров, связанных между собой и с общим для них комплектом внешних устройств, называются мультипроцес сорными системами (МПС).

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

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

Наиболее существен в структурной организации МПС спо соб связи между процессорами и памятью системы. В этом аспек те МПС разделяются на МПС с памятью общей (полнодоступ ной) и индивидуальной (раздельной).

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

Структура МПС с общей памятью наиболее универсальна:

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

цательное свойство МПС с общей памятью — большие зат раты оборудования в коммутаторах (эти затраты пропорцио нальны произведению числа устройств, подключенных к памяти, и числа модулей памяти).

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

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

5- МПС С ОБЩЕЙ ПАМЯТЬЮ Рассмотрим мультипроцессорную систему с общей памятью, в которой размешаются все программы и данные, используемые в процессе функционирования системы. Такая организация типич на для управляющих систем, жесткие ограничения на время реак ции которых исключают возможность размещения информации во внешней памяти. Будем считать, что в МПС используются оди наковые процессоры, т.е. МПС - однородная система. Наличие общей оперативной памяти, в которой размещается вся необхо димая информация, и однородность системы позволяют выпол нять любую программу на любом т.е. любой процес сор может принять на обслуживание любую заявку. Режим рабо ты МПС, при котором каждый из процессоров может обслуживать любую заявку, называется режимом разделения нагрузки. При этом режиме каждый из N процессоров принимает на обслуживание часть заявок, т.е. N-ю часть общей нагрузки.

В модели МПС с обшей памятью процесс обслуживания зая вок в режиме разделения нагрузки можно рассматривать как про цесс функционирования одной многоканальной системы массо вого обслуживания (рис. 4.22) с интенсивностью входящего потока заданий X, общей очередью О, заявки из которой выби раются в порядке поступления их в систему, и средней длитель ностью обслуживания заявки каждым из процессоров равной 6. Заявка, поступающая в систему, содержащую N про цессоров, при наличии хотя бы одного свободного процессора немедленно принимается последним на обслуживание. Если все процессоры заняты обслуживанием ранее поступивших заявок, поступающая заявка размещается в очереди.

Определим характеристики МПС на основе модели, показан ной на рис. 4.22.

Пусть в МПС поступает М потоков с интенсивностями Обслуживание заявок сводится к выполнению соответ ствующих программ, средние трудоемкости которых равны операций в расчете на один прогон программы. При мем, что обслуживание заявок выполняется на основе дисципли ны FIFO. В таком случае можно считать, что система обслужива ет однородный поток заявок, поступающих с интенсивностью 4.22. Модель МГТС с общей памятью Для обслуживания любой заявки из суммарного потока тре буется в среднем процессорных операции.

Примем, что заявка, поступившая на обслуживание, захваты вает процессор до полного завершения обслуживания. В таком случае средняя длительность обслуживания заявки процессором с быстродействием В равна 9 = 0 а интенсивность обслужива ния заявок одним процессором =1/9.

Параметры системы Л, N и 9 = 0 должны отвечать условию существования стационарного режима, при котором в очереди пребывает конечное число заявок и, следовательно, конечны вре мена ожидания и пребывания заявок. На каждый из процессоров поступает N-я доля заявок, и поэтому отдельный процессор об служивает поток с интенсивностью. Загрузка процессора где = — суммарная интенсивность обслуживания заявок TV-про цессорной системой.

Стационарный режим существует, если р < 1. Следовательно, параметры МПС должны отвечать соотношению Х0 < Характеристики системы получить в явной аналити ческой форме, если принять предположение о том, что входящий поток заявок — пуассоновский и длительность обслуживания распределена по экспоненциальному закону со средним 9.

В теории массового обслуживания доказывается, что при ука занных предположениях вероятность пребывания в системе N — 0,1,2,... заявок, обслуживаемых процессорами и стоящих в очереди (4.1) где (4.2) есть вероятность того, что в системе нет ни одной заявки, т.е. все процессоров простаивают;

R — суммарная загрузка TV-каналь ной системы:

Суммарная загрузка R в отношении TV-канальной системы массового обслуживания определяет среднее число каналов, ко торые заняты обслуживанием заявок. Для стационарного режи ма R

Характер изменения вероятностей при изменении суммар ной загрузки системы представлен рис. 4.23.

Рис. 4.23. Кривые вероятностей пребывания п заявок в четырех системе с различной суммарной загрузкой R Распределение числа заявок в системе носит унимодальный характер, причем с увеличением загрузки максимальное значение сдвигается в сторону больших N. Распределение (4.4) содер жит всю информацию, необходимую для определения характери стик Средняя длина очереди заявок, ожидающих обслужи вания в системе, находится исходя из форму лы (4.4) как математическое ожидание случайной величины i = n-N > 0, равной числу заявок в очереди:

(4.6) где определяется из формулы (4.5).

Среднее число заявок, пребывающих в системе:

(4.7) где / — среднее число заявок, находящихся в очереди, определяемое вы ражением (4.6);

R — суммарная загрузка МПС, определяемая выражением (4.3).

Для систем без потерь заявок среднее время ожидания W и среднее время пребывания и заявок в системе равны соответствен но W - /Л и - К. Подставляя в эти соотношения выражения (4.6) и (4.7), получим:

• или с использованием формулы (4.3) Одна из важных характеристик системы — вероятность нену левого ожидания заявок > 0), т.е. вероятность того, что в момент поступления очередной заявки все N процессоров заняты обслуживанием. Эта вероятность равна:

Из сравнения формул (4.8) и (4.9) вытекает следующее выра жение для среднего времени ожидания заявок:

В свою очередь, вероятность нулевого ожидания заявок, т.е.

вероятность того, что в момент поступления заявки хотя бы один процессор свободен, равна: W - 0) ч 1 - > 0).

С В МПС с индивидуальной памятью множество программ об служивания и связанных с ними данных Р = разделяет ся на подмножества = = размещаемые в памяти соответствующих процессоров В результате этого каждый из процессоров ориентируется на об служивание заявок определенных типов, а именно тех, программы обслуживания которых размещены в памяти процессора. Режим работы МПС, при котором каждый из процессоров обслуживает заявки определенных типов и не может обслуживать заявки дру гих типов, называется режимом разделения Рассмотрим модель МПС с индивидуальной памятью. В наи более простом случае процессоры обмениваются информацией с общей памятью. Количество информации, передаваемой при об менах, может быть столь незначительно, что допустимо пренеб речь влиянием процессов обмена на процесс обслуживания зая вок. В таком случае можно считать, что процессоры функциони руют независимо и работу jV-процессорной системы в режиме разделения функций можно рассматривать как процесс функцио нирования N одноканальных систем массового обслуживания (рис. 4.24). Каждая из систем массового обслуживания состоит из потока заявок, поступающих с интенсивностью Я/, очереди О/ и процессора Очередь Поток Поток заданий заданий ' Рис. 4.24. Модель МПС с индивидуальной памятью Для этой модели характеристики обслуживания заявок каж дого типа могут быть вычислены в предположении, что входя щие потоки — пуассоновские при произвольном распределении длительностей обслуживания и различных дисциплинах обслужи вания заявок. В частности, при экспоненциальном распределе нии длительности обслуживания и дисциплине FIFO среднее вре мя ожидания заявок в системе с номером i = и загрузкой = / < 1 равно:

(4.10) среднее время пребывания заявок среднее число заявок в очереди = = /(1 - и среднее чис ло заявок в системе = = / (1 pi).

как единый объект обслуживает суммарный поток зая вок, поступающий на вход системы с интенсивностью Заявка из суммарного потока с вероятностью / Л будет ожи дать обслуживания в среднем единиц времени. С учетом это го среднее время ожидания заявки из суммарного потока опреде ляется выражением:

Аналогично определяется среднее время пребывания заявки в системе:

(4.13) В случае, когда каждый из процессоров обслуживает точно часть суммарного потока заявок и средняя длительность обслуживания одинакова для всех процессоров и равна 9. В та • ком случае Х\ = = Л / п и =...= = р. При равномер ном распределении нагрузки из выражений (4.12) и (4.10), а так же (4.13) и следует, что средние времена ожидания и пре бывания заявок равны соответственно:

4.7. ОТОБРАЖЕНИЕ ДАННЫХ Процедура отображения данных — одна из важнейших в ин формационной технологии. Без возможности восприятия резуль тата обработки информации человеческими органами чувств этот результат оставался бы вещью в себе (ведь мы не ощущаем ма шинное представление информации).

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

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

В современных информационных технологиях при воспроизве дении информации предпочтение отдано не текстовым режимам Рис. 4.25. Схема взаимодействия процедур при отображении данных (исторически они появились раньше), а графическим режимам ра боты дисплеев как наиболее универсальным. Графический режим позволяет выводить на экран дисплея любую графику (ведь буквы и цифры тоже графические объекты), причем с возможностью изме нения масштаба, проекции, цвета и т.д. В последнее время развитие информационных технологий относительно ввода и вывода инфор мации идет по пути создания объектно-ориентированных систем, в которых настройка систем, программирование функциональных задач, ввод и вывод информации осуществляются с помощью гра фических объектов, отображаемых на экране дисплея (примером могут служить широко распространенный графический интерфейс Windows, объектно-ориентированные языки Delphi, Java и т.д.).

Отображение информации на экране дисплея (или на бумаге принтера, графопостроителя) в виде графических объектов (гра фиков, геометрических фигур, изображений и т. д.) носит назва ние компьютерной начало которой было положено в 1951 г. инженером Массачусетского технологическо го института Дж. У. Форрестом.

На логическом уровне процедура отображения использует законы аналитической геометрии, разработанной французским философом и математиком Р. Декартом в XVII в., согласно кото рой положение любой точки на плоскости (а экран дисплея —• плоскость) задается парой чисел — координатами. Пользуясь де картовой системой любое плоское изображение можно свести к списку координат составляющих точек. И наоборот, заданные оси координат, масштаб и список координат легко пре вратить в изображение. Геометрические понятия, формулы и факты, относящиеся прежде всего к плоскому и трехмерному изоб ражениям, играют в задачах компьютерной графики особую роль.

Основой математических моделей компьютерной графики явля ются аффинные преобразования и сплайн-функции [38].

4.7.1. МОДЕЛИ ОТОБРАЖЕНИЯ ДАННЫХ В компьютерной графике все, что относится к двумерному случаю, принято обозначать символом 2D (2-dimension). Допус тим, на введена прямолинейная координатная систе ма. Тогда каждой точке М ставится в соответствие ная пара чисел (х, ее координат (рис. 4.26).

Рис. 4.26. Точка в прямоугольной системе координат Вводя на плоскости еще одну прямолинейную систему коор динат, мы ставим в соответствие той же точке М другую пару чисел — (х*, у*).

Переход от одной прямолинейной координатной системы на плоскости к другой описывается следующими соотношениями:

х* = ах + + X;

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

* Аффинная геометрия — раздел геометрии, в котором изучаются свой ства фигур на плоскости (или в пространстве), сохраняющиеся при любых аффинных преобразованиях плоскости (или пространства), т.е. инвариант ные относительно таких преобразований.

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

Рассмотрим простейшие аффинные преобразования.

А. Поворот (вокруг начальной точки на угол (рис. 4.27) описывается формулами: х* = у* = + Б. Растяжение (сжатие) вдоль координатных осей можно за дать так:

- ах, у* а > 0, 8 > 0.

Рис. 4.28. Растяжение вдоль осей Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что а >1 (а < 1). На рис. 4.28 а = > 1.

В. Отражение (относительно оси абсцисс) 4.29) задается при помощи формул: х *= х;

у * = - у.

Г. На рис. 4.30 вектор переноса имеет координаты X и Перенос обеспечивают соотношения: х* = х + X;

у* = у + Рис. 4.29. Отражение относительно оси абсцисс Выбор этих четырех частных случаев определяется двумя об стоятельствами.

Рис. 4.30. Перенос точки Каждое из приведенных выше преобразований имеет прос той и наглядный геометрический смысл (геометрическим смыс лом наделены и постоянные числа, входящие в приведенные формулы).

Как доказывается в курсе аналитической геометрии, любое преобразование вида (*) всегда можно представить как последо вательное использование (суперпозицию) простейших преобра зований вида А, Б, В и Г (или части этих преобразований).

Таким образом, справедливо следующее важное свойство аф финных преобразований плоскости: любое отображение вида (*) можно описать при помощи отображений, задаваемых формула ми для случаев А, Б, В и Г.

Для эффективного использования этих формул в задачах ком пьютерной графики более удобной является их матричная запись.

Матрицы, соответствующие случаям А, Б и В, строятся легко и имеют следующий вид:

Однако для решения задач компьютерной графики весьма желательно охватить матричным подходом все четыре простей ших преобразования (в том числе и перенос), а значит, и общее аффинное преобразование. Этого можно достичь, например, так:

перейти к описанию произвольной точки на плоскости, не упо рядоченной парой чисел, как это было сделано выше, а упорядо ченной тройкой чисел.

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

При решении задач компьютерной графики однородные ко ординаты обычно вводятся так: произвольной точке М (х, у) на плоскости ставится в соответствие точка у, 1) в простран стве 4.31).

Рис. 4.31. Преобразование координат точки на плоскости в однородные координаты Заметим, что производная точка на прямой, соединяющей начало координат, точку О(0, 0, 0) с точкой М*(х, у, 1), может быть задана тройкой чисел вида hy, Будем считать, что Вектор с координатами hx, hy, h является направляющим век тором прямой, соединяющей точки О(0, 0, 0) и М*(х, 1). Эта прямая пересекает плоскость z = 1 в точке (х, у, 1), которая одно значно определяет точку (х, у) координатной плоскости ху. Тем самым между произвольной точкой с координатами (х, мно жеством троек чисел вида (hx, hy, h 0, устанавливается (вза имно однозначное) соответствие, позволяющее считать числа hx, hy, h новыми координатами этой точки.

В проективной геометрии для однородных координат приня то следующее обозначение: х : у : 1 или более общо: х\ :

(напомним, что здесь непременно требуется, чтобы числа хг, одновременно в нуль не обращались).

Применение однородных координат оказывается удобным уже при решении простейших задач.

Рассмотрим, например, вопросы, связанные с изменением мас штаба. Если устройство отображения работает только с целыми числами (или если необходимо работать только с целыми числа ми), то для произвольного значения h (например, h — 1) точку с однородными координатами (0,5 0,1 2,5) представить нельзя.

Однако при разумном выборе h можно добиться того, чтобы координаты этой точки были целыми числами. В частности, при h = 10 для рассматриваемого примера имеем: (5 1 25).

Рассмотрим другой случай. Чтобы результаты преобразова ния не приводили к арифметическому переполнению, для точки с координатами (80 000 40 000 можно взять, например, h = 0,001. В результате получим: (80 40 1).

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

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

В самом деле, считая h — \, сравним две записи: помеченную символом * и матричную:

Нетрудно заметить, что после перемножения выражений, сто ящих в правой части последнего соотношения, мы получим обе формулы (*) и тождество 1 = 1.

Тем самым сравниваемые записи можно считать равносиль ными.

Элементы произвольной матрицы аффинного преобразова ния не несут в себе явно выраженного геометрического смысла.

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

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

Выпишем соответствующие матрицы третьего порядка.

А. Матрица вращения (rotation):

Б. Матрица растяжения (сжатия) (dilatation):

В. Матрица отражения (reflection):

Г. Матрица переноса (translation):

Эти матрицы трактуются как составляющие общей матрицы, преобразующей исходную матрицу А графического объекта в матрицу А* преобразованного объекта.

Общая матрица преобразования при известных у, X, а, и получается перемножением матриц простейших преобразований V = Основные свойства матричных преобразований при перехо де к трехмерному (3D) преобразованию сохраняются, однако более сложной становится операция вращения, требующая зада ния оси вращения. Напомним, что однородное представление трехмерной точки имеет вид: hy, hz, Наличие точных математических моделей графических объек тов позволяет относительно легко отображать их на экране мо нитора, а вычисленные матрицы преобразований дают возмож ность манипуляции этими объектами на экране как в статике, так и в динамике.

Но далеко не всегда удается получить точное функциональ ное описание объекта. Чаще всего оказывается возможным вы числить только ряд точек графической фигуры. И тогда возника ет задача плавного соединения (а не прямыми) этих точек для восстановления на экране изображения воспроизводимой фигу ры. Эта задача в компьютерной графике решается с помощью геометрических сплайнов, или сплайн-функций [38].

Сам термин "сплайн" происходит от английского spline.

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

Рассмотрим сплайны, в построении которых используются кубические (для одномерных сплайнов — сплайновых кривых) и бикубические (для двумерных сплайнов сплайновых поверх ностей) многочлены. В компьютерной графике подобные сплай ны применяются наиболее часто.

Достаточно типичной является следующая задача: по задан ному массиву точек на плоскости (2D) или в пространстве (3D) построить кривую, проходящую либо через все эти точки (задача интерполяции), либо вблизи от этих точек (задача сглаживания).

Совершенно естественно возникают вопросы: в каком классе кривых искать решение поставленной задачи? как искать?

А. Случай одной переменной. Обратимся для определенности к задаче интерполяции и начнем рассмотрение с обсуждения пра вил выбора класса кривых. Ясно, что допустимый класс кривых должен быть таким, чтобы решение задачи было единственным (это обстоятельство сильно помогает в преодолении многих труд ностей поиска). Кроме того, желательно, чтобы построенная кри вая изменялась плавно.

Пусть на плоскости задан набор точек i = та ких, что < х\ <... < (рис. 4.32).

Рис. 4.32. Набор точек на плоскости Благодаря тому, что точки заданного набора занумерованы в порядке возрастания их абсцисс, можно искать кривую в классе графиков функции, а основные моменты сглаживания этого дис кретного набора описывать, ограничившись многочленами.

Как известно из курса математического анализа, существует интерполяционный многочлен Лагранжа:

график которого проходит через все заданные точки i =.,rn.

Это обстоятельство и простота описания (заметим, что мно гочлен однозначно определяется набором своих коэффициентов;

в данном случае их число совпадает с количеством точек в задан ном наборе) являются несомненными достоинствами построен ного интерполяционного многочлена (разумеется, есть и другие).

Однако полезно остановиться и на некоторых недостатках предложенного подхода.

1. Степень многочлена Лагранжа на единицу меньше числа за данных точек. Поэтому чем больше точек задано, тем выше степень такого многочлена. И хотя график интерполяционного члена Лаг ранжа всегда будет проходить через все точки массива, уклоне ние (от ожидаемого) может оказаться довольно значительным.

2. Изменение одной точки (ситуация, довольно часто встре чающаяся на практике) требует полного пересчета коэффициен тов интерполяционного многочлена и к тому же может существен но повлиять на вид задаваемой им кривой.

Приближенную кривую можно построить и совсем просто:

если последовательно соединить точки заданного набора пря молинейными отрезками, то в результате получится ломаная (рис. 4.33).

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

Рассмотрев эти две крайние ситуации, попробуем найти класс функций, которые сохранили бы перечисленные выше достоин ства обоих подходов и были бы в известной степени свободны от их недостатков.

Для этого будем использовать многочлены (как и в случае 1) и строить их последовательно, звено за звеном (как и в случае 2).

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

Для того чтобы понять, какое отношение имеют сплайн-фун кции к чертежным сплайнам, возьмем гибкую стальную линейку, поставим ее на ребро и, закрепив один из концов в заданной точ ке, поместим ее между опорами, которые располагаются в плос кости ОХУ в точках у,), i = 0,1,..., т, где < (рис. 4.34).

0 X 4.34. Приближение сплайном Интересно отметить, что функция у - описывающая профиль линейки, обладает следующими свойствами:

• с довольно большой точностью часть графика этой функ ции, заключенную между любыми двумя соседними опорами, можно считать многочленом степени;

• на всем промежутке [хо, функция у = S(x) дважды непре рывно дифференцируемая.

Построенная функция S(x) относится к так называемым ин терполяционным кубическим сплайнам.

Перейдем, однако, к точным формулировкам.

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

1) график функции проходит через каждую точку массива, = 2) на каждом из отрезков i - функция явля ется многочленом третьей степени:

3) на всем отрезке задания [хо, функция имеет непре рывную вторую производную.

На каждом из отрезков сплайн S(x) определяется че тырьмя коэффициентами, поэтому для полного построения на всем отрезке задания необходимо найти 4т чисел.

Условие 3 будет выполнено, если потребовать непрерывнос ти сплайнов во всех внутренних узлах i = (это дает т~\ условий на коэффициенты), а также его первой усло вий) и второй т-\ условий) производных в этих узлах. Вме сте с условием 1 получаем равенство Недостающие два условия для полного определения коэффици ентов можно получить, задав, например, значения первых про изводных на концах отрезка (граничные условия):

Существуют граничные условия и других типов.

Б. Случай двух переменных. Более сложная задача построе ния по заданному набору точек в трехмерном пространстве ин терполяционной функции двух переменных решается похожим образом. Определим прежде всего интерполяционный бикубичес кий сплайн.

Пусть на плоскости задан набор из + + 1) точек (рис. 4.35) 4.35. Набор (т + 1)(и + 1) точек на плоскости Добавим к каждой паре yj) третью координату гф.

Тем самым получаем массив гф, i = 0,1,..., = 0,1,..., п.

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

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

1) график функции проходит через каждую точку заданного массива: = i = 0,1,..., т;

j = 0,1,..., и;

2) на каждом частичном прямоугольнике x [у,-, i = 0,1,..., = 0,1,..., функция представляет собой много член третьей степени по каждой из переменных:

3) на всем прямоугольнике задания х функция S(x, у) имеет по каждой переменной непрерывную вторую про изводную.

Для того чтобы построить по заданному массиву гф} интерполяционный бикубический сплайн, достаточно определить все коэффициентов. Как и в одномерном случае, отыскание коэффициентов сплайн-функции сводится к построению решения системы линейных уравнений, связывающих искомые коэффици енты Последняя возникает из условий 1 и 3, после добавления к ним недостающих соотношений путем задания значений произ вольной искомой функции граничных узлах прямоугольника [хо, х Уп] (или иных соображений).

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

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

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

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

4.7.2. РЕАЛИЗАЦИЯ ПРОЦЕДУР ОТОБРАЖЕНИЯ На физическом уровне отображение производится в основ ном с помощью компьютерных дисплеев. При необходимости получения твердой копии используются принтеры и плоттеры.

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

Для получения графического изображения на экране дисплея используются два основных метода: векторный (функциональный) и растровый. Векторный метод предполагает вывод графического изображения с помощью электронного луча, последовательно "вы черчивающего" на экране дисплея линии и кривые в соответствии с математической моделью (функцией) этого объекта. "Вычерчи вание" — это последовательное засвечивание пикселей экрана. Так как каждый пиксель имеет свою координату (пару чисел), то этот метод преобразует последовательность чисел (вектор) в светящие ся точки. Отсюда название метода. Для того чтобы изображение на экране было неподвижным для глаза человека, луч пробегает по определенным пикселям многократно (не менее 16 раз в секунду).

Векторный метод — наиболее быстродействующий и применяется при выводе относительно несложных графических объектов (гра фики, чертежи, номограммы и т.п.) при научных и инженерных исследованиях. Еще одним очень важным достоинством метода являются минимальные для графических систем требования к ре сурсам ЭВМ (памяти и производительности).

Растровый (экранный) метод привнесен в компьютерную гра фику из телевидения. При использовании этого метода электрон ный луч сканирует экран монитора (дисплея) слева направо, пос ле каждого прохода опускаясь на одну строку пикселей, сотни раз в секунду (обычно 625 раз). После прохождения нижней строки луч возвращается к первой строке (обратный ход). Чтобы при обратном ходе на экране не прочерчивалась диагональная линия, луч на это время гасится. Такое сканирование экрана проводится 25 раз в секунду. Полностью просканированный экран называет ся кадром. Если интенсивность электронного луча постоянна, то на экране создается равномерный фон из одинаково светящихся пикселей. При выводе на экран графического объекта в соответ ствующих его модели точках интенсивность луча изменится, в результате чего "прорисовывается" сам графический объект.

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

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

Процедуры отображения реализуются с помощью специаль ных программ, оперирующих громадными объемами данных и требующих поэтому значительной емкости оперативной памяти ЭВМ и высокой производительности процессора. Не случайно современный графический пользовательский интерфейс операци онной системы ПК удовлетворительно работает при емкости оперативной памяти в 256 Мбайт и тактовой частоте процессо ра не менее 1 ГГц. У графических станций требования к ресурсам ЭВМ существенно выше. Поэтому, помимо дополнительного про цессора дисплея, в ЭВМ графических станций используются и нетрадиционные методы обработки данных (конвейеризация и параллелизация) и, следовательно, нетрадиционные архитекту ры вычислительных систем.

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

Вопросы для самопроверки Каково назначение процесса обработки данных?

2. Нарисуйте схему и объясните состав и назначение процедур про цесса обработки данных.

3. Поясните работу ЭВМ в основных режимах обработки данных:

пакетном, разделения времени, реального времени.

4. Как организуется обслуживание задач в вычислительной сис теме?

5. Опишите модель обслуживания задач в многомашинной вычис лительной системе с очередью.

6. Каковы показатели эффективности вычислительной системы, опи санной в п. 5?

7. Как организуется планирование обработки вычислительных за дач в вычислительной системе?

8. Поясните модель планирования вычислительного процесса при минимизации суммарного времени обработки.

9. Какие программы операционной системы ЭВМ реализуют проце дуры организации вычислительного процесса?

В чем состоит суть процедуры преобразования данных и как она реализуется в ЭВМ?

Опишите модели преобразования данных.

12. Нарисуйте и объясните примеры графов алгоритмов и вычисли тельного графа программной системы.

В чем состоит принцип параллельной обработки данных?

Что такое конвейерная обработка данных?

15. Поясните работу ассоциативной памяти.

16. Объясните принцип управления потоком данных.

Как назначаются задачи на решение в алгоритме SPT?

Что такое алгоритм RR(Round-Robin)?

В чем заключается алгоритм Макнотона?

20. В чем состоит главный недостаток прерывания решения задачи?

21. В чем заключается основное достоинство обработки пакетов не зависимых задач без прерывания?

22. За счет чего увеличивается производительность мультипроцессор ных систем по сравнению с однопроцессорными системами?

23. Как строятся мультипроцессорные системы с общей памятью?

24. Как строятся мультипроцессорные системы с индивидуальной памятью?

25. Какие недостатки имеет структура МПС с общей памятью перед МПС с индивидуальной памятью?

26. В каких случаях используют режим с разделением нагрузки?

27. В каких случаях используют режим с разделением функций?

28. Для чего служит процедура отображения данных и какие опера ции ее реализуют?

29. Что служит теоретической базой для создания моделей компью терной графики?

30. Какие вы знаете преобразования на плоскости?

Что такое однородные координаты точки и при решении каких задач они применяются?

32. Определите понятие геометрического сплайна и приведите фор мальное описание сплайн-функций.

33. Опишите два основных метода получения графического изобра жения на экране монитора.

34. На каких аппаратно-программных средствах реализуется инфор мационный процесс обработки данных?

Глава ПРОЦЕСС НАКОПЛЕНИЯ ДАННЫХ Назначение информационного процесса накопления данных состоит в создании, хранении и поддержании в актуальном со стоянии информационного фонда, необходимого для выполне ния функциональных задач системы управления, для которой построен контур информационной технологии. Кроме того, хра нимые данные по запросу пользователя или программы должны быть быстро (особенно для систем реального времени) и в доста точном объеме извлечены из области хранения и переведены в оперативные запоминающие устройства ЭВМ для последующего либо преобразования по заданным алгоритмам, либо отображе ния, либо передачи.

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

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

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

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

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

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

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

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

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

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

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

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

5.1. ВЫБОР ХРАНИМЫХ ДАННЫХ Информационный фонд системы управления должен обеспе чивать получение выходных наборов данных из входных с помо щью алгоритмов обработки и корректировки данных. Это воз можно, если создана инфологическая модель предметной облас ти, которая вместе с наборами хранимых данных и алгоритмами их обработки позволяет построить каноническую модель (схему) информационной базы, а затем перейти к логической схеме и да лее — к физическому уровню реализации.

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

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

Для анализа информационных потоков в управляемой систе ме исходными являются данные о парных взаимосвязях, или от ношениях (т.е. есть отношение или нет отношения), между набо рами информационных элементов. Под информационными эле ментами понимают различные типы входных, промежуточных и выходных данных, которые составляют наборы входных N\, про межуточных и выходных элементов данных.

Формализованно связи (парные отношения) между наборами информационных элементов отображаются в виде матрицы смеж ности В, под которой понимают квадратную бинарную матрицу, проиндексированную по обеим осям множеством информацион ных элементов D = {d\, где.? — число этих элементов:

......

...

Ч\2...

«22 •••......

9п...

если между и d.• отношение существует;

О, в противном случае;

I / = 1,5;

В позиции j) матрицы смежности записывают 1 (т.е. = 1), если между информационными элементами и существует от ношение такое, что для получения значения информаци онного элемента необходимо непосредственное обращение к элементу dj. Наличие такого отношения между и обозначают в виде чему соответствует = а отсутствие — в виде, т.е. qy = 0. Для простоты принимают, что каждый ин формационный элемент недостижим из самого себя:

Матрице В ставится в соответствие информационный граф G - (D, Множеством вершин графа G - является мно жество D информационных элементов, а каждая дуга со условию dj, т.е. записи 1 в позиции (if) матрицы В.

Например, задано множество D из четырех наборов инфор мационных элементов, т.е. D = {d\, Пусть матрица смежности В этих элементов имеет вид:

Из этой матрицы видно, что для вычисления элемента не обходимо обращение к элементам d\ и а для получения эле мента — к элементу Чтобы получить элемент d\, надо обра титься к Элемент не зависит от других элементов матрицы.

Информационный граф в этом простейшем случае будет соот ветствовать рис. 5.1.

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

Матрицей достижимости М называют квадратную бинар ную матрицу, проиндексированную по обеим осям множеством информационных элементов D аналогично матрице смежности В. Запись 1 в каждой позиции (у) матрицы достижимости соот ветствует наличию для упорядоченной пары информационных элементов (dj, dj) смыслового отношения достижимости R. Эле мент достижим из элемента dj, т.е. выполняется условие dj dj, если на графе G - существует направленный путь от вер шины к вершине (в процессе получения значения элемента используется значение элемента dj). Если dj, то отношение достижимости между элементами dj и отсутствует и в позиции (у) матрицы М записывают 0. Отношение достижимости транзи тивно, т.е. если dj и dj, то dj i, j, к = S.

Записи 1 в столбце матрицы М соответствуют информа ционным элементам которые необходимы для получения зна чений элементов и образуют множество элементов предшество вания для этого элемента. Записи 1 в строке матрицы М соответствуют всем элементам достижимым из рассматривае мого элемента dj и образующим множество достижимости этого элемента. Информационные элементы, строки которых в матрице М не содержат единиц (нулевые строки), являются вы ходными информационными элементами, а информационные эле менты, соответствующие нулевым столбцам матрицы М, явля ются входными. Это условие может служить проверкой правиль ности заполнения матриц если наборы входных и выходных информационных элементов известны. Информационные элемен ты, не имеющие нулевой строки или столбца, являются промежу точными.

Для полученного графа (см. рис. 5.1) матрица М будет выгля деть следующим образом:

Отличие столбцов матриц М и В объясняется тем, что в мат рице М учитывается смысловое отношение R между информаци онными элементами, а в матрице В — только непосредственно Например, элемент в матрице М достижим из элементов d\, и т.е. и в то время как в матрице В для этих элементов достижим только из т.е. только Из анализа матрицы М следует, что элемент является вход ным, выходным, остальные — промежуточные. На основе матрицы М строится информационный граф Gs (A R) системы, структурированный по входным (N\), промежуточным и вы ходным наборам информационных элементов и полученный из анализа множества элементов предшествования и дости жимости R (dj) (рис. 5.2).

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

Информационный граф системы структурируется по уровням N2, N3) с использованием итерационной процедуры, что позволяет определить информационные входы и выходы сис темы, выделить основные этапы обработки данных, их последова 6— 5.2. Информационный граф (D,R) тельность и циклы обработки на каждом уровне. Кроме того, уда ляются избыточные (лишние) дуги и элементы. Граф, получаемый после структуризации по наборам информационных элементов и удаления избыточных элементов и связей, определяет каноничес кую структуру информационной базы. Таким образом, канони ческая структура задает логически неизбыточную информацион ную базу. Выделение наборов элементов данных по уровням по зволяет объединить множество значений конечных элементов в логические записи и тем самым упорядочить их в памяти ЭВМ.

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

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

5.2. БАЗЫ ДАННЫХ База данных (БД) определяется как совокупность взаимосвя занных данных, характеризующихся возможностью использова ния для большого количества приложений, возможностью быст рого получения и модификации необходимой информации, ми нимальной избыточностью информации, независимостью от прикладных общим управляемым способом поиска [10].

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

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

• "один к одному", когда 'одна запись может быть связана только с одной записью;

• "один ко многим", когда одна запись взаимосвязана со мно гими другими;

• "многие ко многим", когда одна и та же запись может вхо дить в отношения со многими другими записями в различных вариантах.

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

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

Иерархическая модель представляется в виде древовидного графа, в котором объекты выделяются по уровням соподчинен ности (иерархии) объектов (рис. 5.3).

Рис. 5.3. Иерархическая модель БД На верхнем, первом уровне находится информация об объекте "поставщики" (П), на втором — о конкретных поставщиках и Пз, на нижнем, третьем, уровне — о товарах, которые могут поставлять конкретные поставщики. В иерархической модели дол жно соблюдаться правило: каждый порожденный узел не может иметь больше одного порождающего узла (только одна входящая стрелка);

в структуре может быть только один узел (без входящей стрелки) — корень. Узлы, не имеющие входных стре лок, носят название листьев. Узел интегрируется как запись. Для поиска необходимой записи нужно двигаться от корня к листьям, т.е. сверху вниз, что значительно упрощает доступ.

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

В иерархической модели используется вид связи между элемен тами данных "один ко многим". Если применяется взаимосвязь вида "многие ко многим", то приходят к сетевой модели данных.

Сетевая модель базы данных для поставленной задачи пред ставлена в виде диаграммы связей (рис. 5.4). На диаграмме указа ны независимые (основные) типы данных и Пз, т.е. ин формация о поставщиках, и зависимые — информация о товарах T, и В сетевой модели допустимы любые виды связей меж ду записями и отсутствует ограничение на число обратных свя зей. Но должно соблюдаться одно правило: связь включает ос новную и зависимую записи.

Рис. 5.4. Сетевая модель БД Достоинство сетевой модели БД — большая информаци онная гибкость по сравнению с иерархической моделью. Однако сохраняется общий для обеих моделей недостаток — доста точно жесткая структура, что препятствует развитию информа ционной базы системы управления. При необходимости частой реорганизации информационной базы (например, при исполь зовании настраиваемых базовых информационных технологий) применяют наиболее совершенную модель БД — реляционную, в которой отсутствуют различия между объектами и взаимосвязями.

В реляционной модели базы данных взаимосвязи между элемен тами данных представляются в виде двумерных таблиц, называе мых отношениями. Отношения обладают следующими свойства ми: каждый элемент таблицы представляет собой один элемент данных (повторяющиеся группы отсутствуют);

элементы столб ца имеют одинаковую природу, и столбцам однозначно присво ены имена;

в таблице нет двух одинаковых строк;

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

Преимуществами реляционной модели БД являются про стота логической модели (таблицы привычны для представления информации);

гибкость системы защиты (для каждого отноше ния может быть задана правомерность доступа);

независимость данных;

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

Для приведенной выше задачи о поставщиках и товарах логи ческая структура реляционной БД будет содержать три таблицы (отношения): R\, состоящие соответственно из записей о поставщиках, о товарах и о поставках товаров поставщиками (рис. 5.5).

5.5. Реляционная модель БД Учитывая широкое применение реляционных моделей баз дан ных в информационных технологиях (особенно экономических), дадим более подробное описание этой структуры.

5.2.1. РЕЛЯЦИОННАЯ БАЗ ДАННЫХ Реляционная база данных — это такая база данных, которая воспринимается ее пользователем как совокупность таблиц [8].

Если детализировать записи приведенного на рис. 5.5 примера, то получим структуру БД, изображенную на рис. 5.6. Эта база данных состоит из трех таблиц: R\, Таблица R\ представляет поставщиков. Каждый поставщик име ет номер, уникальный для этого поставщика, фамилию (естествен но, неуникальную), значение рейтинга и местонахождение (город).

Таблица описывает виды товаров. Каждый товар имеет уникальный номер, название, вес и цвет.

В таблице отражена поставка товаров. Она служит для того, чтобы связать между собой две другие таблицы. Например, первая строка этой таблицы связывает определенного поставщи ка из таблицы R\ (поставщика с определенным товаром из таблицы (с товаром Иными словами, она представляет поставку товаров вида поставщиком по фамилии и объем поставки, равный 300 шт. Таким образом, для каждой поставки имеются номер поставщика, номер товара и количество товара.

Из приведенных на рис. 5.6 таблиц следует:

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

• полное информационное содержание базы данных представ ляется в виде явных значений данных. Такой метод представле ния — единственный, имеющийся в распоряжении реляционной базы данных. В частности, не существует связей и указателей, со единяющих одну таблицу с другой. Для этой цели служат тоже таблицы. Так, таблица отражает связь таблиц R\ и Как указывалось ранее, математическим термином для обо значения таблицы отношение (relation), и реляционные системы берут свое начало в математической теории отношений.

Основы реляционной модели данных впервые были сформулиро ваны и опубликованы в 1970 г. доктором Э.Ф. Коддом.

(поставщики) Рис. 5.6. Реляционная БД поставщиков и товаров женные им идеи оказали большое влияние на технологию баз дан ных во всех ее аспектах, а также на другие области информаци онных технологий, например на искусственный интеллект и об работку текстов на естественных языках.

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

Формальный Неформальный эквивалент реляционный термин Отношение Таблица Кортеж Запись, строка Атрибут Поле, столбец Реляционная модель БД имеет дело с тремя аспектами дан ных: со структурой данных, с целостностью данных и с манипу лированием данными. Под структурой понимается логическая организация данных в БД, под целостностью данных — безоши бочность и точность информации, хранящейся в БД, под манипу лированием данными — действия, совершаемые над данными в БД.

Эти три аспекта отражают и основные процедуры процесса на копления данных (хранение, актуализацию и извлечение).

РЕЛЯЦИОННАЯ СТРУКТУРА ДАННЫХ Наименьшей единицей данных в реляционной модели являет ся отдельное значение данных. Такие значения рассматриваются как атомарные, т.е. неразложимые, когда речь идет о данной мо дели. Множество подобных значений одного и того же типа на зывают доменом. Например, домен номеров поставщиков — это множество допустимых номеров поставщиков, домен объемов поставки — множество целых, больших нуля и меньших, напри мер 10 000. Таким образом, домены представляют собой пулы зна чений, из которых берутся фактические значения, появляющиеся в атрибутах (столбцах). Смысл доменов заключается в следую щем. Если значения двух атрибутов берутся из одного домена, то имеют смысл их сравнение, а следовательно, и соединение, и объе динение, и т.д. Если же значения атрибутов берутся из разных доменов, то всякие их сравнения лишены смысла. Отметим, что домены по своей природе являются в большей степени понятия ми концептуальными и могут и храниться, и не храниться в базе данных как фактическое множество значений. Но они должны специфицироваться как часть определения базы данных, а опре деление каждого атрибута должно включать ссылку на соответ ствующий домен во избежание каких-либо двусмысленностей.

Теперь определим главный элемент реляционной структуры — отношение.

Отношение на доменах состоит из заголовка и тела. Заголовок содержит такое фиксированное множество ат рибутов существует взаимно однозначное соот ветствие между этими атрибутами и определяющими их доме нами = 1, п). Тело — это меняющееся во времени множество кортежей, кортеж, в свою очередь, состоит из мно жества пар атрибутов-значений = по одной такой паре для каждого атрибута в заголовке. Для любой заданной пары : является значением из един ственного домена которым связан атрибут Таким обра зом, все отношения (см. рис. 5.6) соответствуют приведенному определению отношения.

Строго говоря, когда мы изображаем отношение в виде таб лицы, мы просто используем удобный способ представления от ношения на бумаге. Таблица и отношение в действительности не одно и то же. Дело в том, что при изображении таблицы мы явно или неявно упорядочиваем расположение столбцов (атрибутов) и строк (кортежей), хотя отношение — это математическое мно жество, а множество в математике не обладает каким-либо упо рядочением.

Значение п — число атрибутов в отношении — называется степенью отношения. Отношение степени один называется унар ным, степени два — степени три — тернарным, степе ни п — В приведенной на рис. 5.6 базе данных степень отношений R\ равна четырем, а отношения — пяти. Чис ло кортежей в отношении называется кардинальным числом этого отношения. Кардинальные числа отношений R\, и равны соответственно 3, 3 и 7. Кардинальное число отношения изменя ется во времени (кортеж может быть добавлен или удален) в от личие от его степени.

ЦЕЛОСТНОСТЬ РЕЛЯЦИОННЫХ ДАННЫХ Важным следствием определений, сделанных выше, является то, что каждое отношение имеет первичный ключ, идентифициру ющий это отношение. Поскольку отношение - это множество, а множества, по определению, не содержат совпадающих элемен тов, никакие два кортежа отношения не могут в произвольный заданный момент времени быть дубликатами друг друга. Пусть R — отношение с атрибутами Говорят, что множе ство атрибутов К - отношения R является возмож ным R тогда и только тогда, когда удовлетворяются два независимых от времени условия: уникальность и минимальность.

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

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

Помимо первичных и альтернативных ключей, идентифициру ющих данное отношение, есть еще внешний ключ. В общем случае внешний ключ — это атрибут или комбинация атрибутов одного отношения R", значение которого обязательно должно совпадать со значением первичного ключа некоторого другого отношения R', причем внешний и первичный ключи должны быть определены на одних и тех же доменах. Внешние ключи в неявном виде связы вают отношения. Примером внешнего ключа является атрибут "Номер поставщика" в отношении рис. 5.6), поскольку этот атрибут может быть первичным ключом отношения Целостность реляционной модели данных определяется дву мя общими правилами.

1. Целостность по сущностям. Не допускается, чтобы какой либо атрибут, участвующий в первичном ключе базового отно шения, принимал неопределенные значения. Базовым отношени ем называют независимое именованное отношение (для БД по ставщиков и товаров — это отношения и. Мотивировка этого правила определяется тем, что базовые отношения соот ветствуют сущностям в реальном мире, а следовательно, отличи мы друг от друга, т.е. имеют уникальную идентификацию. В ре альной же модели функцию уникальной идентификации выпол няют первичные ключи, и, таким образом, ситуация, первичный ключ принимает неопределенное является противоречивой и говорит о том, что некоторая не об ладает индивидуальностью, а значит, не существует. Отсюда и название — целостность по сущностям.

2. Целостность по ссылкам. Если базовое отношение R" вклю чает некоторый внешний ключ FK, соответствующий некоторо му первичному ключу РК какого-либо базового отношения R', то каждое значение FK в R" должно быть либо равным значению РК в некотором кортеже R", либо полностью неопределенным.

Неопределенность внешнего ключа может возникнуть в ситуа ции, когда, например, имеется вакансия на должность в некото рый отдел. Для такой должности атрибут "Фамилия служащего", являющийся внешним ключом, имеет неопределенное значение в кортеже, представляющем эту штатную должность отдела.

МАНИПУЛИРОВАНИЕ РЕЛЯЦИОННЫМИ ДАННЫМИ Виды действий (манипуляций) над данными в реляционной модели представляют собой множество операций, получивших в совокупности название реляционной алгебры.

Каждая операция реляционной алгебры использует одно или два отношения в качестве операндов и создает в результате некоторое новое отношение. Э.Ф. Коддом были определены восемь таких опе раций, объединенных в две группы по четыре операции в каждой.

Первая группа — традиционные теоретико-множествен ные операции (рис. 5.7).

5.7. Диаграммы традиционных теоретико-множественных операций:

а — объединение;

б - пересечение;

в — разность;

г — декартово произведение В каждой из этих операций используются два операнда (от ношения). Для всех операций, кроме декартова произведения, эти два операнда должны быть совместимы по объединению, т.е. они должны быть одной степени и их i-e атрибуты (i = l,n) должны быть связаны с одним и тем же доменом.

Операция Объединением двух отношений А и В называется множество всех кортежей принадлежащих либо отношению А, либо В, либо им обоим. Символически эта опера ция показана на рис. 5.7, а. Математически операция объедине ния записывается так:

= {t:te А или В}, где — символ объединения;

— знак принадлежности определенному отношению (множеству).

Pages:     | 1 || 3 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.