Защита компьютера на 100%: cбои, ошибки и вирусы - страница 12
• Возможна ситуация, когда диск, на котором находится файл подкачки, заполнен почти до предела. В таком случае при запуске большого количества ресурсоемких программ операционная система может выдать предупреждение о нехватке виртуальной памяти. Выход – освободить место на этом диске за счет удаления или перемещения каких-либо файлов.
Фрагментация файлов
На физическом уровне жесткий диск записывает информацию только целыми секторами размером по 512 байт. Когда-то такой стандарт был удобен и достаточен. По мере роста емкости винчестеров возникло желание увеличить размер участков диска, к которым система обращается одномоментно. Современные жесткие диски чаще всего на уровне BIOS поддерживают функцию LBA (Logical Block Access – доступ к логическим блокам). В таком случае BIOS обращается не к каждому сектору отдельно, а к целым блокам, состоящим из нескольких физических секторов. Считывание и запись информации при таком обращении происходят сразу большими порциями и осуществляются гораздо быстрее. Наконец, на уровне файловой системы существует понятие «кластер». Кластер представляет собой группу секторов, или логических блоков, рассматриваемых как единое целое. Каждый кластер включает в себя от 8 до 128 секторов. В процессе форматирования диска средствами Windows размер кластера при желании можно задать вручную. Значение по умолчанию предлагается операционной системой в зависимости от размера диска: чем больше диск, тем больше размер кластеров на нем. После того как диск отформатирован, правильнее всего говорить не о секторах, а о кластерах – для любой операционной системы диск выглядит именно так.
Если размер файла превышает размер сектора (логического блока, кластера), файл занимает несколько секторов (блоков, кластеров). Другими словами, фрагменты одного файла могут размещаться в разных кластерах. В процессе обращения к фай – лу операционная система собирает эти фрагменты воедино в оперативной памяти. Когда фрагменты файла занимают кластеры, следующие один за другим, все отлично – головка жесткого диска может считывать или записывать эти данные практически «не отходя от кассы». В действительности такая непрерывная запись возможна лишь в идеале. Допустим, мы по одному записываем файлы на только что отформатированный диск. Тогда файлы действительно располагаются на диске один за другим и каждый занимает кластеры, последовательно идущие друг за другом. Принято говорить, что файлы на таком диске не фрагментированы или что фрагментация диска составляет 0 %.
На практике дело обстоит совсем иначе. Нужно вспомнить, что запись данных начинается на ближайшее свободное место диска. Это вполне логично: операционная система старается размещать все файлы так, чтобы на диске сохранялось как можно больше непрерывного свободного места. Записав на первый свободный участок столько данных, сколько туда поместилось, система ищет следующее свободное место, продолжает запись на него и т. д. Поскольку файлы периодически удаляются, такие свободные участки возникают в самых разных местах (рис. 1.5). В результате фрагменты вновь записываемого файла обычно разбросаны по всему диску. Чем чаще на диске записываются и удаляются файлы, тем больше становится их фрагментация. Во время чтения блок головок вынужден метаться по всему диску, собирая фрагменты файлов, а средняя скорость чтения ощутимо снижается. Процесс записи файлов на сильно фрагментированный диск замедляется по той же причине.