Cтраница 2
На рис. 13.4, представлена блок-схема программы и схема распределения памяти, соответствующие применению косвенной адресации по регистру. Начало исходного и формируемого массивов находится соответственно в областях с адресами 004F и ООСА. [16]
Это не приводит к фиксации ошибки ( благодаря схеме распределения памяти для массивов Фортрана), хотя такой способ объявления массивов является причиной выхода индекса за объявленные границы. [17]
Объясните, какие возможности с точки зрения гибкости управления памятью дают перечисленные ниже аппаратные решения и приведите примеры схем распределения памяти. [18]
Нами изучены два метода управления памятью: одиночное непрерывное распределение и распределение разделами. Схема одиночного распределения памяти реализуется первичной управляющей программой. Вся память, не занятая управляющей программой, выделяется одному заданию. Процессор также полностью отдается в распоряжение этого задания. И хотя это достаточно расточительный метод использования памяти и времени центрального продессора, простота его применения довольно привлекательна. Этот метод нашел весьма широкое распространение не только на малых машинах, но и на больших, так как он во многом уменьшает сложность программирования и удешевляет разработку программного обеспечения. [19]
Когда время равно 35 мс, начинает работать канал В. Располагая схемой распределения памяти для текущей программы, аналитик может определить, какие функции выполняются в различных областях памяти. Например, программа, работающая в области 8К, может быть подпрограммой системы управления вводом-выводом. [20]
Теперь рассмотрим, каким образом можно выполнить действия по пересылке данных из одного массива в другой, применяя адресацию с индексированием. На рис. 13.6 и 13.7 представлены блок-схема, схема распределения памяти и текст программы, при реализации которой использована адресация с индексированием. [21]
Некоторая нечеткость терминов нижний вариант и верхний вариант, по-видимому, связана с дословным переводом американских обозначений для аналогичных программ. Для достижения зрительных ассоциаций можно рекомендовать представить себе схему распределения памяти на целый куб МОЗУ ( в виде прямоугольника с нарастанием адресов сверху вниз) и определить расположение основной ( выводимой) программы относительно сервисной: если основная программа ниже, то это и есть нижний вариант сервисной программы. [22]
Существует немного реализаций трансляторов с языка Алгол 60, допускающих возможность использования собственных динамических массивов. Если возможность использования собственных динамических массивов отсутствует, то схема распределения памяти может быть сведена к простой стековой дисциплине. [23]
В ряде зарубежных фирм по программированию используются специалисты - технические оформители, которые, тонко понимая программирование, умеют, кроме того, быстро, грамотно и четко готовить всю текстовую часть технической документации. При этом изготавливаются и размножаются не только окончательные отчеты и инструкции, но и все рабочие материалы общего характера: планы, технические задачи, таблицы кодировок, обозначений и терминов, функциональные схемы, схемы распределения памяти. Характерно, что объем оправданных трудовых затрат на документацию иногда составляет 20 - 25 % всех затрат, а на каждых 5 программистов содержится один технический оформитель. [24]
В некоторых зарубежных фирмах по программированию используют специалистов - технических оформителей, хорошо знающих программирование и умеющих быстро, грамотно и четко готовить всю текстовую часть технической документации. При этом изготавливают и размножают не только окончательные отчеты и инструкции, но и все рабочие материалы общего характера: планы, технические задачи, таблицы кодировок, обозначений и терминов, функциональные схемы, схемы распределения памяти. Характерно, что объем оправданных трудовых затрат на документацию иногда составляет 20 - 25 % всех затрат, а на каждых пять программистов содержится один технический оформитель. В среднем считается, что на каждые 30 - 40 команд программ приходится один лист соответствующей технической документации. [25]
Часто является сопутствующим результатом периода компиляции программы. Схема распределения памяти может быть полезна при диагностике ошибок в компилируемой программе. [26]
![]() |
Виртуальные адреса памяти с 4096 по 8191 отображаются в адреса основной памяти с 0 по 4095. [27] |
Возможен и другой, более сложный способ отображения адресов из адресного пространства в реальные адреса памяти. Адреса, к которым программа может обращаться, мы будем называть виртуальным адресным пространством, а реальные адреса памяти в аппаратном обеспечении - физическим адресным пространством. Схема распределения памяти или таблица страниц соотносит виртуальные адреса с физическими адресами. [28]
Рассматриваемая схема имеет еще три следующих недостатка. Во-первых, как и в схеме с перемещаемыми разделами, часть памяти не будет использоваться, если ее достаточно для размещения только части страниц задания. Во-вторых, при рассматриваемой реализации схемы распределения памяти страницами все страницы конкретного задания должны находиться в памяти, для того чтобы задание могло начать выполняться. [29]
Для фиктивной секции обязательно должен быть объявлен базовый регистр. После его загрузки начальным адресом исходная программа может пользоваться метками фиктивной секции как своими собственными. Никаких машинных команд или констант при трансляции операторов фиктивной секции в исходную программу не помещается. Транслятор использует как бы схему распределения памяти фиктивной секции, не порождая ее самое. В разделе Управление вводом-выводом на физическом уровне приведен пример программы, содержащей фиктивную секцию. [30]