магнитных барабанах (МБ) и магнитных дисках |
(МД), третий — |
ЗУ на магнитных лентах (МЛ). Следует отметить, |
что на рис. 10.1 |
показаны только основные связи по обмену информацией; цепи управления обменом здесь не рассматриваются.
Многоуровневая организация памяти многопрограммных ЦВМ обеспечивает наиболее рациональный обмен информацией между их устройствами, уменьшение времени реализации рабочих про грамм. Однако простое разделение запоминающих устройств по различным уровням памяти еще не означает, что производитель ность многопрограммной ЦВМ будет обязательно повышаться. Для этого необходимо принятие дополнительных мер по опти мальному размещению информации в различных запоминающих устройствах и организации обмена ею в процессе решения задач; все это обычно объединяется понятием распределения памяти многопрограммных ЦВМ.
§ 10.2. Распределение памяти
Непосредственная реализация любой рабочей программы мо жет осуществляться только тогда, когда она размещена в одном из ЗУ первого уровня. Действительно, лишь в этом случае воз можна последовательная передача команд как отдельных машин ных слов из памяти в устройство управления для их исполнения. При параллельной реализации нескольких рабочих программ в многопрограммной ЦВМ в каждый момент времени активной, т. е. находящейся в стадии непосредственной реализации, является только одна программа, а остальные активизируются в соответст вии с условиями и принципами, принятыми при формировании управляющей программы. Рабочие программы могут реализовать ся по частям, выделяемым заранее, по мере поступления исход ных данных, в соответствии с жестким разделением машинного времени на реализацию рабочих программ и т. п. Главным же во всех случаях остается то, что в любой момент времени актив ной оказывается только одна рабочая программа. Это означает, что в памяти первого уровня всегда должна находиться по край ней мере одна рабочая программа или ее часть.
Емкость памяти первого уровня всегда ограничена. К тому же в ней постоянно должны размещаться управляющая программа, некоторые стандартные подпрограммы и другая служебная инфор мация. Поэтому достаточность размещения в оперативной памяти только активной рабочей программы или ее части полностью от вечает ограничениям на емкость ОЗУ. Однако к моменту акти визации очередной рабочей программы ее начальный участок дол жен находиться в ОЗУ, так как в противном случае неизбежны простои процессора на время пересылки необходимой информации из ЗУ второго уровня в ОЗУ. С точки зрения достижения макси мальной производительности многопрограммной ЦВМ желательно размещение всех дабочих программ в оперативной памяти, но
практически это возможно только в отдельных случаях вследствие ограниченной емкости ОЗУ.
В соответствии с изложенным при организации работы много программной ЦВМ должна всегда решаться задача распределе ния памяти между различными рабочими программами (пользо вателями). Распределять память можно различными способами, но в любом случае необходимо обеспечивать максимально возмож ную загрузку процессора. С этой целью при распределении памяти добиваются исключения перемещений массивов слов внутри опе ративной памяти и сведения к минимуму количества обменов ин формацией между запоминающими устройствами различных уров ней. Для уменьшения времени простоя процессора при обменах информацией оперативная память секционируется с обеспечением возможности автономной работы ее отдельных секций.
В общем случае рассматриваемая задача ставится так. Пусть имеются массивы информации и массивы ячеек памяти; при этом под массивом информации понимается упорядоченная последова тельность машинных слов, имеющая определенное значение (на пример, программа, участок программы, набор исходных данных
ит. п.), а под массивом ячеек памяти — упорядоченное количество реальных ячеек запоминающих устройств, пронумерованных со ответствующим способом (например, блок ОЗУ, группа ячеек ОЗУ
споследовательными номерами, зона магнитного барабана или магнитной ленты и т. п.). Тогда задача распределения памяти заключается в установлении такого соответствия между массивами информации и массивами ячеек памяти, при котором достигается максимальная при данных условиях производительность много программной ЦВМ.
Сзадачей собственно распределения памяти связаны проблемы программирования для многопрограммных ЦВМ, организации об мена информацией между ЗУ различных уровней, защиты памяти
идругие. Действительно, в зависимости от того, как размещаются рабочие программы, программирование возможно или в действи тельных адресах (программа размещается в заранее известных ячейках ОЗУ), или в условных адресах (программа размещается во внешней памяти или в блоке ОЗУ, который выделяется управ
ляющей программой и заранее неизвестен). Для исключения слу чаев искажения информации за счет «проникновения» одной про граммы в область памяти, отведенной для другой программы, должна осуществляться защита памяти и т. п. Решение этих проблем связано с принимаемыми способами распределения памяти.
С п о с о б ы р а с п р е д е л е н и я п а м я т и
При организации работы многопрограммных ЦВМ с много уровневой памятью основными видами распределения памяти счи таются постоянное распределение и динамическое распределение.
Каждому из этих видов распределения памяти отвечает способ установления соответствия между массивами информации и мас сивами рабочих ячеек памяти.
При постоянном распределении памяти за каждой рабочей про граммой закрепляется вполне определенный участок ЗУ данного уровня, или вполне определенный массив ячеек памяти; в процес се работы машины перераспределение памяти между программами не осуществляется. Постоянное распределение памяти предусма тривается главным образом тогда, когда все рабочие программы могут быть размещены в запоминающих устройствах первого уров ня, т. е. при
( 10. 1)
где Li — длина i-й программы (количество машинных слов, со ставляющих г-ю программу);
т — количество параллельно реализуемых программ; Ех— емкость запоминающих устройств первого уровня.
Для специализированных многопрограммных ЦВМ, предназна ченных для работы непосредственно в системах управления объек тами, постоянное распределение памяти является во многих слу чаях единственно возможным. Так, если собственно рабочие про граммы размещаются в постоянном запоминающем устройстве, то перераспределение памяти между ними в процессе работы ма шины практически невозможно, так как такое ЗУ обеспечивает только выдачу информации, записываемой в процессе изготовления устройства.
Основным достоинством постоянного распределения памяти считается возможность программирования в действительных адре сах, т. е. непосредственной записи всех команд с указанием дей ствительных номеров ячеек используемых запоминающих устройств. Возможность такого программирования имеет суще ственное значение не столько для составителей программ, сколько для упрощения организации работы ЦВМ. Действительно в этом случае любая команда рабочей программы передается для испол нения из памяти в устройство управления без какой бы то ни было предварительной обработки. Исключение необходимости выполне ния дополнительных действий над машинными словами, представ ляющими команды в их первоначальном виде, приводит к эко номии машинного времени, повышению производительности много программных ЦВМ.
Существенным недостатком постоянного распределения памяти считается неэффективное разделение емкости используемых запо минающих устройств между рабочими программами (пользовате лями) при возможных изменениях значений L,- в широких преде лах. Действительно, в этих случаях вместо соотношения (10.1) при
распределении памяти надо исходить из следующего |
неравен |
ства: |
|
т |
|
^ 1 > 2 ^ м а к с , |
(Ю.2) |
/=1 |
|
если по-прежнему рассматривается только первый уровень запо минающих устройств.
В реальных условиях часто оказывается, что действительная длина программы
1*1 действ макс>
что и приводит к неэффективному распределению памяти. Вслед ствие этого в универсальных многопрограммных ЦВМ постоянное распределение памяти используется редко.
Динамическое распределение памяти предполагает свободное разделение емкости используемых запоминающих устройств ме жду рабочими программами при установлении максимального со ответствия между длинами рабочих программ и количеством ячеек в отводимых для их размещения массивах памяти. При динамиче ском распределении рабочие программы обычно разбиваются на участки, или информационные массивы, отвечающие массивам ячеек памяти, поэтому возможно размещение программ в группах ячеек, не составляющих по начальным и конечным адресам групп единой последовательности. Ячейки для размещения участков про грамм выделяются не заранее, а в процессе решения задач.
Итак, динамическим называется распределение памяти, осно ванное на выделении ячеек ЗУ для размещения информационных массивов в процессе решения задач с учетом фактических длин массивов, а также порядка и времени их активизации. Под акти визацией, как и ранее, понимается переход к непосредственной реализации данного информационного массива.
Управление распределением памяти в процессе решения задач осуществляется управляющей программой, учитывающей характе ристики рабочих программ по длинам их участков и порядку акти визации участков и занятость массивов ячеек запоминающих устройств различных уровней. При динамическом распределении Памяти программирование невозможно осуществлять в действи тельных адресах, так как заранее неизвестно, какие ячейки ЗУ будут выделены для размещения информационных массивов. Программирование возможно только в адресах, которые в про цессе реализации программ преобразуются в действительные адреса.
Общий принцип преобразования условных адресов в действи тельные заключается в следующем. Пусть при программировании
оказалось, |
что данный |
информационный |
массив |
имеет длину |
L = 700. Тогда условные |
адреса |
могут принимать |
значения |
от 1 |
до 700. Пусть также в |
процессе |
решения |
задач |
оказалось, |
что |
свободными |
являются ячейки ОЗУ, начиная с номера 5 = 3000. |
Тогда для получения действительных адресов достаточно реали зовать следующую простую формулу:
где 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; тогда три старших
разряда тринадцатиразрядного двоичного адреса определяют но мер страницы (или секции), а десять младших разрядов адреса — номер ячейки внутри страницы.
Страничная организация памяти обеспечивает значительное упрощение программирования для многопрограммных ЦВМ, так как специальным приемом память обоих основных уровней как бы сводится к памяти единого уровня, к тому же составитель любой рабочей программы полностью освобождается от какого бы то ни было участия в распределении памяти. Этот прием связан с введением понятия математической, или виртуальной (кажущей ся), памяти. Математическая память — это совокупность всех ячеек оперативной и внешней памяти, имеющих сквозную нумерацию от О до Лмакс, если Лмакс — предельное значение адреса в математиче ской памяти. Если, например £’i=4096, а £ 2= 16777216, то емкость математической памяти EM= Ei + £ 2 = 16781312. Математическая память, как и физическая, разделяется на страницы, причем раз меры страниц математической памяти, или размеры математиче ских страниц, всегда равны размерам страниц физической памяти, или размерам физических страниц.
Составитель рабочих программ имеет в своем распоряжении только математическую память, считая ее при программировании своеобразной оперативной памятью. Программы поэтому состав ляются в действительных адресах математической памяти; дейст вительные адреса обычно используются в пределах выделенных математических страниц, хотя возможно составление различных рабочих программ при использовании для любой из них матема тических адресов, начиная с нулевого. Размещение программ, со стоящих по объему из нескольких математических страниц, в фи зической памяти многопрограммной ЦВМ и преобразование ма тематических адресов в физические осуществляется управляющей программой при использовании некоторых специальных аппарат ных средств, включаемых в состав машины в виде отдельных узлов или небольших блоков сверхоперативной памяти.
Так как размеры математических и физических страниц одина ковы, то адреса ячеек в пределах одной математической страницы полностью совпадают с адресами ячеек соответствующей страни цы, или участка, оперативной памяти. Это облегчает преобразова ние математических адресов в физические, т. е. в номера действи тельных ячеек оперативной памяти, при реализации рабочих про грамм, поскольку преобразованию подлежат только старшие раз ряды адреса, определяющие номер страницы.
Пусть размеры одной страницы |
отвечают значению |
Екр = 2, |
а количество страниц физической |
памяти Кф = 2а. Тогда любой |
физический адрес представляется так; |
|
Аф== Л^ф. с АС' с |
|
или |
|
|
Аф = Мф. с 2s + Лс>с, |
(10.5) |
где Л/ф. с — номер физической страницы, принимающий одно из значений от 0 до 2^— 1;
Дс. с — адрес слова (номер ячейки) внутри страницы, прини мающий одно из значений от 0 до 2° — 1.
Математический адрес Лм представляется аналогично физиче скому:
A |
i == К |
, с Д . с |
|
или |
|
|
|
Л, = |
Л^,,С25 + Д . с , |
(Ю.6) |
где NM.с — номер математической |
страницы. |
|
Рис. 10.2. Распределение математических страниц по уровням физической памяти
Для осуществления перехода от Лм к Лф необходимо устано вить соответствие между номерами физических и математических страниц, т. е. определять номер физической страницы как зна чение дискретной функции Мф.с {NM.C) . Значения функции Mi).c(M«.c) формируются при распределении памяти управляющей программой между рабочими программами и записываются в так называемую страничную таблицу, именуемую также таблицей страниц. Содержимое страничной таблицы изменяется при каж дом перераспределении памяти между рабочими программами.
В общем случае страничная-таблица отражает не только соот ветствие физических страниц математическим, но и распределение математических страниц по различным уровням памяти. Это иллю стрируется схемой рис. 10.2, на которой показаны основные связи
страниц математической памяти со страницами физической памяти по заданной или определенной в процессе распределения памяти страничной таблице.
Номер математической страницы представляет собой старшие разряды исходного адреса. Для осуществления непосредственного обращения к памяти этот номер используется в качестве входной величины, по которой с помощью страничной таблицы определяет ся тип ЗУ и номер физической страницы. Если страничная таб лица указывает, что необходимая информация размещена во внеш ней памяти, то до непосредственного обращения, т. е. до выборки из памяти соответствующего слова, осуществляется обмен стра ницами между внешней и оперативной памятью. Величина Уф.с(Мм.с) в этом случае используется управляющей программой для выборки страницы из внешней памяти.
При предварительном распределении памяти многопрограмм ной ЦВМ между пользователями возможен случай, когда каждый из них, составляя рабочие программы, использует математическую память, начиная с нулевой (начальной) страницы. Тогда различ ные рабочие программы вместе с исходными данными размеща ются в одних и тех же математических страницах, но в различных физических страницах; получается, что одной и той же математи ческой странице отвечает несколько физических страниц. Для устранения неоднозначности при переходе от математической к физической памяти в рассматриваемом случае страничные табли цы формируются для каждого пользователя. Номер физической страницы определяется как функция номера математической стра ницы и номера пользователя Р, т. е. Мф. с = УУф_с (NUmс, Р).
П р е о б р а з о в а н и е с т р а н и ц . О б м е н с т р а н и ц а м и
Преобразование страниц заключается в преобразовании ма тематического адреса в физический адрес путем замены в соста ве Лм старших разрядов, составляющих номер страницы, по данным страничной таблицы; при этом считается, что страница размещена в оперативной памяти. Такое преобразование может осуществляться программными методами без использования спе циальной дополнительной аппаратуры. Однако этот путь приводит к значительным затратам машинного времени и снижению про изводительности многопрограммной ЦВМ. В связи с этим при преобразовании страниц широко используются аппаратно-про граммные методы, базирующиеся на использовании специальной дополнительной аппаратуры.
В процессе преобразования страниц всегда используются дан ные страничной таблицы. Если разместить эту таблицу в обычной оперативной памяти, то при выборке любого слова из ОЗУ необ ходимы два обращения:
— для |
получения номера физической страницы по заданному |
в исходном |
адресе номеру математической страницы; |
— для собственно выборки слова по полученному физическому адресу.
Для уменьшения общего цикла выборки слова из ОЗУ странич ная таблица размещается в специальном устройстве типа сверх оперативной регистровой памяти малой емкости с временем обращения тОбр = 30н-80 нсек. Если для каждого пользователя формируется отдельная страничная таблица, то емкость сверхопе ративной памяти Ео определяется так:
F — N |
М |
|
|
*-•0 |
*у макс /К1макс> |
|
|
где Е/макс — максимальное |
количество |
одновременно |
обслужи |
ваемых пользователей, или максимальное |
количе |
ство параллельно реализуемых рабочих программ; |
Жмокс — максимальное |
количество |
строк в страничной таб |
лице. |
|
|
|
|
В некоторых случаях значение Е0 для уменьшения состава до полнительной аппаратуры принимается равным Ммакс. Тогда в сверхоперативной памяти размещается страничная таблица для ак тивной на данном временном интервале рабочей программы, а остальные страничные таблицы помещаются в общую оператив ную память. С началом активизации очередной рабочей програм мы управляющая программа обеспечивает смену страничных таб лиц в сверхоперативной памяти.
Кроме сверхоперативной памяти к дополнительной аппаратуре, участвующей в процессе преобразования страниц, относятся неко торые регистры и группы логических элементов типа вентилей. Регистры необходимы для размещения номера реализуемой рабо чей программы, а также исходного математического адреса. Груп пы вентилей обеопечивают коммутацию цепей передачи инфор мации.
Общая схема преобразования страниц приведена на рис. 10.3. На ней показана сверхоперативная память СОЗУ, оперативная па мять ОЗУ, а также регистр команд РгК и регистр номера испол няемой программы РгНП, обычно включаемые в состав устрой ства управления. Для данной схемы принято, что £ 0 = 16, ЕЬр— = 1024, а оперативная память разбивается на 16 физических стра ниц, которым отвечают отдельные блоки накопителя ОЗУ. Кроме регистров адреса РгА и дешифраторов Дш в СОЗУ выделены вы ходные собирательные схемы Сб, а в ОЗУ показана схема комму тации блоков СхК. Регистр PrAj служит для размещения номера
физической страницы N$.c, т. е. номера блока накопителя ОЗУ; в ре гистре PrAj размещается адрес слова Лс.с, определяющий номер
ячейки внутри физической страницы, т. е. номер ячейки блока на копителя ОЗУ. Группы вентилей, обеспечивающие коммутацию це пей, на схеме рис. 10.3 не показаны.
С началом реализации рабочей программы ее номер L вводится управляющей программой в РгНП. Значение L передается в ре гистр адреса PrAj СОЗУ и представляет собой первую часть кода