Файл подкачки

Файл подкачки

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

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

Также существует термин swap (англ. swap, /swɔp/) также означающий виртуальную память (точнее способ её представления), или же означает подкачку данных с диска.

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;
  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью);

Содержание

Страничная организация виртуальной памяти

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

В семействе операционных систем Microsoft Windows место для хранения страниц на жёстких дисках должно быть выделено заранее. Пользователь может положиться на автоматический механизм или самостоятельно указать размер области виртуальной памяти на каждом из разделов диска. На указанных разделах операционной системой создаётся файл pagefile.sys требуемого размера, который и хранит «сброшенные» из оперативной памяти страницы.

Сегментная организация виртуальной памяти

Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.[1] Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

Свопинг

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

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

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

Использование свопинга особенно эффективно, если запущено много интерактивных приложений, которые потребляют большой объем ОЗУ, но при этом практически не занимают процессорное время.

Методики эффективной организации файла подкачки

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

Дополнительные сведения

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

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

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

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

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

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

Недостатки

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

Операционные системы

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

Unix-подобные

В

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

sudo dd if=/dev/zero of=/swap bs=1024 count=128K # Создание файла необходимого размера для swap (в данном случае 128 Мб)

sudo mkswap /swap # Инициализация структуры swap в файле

sudo /bin/sync # Сброс изменений на диск

sudo swapon /swap # Включение swap (отключение - swapoff)

Microsoft Windows и Windows NT

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

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

См. также

Примечания

  1. В семействе операционных систем Microsoft Windows сегментная адресация не используется и заменена делением памяти на секции, что в сущности почти одно и то же.
  2. http://msk.nestor.minsk.by/kg/2005/16/kg51614.html

Литература

Вахалия Ю. UNIX изнутри. — СПб.: Питер, 2003. С.844. ISBN 5-94723-013-5

Иртегов Д. Введение в операционные системы. СПб.: Питер, 2002.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "Файл подкачки" в других словарях:

  • Файл подкачки — специальный файл, размещающийся на одном или нескольких дисках компьютера и предназначенный для (временного) хранения страниц виртуальной памяти. По английски: Paging file См. также: Файлы Виртуальная память Финансовый словарь Финам …   Финансовый словарь

  • файл подкачки — Файл, хранящийся на диске и временно используемый ОЗУ в процессе обработки данных. [Л.М. Невдяев. Телекоммуникационные технологии. Англо русский толковый словарь справочник. Под редакцией Ю.М. Горностаева. Москва, 2002] Тематики электросвязь,… …   Справочник технического переводчика

  • файл подкачки — комп. скрытый файл на жестком диске, который ОС использует для хранения частей программ и файлов данных, не помещающихся в памяти. Файл подкачки и физическая память вместе составляют виртуальную память. ОС перемещает данные между файлом подкачки… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

  • файл подкачки (выгрузки) задач — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN swapping file …   Справочник технического переводчика

  • Своп-файл — Виртуальная память  схема адресации памяти компьютера, при которой память представляется программному обеспечению непрерывной и однородной, в то время как в реальности для фактического хранения данных используются отдельные (разрывные) области… …   Википедия

  • страничный файл — комп. скрытый файл на жестком диске, который ОС использует для хранения частей программ и файлов данных, не помещающихся в памяти. Файл подкачки и физическая память вместе составляют виртуальную память. ОС перемещает данные между файлом подкачки… …   Универсальный дополнительный практический толковый словарь И. Мостицкого

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

  • Отрицаемое шифрование — (англ. deniable encription, также двусмысленное шифрование )  способ компоновки зашифрованной информации, который обеспечивает возможность правдоподобного отрицания её наличия. Содержание 1 Принцип 2 Сфера применения …   Википедия

  • zRam — это экспериментальный модуль ядра Linux (ранее известный как compcache ). Он увеличивает производительность путем предотвращения подкачки страниц на диск, используя сжатое блочное устройство в оперативной памяти, пока не появится необходимость… …   Википедия

  • UPX — the Ultimate Packer for eXecutables Тип Упаковка исполняемых файлов Написана на C++, Ассемблер Операционная система Microsoft Windows, Linux, MacOS, DOS, Atari Первый выпуск 26 мая 1998 год …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»