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

реклама
Министерство Общего и Профессионального Образования РФ
Ульяновский Государственный Технический Университет
Кафедра Вычислительная Техника
Дисциплина Моделирование
Моделирование элементов ВС
Выполнили:
Новичков К.В.
Сидоров А.С.
Руководитель:
Куцоконь Н. С.
Ульяновск 2002
1
Моделирование
Модель – это физическая или абстрактная система, адекватно представляющая
собой объект исследования.
Физические модели образуются из совокупности материальных объектов. Для
их построения используются различные свойства, причем природа применяемых в
модели материальных элементов не обязательно та же, что и в исследуемом объекте.
Примером физической модели является макет.
Абстрактная модель – это описание объекта исследования на некотором
языке. Абстрактность модели проявляется в том, что её компонентами являются
понятия, а не физические элементы,(например: словесные описания, чертежи,
схемы, графики, таблицы, программы, алгоритмы, математические описания).
Необходимое условие для перехода от исследования объекта к исследованию
модели и дальнейшего перенесения его результатов на объект исследования –
требование адекватности модели и объекта. Адекватность предполагает
воспроизведение моделью с необходимой полнотой всех свойств объекта,
существенных для целей данного исследования.
Понятие адекватности - весьма широкое и основывается на строгих в
математическом отношении понятиях изоморфизма и гомоморфизма.
Две системы, в данном случае объект исследования и его модель, называются
изоморфными, если между ними существует такое взаимно однозначное
соответствие, что соответствующие объекты различных систем обладают
соответствующими свойствами и находятся в соответствующих отношениях друг с
другом. В общем случае обеспечение изоморфизма модели и объекта исследования
может быть не только трудновыполнимым, но и излишним, поскольку сложность
модели при этом может оказаться настолько значительной, что никакого упрощения
исследовательской задачи не произойдет. Гомоморфизм, так же как и изоморфизм,
предполагает сохранение в модели всех определенных на объекте исследования
свойств и отношений. Однако требование взаимно – однозначного соответствия
заменяется требованием однозначного соответствия модели объекту, тогда как
обратное соответствие – соответствие модели объекту – не однозначно.
Концептуальная модель – это абстрактная модель, выявляющая причинно –
следственные связи, присущие исследуемому объекту и существенные в рамках
определенного исследования. Основное назначение концептуальной модели –
выявление набора причинно – следственных связей, учет которых необходим для
получения требуемых результатов. Один и тот же объект может представляться
различными концептуальными моделями, которые строятся в зависимости от цели
исследования. Так, одна концептуальная модель может отображать временные
аспекты функционирования системы, а другая – влияние отказов на
работоспособность системы и так далее.
Математическая модель – это абстрактная модель, представленная на языке
математических отношений. Математическая модель имеет форму функциональных
зависимостей
между
параметрами,
учитываемыми
соответствующей
концептуальной моделью. Эти зависимости конкретизируют причинно –
следственные связи, выявленные в концептуальной модели и характеризуют их
количественно.
2
Имитационная модель – это описание объекта на некотором языке.
Составными частями имитационной модели являются описания: элементов,
образующих систему, структуры системы, то есть совокупности связей между
элементами, свойств среды в которой функционирует исследуемая система. Эта
информация в целом имеет логико-математический характер и представляется в
форме совокупности алгоритмов, описывающих функционирование исследуемой
системы. Программа, построенная на основе этих алгоритмов, позволяет получить
информацию о поведении исследуемой системы. Таким образом, в качестве
имитационной модели выступает программа для ЭВМ, а имитационное
моделирование сводится к проведению экспериментов с моделью путем прогонов
программы на некотором множестве данных.
Имитационные модели, используемые при исследовании ВС, обычно имеют
вероятностную природу. Моделирование вероятностных процессов основывается на
методе статистических испытаний (методе Монте - Карло). По этой причине
имитационное моделирование часто называют статистическим моделированием,
хотя в большинстве имитационных моделей метод статистических испытаний
сочетается с вычислениями по детерминированным зависимостям.
При имитационном моделировании описания объектов исследования имеют
алгоритмический характер, а сами модели – суть программы для ЭВМ. Поэтому
такое моделирование иногда называют алгоритмическим.
Главная особенность данного подхода к моделированию заключается в том,
что используемые для построения модели алгоритмические языки – гораздо более
гибкое и доступное средство описания сложных систем, нежели язык
математических функциональных соотношений. Благодаря этому в имитационных
моделях сложных систем находят отражение многие детали их структуры и
функции, которые вынужденно опускаются или непроизвольно утрачиваются в
математически строгих моделях. Свойственная имитационным моделям
реалистичность основывается на использовании для их построения всех имеющихся
представлений об объекте исследования как теоретического, так и эвристического
характера. Позитивное свойство статистического моделирования – универсальность,
гарантирующая принципиальную возможность анализа систем любой степени
сложности с любой степенью детализации изучаемых процессов. Негативное
свойство статистического моделирования – трудоёмкость процесса моделирования,
то есть необходимость выполнения очень большого количества операций над
числами, и частный характер результатов, не раскрывающий зависимости, а лишь
определяющий её в отдельных априорно назначенных точках.
Моделирование – это процесс представления объекта исследований
адекватной ему моделью и проведения экспериментов с моделью с целью получения
информации об объекте исследования. При моделировании модель выступает и как
средство, и как объект исследований. Моделирование является косвенным методом
выявления свойств объекта в том смысле, что исследование производится не над
самим объектом, а над представляющей объект системой – моделью. Отличительная
особенность моделирования как метода исследования заключается в возможности
исследования таких объектов, прямой эксперимент с которыми трудновыполним,
экономически невыгоден или вообще невозможен.
Так как моделирующий процесс носит абстрактный характер, нельзя описать
какие-либо формальные правила или алгоритмы построения моделей. Для одного
3
конкретного объекта можно построить несколько разных моделей, каждая из
которых будет "правильной" в том смысле, что её внешнее поведение совпадает с
поведением моделируемого объекта. В исследовании объекта или системы нас
прежде всего интересует, каким образом она выполняет свои функции, то есть
выполняет некоторую работу. Поэтому построение модели включает две задачи:
описание условий работы системы и описание операций, выполняемых системой в
заданных условиях. Первая задача неизмеримо сложнее, чем вторая.
Способ описания работы в равной степени определяется как уровнем и
областью исследования системы, так и внутренним устройством системы.
Например, функции вычислительной машины могут заключаться в обработке
единиц работы, организованных в виде заданий. В этом случае задание является
минимально различимым элементом, которым ограничивается степень подробности
исследования. Каждое задание включает одну или несколько программ, и
выполнение этих программ, а также
операции производимые ими над
определенными наборами данных, образуют другой уровень рассмотрения системы.
Подобно этому, операции вычислений и ввода – вывода, осуществляемые внутри
программ, составляют следующий уровень рассмотрения. В свою очередь эти
операции могут быть представлены композицией элементов на более детальных
уровнях, начиная с машинных команд вычислительной машины и кончая уровнем
операций, выполняемых отдельными логическими элементами. Описание работы на
каждом из этих уровней можно рассматривать как последовательную детализацию
описания, представленного на предыдущем уровне. В зависимости от целей
исследования система может быть представлена на нескольких уровнях детализации
или ограничена одним – единственным уровнем описания.
При задании рабочих условий очень важно описать переменный характер
внешней среды, в которой функционирует система. Вообще говоря, задачи анализа,
решаемые с помощью моделирования, во многом обязаны своим возникновением
именно фактору изменчивости рабочих условий. Внешняя среда, задающая
переменную нагрузку на систему, может вступать в сложное взаимодействие с
функционированием самой системы, имеющим также переменный характер.
Затраты времени на выполнение определенного объема работы обычно
складываются из периодов обработки и периодов задержки, перемежающихся в
процессе функционирования системы. Задержки возникают в ситуации, когда какаялибо единица работы запрашивает определённое системное средство, в то время как
это средство занято другой единицей работы, выполнение которой было начато
ранее. Эта ситуация может быть вызвана изменяющимися условиями работы,
которые выражаются соответствующими изменениями времени обработки, времени
поступления на обработку, а также изменениями того и другого показателя
одновременно.
4
Модели вычислительных процессов и оценка
трудоемкости алгоритма.
Трудоемкость алгоритмов – количество вычислительной работы требуемой
для реализации алгоритма.
Сложность алгоритма – минимальное количество информации, необходимое
для его описания. Обычно в практике сложность алгоритма определяется длиной
записи алгоритма в терминах определенной алгоритмической системы. Например,
сложность алгоритма можно характеризовать числом операторов в программе или
числом команд программы в машинном коде.
Сложность задачи слагается из сложности алгоритма и количества данных.
Количество данных, относящихся к задаче, характеризуется числом байтов,
посредством которых представляются данные. Располагая сведения о сложности
алгоритма и количестве данных, можно определить потребность задачи в ресурсах
памяти.
Если сложность алгоритма характеризует потребность алгоритма в памяти, то
трудоемкость – его потребность во времени, связанном с периодом работы
совокупности устройств, средствами которых реализуется алгоритм. Трудоемкость
алгоритма поэтому, иногда называют сложностью вычислений. Оценивается
трудоемкость алгоритма количеством операций, выполняемых с целью обработки,
ввода и вывода информации в процессе решения задачи. Каждой реализации
алгоритма присущ элемент случайности, связанный с тем, что исходные данные
представляют собой в общем случае случайную выборку из множества исходных
данных, к которым применим алгоритм. Поэтому полная характеристика
трудоемкости предполагает описание количества операций, выполняемых за одну
реализацию алгоритма, случайными величинами, т.е. предполагает определение
законов распределения числа операций в реализации алгоритма. Получение таких
сведений об алгоритме – сложный и длительный процесс. В связи с этим
трудоемкость
обычно
характеризуют
приближенно,
например,
только
математическими ожиданиями числа выполняемых операций.
В первом приближении трудоемкость алгоритма можно охарактеризовать
следующей совокупностью параметров:
В – среднее количество процессорных операций, выполняемых за одну
реализацию алгоритма (при одном прогоне программы);
N1,N2,…,Nn - среднее количество обращений к файлам F1,F2,…,Fn
соответственно за одну реализацию алгоритма;
Q1,Q2,…,Qn – среднее количество информации (байтов) передаваемые за одно
обращение к фалам F1,F2,…,Fn соответственно.
Значение В характеризует трудоемкость обработки информации (счета), а
значения N1,N2,…,Nn, Q1,Q2,…,Qn – трудоемкость процесса ввода-вывода
информации. При решении задач анализа и синтеза вычислительных систем
возникает необходимость в описании свойств вычислительных процессов,
порождаемых алгоритмами решения задач. С наибольшей полнотой и точностью
свойства вычислительных процессов представляются самими алгоритмами,
определяющими вычислительные процессы до мельчайших подробностей. Однако
5
при решении задач теории вычислительных систем интерес представляют не все без
исключения детали вычислительных процессов, а только те, которые характеризуют
порядок использования ресурсов системы в процессе решения задач.
Следовательно, вычислительные процессы целесообразно представлять
моделями, несущими в себе информацию о свойствах вычислительных процессов,
учет которых необходим и возможен при решении задач анализа и синтеза
вычислительных систем. Количество действий, выполняемых в процессе
вычислений, определяется трудоемкостью алгоритма, и если при построении
модели вычислительного процесса исходить только из сведений о трудоемкости
алгоритма, то степень приближения модели к реальным процессам целиком
определяется полнотой и достоверностью сведений о трудоемкости алгоритма. С
учетом сведений о трудоемкости алгоритма, которыми обычно располагают, и
возможных подходов к анализу и синтезу вычислительных систем можно
сформулировать следующие требования к моделям вычислительных процессов:
1. Модель должна определять порядок порождения алгоритмом запросов на каждый
из видов обслуживания – счет и ввод-вывод информации, хранимой в каждом из
файлов;
2. Модель должна определять трудоемкость обслуживания запросов – количество
операций, которое должен выполнить процессор при обслуживании запроса на
счет, и количество символов вводимой-выводимой информации;
3. Модель должна отражать вычислительные процессы как реализации случайного
процесса, т.е. порождать запросы в случайные моменты времени и
характеризовать трудоемкость запросов случайными величинами;
Вычислительные процессы, порождаемые моделью, должны соответствовать
реальным процессам с точностью до совпадения, по крайней мере, математических
ожиданий их одноименных характеристик.
Первые два требования выделяют круг сведений о вычислительных процессах,
наиболее существенно влияющих на порядок функционирования ВС. На данном
уровне рассмотрения вопросов прочие сведения о вычислительных процессах не
принимаются во внимание, т.е. алгоритмы и вычислительные процессы считаются
различными постольку, поскольку они различаются по количеству и характеру
запросов на обслуживание. Необходимость третьего требования продиктована
результативностью вероятностного подхода к исследованию многообразных
процессов, какими являются вычислительные процессы. Фактор случайности,
вводимый в модель, позволяет
порождать бесконечное число реализаций
вычислительного процесса, что характерно для процессов выполнения алгоритма.
Последнее требование определяет минимальную норму «точности» модели.
Конечно, идеальная модель должна представлять реальные процессы с точностью до
равенства распределений соответствующих случайных величин описывающих
вычислительные процессы. Однако от построения идеальной модели приходится
отказаться по следующим причинам:
- в подавляющем большинстве случаев сведения об алгоритмах, для выполнения
которых создается система, далеко не полные. В лучшем случае известны оценки
математических ожиданий характеристик алгоритма и лишь иногда их
дисперсии. Поэтому бесполезно вводить в модель параметры, значения которых
не удается определить;
6
- оправданное стремление получить общее решение задачи, пусть и приближенное,
заставляет идеализировать вычислительные процессы – представлять их в виде,
обеспечивающем разрешимость задачи аналитическими методами. Конечно,
всегда должна устанавливаться степень достоверности результатов, получаемых
на основе идеализированных моделей.
С учетом вышеперечисленных требований построим модель вычислительного
процесса, порождаемого алгоритмом с заданной трудоемкостью.
Пусть для решения некоторой задачи в оперативной памяти выделяется
раздел, в котором условно можно указать две части: область программы и область
данных.
Область программы имеет емкость, достаточную для размещения,
подмножества
загрузочных
модулей,
которые
должны
одновременно
присутствовать в оперативной памяти в процессе решения задачи. Здесь мы
рассмотрим наиболее частый и общий случай, когда программа не может быть
целиком размещена в оперативной памяти из-за ограниченной емкости последней. В
этом случае программа разделяется на так называемые загрузочные модули
m0,m1,m2…, которые хранятся во внешней памяти как записи m0,m1,m2…,
составляющие файл F1, называемый главным файлом.
ОП
Область
программы
m0
m
.
.
Область
данных
Д
m
ai
m0
m1
m2
m3
a1
a2
a3
a4
F2
b1
b2
b3
b4
F3
c1
c2
c3
c4
F4
F1
bj
ck
Файл - упорядоченная совокупность данных, обрабатываемых одним общим
для этих данных способом. Файл разделяется на записи.
Запись – совокупность единиц информации (байтов) обрабатываемых
совместно как одно целое.
Данные, связанные с задачей, разделяются на файлы F2,F3,…, которые в свою
очередь разделяются на записи a1,a2,…,b1,b2,…,c1,c2,…
В зависимости от способа использования данных в процессе решения задачи
различают входные, выходные и входные - выходные файлы.
Входной файл содержит исходные данные, которые только читаются из файла
в процессе решения задачи. Входные файлы существуют до начала решения задачи.
7
Выходной файл содержит результаты решения задачи, записываемые в файл в
порядке их получения.
Входной - выходной файл используется как для чтения записей, так и для
загрузки их в процессе решения задачи. Такая ситуация типична при корректировке
записей и файла в целом (файл может пополняться новыми записями и из него
могут исключаться отдельные записи). Входные - выходные файлы подразделяются
на основные и рабочие. Основной файл существует до начала и (или) по окончании
решения задачи. Рабочий файл создается только на период решения задачи и
содержит в себе промежуточные данные, необходимые лишь для одного прогона
программы.
Задача начинает выполняться с момента загрузки в оперативную память
корневого (ведущего) модуля m0 и передачи ему управления. В некоторый момент
времени модуль m0 может вызвать в оперативную память модуль m, который в
свою очередь обратиться к модулю m и т.д. В результате этого в области
программы могут одновременно размещаться несколько модулей m0, m,…, m.
После завершения работы модуль m передает управление вызвавшему его модулю
и область памяти, занимаемая модулем m, считается свободной и в нее может быть
вызван очередной модуль. Т.о. в каждый момент времени в оперативной памяти,
присутствует лишь часть модулей, входящих в состав программы.
В области данных выделяется подобласть Д в которой размещаются данные, в
основном постоянно используемые в процессе решения задачи. Доступ к данным,
размещенным в файлах F2,F3,F4 организуется путем, выделения областей
оперативной памяти ai,bj,ck называемых буферами ввода-вывода. Каждый из
буферов обеспечивает размещение, по крайней мере, одной записи из
соответствующего файла. Буфер ai обслуживающий входной файл F2 используется
для хранения записи ai. Запись вызывается в буфер командами ввода-вывода, после
чего данные, включенные в эту запись, становятся доступными для обработки.
Аналогично, результаты, формируемые программой, заносятся в область буфера ck
и по мере формирования записей переносятся в выходной файл F4.
Перед выполнением программы корневой модуль m0 загружается в начало
раздела, выделенного задаче. Программа инициируется путем передачи управления
первой команде корневого модуля. Начиная с этого момента, выполнение
программы может протекать в соответствии со следующей временной диаграммой:
0
t
C
m1
F1
F1
F2
F3
F4
t
a1
a2
b1
t
a3
b2
t
c1
t
8
Отрезки на осях времени t обозначает периоды активного состояния
процессов обработки C и обращения к файлам F1,F2,F3,F4.
Выполнение программы состоит из последовательности периодов обработки
информации и обращения к файлам, которые следуют в порядке, указанном
программой. Длительность периодов определяется трудоемкостью работ –
количеством операций, которые должен выполнить процессор, количеством
информации, передаваемой при обращении к файлу и быстродействием устройств,
используемых для выполнения соответствующих работ.
В распоряжение выполняемой программы должны быть предоставлены
необходимые ресурсы – разделы оперативной памяти и внешней памяти и
определенные устройства. Так, рассматриваемый пример программы для своего
выполнения требует следующие ресурсы:
Пр
ОП
ПК
НМД1
P
НМД2
+
НМЛ
- раздел Р оперативной памяти ОП;
- пакет магнитных дисков НМД1 для хранения загрузочных модулей программы,
т.е. файла F1;
- устройство ввода с перфокарт ПК, с которого вводится входной файл F2;
- пакет магнитных дисков НМД2 для хранения рабочего файла F3;
- магнитную ленту НМЛ, на которую записывается выходной файл F4;
- процессор Пр, выполняющий команды программы.
Выполнение программы, обеспеченной необходимыми ресурсами, можно
рассматривать как последовательность этапов обслуживания запросов программы к
устройствам ЭВМ.
Будем рассматривать вычислительный процесс, как последовательность
этапов счета и ввода-вывода информации при обращении к файлам F1…FH как это
показано на приведенной ранее временной диаграмме. Состояние вычислительного
процесса, соответствующее этапу счета, обозначим символом S0, обращениям к
файлам F1…FH – символами S1…SH. Окончание вычислительного процесса будем
рассматривать как переход процесса в состояние SH+1 поглощающее
вычислительный процесс. В этих обозначения вычислительный процесс – это
последовательность состояний St0,St1,…,Stm, изменяющихся в моменты времени
to,t1,…,tm, причем
S ti  S0 ,, SH 
и заключительное состояние процесса
S tm  SH1
9
Марковская модель вычислительных процессов.
Наиболее простую модель можно получить, если принять допущение об
отсутствии последствия в вычислительном процессе, означающем, что следующее
состояние вычислительного процесса зависит только от текущего состояния и не
зависит от предыдущих состояний. В таком случае вычислительный процесс
становится марковским процессом, определяемым множеством присущих ему
состояний
S0 ,, SH1 
матрицей вероятностей переходов
S0
P
S 0  00

P  Pij  S1  P10
  

S H 1 PH 1, 0
 
S1
 S H 1
P01  P0,H 1 
P11  P1,H 1 


 

PH 1,1  PH 1,H 1 
и распределением вероятностей (a0,…,aH+1) состояний S0,…,SH+1 в момент
времени 0.
Элементы Pij матрицы P определяют вероятности перехода процесса из
состояния Si в состояние Sj, т.е. вероятности того, что процесс, находящийся в
состоянии Si в следующий момент времени будет находиться в состоянии Sj.
Матрица P – стохастическая матрица, построчные суммы элементов которой
 Pij  1 .
j
Вероятности ai определяют первое возможное состояние St0 процесса. Будем
считать, что вычислительный процесс развивается следующим образом. Процесс
начинается с состояния S0, т.е. программа начинает выполняться с этапа счета. Этап
ввода-вывода может быть инициирован только процессором, т.е. может следовать
только за этапом счета. Это одновременно означает, что после каждого этапа вводавывода следует этап счета. В таком случае вероятности начальных состояний
(a0,a1,a2,…,aH+1)=(1,0,0,…,0) и матрица вероятностей переходов
 
S0
S1
P  Pij  S 2

SH
S H 1
S0
S1
 0 P01
1 0

1 0

 
1 0

 0 0
S2
P02
0
0

0
0

S H S H 1
 P0, H P0, H 1 
 0
0 
 0
0 



 
 0
0 

 0
1 
Из состояния счета S0 процесс с соответствующей вероятностью может
перейти в состояния S1,…,SH, представляющие собой этапы обращения к файлам
F1,…,FH, или в поглощающее состояние SH+1. Из состояний S1,…,SH процесс с
вероятностью 1 возвращается в состояние счета S0. Достигнув поглощающего
состояния SH+1 процесс с вероятностью 1, навсегда остается в нем. Порядок смены
состояний можно представить на графе марковской цепи. Переходы между
состояниями S0,…,SH+1 представляются на графе дугами, на которых обозначены
вероятности переходов, отличные от 1.
10
S1
P01
P0,H+1
SH+1
S0
P02
S2
P0H
SH
Значения вероятностей P01,…,P0,H+1 предопределяют ход вычислительного
процесса и зависят от параметров трудоемкости алгоритма. Эти значения
вычисляются следующим образом. Трудоемкость алгоритма определяет, в
частности, среднее число N1…NH обращений к файлам F1,…FH. Следовательно,
среднее число переходов из состояния S0 в состояние S1…SH должно быть
(N1+…+NH). Один раз процесс переходит из состояния S0 в поглощающее состояние
SH+1.Таким образом, вычислительный процесс должен выходить из состояния S0 в
H
среднем N   N h  1 раз, т.е. в процессе реализации алгоритма этапы счета
h 1
встречаются в среднем N раз. Значение P0h определяет долю переходов в состояние
Sh по отношению к всевозможным переходам из состояния S0 в состояния S1…SH+1.
Эта доля равна в среднем Nh/N, где Nh- среднее число переходов в состояние
Sh. Следовательно:
P0, h=Nh/N, h=1,2…H
P0,H+1=1/N.
Количество работы, выполняемой на каждом из этапов, характеризуется
параметрами 1,…, H алгоритма. Значение  определяет среднее количество
процессорных операций, выполняемых за одну реализацию алгоритма, и значения
1,…, H – среднюю трудоемкость этапов, соответствующих состояниям S1…SH.
Средняя трудоемкость этапа счета
0=/N, где N-среднее число этапов счета.
Трудоемкость каждого этапа будем рассматривать как случайную величину h
с математическим ожиданием H, h=0,1,…,H.
Таким образом, под моделью вычислительного процесса будем понимать
марковскую цепь с (H+2) состояниями, начальным состоянием S0 и матрицей
вероятностей переходов. Реализация вычислительного процесса – случайная
последовательность состояний S0,St1,St2,…,Stm, порядок смены которых определяется
в вероятностном смысле матрицей вероятностей переходов. С состояниями S0…SH
связано определенное количество работы, характеризуемое значениями случайных
S0
S1
S2
S3
0`
02
11
03
12
04
05
06
t
13
21
t
22
t
t
11
величин 0…H соответственно. Диаграмма
порождаемого марковской моделью имеет вид:
вычислительного
процесса,
Значение ij определяет трудоемкость соответствующего этапа и представляет
собой j-е значение случайной величины i, математическое ожидание которой i . В
данном случае состояние S3 является поглощающим: достигнув его, процесс
прекращается.
Рассмотрим пример. Пусть задан алгоритм, трудоемкость которого
характеризуется следующими параметрами:
=100 млн. операций;
N1=19 обращений к файлу F1;
N2=180 обращений к файлу F2;
1=2000 байтов;
2=500 байтов за обращение к файлу.
Построим марковскую модель вычислительного процесса, порождаемого этим
алгоритмом. Среднее число этапов счета при одном прогоне алгоритма
N=N1+N2+1=200. Вероятности перехода процесса из состояния счета S0 в состояния
S1,S2 и S3 равны соответственно:
P01=N1/N=19/200=0,095
P02=N2/N=180/200=0,9
P03=1/N=1/200=0,005
Подставляя эти значения, получаем следующую матрицу вероятностей
переходов:
S 0 0

P  S1 1
S 2 1

S 3 0
S 0 S1 S 2 S 3
0,095 0,9 0,005
0
0
0 
0
0
0 

0
0
1 
Из матрицы видно, что с вероятностью 0,095 за этапом счета произойдет
обращение к файлу F1, с вероятностью 0,9 – F2, и с 0,005 – вычислительный процесс
прекратится. Средняя трудоемкость этапа счета 0=/N=100/200=0,5 млн. операций.
Оценка трудоемкости алгоритмов методами теории марковских цепей.
Операторы алгоритма будем подразделять на функциональные, перехода и
ввода-вывода. Функциональный оператор задает преобразование на множестве
данных, т.е. задает некоторую совокупность вычислительных операций. Оператор
перехода задает порядок вычисления значений предикатов и правило выбора одного
из возможных путей развития вычислительного процесса, соответствующего
текущим значения данных, отношения между которыми представляются
предикатами. Оператор ввода-вывода задает обращение к определенному файлу с
целью передачи некоторого количества информации. Функциональные операторы
перехода задают совокупность вычислительных операций над данными и относятся
к одному классу операторов, называемых основными операторами.
Совокупность операторов и связей между ними наиболее наглядно
представляется графом алгоритма, который строится как композиция вершин,
соответствующих операторам алгоритма, и дуг, отображающих связи между
12
операторами. Граф алгоритма является корректным, если выполняются следующие
условия:
- имеется только одна начальная и только одна конечная вершина;
- для каждой вершины кроме начальной существует, по крайней мере, один путь,
ведущий в эту вершину из начальной;
- из каждой вершины кроме конечной существует, по крайней мере, один путь,
ведущий из этой вершины в конечную;
- выход из любой вершины должен вести только к одной вершине графа;
- при любых значениях логических условий существует путь из начальной
вершины в конечную, причем любому фиксированному набору значений условий
соответствует только один такой путь.
Приведем пример графа алгоритма:
0
0,25
1
3
0,5
0,75
0,9
0,1 К
0,5
2
5
7
0,2
4
0,8
6
Условимся, вершины графа обозначать номерами 0,1,2,…,К. О - соответствует
начальной вершине графа, К – конечной вершине; 1,2,…,К-1 идентифицируют
операторы алгоритма. В программировании графы алгоритмов изображаются с
использованием набора фигур, обозначающих тип оператора, и называются схемами
алгоритмов.
Граф выделяет структуру алгоритма, определяет множество операторов
V={V1, V2, …, Vk-1}
и множество дуг, связывающих операторы
D={(i, j)} i=0, 1, …, K-1 j=1,2,…,K
Для оценки трудоемкости алгоритма необходимо:
1. Разбить множество операторов на классы:
- основных операторов
S0={V1, V2, …, Vm0} VkV
- операторов ввода-вывода
Sh={V1,V2, …, Vmh} h=1,2,…,H каждый из этих операторов задает
обращение к одному и тому же файлу Fh.
2. Для каждого основного оператора V необходимо определить среднее количество
операций k, составляющих оператор, и для каждого оператора ввода-вывода V среднее количество информации h, передаваемой при выполнении оператора.
3. Переходы между операторами Vi и Vj следует рассматривать как случайные
события и характеризовать их вероятностями Pij, т.е. каждая дуга (i,j) графа
алгоритма должна быть отмечена вероятностью перехода Pij, с которой переход
из вершины Vi выполняется именно по этой дуге, т.е. к вершине Vj.
Так как вычислительный процесс не может приостанавливаться в вершине Vi,
то с вероятностью 1 произойдет переход к какой-либо вершине графа алгоритма. С
учетом этого вероятности переходов должны отвечать условию
13
K
P
j1
ij
 1 , I=0,1,2,…,К-1
Значения Pij определяются вероятностями значений предикатами. Другими
словами, вероятности Pij зависят от вероятностей выполнения условия,
проверяемого оператором i с целью выбора пути перехода. Например, пусть
оператор 2 порождает переход к оператору 3 при отрицательном значении
некоторой переменной Х и к оператору 4 при Х0. Если известно, что величина Х
равномерно распределена в диапазоне (-1;+3), то с вероятностью 0,25 ее знак
отрицателен и с вероятностью 0,75 положителен. Из этого следует, что переход к
оператору 3 происходит с вероятностью Р2,3=0,25 и переход к оператору 4 – с
вероятностью Р2,4=0,75. Пусть далее оператор 7, замыкающий цикл, порождает
переход к оператору 1 в девяти случаях, а в одном случае переход происходит в
конец алгоритма (цикл, начинающийся от оператора 1 и заканчивающийся
оператором 7, выполняется 10 раз). Тогда вероятности переходов Pi,1=0,9 Pi,k=0,1.
Если за оператором i непременно выполняется оператор j, то Pij=1. Пусть
П1,П2,…,ПК-1 – среднее число обращений к операторам V1,V2,…,VK-1 за один прогон
алгоритма. В таком случае характеристики трудоемкости могут быть вычислены
следующим образом:
- среднее число операций, выполняемых при одном прогоне алгоритма
θ
n k
ViS0
i
i
- среднее число обращений к файлу Fh
Nh 
n
ViSh
i
(h=1,2,…,H)
- среднее количество информации, передаваемое при одном обращении к файлу Fh
θ
h

 n i li
ViSh
N
h
В последних выражениях суммирование выполняется по всем вершинам,
относящимся к классу основных операторов S0 или классу операторов ввода-вывода
Sh, обращающихся к файлу Fh.
Таким образом, для оценки трудоемкости алгоритма необходимо определить
среднее число обращений n1,n2,…,nk-1 к операторам. Допустим, что вероятности
переходов Pkj постоянны и после выполнения оператора Vk (k=1,2,…,k-1) переход к
следующему оператору определяется только распределением вероятностей Pkj, т.е.
не зависит от хода вычислительного процесса в прошлом – до перехода к оператору
Vk. При указанных допущениях процесс выполнения алгоритма является
марковским процессом с К состояниями S1,S2,…,Sk соответствующими пребыванию
процесса в вершинах V1,V2,…,Vk алгоритма. Состояния S1,S2,…,Sk-1- невозвратные
(процесс после какого-то числа шагов непременно покидает их), состояние Sk –
поглощающее (достигнув его, процесс прекращается). Начальным является
состояние Si, определенное дугой (0,i), выходящей из начальной вершины графа.
Для упрощения обозначений условимся, что i=1, т.е. начальное состояние – S1.
Порядок изменения состояний определяется графом алгоритма, дуги которого
отмечены вероятностями переходов Pij. Отмеченный граф алгоритма можно
рассматривать как граф марковской цепи.
14
Среднее число П1,П2,…,Пk-1 пребывания марковского процесса в
невозвратных состояниях S1,S2,…,Sk-1 определяется корнями системы линейных
алгебраических уравнений
k 1
1, i  j
0, i  j
ni=1,i+  Pji n j (i=1,2,…,k-1), где 1,i – символ Кронекера 1,i= 
j1
Система этих уравнений строится исходя из следующих соображений.
Значение ni будет равно, по крайней мере, одному, если процесс начинается от
состояния с номером i=1, что отмечено символом 1,i. В остальных случаях процесс
попадает в состояние Si только из других состояний j=1,2,…,k-1 с вероятностью Pij.
Если процесс находился в состоянии j nj раз и Pji0, то процесс из этого состояния
попадет в состояние i в среднем Pijnj раз. Суммированием значений Pijnj по всем j
находится число попаданий процесса в состояние из всех других состояний j.
Значения П1,П2,…,Пk-1 определяются решением системы линейных алгебраических
уравнений, каноническая запись которой имеет вид:
(p1,1-1)n1+p2,1n2+…+pk-1,1nk-1= -1
p1,2n1+(p2,2-1)n2+…+pk-1,2nk-1=0
…………………………………
p1,k-1n1+p2,k-1n2+…+(pk-1,k-1-1)nk-1=0
Для примера определим трудоемкость алгоритма, заданного ранее
приведенным графом. Для простоты примем, что все операторы алгоритма –
основные (операторы ввода-вывода отсутствуют) и количество операций Ki,
порождаемых каждым оператором, постоянно и равно 1.
На основе графа и формы строим систему из семи линейных алгебраических
уравнений:
-n1+0,9n2=-1
n1-n2=0
0,25n2-n3=0
0,75n2-n4=0
0,5n3+0,2n4-n5=0
0,8n4-n6=0
0,5n3+n5+n6-n7=0
Решая систему, определяем среднее число попаданий вычислительного
процесса в состояния S1,S2,…,S7:
n1=10; n2=10;n3=2,5; n4=7,5; n5=2,75; n6=6; n7=10.
Подставляя полученные значения, получаем оценку трудоемкости алгоритма:
θ   niki
ni=10+10+2,5+7,5+2,75+6+10=48,75
ViS0
Рассмотренный способ определения трудоемкости алгоритмов является
универсальным, позволяя получать оценки для алгоритмов с любой структурой,
прост с точки зрения программирования, но требует решения системы
алгебраических уравнений обычно высокого порядка. Поэтому данный способ
предполагает использование ЭВМ для выполнения необходимых расчетов.
Сетевой метод оценки трудоемкости алгоритмов.
Количество вычислений, производимых при расчетах трудоемкости
алгоритмов, можно значительно сократить, если использовать сетевой подход к
15
анализу трудоемкости алгоритмов. Он позволяет получать среднюю, минимальную
и максимальную трудоемкость.
Суть сетевого подхода состоит в выделении путей на графе алгоритма,
соответствующих минимальной, средней и максимальной трудоемкости
последовательности операторов. Эти пути могут быть выделены только на графах,
не содержащих циклов. По этой причине методика сетевого подхода начинается с
анализа трудоемкости алгоритмов, не содержащих циклы. Затем рассматривается
прием исключения циклов из графа алгоритма путем замены их операторами с
эквивалентной трудоемкостью. Этот прием позволяет распространить сетевой
подход на любые алгоритмы, в том числе содержащие любое количество циклов.
Оценка средней трудоемкости алгоритмов.
Алгоритм будем представлять в виде графа, состоящего из К операторных
вершин и имеющего единственную конечную вершину с номером К=К+1; дуги
графа отмечены вероятностями переходов Pij. Каждой вершине графа поставлено в
соответствие среднее значение трудоемкости ki или lj. Задача оценки трудоемкости
алгоритма сводится к определению среднего числа n1,n2,…,nk обращений к
операторам за один прогон алгоритма.
Для применения сетевого подхода к оценке трудоемкости алгоритма, не
содержащего циклы, вершины графа алгоритма должны быть пронумерованы в
порядке их следования, т.е. так, чтобы любая вершина имела номер, больший
любого номера предшествующих ей вершин. Нумерация проводится следующим
образом. Начальной вершине присваивается номер 0. Очередной номер i=1,2,…
присваивается вершине, в которую входят дуги от уже пронумерованных вершин с
номерами, меньшими i. При этом любым двум вершинам должны соответствовать
разные номера. Такой порядок нумерации является результативным для любого
графа без циклов. Причем конечная вершина графа будет иметь максимальный
номер К. Пример корректной нумерации вершин графа(*):
0,2
0
1
2
0,6
0,5
3
5
0,5
0,2
6
0,2
0,8
8
9
10
К
0,1
4
0,9
7
Поскольку граф не содержит циклов, то при прогоне алгоритма вершина 1
будет выполнена точно один раз, то есть n1 = 1. Среднее число попаданий
вычислительного процесса в вершину определяется выражением:
k
ni   Pji  n j (i  2,3,..., k )
j 1
где Рji - вероятность перехода из вершины j в вершину i.
При установленном порядке нумерации вершин на момент вычисления ni
значения n1, n2,...,ni-1 уже определены. Поэтому вычисление значения ni сводится к
суммированию произведений, причем поскольку Pij = 0 для всех j  0, то
суммирование следует проводить только для j<i.
16
Определим среднее число обращений n1, n2,...,nk к операторам алгоритма
изображенного графа (предыдущий рисунок)
n1  1
n 2  P1, 2  n1  1
n 3  P2,3  n 2  0.2
n 4  P2, 4  n 2  0.6
n 5  P3,5  n 3  0.5  0.2  0.1
n 6  P3, 6  n 3  P2,5  n 2  P4, 6  n 4  0.36
n 7  P4, 7  n 4  0.9  0.6  0.54
n8  P5,8  n 5  P6,8  n 6  0.8  0.1  1  0.36  0.44
n 9  P8,9  n8  P7 ,9  n 7  0.98
n10  P5,10  n 5  P9,10  n 9  0.2  0.1  1  0.98  1
Рассмотрим случай алгоритма, содержащего циклы:
Непосредственное применение описанной методики к таким алгоритмам
невозможно и для вычисления значений n1, n2,...,nk необходимо исключить циклы,
заменяя их операторами с эквивалентной трудоемкостью.
Для упрощения описания метода примем, что алгоритм состоит из
однотипных операторов, например, только основных операторов. Разделим циклы
по рангам. К рангу 1 относятся циклы, которые не содержат внутри себя ни одного
цикла, к рангу 2 - циклы, внутри которых есть циклы не выше ранга 1 и так далее.
Например, рассматриваемый алгоритм содержит два цикла С1 и С2 ранга 1 и один
цикл С2 ранга 2. Совокупность операторов, входящих в цикл, и связывающих их
дуг, за исключением дуги, замыкающей цикл, называют телом цикла. Тело цикла
ранга 1 является графом без циклов. Применяя к этому графу ранее рассмотренную
17
методику, можно определить значения ni для каждого из операторов,
принадлежащих телу цикла, и, следовательно, трудоемкость тела С-го цикла  k j ni .
V j C
Здесь суммирование проводится по всем вершинам Vj , содержащимся в цикле
С.
Пусть известно среднее число повторений цикла nc, равное числу выполнений
тела цикла при одном прогоне алгоритма. Если вероятность перехода по дуге,
замыкающей цикл, равна Pkl , то nC=
1
1  Pkl
В этом случае средняя трудоемкость цикла равна:
k C  nC
k n
V j C
j
i
и цикл С можно заменить оператором с трудоемкостью kC.
Применяя указанную процедуру замены циклов операторами ко всем циклам
ранга 1, затем к циклам ранга 2 и так далее, в конце концов придем к графу без
циклов, трудоемкость которого находится уже рассмотренным способом.
Определим трудоемкость, заданную приведенным выше графом.
Положим, что трудоемкость всех операторов одинакова и равна 1.Среднее
число повторений циклов С1, С2 и С3 определяется из вероятностей переходов,
указанных на графе, следующими значениями:
nC 1 
nC 2 
nC 3 
1
1

5
P6,12 0.2
1
P11,12
1
P12,13

1
 20
0.05

1
 10
0.1
Выделим тела циклов С1 и С2 первого ранга:
Применяя к этим графам рассмотренную ранее методику, определяем
среднюю трудоемкость kC1 и kC2 выполнения тел этих циклов:
n7  1
n3  1
n8  P7 ,8  n7  0.2
n 4  P3, 4  n3  1
n9  P8,5  n8  0.2
n5  P4,5  n 4  0.5
n10  P7 ,10  n7  0.8
n6  P4,5  n 4  P5, 6  n5  1
n11  P9,11  n9  P10,11  n10  1
Определяем трудоемкость тел этих циклов:
6
11
i 3
i 7
QC1   k i ni  3.5 QC 2   k i ni  3.2
Средняя трудоемкость циклов С1 иС2 вычисляется умножением полученных
значений на среднее число повторений этих циклов:
k C1  Q C1  nC1  17.5 ; k C2  Q C2  nC 2  64
18
Заменяя в исходном графе циклы С1 и С2 операторами С1 и С2 с
трудоемкостью kC1 и kC2, получим граф:
Тело цикла С3 имеет вид:
Определим трудоемкость тела цикла С3:
n2  1
nС1  P2,С1  n2  0.4
nС 2  P2,С 2  n2  0.6
n12  PС1,12  nС1  PС 2,12  nС 2  1
QC 3 
k n
Vi C 3
i i
 1  17.5  0.4  64  0.6  1  47.4
С учетом числа nC3 повторений цикла трудоемкость цикла составит:
k C3  QC3  nC 3  47.4 10  474 операций.
Заменив цикл С3 оператором С3 с трудоемкостью kC3, получим граф:
Трудоемкость всего алгоритма, представляемого этим графом, равна:
  k1  k C 3  k13  1  474  1  476 операций.
Оценка минимальной и максимальной трудоемкости алгоритма.
Минимально возможное и максимально возможное значение трудоемкости на
момент окончания выполнения оператора Vi обозначим соответственно через Ai и
Bi. Имеем A0=0, B0=0. Тогда для остальных вершин с номерами i=1,2,...,k:
Ai  min ( Aj)  k i min ; Bi  max ( B j )  ki max ;
( j ,iD )
( j ,iD )
где (j,i) - дуга, выходящая из вершины j и входящая в вершину i;
D - множество дуг графа программы.
19
Минимальное min(Aj) и максимальное max(Bj) значения определяются по
отношению ко всем вершинам j из которых выходят дуги, входящие в вершину i.
Значения kimin и kimax характеризуют минимальную и максимальную
трудоемкость оператора Vi.
Для конечной вершины К графа вычисляются значения
Ak  min ( Aj) ; Bk  max ( B j ) ;
( j , k )D
( j , k )D
характеризующие минимальную и максимальную трудоемкость алгоритма.
Определим минимальную и максимальную трудоемкость алгоритма, не
содержащего циклов(*).
Примем, что трудоемкость каждого оператора постоянна и равна 1.
Последовательно применяя , получим:
A0  0
B0  0
A1  min( A0 )  1  1
B1  max( B0 )  1  1
A2  min( A1 )  1  2
B2  max( B1 )  1  2
A3  min( A2 )  1  3
B3  max( B2 )  1  3
A4  min( A2 )  1  3
B4  max( B2 )  1  3
A5  min( A3 )  1  4
B5  max( B3 )  1  4
A6  min( A2 , A3 , A4 )  1  3 B6  max( B2 , B3 , B4 )  1  4
A7  min( A4 )  1  4
B7  max( B4 )  1  4
A8  min( A5 , A6 )  1  4
B8  max( B5 , B6 )  1  5
A9  min( A7 , A8 )  1  5
B9  max( B7 , B8 )  1  6
A10  min( A5 , A9 )  1  5
B10  max( B5 , B9 )  1  7
Ak  min( A10 )  1  5
Bk  max( B10 )  1  7
Таким образом минимальная трудоемкость алгоритма Ak = 5, а максимальная
Bk = 7 операций.
Минимальная и максимальная трудоемкость алгоритмов, содержащих циклы,
находятся по аналогии с методом определения средней трудоемкости алгоритмов с
циклами. При этом выделяются циклы первого ранга. Находятся минимальная А и
максимальная В трудоемкость тела цикла. Минимальная и максимальная
трудоемкость цикла определяется значениями A  n min и B  n max , где nmin и nmax минимальное и максимальное число повторений цикла. Затем цикл заменяется
оператором с трудоемкостью kmin= A  n min и kmax = B  n max и вновь применяется
процедура исключения циклов.
Процесс повторяется до тех пор, пока граф алгоритма не будет преобразован к
форме без циклов.
Сетевые модели вычислительных систем.
Представление ВС в виде стохастической сети.
ВС можно рассматривать как совокупность устройств, процессы
функционирования которых являются процессами массового обслуживания и для их
описания используют модели теории массового обслуживания. Основными
моделями, используемыми в теории массового обслуживания, являются одно- и
многоканальные системы массового обслуживания
(СМО). В одноканальной СМО обслуживание
заявок организуется следующим образом.
20
На вход СМО поступают заявки с интенсивностью . Так как СМО содержит
один канал( прибор), то в каждый момент времени может обслуживаться только
одна заявка. Среднее время обслуживания заявки равно V. Другие заявки,
поступающие в систему, когда канал был занят обслуживанием, образуют очередь
О. Из этой очереди по окончании обслуживания заявки выбирается следующая
заявка и так далее. Если канал свободен и в очереди нет заявок, то канал
простаивает. Вновь прибывшая заявка сразу занимает простаивающий канал, если в
очереди нет других заявок.
Многоканальная СМО содержит К однотипных каналов, среднее время
обслуживания заявок V в которых
непременно одинаково.
В системе одновременно может
обслуживаться до К заявок. Заявки,
застающие все каналы занятыми ожидают
освобождение каналов в очереди О.
Характерная особенность рассматриваемой
СМО - полная доступность каналов, при
которой любая заявка может быть обслужена любым свободным каналом. Если
налагаются ограничения на условия выбора каналов для обслуживания входных
заявок, то многоканальная система разбивается на ряд независимых одно- и
многоканальных систем. Например, если в системе (*) заявки с вероятностью Р1
поступают на обслуживание в первые (к-1) полнодоступные каналы и с
вероятностью Р2 = 1 - Р1 в к-й канал, то исходная система разбивается на две
независимые системы, первой из которых является (к-1) - канальная система, а
второй - одноканальная система, с интенсивностями входящих потоков заявок Р 1 и
Р2 соответственно.
Обычно ВС состоит из нескольких подсистем, каждая из которых
представляется одно- или многоканальной СМО. К таким подсистемам относятся
процессор с оперативной памятью, селекторные (СК) и мультиплексные каналы
(МК) с подключенными к ним устройствами ввода-вывода.
Модель процессора с оперативной памятью.
Подсистема "процессор - оперативная память " рассматривается как
однокритериальная СМО. Обслуживающим каналом (прибором) в этой системе
является процессов Пр. При работе ВС в мультипрограммном режиме в
оперативной памяти размещено несколько программ
П1,П2,...,ПМ.
Одни программы находятся в состоянии готовности к
выполнению, другие в состоянии ожидания некоторых
событий, например завершения операции ввода-вывода.
Совокупности готовых к выполнению программ
соответствует очередь О заявок в СМО. Программа из
очереди, получившая доступ к процессору Пр, переходит в
состояние счета. Среднее время непрерываемого счета программы определяет
среднюю продолжительность V процесса обслуживания заявки в СМО. Процесс
счета, то есть обслуживание программы процессором, прекращается в момент, когда
программа обращается к системе ввода-вывода, то есть к устройству ввода-вывода
21
или к ВЗУ. При этом считается, что программа на счет обслужена и покидает
систему "процессор - оперативная память". Обслуживание этой заявки, то есть этой
программы, будет продолжено другим устройством ВС. Интенсивность 
поступления заявок в СМО определяется суммарной интенсивностью пополнения
списка готовых к выполнению программ, как за счет поступления новых программ,
так и за счет программ, для которых завершен ввод-вывод. Непременное условие
готовности программы - наличие ее в оперативной памяти.
Модель мультиплексного канала.
МК обеспечивает параллельную и независимую работу подключенных к нему
устройств ввода - вывода (УВВ), различных типов:
- устройств ввода с перфокарт ПК;
- печатающих устройств ПУ;
- накопителей на магнитном диске НМД;
и так далее.
Поэтому каждое из этих устройств должно рассматриваться как идеальный
канал (прибор) СМО. Несколько однотипных устройств ввода - вывода могут
рассматриваться как многоканальная СМО с одинаковым среднем временем
обслуживания заявок в каждом из каналов.
МК с подключенными к нему устройствами ввода - вывода представляется в
виде совокупности СМО:
22
В модели система S1 отображает работу К однотипных устройств ввода вывода, в каждом из которых заявка на ввод - вывод обслуживается в среднем за
время V1. Интенсивность входящего в эту систему потока равна доле Р1 от
интенсивности  всех заявок, обслуживаемых МК. По аналогии система Sm
отображает работу других (n-l) устройств ввода - вывода со средним временем
обслуживания заявок Vm и интенсивностью входного потока Pm . Очевидно что
должно выполняться равенство
m
P
i 1
i
 1.
Модели селекторных каналов.
Селекторный канал (СК) в отличии от МК работает в монопольном режиме.
ВЗУ, подключаемые к СК, могут работать совместно во времени лишь при
выполнении подготовительных операций, таких как подвод ленты, установка
механизма доступа на заданный цилиндр пакета магнитных дисков и так далее.
При передаче данных СК обслуживает в каждый момент времени обращение
только к одному ВЗУ.
Модель работы СК рассмотрим на примере канала с однотипными ВЗУ.
Модель
должна
отображать
различные этапы в обработке запросов
программ на ввод-вывод информации:
- на первом этапе выполняются
подготовительные операции;
- на втором этапе осуществляется
передача информации между оперативной памятью и одним ВЗУ.
В результате процесс работы канала и ВЗУ можно представить как процесс
последовательного обслуживания запросов в двух СМО, первая из которых
отображает этап выполнения подготовительных операций в ВЗУ и вторая - этап
передачи данных ПД по каналу.
Продолжительность этих этапов составляет в среднем V1 и V2 единиц
времени. На вход СК поступает поток заявок с интенсивностью . Заявки,
обслуженные в этой системе с вероятностью Рi , i = 1,2,...,k, направляются в одну из
систем ВЗУi. Рассматриваемая модель является моделью с блокировкой процессов
обслуживания заявок в различных системах. Действительно, ВЗУ i, завершившее
подготовительную операцию, не может начать обслуживание следующей заявки из
очередиOi до тех пор, пока канал, то есть система ПД, не завершит передачу данных
из ВЗУi. Эффектом блокировки можно пренебречь, если учесть, что задержки при
передаче данных значительно меньше времени выполнения подготовительных
операций в ВЗУ. Так, среднее время передачи данных V2 составляет несколько
23
миллисекунд, а среднее время выполнения подготовительных операций V1 имеет
порядок десятков миллисекунд. В связи с этим системы ВЗУ 1 ... ВЗУk и ПД могут
рассматриваться как независимые СМО.
Эту модель можно еще упростить, если представить ее в виде многоканальной
СМО со средним временем обслуживания в каждом из каналов , равным сумме двух
временных задержек V1 и V2. Как в первом, так и во втором случае время
пребывания заявок в модели будет меньше, чем в реальном СК.
В малых ЭВМ может отсутствовать совмещение подготовительных операций
в различных ВЗУ, подключенных к одному СК. В таком случае рассматриваемая
модель без каких либо погрешностей заменяется одноканальной СМО, в которой
среднее время обслуживания заявок равно сумме времен V1 и V2.
Стохастическая сетевая модель.
Вычислительную систему в целом можно представить как совокупность
рассмотренных СМО, каждая из которых отображает процесс функционирования
отдельного устройства или группы однотипных устройств, входящих в состав
системы. Совокупность взаимосвязанных СМО называется стохастической сетью.
Конфигурация сети отображает как структуру ВС, так и последовательность этапов
вычислительного процесса, развивающегося в пределах этой структуры.
В качестве примера определим конфигурацию стохастической сети, которая
моделирует вычислительную систему, которая состоит из процессора, оперативной
памяти, СК, в каждый момент времени обслуживающего обращение только к
одному подключенному к нему ВЗУ, и МК с устройствами ввода - вывода
УВВ1,...,УВВk, функционирующими параллельно и независимо друг от друга.
В вычислительной системе момент начала решения задачи отмечается
поступлением заявки. Заявка воспринимается процессором, начинающим выполнять
определенную программу. Процесс выполнения программы можно рассматривать
как последовательность этапов счета, обращения к ВЗУ и ввода - вывода
информации через УВВ. После выполнения некоторой последовательности таких
этапов, число которых зависит от трудоемкости программы, заявка на решение
задачи считается обслуженной и покидает систему.
Исходя из сказанного, ВС с заданной структурой и указанным порядком
решения задач можно представить как стохастическую сеть следующего вида:
24
S1, S2, S3 - системы массового обслуживания, отображающие этапы обработки
задач в подсистеме "процессор - оперативная память", СК и МК соответственно.
O1, O2, O3 - очереди заявок на обслуживание.
Системы S1 и S2- одноканальные СМО, а система S3 - многоканальная система
массового обслуживания в предположении, что к МК в моделируемой ВС
подключено К однотипных устройств ввода - вывода. Заявки на решение задач
поступают на вход системы с интенсивностью 0 и воспринимаются системой,
моделирующей работу процессора.
Процесс решения задачи в ВС носит многоэтапный характер и складывается
из периодов работы процессора, СК и МК. В сетевой модели этот факт отмечается
циркуляцией заявок в сети по контурам S1  S 2 или S1  S 3 , причем переход заявок
в системы S2 и S3 может осуществляться только из системы S1, так как заявки на
ввод - вывод формируются программами, обрабатываемыми процессором. Выбор
направления перехода заявок из системы S1в системы S2 и S3 определяется
вероятностями Р12 и Р13 передач заявок. После нескольких циклов обслуживания
заявки с вероятностью Р10 покидают сеть. Вероятности Р10, Р12, Р13 зависят от
параметров трудоемкости программ, реализуемых ВС. Интенсивность выходящего
потока равна k. Так как ВС работает без потерь заявок, соблюдается равенство k =
0.
Разомкнутые и замкнутые стохастические сети.
Для описания ВС используют стохастические модели разомкнутые и
замкнутые. Для разомкнутой сети С характерно, что интенсивность источника
заявок 0 не зависит от состояния сети, то есть от числа
заявок, поступивших в сеть.
Для замкнутой сети С интенсивность источника
зависит от состояния сети и число заявок, циркулирующих
в ней, всегда постоянно. В этом случае источником заявок
можно считать любую систему сети. Исходя из
физического смысла заявок, выделим дугу, по которой
заявка, соответствующая завершенной работе, как бы инициирует заявку на
выполнение новой работы. Такая дуга отмечается точкой. Для однозначного
описания параметров замкнутых и разомкнутых сетей отмеченная дуга в замкнутой
сети рассматривается как фиктивный источник заявок, причем его интенсивность 0
есть интенсивность потока заявок, проходящих по отмеченной дуге. Разомкнутые
сети применяются в качестве моделей систем, в которых может находится на
обработке переменное число заявок, например система с разделением времени. В
таком случае заявки имеют смысл запросов со стороны пользователей на
выполнение определенных работ в системе.
Замкнутые сети используются для описания работы ВС, обрабатывающих
фиксированное число заявок на решение задач. К таким системам относятся
системы оперативной обработки, функционирующие в режиме диалога, когда
имеется фиксированное число пользователей и каждый из них не инициирует
нового запроса к системе до получения ответа на предшествующий запрос, и
система пакетной обработки. В последнем случае количество заявок,
циркулирующих в сети, определяется количеством работ, выполняемых в
мультипрограммном режиме, то есть коэффициентом мультипрограммирования.
25
Когда выполнение работы заканчивается, тут же инициируется новая работа,
выбираемая из выходного пакета. Число заявок, проходящих в замкнутой сети по
отмеченной дуге за единицу времени, определяет производительность 0 системы.
Заметим, что величина 0 не зависит от каких-либо внешних причин, а определяется
конфигурацией сети и ее параметрами.
Экспоненциальные стохастические сети
Распределение времени обслуживания заявок в СМО устанавливается
исследованием моделей, отображающих отдельные этапы вычислительного
процесса. Такими моделями являются модели программ, алгоритмы планирования и
функционирования ВЗУ и УВВ. При произвольных распределениях и произвольных
входящих потоках получение аналитических зависимостей для исследуемых
характеристик ВС в общем случае становится практически невозможным даже при
использовании сетевых моделей с упрощенной структурой. Задача будет
разрешимой , если предположить. Что входящие потоки - простейшие и
распределены по экспоненциальному закону.
Подобные сети называются экспоненциальными стохастическими сетями.
Использование
гипотезы
о
простейших
входящих
потоках
и
экспоненциальном распределении времени обработки запросов программ в
устройствах ВС приводит к тому, что характеристики системы, определяемые на
основе экспоненциальных сетей, оказываются приближенными. Поэтому
экспоненциальные сети используются для определения только средних значений
характеристик ВС. Причем определяемы таким образом средние характеристики не
более чем на 10-15% отличаются от реальных, что вполне приемлемо при
инженерных исследованиях. К тому же следует иметь в виду, что чем сложнее
структура сети, чем больше связей между составляющими ее системами, тем точнее
полученные результаты. Этот факт - следствие приближения суммарных потоков,
входящих в каждую из систем сложной сети, к простейшим потокам.
Параметры стохастических сетей.
Стохастическая сеть определяется следующей совокупностью параметров:
1. числом n систем массового обслуживания S1, S2,..., Sm образующих сеть;
2. числом каналов (обслуживающих приборов) K1, K 2,..., K m входящих в
системы S1, S2,..., Sm;
3. матрицей вероятностей передач P = [pij], где pij - вероятность того, что
заявка, покидающая систему Si, поступит в систему Sj (i,j =1,2,...,n);
4. числом М заявок, циркулирующих в замкнутой сети, или интенсивностью
0 источника заявок S0 в разомкнутой сети;
5. средними длительностями обслуживания заявок V1,..,Vn в системах S1,...,Sn.
Рассмотрим физический смысл и способы определения перечисленных
параметров при построении стохастических сетевых моделей ВС.
Количество систем и каналов
Количество n систем, каналов K1,...,Kn в системах S1,...,Sn и связи между этими
системами определяют конфигурацию сети. Выбор данных параметров зависит от
цели исследования, налагающей соответствующие ограничения на степень
детализации моделируемых вычислительных процессов. Обычно число систем
26
сетевой модели равно числу устройств обработки информации, входящих в ВС. К
таким устройствам относят процессоры, селекторные (СК) и мультиплексные (МК)
каналы. Количество каналов (приборов) в системе массового обслуживания (СМО)
определяется числом однотипных устройств ВС. Например, два одинаковых
процессора ВС, обслуживающих заявки с одинаковыми характеристиками из общей
очереди, представляются двухканальной СМО. Каждый СК с подключенным к нему
внешним запоминающим устройством (ВЗУ) рассматривается как одноканальная
СМО.
МК с подключенными к нему устройствами ввода - вывода (УВВ)
представляется в виде многоканальной СМО с количеством каналов, равным числу
УВВ. Это объясняется тем, что МК обеспечивает совмещенную работу УВВ,
подключенных к различным подканалам.
Матрица вероятностей передач.
Связи между СМО, входящими в сеть, устанавливаются на основе анализа
порядка следования этапов обработки заявок в ходе вычислительного процесса. Для
отображения связей между СМО сети удобно использовать направленный граф
передач, вершины S1,...,Sn которого соответствуют одноименным СМО, а дуги связям между ними. Передача заявки в сети из системы Si в систему Sj после
завершения этапа обработки этой заявки в системе Si отображается на графе дугой,
исходящей из Si и входящей в Sj. В случаях, когда заявка может быть передана из
одной СМО в несколько других СМО, возникает неопределенность в выборе
направления передачи. Для устранения неопределенности дуги графа передач
взвешиваются вероятностями передач Pij, которые образуют матрицу Р, размерность
и элементы которой определяются видом сети.
Разомкнутая сеть содержит n СМО и источник входящего потока S0, который
можно рассматривать как СМО с бесконечным числом заявок и интенсивностью их
обслуживания 0. Замкнутая сеть также содержит n СМО и в ней выделяется
фиктивный источник S0, который можно представить в виде СМО с нулевым
временем обслуживания заявок, поступающих на ее вход с интенсивностью 0.
В результате матрица вероятностей передач разомкнутой и замкнутой сети
состоит из (n+1) строк и (n+1) столбцов:
S0
P  S1
Sn
S0
P00
P10
...
Pn 0
S1
P01
P11
...
Pn1
...
...
...
...
Sn
P0 n
P1n
...
P00
Вероятность передачи заявки из системы Si в систему Sj равна доле потока,
поступающего из системы Si в систему Sj.Так как в сети заявки не теряются и заявка,
выходящая из системы Si обязательно попадает в некоторую другую систему Sj, то
должно выполняться условие:
n
P
j 0
ij
 1 , i = 0,1,...,n
таким образом, сумма элементов каждой строки матрицы равна единице, то
есть эта матрица стохастическая.
27
Вероятности Pij определяют порядок циркуляции заявок в сети и имеют
следующий смысл. Пусть ij - среднее количество обращений от устройства,
моделируемого системой Si сети, к устройству, моделируемому системой Sj сети, за
время решения одной задачи. Общее количество этапов обслуживания заявок в
системе Si сети:
n
а i   α ij , i = 0,1,...,n
j 0
В таком случае Pij 
α ij
a ij
, то есть Pij - это доля проходящих через систему Si
заявок, которые направляются в систему Sj. Если все заявки, обслуженные системой
Si, поступают в систему Sj, то Pij=1. Если система Si не связана по входу с системой
Sj, то Pij=0.
Интенсивности потоков и коэффициенты передач.
Вероятности
передач Pij однозначно определяют соотношения между
интенсивностями потоков заявок, циркулирующих в сети и, в частности,
поступающих на входы систем S0,...,Sn сети. Интенсивности 0,...,n потоков заявок,
поступающих в системы S1,...,Sn, определяются средним числом заявок,
поступающих в единицу времени в эти системы.
Будем рассматривать только установившийся режим. Тогда среднее число
заявок, поступивших в систему Si за некоторый промежуток времени, равно
среднему числу заявок, покинувших эту систему, то есть интенсивности входящего
и выходящего потоков для системы Si равны между собой. Интенсивность потока,
входящего в любую систему Si сети, равна сумме интенсивностей потоков ,
поступающих в нее из других систем Sj (j=0,1,2,...,n). Поскольку заявки из системы
Sj поступают в систему Si с вероятностью Pji, то интенсивность потока,
поступающего из Sj в Si, равна Pjij, где j - интенсивность выходящего и,
следовательно, входящего потока заявок системы Sj. С учетом этого на входе
системы Si имеется поток с интенсивностью:
n
λ i   Pji  λ j ;(i=0,1,2,...,n).
j0
Эти выражения представляют собой систему алгебраических уравнений (n+1)
- го порядка, которым соответствует каноническая форма:
(P00  1)λ 0  P10  λ 1  ...  Pn0  λ n  0
 P  λ  (P  1)λ  ...  P  λ  0
 01 0
11
1
n1
n
(*)

..........
..........
..........
..........
..........
........

P0n  λ 0  P1n  λ 1  ...  (Pnn  1)λ n  0
Из этой системы определяется соотношение интенсивностей потоков j и 0 в
виде j=0j0.
Коэффициент 0j называется коэффициентом передачи и определяет среднее
число этапов обслуживания в системе Sj в расчете на одну заявку, поступающую от
источника S0. В дальнейшем в коэффициенте 0j индекс 0 будем опускать: j.
Тогда j=0j0.(**), причем 0=1.
28
Для разомкнутых стохастических сетей известна интенсивность источника
заявок 0. Поэтому система уравнений (*) имеет единственное решение вида (**),
где 0 - фиксированная величина.
Для замкнутой сети ни одна из интенсивностей 0,...,n заранее не известна и в
этом случае определитель системы уравнений (*) равен нулю. Поэтому система
имеет бесконечное множество решений. Однако из (*) можно определить
соотношение интенсивностей потоков i и 0, то есть коэффициенты передач i.
Коэффициенты передач 1,...,n определяются путем решения системы уравнений
(*), в которую подставляется значение 0=1. В этом случае корни 1,...,n системы nго порядка численно определяют значения 1,...,n.
Пример. Определим значения интенсивности j и коэффициентов передач j
для ранее уже рассмотренной разомкнутой сети:
Граф передач этой сети имеет вид:
Матрица вероятностей передач имеет вид:
S0
P  S1
S2
S3
S0
0
P10
0
0
S1
1
0
1
1
S2
0
P12
0
0
S3
0
P13
0
0
Примем: 0=5 с-1; Р10=0.1; Р12=0.4; Р13=0.5.
Подставим эти значения в систему уравнений (*):
29
  5  0.1  λ 1  0
5 - λ  λ  λ  0

1
2
3

0
.
4

λ

λ
1
2  0

 0.5  λ1  λ 3  0
Получаем: 1=50; 2=20; 3=25.
Находим значения коэффициента передач:
α1 
λ
λ1
λ
 10 ; α 2  2  4 ; α 3  3  5
λ0
λ0
λ0
Пример. Определим значения коэффициентов передач для замкнутой сети
следующего вида:
Граф передач этой сети имеет вид:
Матрица вероятностей передач для рассматриваемой сети имеет вид:
S0
P  S1
S2
S3
S0
0
P10
0
0
S1
1
0
P21
1
S2
0
P12
0
0
S3
0
P13
P23
0
Примем: Р10=0.1; Р12=0.4; Р13=0.5; Р21=0.2; Р23=0.8.
Подставим эти значения вероятностей передач в систему уравнений (*):
 λ 0  0.1  λ 1  0

λ - λ  0.2  λ  λ  0
 0 1
2
3

0
.
4

λ

λ

0
1
2

0.5  λ 1  0.8  λ 2  λ 3  0
Получаем: 1=100; 2=40; 3=8.20.
Находим значения коэффициента передач:
α1 
λ
λ1
λ
 10 ; α 2  2  4 ; α 3  3  8.2
λ0
λ0
λ0
30
Моделирование элементов автоматики.
Пожалуй, самым распространенным звеном систем регулирования является
одноемкостное инерционное звено (апериодическое звено, интегрирующая
цепочка):
Если не учитывать влияние нагрузки, ток в цепи
R
U вх
и выходное напряжение равно:
1
R
pC
U вх 1
U вх
U вых 

,
1 pC RCp  1
R
pC
равен I 
Uвх
С
Uвых
обозначим RC=T–постоянная времени цепи и запишем уравнение в виде:
TpUвых+Uвых=Uвх.
Перепишем уравнение в виде: Uвых(Tp+1)=Uвх.
Передаточная функция звена будет такой: W(p) 
U вых
1
.

U вх
Tp  1
Построим модель этого звена. Разобьем ось времени t на малые участки t, как
показано на рис:
Будем считать, что при некотором заданном законе изменения Uвх величина
Uвых меняется, как показано
на рисунке, причем к
текущему моменту времени
tn-1 она принимает значение
в момент времени tn.
Заменяя
в
исходном
уравнении величину dUвых/dt
приближенно
отвечающей ей величиной
(Un-Un-1)/t
и
считая
приближенно
Uвых=Un,
преобразуем уравнение к
виду:
T
U U
n
n 1  U  U
n
вхn  1
t
TUn-TUn-1+tUn=tUвх+(tUn-1-tUn-1)
Un(T+t)=Un-1(T+t)+t(Uвх-Un-1)
t
( U вх  U n 1 )
T  t
t
t

Обозначим К=
если t<<T.
T  t T
Un=Un-1+
Un=Un-1+K(Uвх-Un-1).
31
Этот алгоритм легко реализуется программно. При подаче на вход этой
модели в заданные моменты времени дискретных значений Uвх при достаточно
малых t получается практически такая же характеристика Uвых(t) как и в реальной
RC-цепи.
Может возникнуть вопрос, в каких случаях и чем лучше такая программная
обработка сигналов, чем аппаратная? Иногда она может быть ненужной, в
аналоговых регуляторах проще использовать RC-цепь. Но в цифровых регуляторах
она необходима для отфильтровывания высокочастотных шумов в сигналах,
поступающих на вход регулятора. Цифровая обработка сигналов может быть
полезной и по другим причинам. Например, просто может изменяться
коэффициенты К, если в ходе процесса управления меняется величина Т и нужно
учитывать это при формировании управляющих воздействий. Или же может
оказаться целесообразным для ускорения обработки информации изменять в ходе ее
поступления величину t: брать величины t большими при малых изменениях
входного сигнала и меньшими, если по времени входной сигнал меняется более
резко.
Одним из основных устройств автоматики является регулятор. Построим
модель регулятора. Основной принцип регулирования – по отклонению. Это значит,
что регулятор вступает в действие после того, как произошло отклонение
регулируемой величины Xист от заданного ее значения Xзад или, как говорят, при
наличии рассогласования между заданными и истинными значениями регулируемой
величины:
Xвх=X=Xзад-Xист.
На этом принципе основана работа пропорциональных П-регуляторов, в
которых регулирующее воздействие Xвых пропорционально рассогласованию:
Xвых=CXвх, С – коэффициент пропорциональности.
Может потребоваться достаточно большое рассогласование для того, чтобы
регулятор начал ощутимо воздействовать на объект регулирования. Для устранения
этого недостатка дополнительно вводят воздействие по производной (ПДрегуляторы).
Пусть рассогласование Xвх(t) меняется как показано
на рисунке. На начальном отрезке времени оно мало и
пропорциональный канал регулятора может и не
включиться в работу, однако его производная X’вх(t)
велика и дифференциальный канал начнет сразу ощутимо
воздействовать на объект регулирования, т.е.
динамические характеристики процесса регулирования
улучшаются. Могут использоваться воздействия не только
по X’вх, но и по X’’вх, что также может быть полезным. Это регуляторы, работающие
с предварением, так как они могут вступать в действие тогда, когда отклонение еще
не произошло. В ПД-регуляторах воздействие на исполнительный орган равно:
Хвых=СХвх+ТдХ`вх, Тд - постоянная времени дифференцирующего звена.
Для полного устранения статической погрешности в регулятор вводят гибкую
обратную связь и получают изодромные регуляторы (от греческих слов «изос» –
постоянный и «дромос» – бег). В таких статических регуляторах по сути дела
вводится дополнительное воздействие по интегралу (ПИ-регуляторы) и в них
управляющее воздействие равно:
32
Хвых=СХвх+
1 t
 х dt Tи - постоянная времени интегрирующего звена.
T 0 вх
и
Для объединения преимуществ этих регуляторов строят ПИД-регуляторы,
выходной сигнал которых равен:
x
вых
(t)  Cx
вх
(t) 
dx (t)
1 t
вх
 x вх (t)dt  Tд
T 0
dt
и
Построим модель такого регулятора. Запишем выражение в операторной
форме:
x
xвых=Cxвх+ вх +Tдpxвх
T p
и
Передаточная функция ПИД-регулятора будет такой:
W(p)=xвых/xвх=C+1/Tиp+Tдp
xвх
C
1

1
Tи p
2
Tдp
3
4
xвых
Эта схема может быть основой для программной реализации регулятора.
Реализация блоков 1 и 4 проста, а для блоков 2 и 3 необходимо найти
соответствующие рекуррентные соотношения. С выхода блока 2 снимаем сигнал:
dz
x вх
, т.е. Тиpz=xвх. Дифференциальному уравнению Tи  x вх
dt
Tи p
Δt
уравнение в конечных разностях zn=zn-1+ xвхn-1.
Tи
z=
соответствует
Выходной сигнал блока 3 равен y=Tдpxвх, т.е. имеем дифференциальное
уравнение: Tд
dx вх
 y , которому соответствует уравнение в конечных разностях:
dt
T
yn-1= д (x вхn  x вхn 1 ) .
Δt
При поступлении в следующие один за другим моменты времени входных
сигналов xвх по программе отрабатываются выходные сигналы регулятора xвых. Для
большинства практических задач быстродействия современных ЭВМ достаточно и
приемлема
последовательная
обработка
информации
с
запоминанием
промежуточных результатов.
Скачать