Алгоритмы для жизни: Простые способы принимать верные решения - [41]

Шрифт
Интервал

Вытеснение и предсказания

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

Шерлок Холмс

Когда кеш заполнится, вам, очевидно, понадобится освободить место для хранения дополнительной информации. В компьютерной науке процесс освобождения места называется «замещение кеша». Как писал Вилкес, «поскольку кеш – это всего лишь малая часть объема основной памяти, слова не могут сохраняться в ней в течение неопределенного периода времени, поэтому в систему должен быть встроен алгоритм, согласно которому слова будут постепенно перезаписываться». Эти алгоритмы известны как алгоритмы замены или замещения или просто алгоритмы кеширования.

Как мы видим, роль IBM в части внедрения систем кеширования в 60-е годы была одной из основных. Неудивительно, что IBM стала первой проводить фундаментальные исследования алгоритмов кеширования. И, пожалуй, пальму первенства среди них нужно отдать алгоритму Ласло Белади. Белади родился в 1928 году в Венгрии, учился на инженера-механика, а во время Венгерской революции 1956 года бежал в Германию с одним рюкзаком, «в котором лежали только белье и диплом». Из Германии он переехал во Францию, затем в 1961 году эмигрировал в США вместе с женой, «маленьким сыном и тысячей долларов в кармане». Казалось, что он обладал отличным чувством меры и понимал, что нужно хранить, а с чем можно легко распрощаться, еще до начала своей работы над замещением кеша в IBM.

Работа Белади по алгоритмам кеширования, которую он написал в 1966 году, оставалась наиболее цитируемым исследованием в компьютерной науке в течение 15 лет. Согласно ей, цель использования кеша состоит в минимизации обращений к более медленной основной памяти в тех случаях, когда пользователь не может найти нужную информацию в кеше. Такие случаи называют «ошибка отсутствия страницы» или «число непопаданий в кеш». Оптимальная политика замещения кеша, как становится очевидно из определения, писал Белади, заключается в том, чтобы, когда кеш полностью заполнен, вытеснить любой его элемент, который максимально нескоро нам понадобится.

Разумеется, определить, когда нам понадобится та или иная информация, – задача трудновыполнимая.

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

Мы могли бы просто прибегнуть к произвольному замещению, добавляя новые данные в кеш и записывая их поверх старых вне какого-либо определенного порядка. Одним из удивительных результатов ранней теории кеширования стал тот факт, что этот подход, хоть и далекий от идеала, отчасти все же работает. Получается, что просто наличие кеша в системе уже делает ее более эффективной, вне зависимости от того, как вы ее используете. Единицы информации, которые вы часто используете, все равно вернутся в кеш. Другое простое решение – метод «первым вошел, первым вышел», когда вы замещаете или перезаписываете те данные, которые находятся в кеше дольше всего (помните вопрос Марты Стюарт «Как давно у меня эта вещь?»).

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

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


Рекомендуем почитать
Особенности личностного и семейного функционирования родственников наркозависимых

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


Психологика успешности от А до Я

Успешность – это реальность или призрак? Ради неё многие люди готовы на всё! Но как её достичь? Использовать логику или довериться случаю? Эта книга поможет достичь подлинной успешности и счастья в жизни! Почему бы не начать её читать? Несомненно вы найдёте много полезного для своей жизни!


Путь к сердцу мужчины и... обратно

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


Анализ фобии пятилетнего мальчика

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


Исправление школьного конвейера

«По моему мнению, Майкл Гриндер изложил нечто экстраординар­ное в этой книге. Он прекрасно представил некоторые репрезента­тивные паттерны, смоделированные в НЛП – технологии, и существен­но усовершенствовал их для конкретного контекста образования. Читателю представлены точные описания техник активного и пассив­ного наблюдений, классификация стилей научения учеников и техники адаптации учителя к ученику. Результат – не только улучшение успеваемости, но и улучшение взаимоотношений с учениками. Поэтому я с удовольствием рекомендую всем, кто хочет самосовершенствоваться, овладеть паттернами, представленными в этой книге.


Кокология 2

«Кокология» – модная японская игра, представляющая собой серию увлекательных психологических тестов, – входит сегодня в число популярнейших американских бестселлеров. «Кокология-2» предлагает читателям более 50 совершенно новых тестов, рассчитанных как на опытных кокологов, так и на новичков. Кокология – наука, занимающаяся изучением кокоро, что по-японски значит «ум» или «дух», – предлагает вам совершенно безобидные на первый взгляд вопросы вроде «Какая комната в вашем воображаемом доме самая чистая?», после чего выдает на основе полученных ответов описание вашего характера, ваших помыслов и предпочтений.