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

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

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

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

Второе полезное свойство абстракций: без них все программы были бы непереносимы. Абстракции реализуют (или, если так угодно, — эмулируют) виртуальную машину, устраняя (или, по крайней мере, ослабляя) влияние конструктивных особенностей физического оборудования на алгоритм реализации программы. Стоп! Мы слишком увлеклись! Если мы не будем учитывать особенности физического оборудования, то кто же тогда их будет учитывать?! Навряд ли этим займутся уровни абстракций и уж тем более — не само оборудование! Эмуляция и производительность — понятия несовместимые Абстрактная оперативная память однородна, физическая память — нет. Абстрактная модель оперативной памяти не имеет абсолютно никаких представлений о тех многочисленных ловушках и конструктивных ограничениях, которые словно терьеры вцепляются в программиста, препятствуя достижению максимального быстродействия.

Чтобы победить в этой борьбе, нам придется последовательно "обезвредить" все слои абстракции и выйти на уровень "голого" физического оборудования. Глава с Маленькая деталь. Сказанное вовсе не означает, что вам придется программировать на ассемблере и взаимодействовать с "железом" напрямую. Достаточно лишь планировать запросы к памяти с учетом характера этого "железа", а эффективно программировать можно на любом языке. Если вам нравится С/С++, Разса! или даже Рег(, — я не буду ни в чем вас ограничивать.

Можно провести такую аналогию. Допустим, выемка писем из почтового ящика осуществляется каждое утро ровно в девять часов. Следовательно, для ускорения переписки мы должны обязательно отправлять наши письма до девяти. Даже незначительное опоздание увеличит срок доставки письма на целые сутки! Надеюсь, это вас убедит, что снять крышку с черного ящика с надписью "подсистема оперативной памяти 1ВМ РС" все-таки полезно. ОК, снимаем (тяжелая, зараза!) Еше одна секунда и мы узнаем, что же находится там. На вершине иерархии (рис. 2.2) находятся прикладные библиотеки управления памятью, реализуюшие унифицированный интерфейс к сервисам менедзкерп куч (йеар танаяег) операционной системы. (Вообще-то, некоторые операционные системы, в частности МБ-()ОЯ, не имеют полноценного менеджера куч, и в этом случае его обязанности целиком ложатся на плечи прикладной библиотеки, но о таких "операционных системах" мы говорить не будем, поскольку это совершенно другая тема.) Менеджер куч (или, иначе говоря, менеджер динамической памяти) обеспечивает поддержку базовых операций с блоками памяти (выделение блока памяти, освобождение блока памяти, изменение размеров вьшеленного блока и т.

д). Уровнем ниже лежит менедясер виртуальной памяти (тггип! тетогу тпппяег), который в тесной координации с процессором реализует: С) виртуальные адресные прострпнства, т. е, абстрагируется от реальных физических адресов и позволяет назначать ячейкам памяти произвольные адреса. Благодаря этому множество одновременно запущенных приложений могут быть загружены по одним и тем же логическим (виртуальным) адресам, причем адресные пространства этих приложений не будут пересекаться! Приложения, словно жители параллельных миров, при всем желании не "увидят" друг друга, конечно, если не воспользуются специально созданными для этой цели разделяемыми регионами памяти или другими средствами межпроцессорного взаимодействия, но зто — разговор особый; Е) виртуальную намять, представляющую собой дальнейшее развитие идей виртуальных адресных пространств.

Любая ячейка виртуальной памяти может находиться как в оперативной памяти, так и на дисковом накопителе. Это позволяет выделять практически неограниченные объемы памяти, вплоть до десятков гигабайт (на самом деле, ОС семейства %!пг)овз предоставляют в распоряжение каждого процесса максимум два гигабайта, разве что %!пг(овз МТ Бегчег Епгегрг!зе не накладывает на аппетит Оперативная память 99 программиста никаких ограничений, см.

описание "чгегу Еагае Мегпогу" в Р!аг(оггп Я)Кг). Рис. 2.2. Иерархия памяти в операционных системах Чч)пдочзв 9к/Гчт/2000 и Г)аз!Х (грубо) ' Я)К вЂ” это аббревиатура от английского Яоггяаге )зече!орпзепг Кй (Набор Средств Разработки). — Ред. Глава 2 Функции менеджера виртуальной памяти требуют для своей работы определенных привилегий, поскольку непосредственно взаимодействуют с центральным процессором и драйвером диска. Процессор же, в свою очередь, общается с памятью и диском не напрямую, а через контроллер памяти и дисковый контроллер соответственно.

Оба в современных компьютерах интегрированы в так называемый чипсет (Сlпрзег— набор микросхем, так же именуемый "набором системной логики"), от интеллектуальности которого во многом зависит производительность всей системы. Основная оперативная память персональных компьютеров обычно реализуется на весьма медленных (по сегодняшним меркам) микросхемах динамической памяти.

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

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

д. Поэтому воспринимайте схему (см. рис. 2.2) не более чем наброском, грубо очерчиваюшим наш дальнейший маршрут путешествия по подсистеме памяти. Оперативная память персональных компьютеров сегодня, как и десять лет тому назад, строится на базе относительно дешевой динамической памяти— РКАМ (Вупапйс Капдогп Ассеаа Ме~погу). Множество поколений интерфейсной логики, соединяющей ядро памяти с "внешним миром", сменилось за это время. Эволюция носила ярко выраженный преемственный характер — каждое новое поколение памяти практически полностью наследовало архитектуру предыдущего, включая и свойственные ему ограничения. Ядро же памяти (за исключением совершенствования проектных норм таких, например, как степень интеграции) и вовсе не претерпевало никаких принципиальных изменений! Даже "революционный" Р1гесг КОКАМ Оперативная память 101 (ЯашЬцз ()ВАМ вЂ” память КашЬцз) ничего подлинного революционно в себе не несет и хорошо вписывается в общее "генеалогическое" древо развития памяти.

Поэтому устройство и принципы функционирования оперативной памяти лучше всего изучать, поднимаясь от основания ствола дерева (т. е, самых древних моделей памяти) по его веткам вверх — к самым современным разработкам, которые только существуют на момент написания этой книги. Стоит заметить: в этой главе приводится лишь необходимый минимум сведений об устройстве оперативной памяти, без которых грамотная оптимизация программ просто немыслима.

Настоятельно рекомендуется не ограничиваться "необходимым минимумом", а познакомиться с микросхемами памяти во всех подробностях, обратившись к спецификациям и технической документации, распространяемой производителями. Наилучшей (на взгляд автора) документацией можно "разжиться" на серверах аччкЛВМ.сош, явчт.БАМБ1ЛЧС.сош, влете.ПЧТЕт..сага и ичеи.АМзэ.сош. Много полезной информации можно найти и на сайте ичеи ахй.сош (и других, подобных ему). Устройство и принципы функционирования оперативной памяти Ядро Ядро микросхемы динамической памяти состоит из множества ячеек, каждая из которых хранит всего один бит информации. На физическом уровне ячейки объединяются в прямоугольную матрицу, горизонтальные линейки которой называются странами (пои), а вертикальные — столбцами (Со!итп) или страницами (Рабе). Когда-то память в вычислительных машинах изготавливалась на ферритовых кольцах.

Например, 1024-битное ядро памяти компьютера 0(ЧИЧАС-11015 (рис. 2.3). Действительный размер этого ядра составляет 5,5 см. Похожее на грубо обработанную мешковину, оно, в действительности, состоит иэ многочисленных ферритовых "пончиков" (колец], каждый иэ которых может хранить всего лишь один бит информации. По легенде намотку ферритовых колец осуществляли... девушки, вооруженные стереоскопическим микроскопом.

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

Глава 2 102 Линейки представляют собой обыкновенные проводники, на пересечении которых находится "сердце" ячейки — несложное устройство, состоящее из одного транзистора и одного конденсатора (рис. 2.4, 2.5). Рис. 2.3. 1024-битное ядро памяти компьютера 0ЬйЧАС-11015 Конденсатору отводится роль непосредственного хранителя информации. Правда, хранит он очень немного — всего один бит.

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

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

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