А именно, сначала вам необходимо решить, какие вещи оставить, а затем – как их разложить. К счастью, в мире есть несколько профессионалов, которые зарабатывают себе на жизнь, размышляя об этих задачах, и они будут весьма рады дать вам совет.
Что касается задачи «какие вещи оставить», Марта Стюарт рекомендует сначала ответить себе на следующие вопросы: «Как давно у меня эти вещи?», «Их все еще можно носить?», «Возможно, у меня есть другие аналогичные или очень похожие вещи?», «Когда в последний раз я их надевала?» Чтобы эффективно разложить вещи, Марта советует «разделить похожие вещи на группы». И в этом эксперты с ней согласны. Франсин Джей, автор книги «Радость меньшего», предписывает: «Повесьте рубашки отдельно, брюки отдельно, пальто и платья – тоже». Эндрю Меллен, который позиционирует себя как самого организованного человека Америки, также утверждает, что «все элементы одежды должны быть отсортированы по категориям: брюки отдельно, рубашки отдельно, пальто отдельно и т. д. Внутри каждой категории элементы сортируются по цвету и стилю, например по длине рукава, по вырезу и т. д.». Это утверждение можно использовать не только в рамках задач по сортировке. Это универсальный и дельный совет.
Помимо этой группы, существует и другое сообщество экспертов, поглощенных мыслями о хранении вещей, – и у них свое видение проблемы.
Ваш шкаф представляет собой такой же вызов, с которым сталкивается компьютер при управлении своей памятью: пространство ограничено, цель – сэкономить и деньги, и время. Поэтому все время существования компьютеров ученые стремятся решить ту же двойную задачу: что сохранить и как это упорядочить. В результате многолетних усилий удалось выяснить, что совет Марты Стюарт, состоящий из четырех вопросов, дает нам несколько разных и не вполне совместимых рекомендаций, при этом одна из них гораздо более критичная.
Теория управления компьютерной памятью также демонстрирует нам, как нужно организовывать пространство в нашем шкафу (или офисе). На первый взгляд, кажется, что компьютеры используют принцип Марты Стюарт – группировку похожих вещей. Операционные системы призывают нас помещать файлы в папки, подобное к подобному, формируя иерархический порядок таким образом, чтобы содержимое папок было конкретным и отличало одну папку от другой. Но как убранный стол школьника может ввести нас в заблуждение, скрыв беспорядок в его мыслях, так же очевидный порядок в файловой системе компьютера скрывает тот конструктивно сложный хаос, в котором хранятся данные под оболочкой папки.
То, что на самом деле там происходит, называется кешированием.
Кеширование играет критическую роль в архитектуре памяти и лежит в основе всего – от расположения микросхем процессора на миллиметровой шкале до географии сети интернет. Этот процесс предлагает решение для различных систем хранения данных и блоков памяти в жизни человека – не только для нашей техники, но и для шкафов, офисов, библиотек. И для разума.
Иерархия памяти
У одной женщины было обостренное чувство ответственности и почти не было памяти.
Она помнила достаточно, чтобы работать. И работала она упорно.
Лидия Дэвис
Начиная примерно с 2008 года, каждый, кто хочет приобрести новый компьютер, сталкивается с определенной парадоксальной ситуацией при выборе возможностей хранения информации. Необходимо найти компромисс между объемом и скоростью. Сегодня технологии компьютерной индустрии пребывают в фазе перехода от накопителей на жестком диске к твердотельным накопителям (SSD). При одинаковой стоимости жесткий диск может продемонстрировать более высокую мощность, однако твердотельный накопитель гораздо более эффективен, и этот факт либо уже известен потребителям, либо они сами быстро приходят к такому выводу в процессе покупки.
Чего может не знать средний покупатель, так это того, что подобный компромисс достигается внутри любого компьютера на ряде уровней – до такой степени, что его можно признать одной из фундаментальных основ вычислительной деятельности.
В 1946 году Артур Беркс, Герман Голдстайн и Джон фон Нейман, трудясь в Институте специальных исследований в Принстоне, выработали проект предложения, который они назвали «электрический орган памяти». По их словам, в идеальном мире техника, разумеется, обладала бы безграничным количеством молниеносно работающей памяти, но на практике это невозможно (до сих пор). Вместо этого тройка экспертов предложила другой вариант, по их мнению, лучший из реальных: «иерархия слоев памяти, каждый из которых обладал бы большей мощностью, чем предыдущий, но при этом был бы менее доступным». По сути, имея пирамиду из различных форм памяти (маленькой, но быстрой и большой, но медленной), мы могли бы извлечь максимум выгоды из обоих видов. Основная идея иерархии интуитивно будет понятна любому человеку, который хоть раз пользовался библиотекой. Если вы проводите исследование для дипломной работы, вам наверняка понадобятся некоторые книги, на которые вы будете многократно ссылаться. Вместо того чтобы каждый раз идти в читальный зал, вы, разумеется, возьмете нужные книги домой, чтобы они были у вас всегда под рукой.
Идея иерархии памяти оставалась лишь теорией до изобретения суперкомпьютера, или ЭВМ сверхвысокой производительности, который получил название «Атлас» (это произошло в 1962 году в Манчестере). Основная память компьютера состояла из огромного барабана, который вращался при чтении и записи информации в отличие от его предшественника – воскового цилиндра. Однако у «Атласа» была более быстрая оперативная память меньшего объема, работающая на поляризованных магнитах. Данные считывались из цилиндра и передавались на магниты, где быстро обрабатывались, и затем результаты записывались на цилиндр. Вскоре после изобретения «Атласа» кембриджский математик Морис Вилкес пришел к выводу, что быстрая память небольшого объема – не самое подходящее место для хранения данных до их повторного сохранения на цилиндре. Оперативную память также можно было использовать для хранения фрагментов информации, которые могли бы пригодиться позднее. Ожидание аналогичных будущих запросов на эту информацию существенно ускоряло операционные процессы компьютера. Если информация, которую вы ищете, все еще находится в оперативной памяти, то вам не нужно выгружать ее из цилиндра. Как отметил Вилкес, память меньшего объема «автоматически накапливает в себе слова, которые переходят в нее из основной медленной памяти, и сохраняет их для последующего использования без необходимости вновь обращаться к основной памяти». Главное здесь, конечно, возможность использовать эту небольшую, быструю драгоценную память так, чтобы в ней всегда было то, что вам нужно, и вы могли обращаться к ней максимально часто. Если развить аналогию с библиотекой, это тот случай, когда вы можете один раз сходить за всеми нужными книгами и затем всю неделю работать с ними дома. Это так же удобно, как если бы все книги библиотеки уже лежали на вашем рабочем столе. Чем больше походов в библиотеку вы совершаете, тем больше замедляются темпы вашей работы.
Предложение Вилкеса было использовано позже, в конце 1960-х годов, когда в суперкомпьютер IBM 360/85 внедрили память, которая получила название «кеш» (быстродействующая буферная память большой емкости). С тех пор кеш повсеместно использовался в компьютерных технологиях. Идея хранения фрагментов информации, к которой пользователь обращается часто, настолько высокоэффективна, что в наши дни она используется во всех аспектах компьютерной деятельности.