Подкачка страниц

Поделись знанием:
Перейти к: навигация, поиск

Подкачка страниц (англ. paging; иногда используется термин swapping от swap, /swɔp/) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (жёсткий диск или другой внешний накопитель, такой как флеш-память), освобождая ОЗУ для загрузки других активных фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла.

Когда приложение обратится к откачанной странице, произойдет исключительная ситуация PageFault. Обработчик этого события должен проверить, была ли ранее откачана запрошенная страница, и, если она есть в swap-файле, загрузить её обратно в память.





История

Изначально под свопингом понималась выгрузка процесса из оперативной памяти целиком, в результате чего неактивные процессы могли полностью отсутствовать в ОЗУ. При наступлении условий активизации процесса диспетчер памяти загружал образ процесса обратно.

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

Отказы страниц

Основные функции механизма подкачки выполняются при попытке программы получить доступ к страницам, в данный момент не отображенным в физическую память (ОЗУ). Эта ситуация называется отказом страницы. В этот момент операционная система должна получить управление и обработать отказ страницы в прозрачной для программы форме. Таким образом, операционной системе необходимо:

  1. Определить расположение требуемой страницы во вторичном хранилище.
  2. Получить пустой страничный кадр в физической памяти для использования в качестве контейнера для данных.
  3. Загрузить запрошенные данные в полученный страничный кадр.
  4. Обновить таблицу страниц, чтобы она указывала на новый страничный кадр.
  5. В прозрачной форме вернуть управление программе, повторно выполнив вызвавшую ошибку страницы инструкцию.

Если при получении пустого страничного кадра не хватает свободной оперативной памяти, выполняется алгоритм замены страниц, осуществляющий выбор одного из использующихся страничных кадров для выгрузки. Если выгружаемый страничный кадр был выделен динамически во время выполнения программы, либо если он является частью сегмента данных программы и изменялся с момента чтения в память (другими словами, если он стал «грязный»), перед освобождением он должен быть сохранён во вторичном хранилище. В противном случае, содержимое страничного кадра в оперативной памяти не отличается от содержимого страницы во вторичном хранилище, поэтому его выгрузка не требуется. Если позже в процессе работы произойдёт обращение к выгруженной странице, возникнет другой отказ страницы и нужно будет снова выделить страничный кадр, чтобы содержимое страницы во вторичном хранилище можно было повторно загрузить в ОЗУ.

Для обеспечения эффективной работы система подкачки должна выбирать для выгрузки те страничные кадры, обращение к которым в ближайшее время наименее вероятно. Существуют различные алгоритмы замещения страниц. В операционных системах используются алгоритмы LRU (англ. Last recently used), FIFO (англ. First In First Out) либо алгоритмы с учётом рабочего множества процесса[1].

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

Алгоритмы определения устаревших страниц

При выделении места для новой страницы бывает необходимо удалить какую-либо страницу, в данный момент находящуюся в памяти. Правила замещения страниц служат для принятия решения о том, какую именно страницу следует удалить из памяти. Идеальным кандидатом является «мёртвая» страница, которая больше не потребуется кому-либо (например, относится к завершённому процессу). Если же таких страниц нет в памяти (или их количества недостаточно), используется правило локального или глобального замещения страниц:

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

Наиболее часто используемые критерии поиска:

  • Least recently used. Удаляются те страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет происходить минимум обращений.
  • Last recently used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.

Пробуксовка

Большинство программ не используют всю выделенную им память одновременно, а только некоторую её часть, определяемую выполняемыми в данный момент инструкциями и требующимися им данными. Если программа отвечает принципу локальности, то используемая часть памяти может быть существенно меньше всей выделенной программе памяти. Размер этой используемой части отражает достижение программой некоторого стабильного состояния в потреблении памяти и часто называется рабочим множеством.

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

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

Для исключения пробуксовки пользователь может предпринять следующие действия:

  • Увеличить объём оперативной памяти компьютера.
  • Сократить число одновременно выполняющихся программ.
  • Изменить приоритеты процессов так, чтобы часть из них завершилась быстрее и освободила часть ресурсов.

Недостатки и возможность их преодоления

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

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

В 32-разрядной Windows XP, Vista, 7 для своп-файла можно использовать оперативную память за пределами 3-го гигабайта, используя сторонние программы по созданию электронных дисков, хранящихся в памяти.

В Linux поддерживается сходный механизм, zswap, размещающий своп в памяти в сжатом виде.

Файлы и разделы подкачки

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

Фрагментация файла подкачки

В процессе работы файл (раздел диска, или файл на разделе) подкачки может стать фрагментированым, то есть непрерывные виртуальные области памяти будут состоять из многочисленных отдельных (разрывных) областей в файле подкачки. При считывании и записи данных страниц, расположенных линейно в виртуальной памяти, но рассеянных по файлу подкачки, много времени будет уходить на перепозиционирование головок жёсткого диска на начало очередной области. Это может привести к падению производительности всей системы из-за обилия медленных запросов на ввод-вывод.

Рекомендации по размещению файла подкачки

  • Одним из способов выделения места для swap‐файла (раздела), рекомендуемым в течение многих летК:Википедия:Статьи без источников (тип: не указан)[источник не указан 4080 дней], является кратное выделение памяти, когда объём этого файла равен объёму оперативной памяти, умноженному на константу от 0,5 до 2 или 3.
  • Если на компьютере имеется более одного жёсткого диска, то для более быстрого обращения к файлу подкачки его желательно разместить на наименее нагруженном запросами чтения/записи физическом диске. Хорошим выбором будет физический файл подкачки на диске, который имеет наибольшую скорость чтения/записи.
  • В Windows скорость чтения из небольших разделов больше у FAT32 по сравнению с NTFS, однако, благодаря более высокой устойчивости NTFS к сбоям и значительным объёмам современных жестких дисков, разделы с FAT32 ныне редко используются.
  • При наличии на компьютере значительного объёма ОЗУ (2-4 гигабайт) и использовании большинства популярных ОС семейств GNU/Linux можно полностью отключить подкачку.

Безопасность при работе со swap-файлом

Из файла (раздела) подкачки зачастую можно извлечь конфиденциальную информацию, используемую при работе вычислительной системы. Поэтому при работе с секретными данными обычно производится очистка swap — например, с помощью утилиты sswap из комплекта secure remove.

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

В Linux можно зашифровать swap-файл или раздел (например в дистрибутиве Ubuntu это делается автоматически при выборе опции шифрования домашнего каталога пользователя в процессе установки ОС). Такое решение несколько повышает нагрузку на процессор, но гарантирует сохранность конфиденциальной информации даже при внезапном отключении питания.

Использование файла подкачки может приводить к заражению некоторых ОС компьютерными вирусами, так как существует уязвимостьК:Википедия:Статьи без источников (тип: не указан)[источник не указан 4601 день], позволяющая вытеснить выполняемые программы в виртуальную память и изменить выполняемый код с помощью прямого доступа к жёсткому диску.

Unix

В ОС Unix, и подобных ей, swap обычно помещается на отдельный раздел жёсткого диска, что ранее ускоряло доступ к данным, по сравнению с расположением swap на обычном разделе. В ядрах Linux 2.6 и новее работа swap-файла не уступает по производительности swap-разделу[2][3].

Пример создания swap-файла для GNU/Linux:

# dd if=/dev/zero of=/swap bs=1024 count=128K
# mkswap /swap
# sync
# swapon /swap

Oracle Solaris может использовать тома ZFS в качестве разделов подкачки:

# zfs create -V 2G pool/swap
# swap -a /dev/zvol/dsk/pool/swap

Кроме использования при работе системы, некоторые дистрибутивы GNU/Linux используют SWAP раздел для организации режима сна («спящий режим», hibernation или «suspend to disk» - режим S4 ACPI). Для поддержки этого режима размер SWAP следует задать равным размеру оперативной памяти, увеличенному на 10-15%.

ОС Microsoft Windows и Windows NT

Область жёсткого диска, предназначенная для свопинга, располагается в отдельном файле, который называется файл подкачки, своп-файл (от англ. swap file). Он называется pagefile.sys и по умолчанию создаётся системой в корневом каталоге диска C:. В дальнейшем пользователь может управлять размером и размещением файла подкачки, например, используя панель управления, пункт Система.

В Windows 9x файл подкачки называется win386.swp и располагается в каталоге Windows. Однако правкой файла system.ini его можно перенести в корневой каталог для последующего совместного использования с Windows NT.

Также, начиная с Windows Vista появилась возможность создавать выделенный раздел подкачки, аналогичный по назначению используемым в UNIX-системах.

Напишите отзыв о статье "Подкачка страниц"

Примечания

  1. Peter J. Denning [www.cs.uwaterloo.ca/~brecht/courses/702/Possible-Readings/vm-and-gc/thrashing-denning-afips-1968.pdf Thrashing: Its causes and prevention] // Proceedings AFIPS, Fall Joint Computer Conference. — 1968. — Т. 33. — С. 915–922.
  2. [lkml.org/lkml/2006/5/29/3 "Jesper Juhl": Re: How to send a break? - dump from frozen 64bit linux]. LKML (29 мая 2006). Проверено 28 октября 2010. [www.webcitation.org/68Xg2Igga Архивировано из первоисточника 19 июня 2012].
  3. [lkml.org/lkml/2005/7/7/326 Andrew Morton: Re: Swap partition vs swap file]. LKML. Проверено 28 октября 2010. [www.webcitation.org/68Xg2xCQp Архивировано из первоисточника 19 июня 2012].


Отрывок, характеризующий Подкачка страниц

Кочубей сказал несколько слов о приеме, сделанном Болконскому Аракчеевым. Сперанский больше улыбнулся.
– Директором комиссии военных уставов мой хороший приятель – господин Магницкий, – сказал он, договаривая каждый слог и каждое слово, – и ежели вы того пожелаете, я могу свести вас с ним. (Он помолчал на точке.) Я надеюсь, что вы найдете в нем сочувствие и желание содействовать всему разумному.
Около Сперанского тотчас же составился кружок и тот старик, который говорил о своем чиновнике, Пряничникове, тоже с вопросом обратился к Сперанскому.
Князь Андрей, не вступая в разговор, наблюдал все движения Сперанского, этого человека, недавно ничтожного семинариста и теперь в руках своих, – этих белых, пухлых руках, имевшего судьбу России, как думал Болконский. Князя Андрея поразило необычайное, презрительное спокойствие, с которым Сперанский отвечал старику. Он, казалось, с неизмеримой высоты обращал к нему свое снисходительное слово. Когда старик стал говорить слишком громко, Сперанский улыбнулся и сказал, что он не может судить о выгоде или невыгоде того, что угодно было государю.
Поговорив несколько времени в общем кругу, Сперанский встал и, подойдя к князю Андрею, отозвал его с собой на другой конец комнаты. Видно было, что он считал нужным заняться Болконским.
– Я не успел поговорить с вами, князь, среди того одушевленного разговора, в который был вовлечен этим почтенным старцем, – сказал он, кротко презрительно улыбаясь и этой улыбкой как бы признавая, что он вместе с князем Андреем понимает ничтожность тех людей, с которыми он только что говорил. Это обращение польстило князю Андрею. – Я вас знаю давно: во первых, по делу вашему о ваших крестьянах, это наш первый пример, которому так желательно бы было больше последователей; а во вторых, потому что вы один из тех камергеров, которые не сочли себя обиженными новым указом о придворных чинах, вызывающим такие толки и пересуды.
– Да, – сказал князь Андрей, – отец не хотел, чтобы я пользовался этим правом; я начал службу с нижних чинов.
– Ваш батюшка, человек старого века, очевидно стоит выше наших современников, которые так осуждают эту меру, восстановляющую только естественную справедливость.
– Я думаю однако, что есть основание и в этих осуждениях… – сказал князь Андрей, стараясь бороться с влиянием Сперанского, которое он начинал чувствовать. Ему неприятно было во всем соглашаться с ним: он хотел противоречить. Князь Андрей, обыкновенно говоривший легко и хорошо, чувствовал теперь затруднение выражаться, говоря с Сперанским. Его слишком занимали наблюдения над личностью знаменитого человека.
– Основание для личного честолюбия может быть, – тихо вставил свое слово Сперанский.
– Отчасти и для государства, – сказал князь Андрей.
– Как вы разумеете?… – сказал Сперанский, тихо опустив глаза.
– Я почитатель Montesquieu, – сказал князь Андрей. – И его мысль о том, что le рrincipe des monarchies est l'honneur, me parait incontestable. Certains droits еt privileges de la noblesse me paraissent etre des moyens de soutenir ce sentiment. [основа монархий есть честь, мне кажется несомненной. Некоторые права и привилегии дворянства мне кажутся средствами для поддержания этого чувства.]
Улыбка исчезла на белом лице Сперанского и физиономия его много выиграла от этого. Вероятно мысль князя Андрея показалась ему занимательною.
– Si vous envisagez la question sous ce point de vue, [Если вы так смотрите на предмет,] – начал он, с очевидным затруднением выговаривая по французски и говоря еще медленнее, чем по русски, но совершенно спокойно. Он сказал, что честь, l'honneur, не может поддерживаться преимуществами вредными для хода службы, что честь, l'honneur, есть или: отрицательное понятие неделанья предосудительных поступков, или известный источник соревнования для получения одобрения и наград, выражающих его.
Доводы его были сжаты, просты и ясны.
Институт, поддерживающий эту честь, источник соревнования, есть институт, подобный Legion d'honneur [Ордену почетного легиона] великого императора Наполеона, не вредящий, а содействующий успеху службы, а не сословное или придворное преимущество.
– Я не спорю, но нельзя отрицать, что придворное преимущество достигло той же цели, – сказал князь Андрей: – всякий придворный считает себя обязанным достойно нести свое положение.
– Но вы им не хотели воспользоваться, князь, – сказал Сперанский, улыбкой показывая, что он, неловкий для своего собеседника спор, желает прекратить любезностью. – Ежели вы мне сделаете честь пожаловать ко мне в среду, – прибавил он, – то я, переговорив с Магницким, сообщу вам то, что может вас интересовать, и кроме того буду иметь удовольствие подробнее побеседовать с вами. – Он, закрыв глаза, поклонился, и a la francaise, [на французский манер,] не прощаясь, стараясь быть незамеченным, вышел из залы.


Первое время своего пребыванья в Петербурге, князь Андрей почувствовал весь свой склад мыслей, выработавшийся в его уединенной жизни, совершенно затемненным теми мелкими заботами, которые охватили его в Петербурге.
С вечера, возвращаясь домой, он в памятной книжке записывал 4 или 5 необходимых визитов или rendez vous [свиданий] в назначенные часы. Механизм жизни, распоряжение дня такое, чтобы везде поспеть во время, отнимали большую долю самой энергии жизни. Он ничего не делал, ни о чем даже не думал и не успевал думать, а только говорил и с успехом говорил то, что он успел прежде обдумать в деревне.
Он иногда замечал с неудовольствием, что ему случалось в один и тот же день, в разных обществах, повторять одно и то же. Но он был так занят целые дни, что не успевал подумать о том, что он ничего не думал.
Сперанский, как в первое свидание с ним у Кочубея, так и потом в середу дома, где Сперанский с глазу на глаз, приняв Болконского, долго и доверчиво говорил с ним, сделал сильное впечатление на князя Андрея.
Князь Андрей такое огромное количество людей считал презренными и ничтожными существами, так ему хотелось найти в другом живой идеал того совершенства, к которому он стремился, что он легко поверил, что в Сперанском он нашел этот идеал вполне разумного и добродетельного человека. Ежели бы Сперанский был из того же общества, из которого был князь Андрей, того же воспитания и нравственных привычек, то Болконский скоро бы нашел его слабые, человеческие, не геройские стороны, но теперь этот странный для него логический склад ума тем более внушал ему уважения, что он не вполне понимал его. Кроме того, Сперанский, потому ли что он оценил способности князя Андрея, или потому что нашел нужным приобресть его себе, Сперанский кокетничал перед князем Андреем своим беспристрастным, спокойным разумом и льстил князю Андрею той тонкой лестью, соединенной с самонадеянностью, которая состоит в молчаливом признавании своего собеседника с собою вместе единственным человеком, способным понимать всю глупость всех остальных, и разумность и глубину своих мыслей.
Во время длинного их разговора в середу вечером, Сперанский не раз говорил: «У нас смотрят на всё, что выходит из общего уровня закоренелой привычки…» или с улыбкой: «Но мы хотим, чтоб и волки были сыты и овцы целы…» или: «Они этого не могут понять…» и всё с таким выраженьем, которое говорило: «Мы: вы да я, мы понимаем, что они и кто мы ».
Этот первый, длинный разговор с Сперанским только усилил в князе Андрее то чувство, с которым он в первый раз увидал Сперанского. Он видел в нем разумного, строго мыслящего, огромного ума человека, энергией и упорством достигшего власти и употребляющего ее только для блага России. Сперанский в глазах князя Андрея был именно тот человек, разумно объясняющий все явления жизни, признающий действительным только то, что разумно, и ко всему умеющий прилагать мерило разумности, которым он сам так хотел быть. Всё представлялось так просто, ясно в изложении Сперанского, что князь Андрей невольно соглашался с ним во всем. Ежели он возражал и спорил, то только потому, что хотел нарочно быть самостоятельным и не совсем подчиняться мнениям Сперанского. Всё было так, всё было хорошо, но одно смущало князя Андрея: это был холодный, зеркальный, не пропускающий к себе в душу взгляд Сперанского, и его белая, нежная рука, на которую невольно смотрел князь Андрей, как смотрят обыкновенно на руки людей, имеющих власть. Зеркальный взгляд и нежная рука эта почему то раздражали князя Андрея. Неприятно поражало князя Андрея еще слишком большое презрение к людям, которое он замечал в Сперанском, и разнообразность приемов в доказательствах, которые он приводил в подтверждение своих мнений. Он употреблял все возможные орудия мысли, исключая сравнения, и слишком смело, как казалось князю Андрею, переходил от одного к другому. То он становился на почву практического деятеля и осуждал мечтателей, то на почву сатирика и иронически подсмеивался над противниками, то становился строго логичным, то вдруг поднимался в область метафизики. (Это последнее орудие доказательств он особенно часто употреблял.) Он переносил вопрос на метафизические высоты, переходил в определения пространства, времени, мысли и, вынося оттуда опровержения, опять спускался на почву спора.
Вообще главная черта ума Сперанского, поразившая князя Андрея, была несомненная, непоколебимая вера в силу и законность ума. Видно было, что никогда Сперанскому не могла притти в голову та обыкновенная для князя Андрея мысль, что нельзя всё таки выразить всего того, что думаешь, и никогда не приходило сомнение в том, что не вздор ли всё то, что я думаю и всё то, во что я верю? И этот то особенный склад ума Сперанского более всего привлекал к себе князя Андрея.
Первое время своего знакомства с Сперанским князь Андрей питал к нему страстное чувство восхищения, похожее на то, которое он когда то испытывал к Бонапарте. То обстоятельство, что Сперанский был сын священника, которого можно было глупым людям, как это и делали многие, пошло презирать в качестве кутейника и поповича, заставляло князя Андрея особенно бережно обходиться с своим чувством к Сперанскому, и бессознательно усиливать его в самом себе.
В тот первый вечер, который Болконский провел у него, разговорившись о комиссии составления законов, Сперанский с иронией рассказывал князю Андрею о том, что комиссия законов существует 150 лет, стоит миллионы и ничего не сделала, что Розенкампф наклеил ярлычки на все статьи сравнительного законодательства. – И вот и всё, за что государство заплатило миллионы! – сказал он.
– Мы хотим дать новую судебную власть Сенату, а у нас нет законов. Поэтому то таким людям, как вы, князь, грех не служить теперь.
Князь Андрей сказал, что для этого нужно юридическое образование, которого он не имеет.
– Да его никто не имеет, так что же вы хотите? Это circulus viciosus, [заколдованный круг,] из которого надо выйти усилием.

Через неделю князь Андрей был членом комиссии составления воинского устава, и, чего он никак не ожидал, начальником отделения комиссии составления вагонов. По просьбе Сперанского он взял первую часть составляемого гражданского уложения и, с помощью Code Napoleon и Justiniani, [Кодекса Наполеона и Юстиниана,] работал над составлением отдела: Права лиц.


Года два тому назад, в 1808 году, вернувшись в Петербург из своей поездки по имениям, Пьер невольно стал во главе петербургского масонства. Он устроивал столовые и надгробные ложи, вербовал новых членов, заботился о соединении различных лож и о приобретении подлинных актов. Он давал свои деньги на устройство храмин и пополнял, на сколько мог, сборы милостыни, на которые большинство членов были скупы и неаккуратны. Он почти один на свои средства поддерживал дом бедных, устроенный орденом в Петербурге. Жизнь его между тем шла по прежнему, с теми же увлечениями и распущенностью. Он любил хорошо пообедать и выпить, и, хотя и считал это безнравственным и унизительным, не мог воздержаться от увеселений холостых обществ, в которых он участвовал.
В чаду своих занятий и увлечений Пьер однако, по прошествии года, начал чувствовать, как та почва масонства, на которой он стоял, тем более уходила из под его ног, чем тверже он старался стать на ней. Вместе с тем он чувствовал, что чем глубже уходила под его ногами почва, на которой он стоял, тем невольнее он был связан с ней. Когда он приступил к масонству, он испытывал чувство человека, доверчиво становящего ногу на ровную поверхность болота. Поставив ногу, он провалился. Чтобы вполне увериться в твердости почвы, на которой он стоял, он поставил другую ногу и провалился еще больше, завяз и уже невольно ходил по колено в болоте.
Иосифа Алексеевича не было в Петербурге. (Он в последнее время отстранился от дел петербургских лож и безвыездно жил в Москве.) Все братья, члены лож, были Пьеру знакомые в жизни люди и ему трудно было видеть в них только братьев по каменьщичеству, а не князя Б., не Ивана Васильевича Д., которых он знал в жизни большею частию как слабых и ничтожных людей. Из под масонских фартуков и знаков он видел на них мундиры и кресты, которых они добивались в жизни. Часто, собирая милостыню и сочтя 20–30 рублей, записанных на приход, и большею частию в долг с десяти членов, из которых половина были так же богаты, как и он, Пьер вспоминал масонскую клятву о том, что каждый брат обещает отдать всё свое имущество для ближнего; и в душе его поднимались сомнения, на которых он старался не останавливаться.