WWW.DISSERS.RU

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

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

Pages:     | 1 || 3 | 4 |   ...   | 6 |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Определите термины информационный процесс, информационная процедура, информационная операция.

3. Чем отличаются процессы преобразования информации и процес сы преобразования данных?

4. В чем состоят процессы получения, подготовки и ввода информа ции?

5. В чем смысл процесса обработки данных и его процедур?

6. Каковы функции процесса и процедур обмена данными?

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

8. Опишите назначение и суть процесса и процедур представления знаний.

9. Что такое логический уровень информационной технологии, для чего необходимо его рассмотрение?

10. Нарисуйте схему состава моделей базовой информационной тех нологии и объясните назначение и связи каждой модели.

11. Каким образом информационная технология отображается на физическом уровне?

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

13. Какова последовательность преобразования информации в дан ные?

14. Какие методы контроля применяются в процессе преобразования информации в данные?

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

4.1. ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА Процесс обработки может быть разбит на ряд связанных меж ду собой процедур (рис. 4.1) — организацию вычислительного процесса (ОВП), преобразование данных и отображение данных.

Содержание процедур процесса обработки данных представ ляет его концептуальный уровень;

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

средства аппаратной реализации процедур — физический уровень процесса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример.

Рассмотрим модель обслуживания вычислительных заданий в сис теме (см. рис. 4.2), введя следующие предположения:

• в системе протекают марковские случайные процессы;

• потоки событий (появление заданий и окончание их обработки) являются простейшими;

• число заданий в очереди не ограничено, но конечно.

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

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

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

Обозначим состояния рассматриваемой вычислительной системы:

So — в системе нет заданий;

S\ — в системе одно задание, и оно обрабатывается на ЭВМ 1;

5г — в системе два задания, и они обрабатываются на ЭВМ 1 и ЭВМ 2;

•> Sn — в системе п заданий, и они обрабатываются на ЭВМ 1, ЭВМ 2,..., ЭВМ N;

Sn + i — в системе (л + 1) заданий, п заданий обрабатываются ЭВМ, а одно стоит в очереди;

Sn + 2 — в системе (и + 2) заданий, два задания стоят в очереди;

Sn + т — в системе (п + т) заданий, т заданий стоят в очереди.

Учитывая, что увеличение числа заявок (заданий) в системе (т.е.

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

Рис. 4.3. Граф состояний многоканальной системы обслуживания с неограниченной очередью Здесь окружности — состояния, дуги со стрелками — направления переходов в следующие состояния. Дугами помечены интенсивности потоков событий, которые заставляют систему менять состояния. Пе реходы слева направо увеличивают номер состояния (т. е. число зая вок в системе), справа налево — наоборот. Как уже указывалось, уве личение числа заявок в системе происходит под воздействием входно го потока заявок с постоянной интенсивностью X. Уменьшение числа заявок в системе (уменьшение номера состояния) происходит под воз действием потока обслуживания, интенсивность которого определяет ся средним временем обслуживания задания одной ЭВМ и числом ЭВМ, участвующих в обработке заданий при данном состоянии системы. Если одна ЭВМ обеспечивает интенсивность потока обслуживания и. (на пример, в среднем 30 заданий в час), то одновременно работающие две ЭВМ обеспечат интенсивность обслуживания 2|i. три ЭВМ — 3\х, п ЭВМ — п\1. Такое увеличение интенсивности обслуживания будет про исходить вплоть до состояния Sn, когда п заданий параллельно нахо дятся на обработке на п ЭВМ. Появление в этот момент заявки перево дит систему в состояние Sn + \, при котором одна заявка стоит в очере ди. Появление еще одной — в состояние Sn + 2 и т.д. Интенсивность же потока обслуживания при этом будет оставаться неизменной и равной и(Х, так как все ЭВМ вычислительной системы уже задействованы.

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

где к — число возможных состояний системы;

i — номер состояния.

Для того чтобы определить значение fi(t), приведенной формулы недостаточно. Кроме нее составляется еще система дифференциаль ных уравнений Колмогорова, решение которой и дает искомые значе ния Pj(t). Чаще всего реальные вычислительные системы быстро дос тигают установившегося режима, и тогда вероятности состояний пере стают зависеть от времени и практически показывают, какую долю достаточно длинного промежутка времени система будет находиться в том или ином состоянии. Например, если система имеет три возмож = ных состояния: Р\ = 0,2, Pi = 0,6, Р3 0,1, то это означает, что в состо янии S] система в среднем находится 20% времени, в S2 ----- 60%, а в S3 —10% времени. Такие не зависимые от времени вероятности назы вают финальными.

Финальные вероятности системы вычислить уже проще, так как уравнения Колмогорова при этом превращаются в алгебраические.

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

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

— вероятность состояния So, при котором в системе заявок нет;

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

it где Pj — вероятность состояния S{, где Р„ — вероятность того, что все ЭВМ заняты;

TaePn+j— вероятность того, что все ЭВМ системы заняты обработкой заданий и/ заявок стоят в очереди.

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

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

Основными показателями эффективности рассматриваемой систе мы являются: среднее число занятых каналов (т.е. ЭВМ) — к, среднее число заданий в очереди — L 0 4 и в системе — LCHCT, среднее время ив пребывания задания в системе — ^сист очереди — WO4:

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

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

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

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

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

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

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

Пример.

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

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

где %ij — затраты у'-го ресурса при выполнении г'-й процедуры, i—1,..., т;

j = \,...,n.

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

ty — затраты у-го ресурса на выполнение г'-й задачи (/ = 1,..., m;

j = 1,..., п);

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

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

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

• начавшееся выполнение задачи не должно прерываться до пол ного его завершения.

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

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

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

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

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

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

1. В матрице Т„ определяется tmm - min{?n, t\i,..., tm2\.

2. Из задач Зь..., 3m выбираются задачи, для которых ресурсоем кость хотя бы по одному устройству была равна tmm. т.е. в данном случае выбирают задачи 3/, у которых хотя бы одна из двух ty= / m j n.

(Напомним, что / — это номер задачи,у — номер устройства, / = l,...,m, j = i;

2.) 3. Задачи группируют по минимальному времени их исполнения 'min на первом и втором устройствах, т.е. 3, (tmm, to) и 3,- (1ц, ?min) 4. В начало последовательности обрабатываемых задач ставят 3, (rmin, to), в конец — 3,- (tn, tmin) 5. Задачи, вставленные в последовательность обрабатываемых задач, исключаются из матрицы Т„.

6. Для новой матрицы повторяются пункты 1—3.

7. Задачи 3,- (/min, to) и 3, (ta, tm\n), полученные из новой матрицы, ставятся в середину составленной ранее последовательности обраба тываемых задач и т. д.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1ц - 0 -- противном случае;

/ — 1,...,т;

j = 1,..., п.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Rif]Wj=0;

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

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

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

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

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

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

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

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

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

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

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

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

Структура ОКМД (один поток команд, много потоков данных), или SIMD (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) задач для некоторых исходных данных развертывается последо вательно в конвейерной цепочке. Это обеспечивает подведение к каждому процессору своего потока команд, т.е. имеется множе ственный поток команд.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• архитектура MIMD обеспечивает большую гибкость — при наличии адекватной поддержки со стороны аппаратных средств и программного обеспечения 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. Типовая архитектура мультипроцессорной системы с распределенной памятью ров, которые удается поддерживать на одной разделяемой шине и общей памяти.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3;

2;

2;

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

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

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

в — используется алгоритм Макнотона Очевидно, что наилучший в смысле минимизации общего вре мени решения задач вариант в, для которого время Т решения пакета задач совпадает с соответствующим оптимальным значе нием Т = То = 0 и в данном случае равно величине 8 = max {max tu (1/«) I U}.

Величина G является нижней границей для оптимального зна чения То. Действительно, длина Т любого расписания не может быть меньше ни max /, — максимального из времен решения за дач пакета, ни величины (1/и Хгг), определяющей длину расписа ния в том случае, когда до момента завершения решения после дней из задач пакета ни один процессор не простаивает, т.е. все процессоры имеют 100 %-ную загруженность.

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

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

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

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

Алгоритм Макнотона заключается в предварительном упо рядочении задач по убыванию времени решения и назначении задач последовательно по порядку номеров одну за другой на процессоры системы справа налево от уровня 0.

Примем: и = 2, L - 4, время решения задач: 5;

4;

3;

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

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

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

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

.. 5 T Рис. 4.20. Оптимальное расписание Для доказательства этого построим такой пример пакета за дач, для которого алгоритм Макнотона дает расписание с чис лом прерываний и-1.

Пусть: L = п + 1 и Ц- п, 1 = 1, п + 1.

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

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

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

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

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

7о — длина оптимального расписания.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Стационарный режим существует, если р < 1. Следовательно, параметры МПС должны отвечать соотношению Х0 I (NB) < 1.

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

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

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 - 1 /Л и и - ml К. Подставляя в эти соотношения выражения (4.6) и (4.7), получим:

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

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

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

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

МПС С ИНДИВИДУАЛЬНОЙ ПАМЯТЬЮ В МПС с индивидуальной памятью множество программ об служивания и связанных с ними данных Р = {Р\,...,Рм} разделяет ся на подмножества Q,,..., QN, Q, = {Ра,---, Ло} P(i = I,---, N), размещаемые в памяти соответствующих процессоров Прь...,Прлг.

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

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

Очередь d ч ГГГ г Поток заданий, Поток заданий v l l • * • ' • ' • ' » ~ <~ J n P w Поток заданий " ' Рис. 4.24. Модель МПС с индивидуальной памятью Для этой модели характеристики обслуживания заявок каж дого типа могут быть вычислены в предположении, что входя щие потоки — пуассоновские при произвольном распределении длительностей обслуживания и различных дисциплинах обслужи вания заявок. В частности, при экспоненциальном распределе нии длительности обслуживания и дисциплине FIFO среднее вре мя ожидания заявок в системе с номером i = \,...,N и загрузкой р,- = X- / |i, < 1 равно:

, (4.10) среднее время пребывания заявок среднее число заявок в очереди /, = W;

А- = р? /(1 - р,-) и среднее чис, ло заявок в системе m,- = ufa = р,- / (1 - pi).

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

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

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

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

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

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

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

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

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

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

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

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

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

х* = ах + $у + X;

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

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

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

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

А. Поворот (вокруг начальной точки на угол ф) (рис. 4.27) описывается формулами: х* = xcoscp - vsincp, у* = xsincp + ycoscp.

Б. Растяжение (сжатие) вдоль координатных осей можно за дать так: х* - ах, у* = 6у, а > 0, 8 > 0.

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

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

у * = - у.

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

у* = у + \i.

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

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

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

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

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

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

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

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

ОДНОРОДНЫЕ КООРДИНАТЫ ТОЧКИ Пусть М — произвольная точка на плоскости с координата ми х и у, вычисленными относительно заданной прямолинейной координатной системы. Однородными координатами этой точ ки называется любая тройка одновременно не равных нулю чи сел X], Х2 хз, связанных с заданными числами х и у следующими соотношениями:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Общая матрица преобразования при известных у, X, а, Р и ц получается перемножением матриц простейших преобразований V = \RW\\M\\T\.

Основные свойства матричных преобразований при перехо де к трехмерному (3D) преобразованию сохраняются, однако более сложной становится операция вращения, требующая зада ния оси вращения. Напомним, что однородное представление трехмерной точки имеет вид: (hx, hy, hz, h).

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

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

СПЛАЙН-ФУНКЦИИ Сам термин "сплайн" происходит от английского spline.

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

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

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

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

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

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

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

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

сот(х) график которого проходит через все заданные точки (хг-, yi), i = 0,1,...,rn.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2) на каждом из отрезков [XJ, x,+i], i - 0,l,...,m-l, функция явля ется многочленом третьей степени:

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

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

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

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

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

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

Тем самым получаем массив (х/, yj, гф, i = 0,1,..., m;

j = 0,1,..., п.

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

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

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

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

2) на каждом частичном прямоугольнике [xf, XJ+\] x [у,-, yj+Ц, i = 0,1,..., m-\;

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

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

Для того чтобы построить по заданному массиву {(х,-, yj, гф} интерполяционный бикубический сплайн, достаточно определить все \6тп коэффициентов. Как и в одномерном случае, отыскание коэффициентов сплайн-функции сводится к построению решения системы линейных уравнений, связывающих искомые коэффици енты afk.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pages:     | 1 || 3 | 4 |   ...   | 6 |



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

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