Вы находитесь на странице: 1из 10

Аналитическое моделирование

Содержание
1 Семинар №1. 2
1.1 Способы отображения основной памяти на буферную память. . . . . . . . . . . . . . 2
1.1.1 Буфер прямого соответствия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Секторный буфер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Ассоциативный буфер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Группо-ассоциативный. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Алгоритмы замещения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Первая лекция. 3
2.1 Модели кэш памяти. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Рассмотрим пример: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Оптимальный алгоритм замещения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Алгоритм замещения "Двоичное дерево". . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Моделирование алгоритмов замещения при задании рабочей нагрузки посред-


ством Марковской модели. 5
3.1 Пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 Ещё пример . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Случайный алгоритм замещения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 Организация виртуальной памяти. 6


4.1 Случайный алгоритм замещения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Модель замещения LRU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

5 Смеси Гибсона 6

6 Опережающая обработка информации. 7


6.1 Дискретное распределение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

7 Опережающая выборка информации, vol 2 7


7.1 Геометрическое распределение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2 Модель работы нелинейной программы. . . . . . . . . . . . . . . . . . . . . . . . . . . 8
7.3 Вложенные цепи Маркова. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8 Вложенные цепи Маркова. Произвольная функция распределения. 9

Домашние задания 10

1
1 Семинар №1.
1.1 Способы отображения основной памяти на буферную память.
Выделяют четыре способа отображения адресного пространства основной памяти на
адресное пространство буфера.

1. Прямого соответствия.

2. Секторный

3. Ассоциативный

4. Группо – ассоциативный

Будем считать, что ОЗУ и буферная память разбиты на зоны. Зоны разбиты на блоки, а блоки
на ячейки.

1.1.1 Буфер прямого соответствия.


1. Объем буфера – это объем сегмента.

2. Каждый блок занимает такой же объем, что и в ОП.

3. Каждый блок может быть перенесен только на своё место.

4. log2 C – размер регистра.

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


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

1.1.2 Секторный буфер.


Секторный буфер – развитие буфера прямого соответствия.

• j-тый блок может быть перенесен только в j-тое место k-того сектора.

• В буферной памяти есть биты присутствия.

1.1.3 Ассоциативный буфер.


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

1.1.4 Группо-ассоциативный.
Внутри одного сектора могут быть блоки разных сегментов.
В адресном массиве хранятся номера сегментов из которых были отображены соответствущие
блоки.

2
1.2 Алгоритмы замещения.
1. Случайный.

2. LIFO

3. FIFI

4. Алгоритм используемых блоков (LRU)

5. Оптимальный алгоритм – удаляется элемент, который будет использоваться в наиболее от-


даленном будущем.

K – число объектов
k(k−1)
2
– число триггеров.
Матрица...
Вытесняемым объектом является тот объект, не диагональные члены строки которого явля-
ются нулевым. Корректировка членов матрицы состоит в придании единичных значений строке
соответствующей объекту, к которому осуществлено последнее обращение.

2 Первая лекция.
Чтобы сравнивать вычислительные машины нужно определить критерии сравнения. Нас будет
интересовать в перву очередь производительность.
Способы сравнения:
1. Экспериментальный способ. Мы можем сравнивать скорость выполнения различных за-
дач. В наше время ВМ устроены так, что могут одновременно решать несколько задач.

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


Аналитическое моделирование: на основе математических аппаратов создаются модели систем.

2.1 Модели кэш памяти.


Параметры: время обращения к ОП Tоп , время обращения к БП Tбп , время полного цикла T , P –
вероятность промаха.
Из чего складывается время обращения к памяти? T = Tбп + pTоп
Производительность – обратная величина ко времени. Вероятность промаха должна быть до-
статочно маленькой.
Чтобы оценить производительность необходимо оценить вероятность промаха, так как она
очень сильно влияет на производительность.
Вероятность промаха является функцией от параметров: способы отображения, алгоритмы за-
мещения, прочее.
Что же представляют собой эти обращения к памяти?
Нужно задать трассу адресных ссылок. Рабочая нагрузка задается при помощи множества
параметров, среди которых можно выделить существенные и несущественные. Всё это влияет на
вероятность промаха.
Есть такое понятие как структурированные программы.
1. Следование

2. Переход.

3. Ветвление.

4. Операторы цикла.

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

• Пусть у нас есть только следование.


неудачи 1k 1
p = = = Чем больше m тем лучше, большие блоки уменьшают
всего обращений mk m
вероятность промаха.

• Пусть есть следование и переход вперед.


pi – вероятность того, что после выполнения текущего оператора будет пропущено i − 1
операторов.
qi – вероятность того, что один блок может обеспечить i эффективных обращений.
q1 = 1 − (p1 + p2 + ... + pm−1 )
P P
q2 = p1 (1 − pi ) + p2 (1 − pi ) + ... + pm−1
Оператор следования увеличивает вероятность промаха.

• Пусть есть три операции: пусть способ отображения группо-ассоциативный, а алгоритм


замещения LRU. Объем области (измеряем в блоках), объем кэша. S – параметр ассоциатив-
ности, число областей кэша. Объём кэша равен Vk = V ∗ S.
Параметры рабочей нагрузки. Цикл определяется длиной L – число блоков, образующих
цикл. L – длина цикла в блоках, r – количество повторений этого цикла.

2.1.1 Рассмотрим пример:


Пусть объём области V=8 блоков, и пусть L=30 блоков, пусть S=4. Тогда кэш будет состоять из
32 блоков. Цикл равен 30, так что это примерно 4 области. Будем считать, что цикл начинается с
0, так что у нас остается 2 блока в 4 области, они не заняты.
Рассмотрим блоки, они записываются в кэш. Блоки 0, 8, 16 и 24 записываются в начало области.
На первом цикле будет 30 промахов, на последующих промахов не будет.
Предположим: длина цикла L=34, так что все блоки в кэше не помещаются. Так что на
первом цикле для каждого из 34 блоков было промах. На втором цикле будет 10 промахов. На
следующем тоже, но блоки, в которых происходят промахи сдвинутся.
Вероятность промаха равняется:

l 1
• L ≤ Vk – p = =
lkr kr
l + (l − Vk )
• Vk ≤ L ≤ V – p = (r − 1)
lkr
Vk l∗r 1
• l ≥ Vk + –p= =
S lkr k
S = Vk – чисто ассоциативное отображение. Группо-ассоциативное отображение обеспечивает
меньшую вероятность промаха.

2.2 Оптимальный алгоритм замещения.

4
2.3 Алгоритм замещения "Двоичное дерево".
Пусть имеется 16 блоков в кэше с ассоциативным отображением. Будут дополнительные триггеры,
которые мы изобразим в виде двоичного дерева.
Первый уровень – 8 триггеров (T0/1 , T2/3 , T4/5 , T6/7 , T8/9 , T10/11 , T12/13 , T14/15 )
Второй уровень – 4 триггера (T0/3 , T4/7 , T8/11 , T12/15 )
Третий уровень – 2 триггера (T0/7 , T8/15 )
Четвертый уровень – 1 триггер (T0/15 )
Всего будет 15 триггеров.

Значения этих триггеров равно номеру блока. Если промаха нет, состояние триггеров должно
меняться и обновляться.
Положим, произошёл промах. Пусть последнее обращение было к 11 блоку, а затем произошел
промах. Будет удален блок не из числа нижних блоков. Дальше умножая доходим до нужного
блока, разделяя пополам множества блоков.

3 Моделирование алгоритмов замещения при задании


рабочей нагрузки посредством Марковской модели.
Рассмотрим тракт из виртуальной памяти, оперативной памяти и центрального процессора.
По аналогии с ассоциативным отображением будет ассоциативная организация, а вместо блоков
виртуальная страница.
Введем несколько моделей:
1. Независимая модель: вероятность обращения Pi к i-той виртуальной странице.

2. Марковская модель: Pij , где i – предыдущая страница, а j – текущая.

Рассмотрим модель замещения LRU


Чтобы описать состояние ОП используем вектор длиной S, элементы вектора – номера вирту-
альных страниц в ОП. Слева самая молодая, справа самая старая.
Вводим переменную qi1 ,i2 ,...,iS−1 ,iS

3.1 Пример
S=2, l=3
Al = 6 – шесть вершин графа.
Формула для (q12 = p11 ∗ q12 + p21 ∗ q21 + p21 ∗ q23 ) остальные выстраиваются по аналогии.
pmiss = p13 ∗ q12 + p12 ∗ q13 + p32 ∗ q31 + p31 ∗ q32 + p21 ∗ q23 + p23 ∗ q21

3.1.1 Ещё пример


S = 3, L = 5
q145 = p11 ∗ q145 + p41 (q415 + q451 ) + p41 (q452 + q453 )
S=4, L=9
q6378 = p66 q6378 + p36 (q3678 + q3768 + q3786 ) + p36 (q3781 + q3782 + q3784 + q3785 + q3789 )
Общая формула: qi1 ,i2 ,...,iS−1 ,iS = pi1 i1 qi1 i2 ...+ + pi2 i1

3.2 Случайный алгоритм замещения.


Равновероятно удаляется одна из S страниц в оперативной памяти. Это независимая модель, ве-
роятность перехода pi
Пример

5
l! 3!
CLS = = =3
(l − S)!S! 1!2!
S=2L=3
q12 = (p1 + p2 )q12 + 12 p2 q13 + 21 p1 q23
qmiss = p3 q12 + p2 q13 + p1 q23
Пусть теперь S = 3 L = 4
q123 = q123 (p1 + p2 + p3 ) + 13 p2 + 13 + 1
3
S=2L=4
12 13 14 23 24 34
q12 = q12 (p1 p2 ) + 12 (q23 + q24 )

4 Организация виртуальной памяти.


Оперативная память разбита на страницы. Виртуальная память также разбита на страницы,
и их там больше. Страницы памяти больше блоков, причём на порядки.
Не смотря на то, что любая страница ВП может быть отображена в любую страницу ОП,
отображение не называется ассоциативным. В любой момент времени только часть страниц ВП
находится в ОП. Это приводит к промахам, нам нужно использовать алгоритм замещения.
При моделировании кэша мы учитывали рабочую нагрузку, вероятность обращения к блоку.
Пусть pi – вероятность обращения к i-той странице. Вероятности обращения к страницам неза-
висимы.
Можно иначе: пусть pij тогда обращение к странице зависит от предыдущей.
Рассмотрим три алгоритма замещения: случайный, LRU, двоичное дерево.
4.1 Случайный алгоритм замещения.
Пусть есть 3 страницы ВП и 2 страницы ОП n = 3; m = 2. Возможные комбинации: 12 13 23,
используем сочетания Cnm , порядок не важен.
Составляем граф, вершинами будут состояния, а ребрами возможные переходы. Пусть обраще-
ния независимы, так что если ОП находится в состоянии 12, то с вероятностью p1 + p2 оказываемся
в том же состоянии, а с вероятностью p3 получаем промах. С вероятностью 1/m удаляется одна из
страниц в памяти, и замещается нужной страницей ВП. Надо определить вероятность промаха.

4.2 Модель замещения LRU.


Пусть есть n страниц ВП и m страниц ОП. Пусть n = 3; m = 2; Число состояний определяется
числом размещений, то есть для данного случая их будет 6. Также есть вероятности p1 , p2 , p3 .
Страницы обозначены как:

12 13 23
21 31 32

Слева у нас будет текущая страница, справа предыдущая.


pi1 i2 i3 ...im = pi1 ∗ pi1 i2 i3 ...im + pi−1 ∗ pi2 i1 i3 ...im + pi1 ∗ pi2 i3 i1 ...im + pi1 ∗ pi2 i3 i4 i1 i5 ...im + pi1 ∗ pi1 i2 i3 ...im i1

5 Смеси Гибсона
Как оценить производительность системы?
Самый ранний подход: бралась известная задача, время решения которой известно на опреде-
лённой машине, и запускалась на новой машине. Затем оценивали прирост производительность
исходя из разницы во времени.
Смеси гибсона: Было известно время проведения операции и частота её появления.

6
6 Опережающая обработка информации.
Рассмотрим тракт вида: ОП -> БП(кэш)->ЦП
Времена выполнения команд в ЦП и время выборки ОП непостоянны. Можно взять какое-то
минимальное и максимальное значение, и утверждать что время изменяется в этом диапазоне.
Также будем считать что работа с буфером идёт за нулевое время.
Время
P выборки команд из ОП: Top = t1 −→ p1 , t2 −→ p2 , tk −→ pk
pi = 1
Время работы ЦП: Tcp = τ1 −→ q1 , τ2 −→ q2 , τk −→ qk
P
qi = 1
6.1 Дискретное распределение.
1 −→ q
Рассмотрим пример: TОП = 2 TЦП =
3 −→ 1 − q

7 Опережающая выборка информации, vol 2


Пусть есть процессор и память, с определенным временем работы, фиксированным или нет
(тогда есть разные вероятности того, сколько будет обрабатывать команду процессор или сколько
она будет читаться из памяти). Построим модель, с использованием ТМО (или теории очередей).
Ещё у нас будет буфер, размеров n.
7.1 Геометрическое распределение.
Геометрическое распределение определяется двумя параметрами.
Есть параметры τ − время π − вероятность
То есть некое действие будет выполняться на протяжении времени τ с вероятностью 1 − π
τ 1−π
2τ (1 − π)π
3τ (1 − π)π 2
iτ (1 − π)π i−1
Условно, чем больше τ тем меньше вероятность такого события.
Матожидание для геометрического распределения:
τ
Mδ = τ (1 − π)(1 + 2π + 3π 2 + 4π 3 + ...) =
1−π
tA2 τ /(1 − π)
Нас интересует производительность системы S = , A2 =
веротяностьA2 времяA2
1
S=
(1 − π)(1 − P100 )
tA1 2
S= =
вер.A1 1 − p0n1
p100 = (1 − π)P201 p201 = P100 + (1 − π)P101
p1i1 = πP2i1 + (1 − π)P2i1 , i = 0...n − 1

7
7.2 Модель работы нелинейной программы.
Есть процессор, есть память, процессор выставляет адрес, команда считывается с опережением.
Мы находимся в точке i, это номер команды, которую должен выполнять процессор. При это
считываются и i-тая команда, и i+1, и дальше, насколько возможно. Если это операции типа сло-
жения, то в счётчике команд мы всегда прибавляем δ, и считываем дальше. Это пример линейной
программы.
Иногда процессор должен совершить переход, процессор переходит с i-той на j-тую команду,
так что i+1 будет уже не нужно. В таком случае информацию в буфере нужно будет аннулировать.
В связи с этим нужно будет выяснить, как это влияет на производительность машины.
Положим, мы попали на команду уловного перехода (ветвления), как же нам поступить?

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

2. Выбирают следующий путь (по умолчанию), если информация будет не нужна, её придётся
уничтожить.

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

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

Так вот, процессор вырабатывает адреса, они передаются в ОП, идёт загрузка. Среди команд
могут быть как и команды следования, так и команды ветвления.
Рассмотрим вариант без блокировки. Даже встретив ветвление продолжим загрузку из
памяти в буфер по "дефолтному"пути, то есть подряд, не переходя. С вероятностью  происходит
нарушение порядка, а с вероятностью 1 −  нарушения порядка не будет.
Пусть времена работы процессора и памяти случайны и подчинятся экспоненциальному рас-
пределению. Пусть есть состояния системы, обозначенные как i = {0, 1, ..., n, n + 1, n + 2} Пусть
есть переходы между состояниями.
Представим, что было состояние 5 (4 команды в буфере, одна обрабатывается.) C вероятностью
 информация уничтожается, и мы переходим в состояние 0.

pi (t + δt) = pt (t)(1 − λδt − µδt) + pi−1 (t)λδt + pi+1 µδt + o(δt)


Тогда вероятность удаления кэша – µδt
p0 (t + δt) = pt (t)(1 − λδt) + p1 (t)µδt + µδt(p2 (t) + P3 (T ) + ... + PN +2 (T )) + o(δt)
pn+2 (t + δt) = pn+2 (t)(1 − µδt) + pn+1 (t)λδt + o(δt)

При  равном 0, всё это переходит в линейную форму.


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

7.3 Вложенные цепи Маркова.


Одно из свойств экспоненциальной функции распределения – время до обслуживания не зависит
от того, как долго оно продолжалось до этого.
Будем рассматривать систему в специальные моменты времени, и в эти моменты система будет
вести себя как марковская система.
Будем наблюдать системой в момент времени непосредственно перед выходом заявки из устрой-
ства A1 , или в момент времени τ − 0.
Следущее наблюдение будет перед появлением следующей заявки.

8
Система изучается при условии n = ∞
Могут быть состояния 0,1,2...n,n+1,n+2;
qi – Вероятность того, что за время обслуживания заявки в устройстве A1 , устройство A − 2
обслужит i заявок.
1 − q0 q0 0 0
P1
1 − j=0 qj q1 qo 0 0
1 − 2j=0 qj q2 q1 q0 0
P

Pn
1− j=0 qj qn ... ... ... q2 q1 q0

8 Вложенные цепи Маркова. Произвольная функция


распределения.
В качестве специального будем считать время непосредственно перед появлением команды из
ОП. Наблюдать будем в специальное время, а не когда попало.
Поведение системы при таком наблюдении будет являться марковским.
Вводим некоторые значения, чтобы описывать систему:
pj – вероятность того, что в системе БП + ЦП находится j команд в момент времени перед появ-
лением очередной заявки из ОП.
qj – вероятность того, что за время выборки одной команды из ОП ЦП выполнит ровно j команд.
Поведение системы может быть описано при помощи матрицы переходных вероятностей. Для
этой матрицы обозначим возможные состояния. Также пусть будет состояние n+1, когда заполнен
буфер. Скопируем туда состояние n.

9
Домашние задания
1. Пусть n = 5; m = 3, нарисовать граф.

2. Правило Лопиталя.

10