Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Дроздов Е.А. Основы построения и функционирования вычислительных систем

.pdf
Скачиваний:
15
Добавлен:
25.10.2023
Размер:
14.65 Mб
Скачать

отражает требование, чтобы каждый блок информации был распределен в ЗУ.

Любой набор tfk,

Vih, удовлетворяющий ограниче­

ниям (6-38) — (6-42),

является решением. Набор уh, Ѵщ,

для которого полная стоимость С ВП минимальна, яв­ ляется оптимальным решением. Мы будем искать опти­

мальное

решение.

 

 

Сформулированная за-

 

 

 

 

 

 

 

'

'

 

~ "

"

дача

является

 

задачей

 

Корень

0-й уробещ,

 

целочисленного

програм­

 

 

 

 

мирования ЦП. Для ре­

 

 

 

 

 

 

 

 

 

 

 

 

шения

данной

задачи

ис­

 

 

 

 

 

 

пользуем

 

метод

ветвей и

 

 

 

 

 

 

границ

[Л.

52,

 

53].

Он

 

 

 

JL'ÏL^JL—"—

 

состоит в

последователь-

 

 

 

 

ном

разбиении

 

множе­

 

 

 

0

 

 

ства всех

решений

на

все

Рис.

6-5. Граф

последовательного

более

мелкие

подмноже­

разбиения

множества решений

на

ства,

пока

не

будет

най­

 

 

подмножества.

 

 

дено

оптимальное

реше­

 

 

 

 

 

 

 

 

 

 

 

 

ние.

Для

определения

направления,

поиска

для

каждого

подмножества

ре­

шений вычисляется нижняя граница стоимости

С. Под­

множества условно

представляются

вершинами

гра­

фа-дерева. Разбиениям текущего подмножества реше­ ний на более мелкие соответствуют ветвления в дереве. Корнем дерева называется вершина 0-го уровня. Вер­ шина, ответвляющаяся от вершины і-го уровня, называ­

ется вершиной

1 + 1-го

уровня (рис.

6-5).

 

 

Определение

множества

решений в

вершине

L . Рас­

смотрим вершину г-гсГуровня, например вершину L . Пусть

t/д,, yN_v---,

yN_t+l

 

есть

количества

модулей

ЗУ

типа N,

N—X,

N

 

в

множестве

решений,

соответст­

вующих вершине

 

L . Величины yN, yN_v

 

yN__i+i явля­

ются определенными неотрицательными

целыми числами,

например

yN = y'N,

yN_x—y'N_v

....

yN_i+x

=

y'N_i+v

Для

оставшейся

части

данного

множества

решений

делаем

допущение,

что

емкости

ЗУ

типов

N — i, N — i1, ...

..., 1, 0 могут быть

произвольными, т.

е. соответствующие

количества

модулей

 

Р

у',

у'0

могут быть

как целыми, так и дробными числами. В частности, как будет показано ниже, если количества модулей yLN_^

3 1 0

и1., . ,, .... и1,

ц'

являются целыми, то данное

множест-

во

решений,

 

соответствующее

вершине L ,

является

оптимальным

решением.

 

 

 

 

 

 

 

 

 

При

ветвлении

вершины L и переходе

соответственно

к вершинам г-f-l-ro уровня количества модулей yLN,

yTN_{ ...

 

yLN_i+l

наследуются

всеми вершинами

* —j—-1 -го уровня,

т. е. величины

yN, yN_v

 

yN_i+i

всех

вершин

t-f-1-го

уровня

принимаются

равными

 

величинам yLN,

y'N_v

•••

... , yN_i+v

Например если вершина L ветвится на вершины

Q

и R,

то

количества

модулей

yN = yLN = yQN

= yRN, ...

- . УН-1+І=УѢ+1=У%-І

 

+

І=УЫ-І+І А л я подмножеств ре­

шений,

соответствующих

вершинам L , R и Q. Множест­

во

решений,

соответствующих

вершин

L , есть

подмно­

жество

решений

задачи

ЦП, в которой количества

моду­

лей ук = у^ для k = N,

N —

 

 

 

 

 

 

Определение

 

границы

для

множества

решений

в

вер­

шине L . Для вершины L задача

ЦП заменяется

задачей

ЛП путем замены ограничений (6-40) и (6-41) в задаче

ЦП на следующие

ограничения:

 

 

Vih^O,

Vik — не

обязательно

целые для всех i,

k;

 

Уъ = у\, k = N, N-l

tf-i+l;

 

Ук^О,

уи — не обязательно целые для k = Nі,

1.

Пусть стоимость CL равна значению стоимости С, полученной в результате решения задачи ЛП для вер­ шины L . Тогда стоимость Сь является нижней границей стоимости ВП для множества решений, соответствующих вершине L .

Решение задачи ЛП для вершины L . Определим тре­

буемое среднее время выборки

для ВП, составленной

из ЗУ типов N—i, N—i—1, . . . , 1,0, равным

N

M

k=N—i+\ i=l

Тогда, если время Ть<0, то множество решений для вершины L пусто, так как нарушается ограничение на время (6-37). Поэтому вершину L в дальнейшем не рас­ сматриваем.

Предположим, что время TL^0. Тогда задачу ЛП

для вершины L сформулируем так. Пусть задано и мо- h 311

дулей ЗУ типа k

{k = N,

N—i+\)

и требуемое сред­

нее время

выборки — Т'-.

Требуется

пайги такие емкости

ЗУ типов

N—і,

1, 0

и так распределить блоки ин­

формации, чтобы среднее время выборки из ВП, состоя­

щей

из

ЗУ

типов

N—і,

1,

0, не

превосходило

время

TL,

а

полная

стоимость

ВП

была

минимальной.

При решении данной задачи предполагается, что ЗУ типов Л/—і, 1, О могут иметь произвольные емкости.

Очевидно, что блоки информации с малой активностью целесообразно размещать в более медленных ЗУ. Поэтому заданные yL модулей ЗУ типов k(k = N, /V —

заполним следующим образом. Из всех оставшихся бло­ ков выберем тот, который имеет наименьшую активность. Его поместим в самое медленное ЗУ. Данную операцию

будем повторять до

тех пор, пока не заполним все

у''

модулей

(k = N,

N—t'+l).

В результате

информация,

заполненная в ЗУ типов N,

N

— н

е

будет

зави­

сеть

от

количества

модулей

ЗУ

типов

k

(k — N—i, ...

 

1,0)

во ВП. Поэтому числа блоков

информации

Ѵ\к

для

всех і и k = N,

 

N—і+\

принимают определен­

ные

положительные

 

целые

значения,

например

Vat =

=-VL

. Эти значения

будут

далее

наследоваться

всеми

вершинами, преемниками вершины L .

 

 

 

 

Количества оставшихся

нераспределенных

блоков

найдем по формуле

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

WL

=

Wi-

У

V1.

 

 

 

 

Если принять стоимость блоков модульной конструк­ ции равной

N

G L = S dky';,

a стоимость блоков произвольных емкостей равной

N—i M

312

fc=0

i = l

то полная стоимость ВП определяется как

CL = GL + gL.

Тогда задача для вершины L состоит в минимизации стоимости

N—i м

gL = Cft Yi Vi*-

fc=0 (=1

при ограничениях на среднее время выборки

N—i м

ЯТЬѢРІѴІ^Т1-

fe=0

j = l

и распределение блоков информации

 

 

ѴІЬ^О,

Vis —любые.

 

 

 

Данная задача является задачей ЛП и для ее реше­

ния применим

алгоритм ЛП (см. § 6-5).

 

 

 

•В результате решения

найдем

Сь—нижнюю

границу

стоимости

для

вершины

L

и

количество

 

модулей

уъ.

(k = N—і,

 

1, 0), которые

могут быть

дробными

и

целыми.

 

 

 

 

 

 

 

 

При последующем ветвлении из вершины L для

количества

модулей уы-і

будем

задавать

определенные

целые значения. Рассмотренные шаги вычислений объе­

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

 

 

 

Алгоритм

решения

задачи

целочисленного

програм­

мирования

(алгоритм

ЦП). Исходное

состояние. Строим

корень дерева. Предполагаем,

что ЗУ

всех

типов могут

быть произвольных емкостей. Решаем задачу ЛП. По формуле (6-17) находим полную стоимость ВП — С, ко­ торую принимаем за нижнюю границу, и количество мо­ дулей уh (k = 0, 1, N). Если все уи получились це­ лыми, то они составляют оптимальное решение. Задача решена.

В противном случае

осуществляется следующее:

1. Среди вершин дерева, из которых не выходит ни

одной ветви, выбираем

вершину с минимальной нижней

313

границей,

например L . Если для вершины L все

yT^(k—0,

1,

N)

целые, то они составляют оптимальное

реше­

ние.

Задача решена.

 

Mo des. вления

После

ветвления

Р и с . 6-6.

В е г в л е н и я в е р ш и н L и S .

2. Производим ветвление из вершины L . Пусть вер­ шина L находится на і-м уровне (рис. 6-6). Проводим из вершины L ветви к двум вершинам Q и R, для которых количества модулей соответственно равны: у^_{—[у^_і] и

 

=

[yjv-j +

1 > г д е

 

 

наибольшее

целое

число

такое, что [yN_^ <

 

Для вершин Q и R решаем за­

дачу ЛП. Находим соответственно стоимость CQ коли­

чества модулей yQ,

 

 

и стоимость

CR

количест­

ва

модулей

у*,

 

 

у%_і_г

 

 

 

 

 

 

 

 

 

 

3.

Ветвление

из вершины,

предшествующей

 

вершине

L .

Пусть

S — вершина,

предшествующая

вершине

L

(рис. 6-6).

Если

из

вершины

S

не

выходят

ветви

к

по­

следующим

вершинам, в

которых

количество

 

модулей

УІЧ-І+\

должно

быть

равно

количеству г/^_і + 1 -(-1

(или

#jv-j+i

~ 1> е с л

и

і/ы-і+х

1 ^0)> т

о

и з

вершины

5

прово­

дим ветвь

к

новой

вершине

U,

для

которой

 

yN_i

+ l

=

=

Уы-і+ і =

Уы-і+і + 1

(или

Уя-і + і -

О-

 

 

 

 

 

 

Пункты 1, 2, 3 повторяем

до

тех

пор,

пока

задача

не

будет решена,

 

 

 

 

 

 

 

 

 

 

 

Доказательство оптимальности алгоритма ЦП.

Предположим, что G* (q) есть значение стоимости С, по­ лученное при решении задачи ЛП для вершины L с до-

314

полнительньім ограничением: количество модулей

yN_.=±

— q. Тогда стоимость G* (q) есть выпуклая фунхшп

от q

и стоимость G* (Ум_{) G* (q) для всех q.

 

Из этого следует, что нет необходимости делить множество решений, представленных вершиной L , на два

подмножества,

в которых

количество модулей

yN_-t^

^ [УІѵ-il и УN—i3 3

1 '

т а к к а к минимальное значе­

ние стоимости С для подмножества решений, в котором

количество

модулей yN_t <

У к е получено для

i / j v - ^ ^ - i l

и аналогично для у ^ . 3* [у£_г] + 1.

Значение стоимости С в решении, найденное с по­ мощью алгоритма ЦП, не превосходит нижнюю границу для любого решения, поэтому оно оптимально.

Пример.

Пусть для

комплекса программ

и

данных,

для

хране­

ния которых строится ВП, известен профиль

 

активности:

 

Тип активности і

 

 

 

1

2

 

 

Активность

РІ

. .

.

0,60

0,05

 

Количество

блоков

i-ü активности Wt .

.

.

1

 

8

 

И пусть задан набор готовых ЗУ модульной конструкции со

следующими

характеристиками.

 

 

 

 

 

 

Тип ЗУ k

 

dh

0

 

1

2

3

Стоимость

модуля

 

4*

 

9

8

1

Емкость модуля Ah

 

 

1

 

3

4

10

Время

выборки Th

 

 

3

 

7

12

30

* Все числа указаны в условных единицах.

 

Для построения ВП требуется определить такое количество мо­

дулей ЗУ каждого

типа — ук

и такое

распределение

блоков

инфор­

мации— Vih

( і = 1 , 2;

& = 0,

1, 2, 3),

чтобы

среднее

время

выборки

ВП

не превосходило

заданного времени — Г т р = 7,5,

а полная стои­

мость ВП была

минимальной.

 

 

 

 

 

 

 

Решение.

На 0-м уровне

строим корень

дерева

(рис. 6-7,а).

 

Определяем стоимость С и количество модулей ЗУ каждого ти­

па

уз, уг, уі,

у0.

Для чего заменяем задачу

ЦП задачей

ЛП . Реше­

ние

задачи

Л П

для

данных

условий

было

рассмотрено

в примере

§ 6-5. По формуле

(6-17) найдем значение

нижней

границы

С = 19.

По формуле (6-39) определим количество модулей для ЗУ каждого

типа

г=1/10; г/2 = 7/4;

г/і = 0;

г/о—1.

 

Так как количества

модулей

Уз и г/г—'нецелые, поэтому переходим

к выполнению 1-го

шага.

Из корня дерева проводим ветви к вершинам А и В (рис. 6-7,6),

которые

располагаем

на 1-м уровне.

Для вершины

А

принимаем

(/з=0

и

с

помощью

алгоритма

Л П

находим С = 19,625;

</2

= 8/4 = 2;

г/і = 0,3/3;

#о=0,7/1. Вершину

В

не

рассматриваем,

так

как

Тв =

= —22,5<0. Так как

yf

и

у£

—нецелые, то переходим

ко

2-му

шагу.

 

 

 

 

 

 

 

 

 

 

 

 

 

Из вершины А проводим ветви к вершинам С и D (рис. 6-7,в),

которые

располагаем

на 2-м

уровне.

Дл я вершины

С

принимаем

315

(/2 = 2 и

находим

С = 19,625;

t/t =

0,3/3; г/0 = 0,7/1.

Для вершины D

принимаем (/2=( 1

и находим

С =

23,11 ; #і = 4,79/3;

г/о = 0,21 /1. Так как

CC<CD

и уі, г/г — нецелые, то перехотим к 3-му

шагу.

Из

вершины

С проводим

ветви к вершинам

Е и F (рис. 6-7,г),

которые располагаем на 3-м уровне. Кроме того, из вершины А про­ водим ветвь к вершине G, которую располагаем на 2-м уровне. Для

вершины Е принимаем

г/і = 0 и находим

С = 20,

г/о=1- Для

вершины

G принимаем

у 2

= 0

и находим

С = 2 7 , г/і = 9/3, г/о = 0.

 

 

исходное

 

 

К{Карень дерева)

0-ù уровень

 

соЬтояйиес=юО

Ветоление из К

 

а)

 

 

 

 

 

 

 

'-и шаг

 

c*l9f\K

 

 

 

о-й уровень

 

 

 

 

 

ц

&(Вершина В)

 

 

 

 

g)

 

c*iS,6}S

''rfj

 

 

1-й уровень

 

 

 

ВетвлениеизА

 

 

 

 

 

 

 

 

 

 

 

 

 

0-й уровень

 

 

 

 

 

 

 

 

 

 

1-й уровень

 

 

Уг'г

 

ИГ'

 

 

 

2-й уровень

 

 

6)

С* 19,625

czsji

ветвление из Си fi

 

 

3-Ъ шае

 

o

-

 

ù

уровень

 

 

 

Уз'О

И

г")в

 

 

1-й уровень

 

 

 

»

С /

\

U >>

я"

 

 

 

 

 

 

 

 

О

 

Пй=;Ѵ: й-в

 

 

г-и уровень

 

 

*/""

 

'-'V,"'

 

 

 

3-" уровень

 

 

_г)^0_

 

 

%±

 

 

 

 

 

 

 

Рис. 6-7. Ветвления

при решении задачи

целочисленного программи­

 

 

 

 

 

 

рования.

 

 

 

 

 

Вершину

F не рассматриваем, так как

TF = — 1 , 5 < 0 .

Замечаем

что СЕ < С° и, кроме того,

= 0,

у% =

2,

г/f=0, =1 — целые, по­

этому данное решение оптимальное. Искомые переменные имеют сле­ дующие значения:

00

= 1

=

0

02 =

2

Уз

 

1

=

0

V,2 =

0

Vu

ѵ2

= 0

= 0

V22 = 8

 

с= 20

316

6-7. ВОПРОСЫ ОПТИМИЗАЦИИ ИЕРАРХИЧЕСКОЙ СИСТЕМЫ

ПАМЯТИ

В современных ВС основная оперативная память (ООП) и внешняя память (ВП) объединяются в систему памяти.

Если ВП соединена с ООП, а ООП соединена с про­ цессором и имеется специальный блок или программа

автоматического

управления

обменом

информацией

ВП — ООП, то такая система

памяти называется

иерар­

хической (ИСП).

 

 

 

 

К построению

ИСП переходят тогда,

когда

требо­

вания хранимой информации с течением времени изме­ няются, вследствие чего их невозможно согласовать с различными характеристиками ООП и ВП, объединен­ ных в централизованную систему памяти подобно рас­ смотренной в § 6-5—6-6.

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

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

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

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

При страничной

организации памяти

пространства

номеров ячеек ООП и ВП разбиваются

на блоки рав­

ных размеров по р

ячеек, называемые

соответственно

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

Количество внешних рамок выбирается равным ко­ личеству страниц k, а количество оперативных рамок обычно меньше k.

3 1 7

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

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

фиксируется

в

таблице

страниц,

называемой еще

по-другому

таблицей отображений. Поэтому обращению

к

памяти

предшествует обращение к

таблице

страниц,

в

которой

номер

запрашиваемой страницы преобразует­

ся в соответствующий номер рамки.

 

 

 

Таблица страниц может располагаться в ООП, ко­

торая имеет

сравнительно

большое

время

выборки,

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

Среди задач оптимизации иерархической памяти при страничной организации и использовании ассоциатив­ ных регистров выделяются две важные задачи: разбие­ ния множества программ и данных на страницы и орга­ низации замены страниц в ООП. Некоторые алгоритмы замены страниц в ООП описаны в работе [Л. 26]. В данном параграфе мы рассмотрим другую задачу: разбиение множества программ и данных на страницы.

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

водиться к ассоциативным регистрам. Кроме

того, и

это наиболее важно, также минимизируется

количество

обменов между ООП и ВП.

 

 

 

Для

удобства

решения данная

задача

разбивается

на две частные задачи: разбиение

множества

программ

и разбиение множества

данных.

 

 

 

Для решения первой задачи может использоваться

метод,

предложенный

в і[Л. 54]. В

данном

параграфе

рассматривается

метод

решения второй задачи.

318

Подлежащее

разбиению множество данных

пред­

ставляется в виде графа G=G(V).

Каждому і-му

адресу

сопоставляется

 

отдельная вершина ѴІ<=Ѵ. Две

вершины

Ѵ{ и V] (/, / = 1

,

q)

соединяются

ребром r= (Vi,

 

Vj),

если

обращения по

і-у и

/-у адресам

при выполнении

про­

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

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

Каждому ребру г= (ѵи и,-) из множества ребер, для которых не указаны вероятности переходов, приписыва­ ется цена сц=\. Оставшимся ребрам приписываются цены, вычисляемые как указано в [Л.- 58].

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

 

Допустимым разбиением графа G называется такое

разбиение

его

вершин V

на k непересекающихся под­

множеств

Vi,

Ѵ2,

Vk,

что для і = 1 , 2,

k выпол­

няется неравенство

 

 

 

 

 

 

 

 

\ѴІ\<Р,

 

 

где

р — есть допустимый

размер

блока;

| V j | — р а з м е р

подмножества

ѴІ

(количество

вершин в

подмножест­

ве

ѴІ).

 

 

 

 

 

 

Подмножества Уг- из V называются блоками. Число блоков k называется размером разбиения. Число £* =

ГІ VI I

='-у- есть нижняя граница размеров разбиения, k*<,k

(символ [х] означает наименьшее целое, не превосходя­ щее х).

Цена разбиения С графа G для всех vt и Vj, распо­ ложенных в разных блоках, определяется как сумма цен Сі-у.

319

Соседние файлы в папке книги из ГПНТБ