Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
моделир. учеб пособие.DOC
Скачиваний:
63
Добавлен:
02.12.2018
Размер:
2.46 Mб
Скачать

2. Имитационное моделирование вычислительных систем

2.1. Разработка имитационной модели

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

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

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

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

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

2.1.1. Упрощение модели и выбор уровней детализации

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

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

Выбор уровня моделирования зависит от объекта и цели моделирования.

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

В соответствии с конкретизацией понятия заявки выбирается уровень детализации данных: бит, байт, слово и т.д.

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

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

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

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

2.1.2. Преобразование алгоритмов

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

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

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

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

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

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

Так как вероятность перехода от блока 4 к блокам 12-15 мала, можно пренебречь этими блоками, включая и блок 4. В блоке вызова подпрограммы 5 учитывается трудоемкость выполнения подпрограммы, и проводится замена его блоком процессорной обработки, если нет ввода-вывода. Если трудоемкость выполнения блока 7 значительно меньше трудоемкости выполнения других блоков, то блоки 6 и 7 можно исключить с учетом небольшой вероятности выполнения блока 7.

В противном случае блоки 5-8 можно заменить одним блоком с известной трудоемкостью. С помощью блока 10 организован цикл из 19 повторений (0.95:0.05), его можно исключить, увеличив в 19 раз трудоемкость полученного ранее интегрального блока и блока 9. Затем можно слить интегральный блок и блок 3. Если можно пренебречь трудоемкостями выполнения начального и конечного блоков (1 и 11), то получится простой алгоритм: ввод исходных данных(блок 2), обработка и вывод результатов (модифицированный блок 9). Такой алгоритм вполне пригоден для представления ВС в виде сети массового обслуживания.

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

2.1.3. Построение модели рабочей нагрузки. Подбор параметров модели.

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

S={S1,....,SM),

где М - число потоков, заявок.

Каждый i-ый поток характеризуется приоритетом К, правилами и параметрами для определения времен поступления заявок Тз, последовательностью В и величиной С использования ресурсов:

Si=(K,Tз,B,C), i=

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

K=( KВв, КО, КR, КВ).

Для определения момента поступления заявок в систему в модели потока указывают тип потока и соответствующие параметры: для детерминированного – период Tз или интенсивность , для регулярного – расписание, для статистического – функцию распределения интервалов времени между заявками. Если поток нестационарный, функция распределения задается в виде случайного процесса:

Тз=F(з,t).

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

B[Pk,l],

где k - номер текущего (использованного) ресурса, l - номер очередного ресурса на маршруте обслуживания.

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

C={Cj,i};Cj,i=(Aj,Vi,Si),

где Cj,i - параметры использования j-го ресурса для i-го потока. Aj - алгоритм определения величины использования; Vi={Vi1,...., Viq} - параметры i-го потока для определения трудоемкости обслуживания заявок; например, количество передаваемых или обрабатываемых данных, или число операций; Si= {Si1,...., Sis} - параметры i-го потока для определения степени использования (целиком или частично) для разделенных ресурсов и накопителей.

Параметры Vi и Si задаются часто как случайные величины или функции:

Vi=Fv(v,t); Si=Fs(s,t).

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

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

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

Например, если известны производительность процессора Рk и число операций для обслуживания заявки Nik, то

Tik= Nik/Pk.

Eсли известно количество операций разного типа для обслуживания заявки Nikg, то

,

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

Параметры Pk и Pkg - паспортные характеристики процессора, а Nik и Nikg - параметры потоков заявок.

Для задач статистического и экономического характера количественными параметрами являются: Vik- количество данных, обработанных k-ым процессором по i-ой заявке; Qk - время обслуживания k-ым процессором единицы данных; Tik1- составляющая времени обслуживания к-ым процессором i-ой заявки, независимая от количества обрабатываемых данных. Тогда

Tik= Vik*Qk+Tik1,

где, Qk – параметр процессора. Vk и Tkl – параметры потока.

Для терминалов и накопителей время передачи данных определяется количеством передаваемых данных Vik и скоростью обмена Sk:

Tcik= Vik/Sk

Если требуется учитывать время установки в требуемый режим, то следует задавать и Tsik - время установки к-го устройства по i-ой заявке:

Tik=Tcik+Tsik.

К количественным параметрам накопителей относится также емкость.

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

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