Главная » Просмотр файлов » К. Касперски - Техника оптимизации программ, Эффективное использование памяти

К. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752), страница 21

Файл №1127752 К. Касперски - Техника оптимизации программ, Эффективное использование памяти (К. Касперски - Техника оптимизации программ, Эффективное использование памяти) 21 страницаК. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752) страница 212019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 21)

Сегодня, когда счет оперативной памяти пошел на сотни мегабайт, мы — программисты — наконец-то избавились от "удовольствия" оптимизации своих программ по скорости и размеру одновременно. Пусть будет нужен хоть гигабайт — система выделит его за счет жесткого диска! Рис. 2.1.

Память... Миллиарды битовых ячеек, упакованных в крошечную керамическую пластинку, свободно умещающуюся на ладони, . вот как выглядит современная оперативная память! Глава 2 Правда, производительность подсистемы памяти все еще оставляет желать лучшего. Причем, современная ситуация даже хуже, чем была десять- пятнадцать лет тому назад. Если персональные компьютеры конца восьмидесятых — начала девяностых годов прошлого века оснащались микропроцессорами с тактовой частотой порядка 10 МГц и оперативной памятью со временем доступа в 200 нс, типичная конфигурация ПК ближайшего будущего: 1000 — 2000 МГц и 20 нс. Нетрудно подсчитать, что соотношение производительности памяти и процессора уменьшилось более чем в сто раз! Несмотря на стремительный рост пропускной способности оперативной памяти, наблюдающийся в последние годы разрыв "СР() чв.

Мепзогу" растет с чудовищной быстротой. Забавно, но с этой ситуацией мы сталкиваемся отнюдь не впервые: приблизительно сорок-пятьдесят лет тому назад, — в эпоху "больших" машин с быстродействующими (по тем временам!) процессорами и жутко медленной барабанной (а позже и ферритовой) памятью,— соотношение быстродействия памяти и процессора было приблизительно тем же самым. Интересно, как же конструкторы ЭВМ выходили из этой ситуации? Откроем, например, книгу "Структуры ЗВМ и их математическое обеспечение" Л. Н. Королева: 'Для того чтобы достичь необходимого бплансп между высокой скоростью выполнения арифметических и логических действий в центральном процессоре и огрпниченным быстродействием блоков оперативного ферритового зппоминающего устройства (время цикла работы каждого блока— 2 мкс) были предприняты следующие леры.

Оперптивное заполинпющее устройство состоит из восьми блоков, допускающих одновременную выборку информпции (компндных слов и оперпндов), что резко повышает эффективное быстродействие системы ппмяти. Подряд идущие физические адреса памяти относятся к рпзным блокам, и если оказалось, например, так, что последовательно выбираемые оперпнды имеют последовательно возрастающие (убывпющие) пдресп, то они могут выбираться со средней скоростью, рпвной 2 мксек/8 = 0,25мкс...

Второй опруктурной особенностью оргпнизпции обрпщений к оперативному зппоминающему устройству является метод буферизации, или метод нпкопления очереди заказов к системе памяти. В мпшине БЭСМ-6 существуют группы регистров, на которых хранятся запросы (пдресп), назывпемые буферальи адресов слов и компнд. Разумеется, что эти буфера могут работать эффективно только в том случае, если структурп машины позволяет прослютривать компнды «вперед», т. е. зпгодя готовить зппросы.

Устройство управления БЭСМ-б позволяет это делить. Буферп пдресов позволяют в конечном итоге сгладить неравномерность поступления запросов к памяти и тем салым лови- сить эффективность ее использовпния. Оперативная память 95 Третьей структурной особенностью БЭСМ-6 является метод использования сверхоперативной, не адресуелгой из программы памяти небольшого обьел»а, цель которого — автоматическая эконолшя обращений к основному оперативному запоминающему устройству. Эта сверхоперативная память управляется таким образом, что часто используемые операнды и небольшие внутренние командные циклы окпзываются на быстрых регистрах и готовы к немедленному использованию в арифметическом устройстве или в системе упрпвления машиной. Быстрые регистры в ряде случаев позволяют экономить до 60% всех обращений к памяти и уменьшают тем самым временные затрпты на ожидание чисел и команд из основной памяти.

Следует еще раз подчеркнуть, что об использовании быстрых регистров заботится аппаратура самой машины и при составлении программ об экономии обращений к памяти думать нет необходимости. (Выделение мое — К. К.) Эти структурные особенности БЭСМ-6 получили название водопроводного (ныне "конвейерного" — К. К.) принципа построения структуры машины. В самом деле, если подсчитать время от начала выполнения команды до его окончания, то для каждой команды оно будет очень велико, однако глубокий параллелизм выполнения, просмотр вперед, наличие буфера адресов, быстрых регистров приводят к тому, что «поток» кол»анд и телт обработки информации очень высок.

Аналогия с водопроводом состоит в том, что если проследшпь время, за которое частица воды проходит по некоторому участку водопровода, то оно будет большим, хотя скорость на выходе потока,чожет быть очень велика. Четвертой структурной особенностью БЭСМ-6, имеющей очень важное значение для построения операционных систел~ и работы машины в мультипрограммном режиме, является принятый апппратный способ преобразования математических, или виртуальных адресов в физические адреса машины.

В машине БЭСМ-6 четко выдержано деление на физическую и математическую память, принята постраничная организация, однако способ отображения, заложенный в ппппратуру, значительно отличается от того, который был применен в машине". Трудно отделаться от впечатления, что перед тобой лежит ие перечень ключевых концепций архитектуры Рб (Репгшш Рго, Репбшп-П, Репйцгп-П1), а описание "морально устаревшей" электронно-вычислительной машины, ценящейся сегодня разве что за наличие в ней драгметаллов.

Ан нет! Еще может "старушка" нас чему-то научить! Мы гордимся современной аппаратурой и пренебрежительно относимся к достижениям двадцати-тридцатилетней давности, между тем зто ослиная гордость. Чтобы там ни говорила реклама, невозможно не признать, что за последнее время ничего принципиально нового не придумано. Эксплуатируется сравнительно небольшое количество весьма древних идей и, если что и совершенствуется, — так зто проектные нормы. БЭСМ-6 занимала целый шкаф, а процессор Репйшп свободно умещается на ладони.

Но в нем нет ничего такого, что в том или ином виде ни присутствовало бы в "динозаврах" первых поколений. 96 Глава 2 Обратите внимание на выделенный жирным шрифтом абзац. Идеология сверхоперативной (или )гэш", как принято сейчас говорить) памяти изначально позиционирует ее как прозрачную и невидимую для программиста. Так утверждали и конструкторы БЭСМ, так утверждают и создатели процессоров Репбцш/КгурГоп. Между тем, это утверждение неверно. Эффективная работа с памятью всех иерархий йез учета ее физических, конструктивных и архитектурных особенностей невозможна( Как минимум, программист должен позаботиться о том, чтобы интенсивно используемые данные целиком уместились в кэш, а для достижения наивысшей производительности следует тщательно согласовать запросы к памяти с "характером" всех ее подсистем.

Проблемам такого согласования, собственно, и посвящена эта книга. Иерархия оперативной памяти Оперативная память что это? Объект материального мира или абстракция, не соответствующая никакой физической действительности? Не спешите отвечать. Давайте рассуждать логически. Если, вооружившись отверткой, открутить несколько винтов„удерживаюших корпус компьютера, то среди прочего семейства микросхем на материнской плате обнаружатся один, два или три вертикально установленных прямоугольных модуля. Это и есть оперативная память или, по-английски, КАМ вЂ” Капдогп Асеева Мегпогу (Память с произвольным доступом).

Значит, оперативная помять — это некоторое физическое устройство (какое — уже неважно). Так? А вот попробуйте подойти с этим вопросом к любому программисту. Если наш программист не будет пьян или "вусмерть укурен", то, скорее всего, он определит память как совокупность ячеек, причем не хаотично разбросанных точно пшено но асфальте, а обьединенных адресным пространством с наперед заданными свойствами.

Слышите? Ни слова об устройстве! Причем, это был явно системный программист, который, если захочет, может без труда положить значение Охббб в ячейку под "номером" Ох999, а спустя некоторое время извлечь его оттуда. Прикладные же программисты имеют крайне смутное представление о том, как нумеруются ячейки (и нумеруются ли они вообще). Языки высокого уровня приучают оперировать не ячейками, а переменными. Считается, что переменные располагаются в памяти, вернее каждой переменной соответствует одна или более ячеек памяти. На самом же деле это не совсем так (или даже совсем не ток)! Компилятору может "взбрести в голову" разместить переменные в регистрах или же вовсе не размещать их нигде, если он обнаружит, что значение переменной в программе не используется или же его можно вычислить еше на этапе компиляции.

Так что же все-таки представляет собой оперативная память? С точки зрения сборшика компьютеров, память — это модуль, микросхема. С точки зрения программиста — абстрактное хранилище данных. И бессмысленно Оперативная память 97 спрашивать кто из них прав! Они оба не правы. Оперативная память — не микросхема и не абстракция. Это целая лодсиспгема компьютера, состояшая из множества взаимодействуюших друг с другом физических компонентов, образующих сложную иерархию логических абстракций. Давным-давно, когда компьютеры обходились без операционной системы, а о многозадачности никто и не слышал, загружать программы приходилось вручную, зато каждая из них монопольно владала асами ресурсами компьютера, в том числе и оперативной памятью.

С появлениам многозадачных систем встала проблема разделения ресурсов (в первую очередь — оперативной памяти) между несколькими приложениями и, что тоже немаловажно, защиты "владений" одного приложения от случайных или преднамеренных воздействий других. Были и другие трудности. В частности, требовалось обеспечить независимость работы приложений от адреса загрузки и каким-то образом исхитриться втиснуть множество одновременно выполняющихся программ в ограниченный объем оперативной памяти. Решение этих задач потребовало создания многоуровневой иерархии в организации памяти, в результате чего непосредственный доступ к ней оказался утрачен.

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее