Лекции
.pdfрует его и запускает для работы с ресурсом. Таким образом ресурс находится во владении только одним процессом в момент времени. Для процессов данный механизм невидим, как они выполняли свои треки, так они и остаются.
31
4.3Потоковые схемы
Заняв один ресурс процесс стремится занять следующий ресурс. В системе по сути у нас есть только ресурсы, множество ресурсов, то процессы можно представить как последовательность захвата ресурсов. У процессов нет собственного пространства параметров. Переда каждым ресурсом ставится контроллер.
Рис. 20. Сеть ресурсов и поток инициаторов в ней.
Когда все процессы реализуются через ресурсы, такие схемы называются потоковыми схемами. Существуют разные формальные схемы этих сетей.
Сети Петри - в качестве ресурсов (т.е. контроллер+ресурс) используются
простейшие логические функции. Контроллер использует эти логические функции для синхронизации потоков (например, дизьюнкция - оба должны пройти на вход). Понятие очереди в сетях Петри отсутствует. Можно формализовать как один конечный автомат. Используется для определения тупиковых ситуаций в сложных процессорных сетях или параллельных алгоритмах или другие логические противоречия. Обычно используются функции: и, или, не.
Сети Наура - ???? приведено как пример.
Сети массового обслуживания - контроллеры имеют любые функции или
алгоритмы. В вершинах сети стоят системы массового обслуживания (СМО), здесь это абстрагируются как контроллеры. Сеть массового обслуживания - СеМО.
32
5Лекция 5. 01.10.2013
5.1Псевдоязык описания сцепленных процессов (ПОСП)
Идентификатор - последовательность букв, цифр и некоторых символов (_,-
,), начинающаяса с буквы. Типы идентифакторов:
простой (Tñâ, ЦИКЛ, канал1 ...)
составной (Канал_сломан, ...)
стандартный (SIN, EXP, SQRT, ЦЕЛОЕ...)
системные стандартные
::= ВРЕМЯ; RAND; ИНИЦИАТОР
Запись любого оператора завершается символом ";". Любой оператор может быть помечен меткой.
Метка - идентификатор; метка отделяется двоеточием от оператора. Список - линейная последовательность элементов, разделенных запятой. Строка символов - любая последовательность символов, помещенная в
кавычки.
Âидентификатора разрешается использование букв и символов любых алфавитов, но первый символ обязательно символ, со второго можно цифры.
Âвыражениях могут использоваться знаки и символы любых операций из области математики, лингвистики и пр.
Запись операторов языка сопровождается служебными словами, которые пишутся русскими буквами и выделяются жирным шрифтом (а в рукописных текстах - подчеркиваются).
5.1.1Типы объектов языка
Объекты языка:
33
простая переменная;
переменная;
áëîê;
инициатор.
Каждый объект имеет òèï, èìÿ è значение. Имя объекта - идентификатор. Значение объекта - его содержание.
Тип простой переменной:
скаляр;
ссылка;
метка.
Тип переменной:
вектор;
пространство.
Тип блока:
агрегат;
процессор;
контроллер;
параметры.
Тип инициатора: ссылка.
Скаляр - одно неделимое значение. Это - число, логическое значение либо строка символов.
Синтаксис:
<список имен простых переменных> - скаляр(ы)
34
Ссылка - простая переменная типа скаляра, значением которой является адрес объекта.
Синтаксис:
<список имен простых переменных> - ссылка(и)
Метка - простая переменная типа скаляра, значением которой является адрес помеченного ею оператора.
Синтаксис:
<список имен простых переменных> - метка(и)
Вектор - линейно-упорядоченная совокупность скаляров либо векторов (определение рекурсивно).
Синтаксис:
<список имен переменных> - вектор(<список элементов описания вектора>)
<элемент описания вектора> ::= <левая граница>-<правая граница>- <тип>
<левая граница>, <правая граница> ::= целое число
<òèï> ::= вектор|скаляр|ссылка|метка|пространство
Пространство - N-мерная совокупность однотипных переменных.
Синтаксис:
<список имен переменных> - пространство (<список элементов описания пространства>-<тип>)
<элемент описания> ::= <левая граница> - <правая граница>
<левая граница>,<правая граница> ::= целое число
35
5.1.2Описание блока
Синтаксис:
блок - <тип блока><имя блока> описание
<список групп описаний>
все описание; алгоритм
<программа>
все алгоритм; все блок.
Где <тип блока> ::=
агрегат | процессор | контроллер | параметр
<список групп описаний> содержит группы описания параметров с указанием: внешние, внутренние, типы, внешние блоки, метки, а также необходимые комментарии и договоренности.
При описании типов внешних переменных в блоке допустимо после указания типа добавить имя блока , которому они принадлежат.
<программа> - последовательность операторов ПОСП.
5.1.3Операторы ПОСП
Над параметрами могут выполняться любые арифметические и логические операции.
Арифметическое (логическое) выражение есть последовательность арифметических (логических) операций над параметрами, имеющая целью получить некоторое конкретное числовое (логическое) значение.
Полученное значение присваивается переменной с помощью оператора присваивания.
<список переменных> := <выражение>;
Безусловный навигационный оператор Синтаксис: направить ИНИЦИАТОР на <метка> [блока <èìÿ>];
36
Последняя часть может быть опущена, если эта операция происходит в одном и том же блоке.
Безусловный навигационный оператор Синтаксис: åñëè <логическое выражение> то направить ИНИЦИАТОР на <метка> [иначе на <метка> ];
Последняя часть может быть опущена, если инициатор продолжает движение по треку.
Векторная форма условного навигационного оператора Синтаксис:
åñëè |
|
B1 направить ИНИЦИАТОР на |
<метка> |
: |
|
BN направить ИНИЦИАТОР на |
<метка> [иначе направить на <ìåò- |
êà>]; |
|
где B1..BN - логические выражения. |
|
Оператор задержки инициатора
(оператор условия продвижения инициатора)
Синтаксис:
ждать <логическое выражение>; Оператор задерживает инициатор до выполнения логического условия. Усло-
вие может содержать переменную ВРЕМЯ.
Векторная форма оператора задержки инициатора
Синтаксис:
ждать
B1 направить ИНИЦИАТОР на <метка>
:
BN направить ИНИЦИАТОР на <метка>; где B1..BN - условные выражения.
Этот оператор совмещает функции двух последовательных операторов: оператора условия продвижения инициатора и векторного навигационного оператора.
Оператор активизации инициатора
Синтаксис:
37
активизировать инициатор из <имя простой переменной типа ссылки> â áëîê <имя блока> на метку <метка>;
Оператор активизирует параметр типа ссылки, превращая его в инициатор и направляя на сцепление с помеченным оператором указанного блока.
Оператор пассивизации инициатора
Синтаксис:
пассивизировать инициатор в параметр <имя параметра>; Оператор создания объекта
Синтаксис:
создать <имя объекта> òèïà <тип>; Оператор создает объект указанного типа и вводит его в программу.
Оператор уничтожения объекта
Синтаксис:
уничтожить <тип объекта> <имя объекта>; Оператор уинчтожает объект с заданным именем и выводит его из програм-
ìû.
Оператор присвивания значения ссылке
Синтаксис:
<имя ссылки> := ссылка на [тип объекта] <имя объекта> Ссылке присваивается адрес объекта.
Оператор разыменования ссылки
Синтаксис:
<имя ссылки> ! <тип переменной> [<место нахождения>]
Оператор позволяет по ссылке определить значение переменной указанного типа.
Определение комментария
Комментарии могут вводиться в любом месте прогммы и отделяются от операторов двойным слешем (
)
38
6Лекция 10. 5.11.2013
6.1Генерация случайных чисел
Виды генераторов:
Физические генераторы случайных чисел; Если строб-сигнал достаточно
длинный, то получаем вероятность 1 и 0 примерно 50/50. Итого в регистре будет равномерное распределение.
Генераторы псевдослучайных чисел - программные генераторы, не физи- ческие числа;
39
6.2Проверка генераторов случайных чисел
Алгоритмов генерации псевдослучайных чисел много, их надо проверять перед использованием. Две проверки базовые: на равномерность, на коррелируемость.
6.2.1Проверка на равномерность
Строим гистограмму, если гистаграмма получилась равномерная, то проверка пройдена. Обычно делают 10 интервалов. Если мы берем тысячу случайных чисел, то на каждый интервал должно в среднем попать по 100 точек. Если то- чек мало, то придется пользоваться распределением Стьюдента, лучше кинуть точек побольше.
6.2.2Провека на коррелируемость
Рис. 21. Матрица парной корреляции
Проверяем связанность чисел в этой последовательности. Должна быть нулевая корреляция, здесь мы проверяем последовательную парную корреляцию
40