Файл подкачки нужен для
покрытия недостатка виртуальной памяти на
компьютере под управлением системы Windows .
Предыстория .
В первых операционных системах Microsoft (DOS)
процессоры работали в реальном режиме . Это означало ,
что в некоторый момент времени на
компьютере работала одна и только одна программа (
имеющая права доступа на любой адрес памяти
) и поддерживающая её операционная система с
драйверами . Конечно мог выполняться параллельный код ,
но это было исключением , а не правилом .
Для программ в виртуальном режиме было
доступно ограниченное количество памяти - 640 кб ( основатель
Microsoft сказал . что "этого будет достаточно "
и он не может понять "кому понадобится
такой большой объём памяти " ) , но его
можно было расширить до 1 мб . Ограничение на 1
мб существовало прежде всего потому , что
чтобы обратится к памяти , её адрес надо
записать в регистр , а регистры реального режима -
16 разрядные , в них значение больше 1 мб
никак не запишешь ("чисто физически") .
Конечно же , в скором времени такое
ограничение стало тормозом . Появились новые системы -
многозадачные . Для функционирования такого режима
потребовался новый метод работы программ - раздельный (
программы должны работать только с той
памятью , с которой им положено , а не со всем
объёмом ) . Процессоры ( начиная с i286 ) стали поддерживать
такой новый режим работы - защищённый .
Однако старые программы не могли выполняться
в такой конфигурации , поэтому был найден выход в
новом режиме процессора - виртуальном , в котором
могли выполняться любые программы .
Впервые файл подкачки появился в Windows 3.0 .
Управление им располагалось в панели управления
(она , кстати , тоже появилась впервые в этой системе )
, во вкладке "386 Расширенный" . Файл подкачки
мог быть постоянным и временным (сейчас
такого механизма нет , файл подкачки можно
очищать перед выключением , но на его размер
это не повлияет ) . Временный файл назывался
win386.swp и лежал в корневом каталоге диска , а
постоянный - 386spart.par . Он мог находится где угодно
, но только ссылка на него в файле
spart.par должна была быть правильной . Если
раньше механизмы работы с памятью EMS и
XMS использовались из-за избытка памяти , то
сейчас файл подкачки из-за её недостатка .
Сейчас Windows XP с виртуальной памятью
использует плоское адресное пространство - всю
память она делит на блоки (страницы памяти ) .
Обьём виртуальной памяти ограничен 4 гб в
32 разрядных системах (но можно расширить до 64 гб ,
используя PAE - Physical Address Extension - для этого
нужно установить ntkrnlpa вместо ntoskrnl ) и 64 гб в
64 разрядных Windows . Как видно , такого объёма памяти
на компьютере может и не быть . Тогда
для покрытия нехватки используется файл подкачки
( о его настройке я расскажу позже ). В
ядре существует диспетчер памяти , который
занимается управлением виртуальной памяти , работой
с подкачкой , трансляцией виртуальных адресов в
реальные и ещё многим чем другим . Появление механизма
подкачивание дополнило такую причину краха Windows , как
вынужденное перераспределение процессорного времени .
Теперь о настройке подкачки в Windows .
Его конфигурирование проводится в Свойства системы -
Дополнительно - Параметры быстродействия - Дополнительно - Изменить .
Официально Microsoft рекомендует устанавливать
размер равный объёму установленной физической
памяти * 1,5 .
Файл подкачки можно дробить и части
располагать на разных дисках . Фактическая
настройка проходит при чтении параметров раздела
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory
Management при загрузке . Интересно , что для
параметра Paging Files я не нашёл какой - либо
оснастки , хотя с его помощью можно
задавать файлу подкачки любое имя (проверено ) и
располагать в подпапках ( это яне проверял ) .
( HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory
Management DisablePagingExecutive =1 ) . Соднойстороны , еслидержатьядропамяти , тобыстродействиеувеличится .
Сдругойстороны , ядро «съест ”
частьоперативки и это будет иметь негативный эффект .
Существует ещё опция "Оптимизация работы системного кэша " (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management LargeSystemCache=1) для увеличения быстродействия .
Очень часто возникают споры по поводу того , как лучше управлять файлом подкачки . Я считаю , что его можно уменьшать при объёме памяти больше 1гб . Micosoft не советует дробить файл подкачки на части и размещать их на одном физическом диске (если дисков несколько , то дробите ) . Вообще всё зависит от конкретной конфигурации : общего количества памяти , работающих программ Я думаю , что даже "пооптимизировав" вы не увидите ожидаемых результатов . Их разве что сама Windows заметит .