Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2024

Просмотров: 306

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

распределении памяти надо исходить из следующего

неравен­

ства:

 

т

 

^ 1 > 2 ^ м а к с ,

(Ю.2)

/=1

 

если по-прежнему рассматривается только первый уровень запо­ минающих устройств.

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

1*1 действ макс>

что и приводит к неэффективному распределению памяти. Вслед­ ствие этого в универсальных многопрограммных ЦВМ постоянное распределение памяти используется редко.

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

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

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

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

оказалось,

что данный

информационный

массив

имеет длину

L = 700. Тогда условные

адреса

могут принимать

значения

от 1

до 700. Пусть также в

процессе

решения

задач

оказалось,

что

свободными

являются ячейки ОЗУ, начиная с номера 5 = 3000.

313


Тогда для получения действительных адресов достаточно реали­ зовать следующую простую формулу:

Ап; = АУ) + В>

(10.3)

где A^j — действительный адрес; Ayj — условный адрес;

У —1. 2...... L.

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

d- 1

(10.4)

где Ва — базовый номер для d-ro информационного массива при счете номеров массивов по порядку ввода их в память.

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

памяти в ОЗУ. Отметим, что

преобразовывать условные адреса

в действительные по формуле

(10.3) целесообразно

не программ­

ным путем,

а с помощью дополнительных базовых регистров,

в которые

помещаются значения fi,-, и сумматора

адресов. До­

полнительная аппаратура несколько усложняет устройство управ­ ления, но уменьшает непроизводительные затраты машинного времени.

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

3U


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

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

Основу страничной, или листовой, организации памяти состав­ ляет разделение запоминающих устройств различных уровней на массивы ячеек одинаковых размеров, т. е. на участки или зоны одинаковой емкости. Такие массивы ячеек называются физически­ ми страницами. Размеры страниц выражаются количеством ячеек памяти, т. е. емкостью EhP, где k определяет номер уровня памяти,

а р —номер

физической страницы. При

принятых условиях £/tp =

= const для

всех значений k и р.

эксплуатации многопро­

Отметим,

что в реальных условиях

граммных ЦВМ универсального типа k обычно принимает только два значения: 1 или 2, т. е. рассматривается оперативная и внеш­ няя память. Выбор величины Ekp зависит от ряда причин, свя­ занных с особенностями используемых запоминающих устройств и принципами обмена информацией между оперативной и внешней памятью; в то же время значение ЕиР оказывает существенное влияние на эффективность использования оперативной памяти и в ряде случаев является параметром, учитываемым при определе­ нии производительности ЦВМ. В ряде машин со страничной орга­ низацией памяти, например в БЭСМ-6, Еьр—1024= 210. Возможно использование страниц с ЕиР = 29 и т. п. Для повышения эффектив­ ности использования оперативной памяти могут использоваться страницы двух размеров при

а =2тЕ&

величина т может иметь значения 3, 4 или 5.

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

Емкость реальных запоминающих устройств, особенно опера­ тивных, выражается числами, равными целым степеням числа два. Поэтому при разделении их на страницы адрес (номер) любой ячейки памяти данного ЗУ легко разделяется на две части, одна из которых указывает номер страницы, а вторая — номер ячейки внутри страницы. Если ОЗУ секционируется, то первая часть (старшие разряды) адреса определяет номер секции, или блока, а вторая часть (младшие разряды) адреса— номер ячейки внутри секции. Пусть £'i = 8192 = 213, а Е [р= 1024= 210; тогда три старших

315


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

Страничная организация памяти обеспечивает значительное упрощение программирования для многопрограммных ЦВМ, так как специальным приемом память обоих основных уровней как бы сводится к памяти единого уровня, к тому же составитель любой рабочей программы полностью освобождается от какого бы то ни было участия в распределении памяти. Этот прием связан с введением понятия математической, или виртуальной (кажущей­ ся), памяти. Математическая память — это совокупность всех ячеек оперативной и внешней памяти, имеющих сквозную нумерацию от О до Лмакс, если Лмакс — предельное значение адреса в математиче­ ской памяти. Если, например £’i=4096, а £ 2= 16777216, то емкость математической памяти EM= Ei + £ 2 = 16781312. Математическая память, как и физическая, разделяется на страницы, причем раз­ меры страниц математической памяти, или размеры математиче­ ских страниц, всегда равны размерам страниц физической памяти, или размерам физических страниц.

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

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

Пусть размеры одной страницы

отвечают значению

Екр = 2,

а количество страниц физической

памяти Кф = 2а. Тогда любой

физический адрес представляется так;

 

Аф== Л^ф. с АС' с

 

или

 

 

Аф = Мф. с 2s + Лс>с,

(10.5)

316


где Л/ф. с — номер физической страницы, принимающий одно из значений от 0 до 2^— 1;

Дс. с — адрес слова (номер ячейки) внутри страницы, прини­ мающий одно из значений от 0 до 2° — 1.

Математический адрес Лм представляется аналогично физиче­ скому:

A

i == К

, с Д . с

 

или

 

 

 

Л, =

Л^,,С25 + Д . с ,

(Ю.6)

где NM.с — номер математической

страницы.

 

Рис. 10.2. Распределение математических страниц по уровням физической памяти

Для осуществления перехода от Лм к Лф необходимо устано­ вить соответствие между номерами физических и математических страниц, т. е. определять номер физической страницы как зна­ чение дискретной функции Мф.с {NM.C) . Значения функции Mi).c(M«.c) формируются при распределении памяти управляющей программой между рабочими программами и записываются в так называемую страничную таблицу, именуемую также таблицей страниц. Содержимое страничной таблицы изменяется при каж­ дом перераспределении памяти между рабочими программами.

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

317

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

Номер математической страницы представляет собой старшие разряды исходного адреса. Для осуществления непосредственного обращения к памяти этот номер используется в качестве входной величины, по которой с помощью страничной таблицы определяет­ ся тип ЗУ и номер физической страницы. Если страничная таб­ лица указывает, что необходимая информация размещена во внеш­ ней памяти, то до непосредственного обращения, т. е. до выборки из памяти соответствующего слова, осуществляется обмен стра­ ницами между внешней и оперативной памятью. Величина Уф.с(Мм.с) в этом случае используется управляющей программой для выборки страницы из внешней памяти.

При предварительном распределении памяти многопрограмм­ ной ЦВМ между пользователями возможен случай, когда каждый из них, составляя рабочие программы, использует математическую память, начиная с нулевой (начальной) страницы. Тогда различ­ ные рабочие программы вместе с исходными данными размеща­ ются в одних и тех же математических страницах, но в различных физических страницах; получается, что одной и той же математи­ ческой странице отвечает несколько физических страниц. Для устранения неоднозначности при переходе от математической к физической памяти в рассматриваемом случае страничные табли­ цы формируются для каждого пользователя. Номер физической страницы определяется как функция номера математической стра­ ницы и номера пользователя Р, т. е. Мф. с = УУф_с (NUmс, Р).

П р е о б р а з о в а н и е с т р а н и ц . О б м е н с т р а н и ц а м и

Преобразование страниц заключается в преобразовании ма­ тематического адреса в физический адрес путем замены в соста­ ве Лм старших разрядов, составляющих номер страницы, по данным страничной таблицы; при этом считается, что страница размещена в оперативной памяти. Такое преобразование может осуществляться программными методами без использования спе­ циальной дополнительной аппаратуры. Однако этот путь приводит к значительным затратам машинного времени и снижению про­ изводительности многопрограммной ЦВМ. В связи с этим при преобразовании страниц широко используются аппаратно-про­ граммные методы, базирующиеся на использовании специальной дополнительной аппаратуры.

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

— для

получения номера физической страницы по заданному

в исходном

адресе номеру математической страницы;

318