Показать сообщение отдельно
Старый 04.02.2005, 20:11     # 11
ARTi
Guest
 
Сообщения: n/a

Цитата:
Сообщение от Dr.God
это делает SpeedDisk от Norton
Да, этот делает . Но он всегда был заточен под Win9x и FAT. Поддержку NTFS добавили, по-моему, только на уровне драйверов, а общий алгоритм остался тем же.
Цитата:
Сообщение от Dr.God
При этом получаем фрагментированный свап, забитый левой инфой
Почему фрагментированный, если он имеет фиксированный размер и/или вообще занимает раздел целиком (если следовать тому, что я написал)?
Цитата:
Сообщение от Dr.God
чего опять-таки можно было бы избежать, уменьшив размер файла подкачки
Да, возможно. Но я думал (и из этого исходил), что при правильной настройке работы с памятью работа с файлом подкачки станет соответствующей.

Механизм страничной подкачки и переадресации реализован аппаратно в защищенном режиме процессоров семейства 80386+. Если выполняемая в данный момент команда пытается обратиться к странице памяти, которой нет (на что указывает соответствующий флажок в таблице страниц) - на винчестере или достигнут конец памяти - или нельзя трогать, возникает соответствующее исключение и происходит переход по адресу (или переключение задачи), где уже заблаговременно размещен другой код (невыгружаемая часть ядра ОС), например, скидывающий какую-нибудь редкоиспользуемую страницу на диск, а на ее место подгружающий страницу, содержащую инфу запрошенного участка памяти. Сброшенная на диск страница помечается отсутствующей в памяти, а новой - только что подгруженной - присваиваются адреса запрошенного участка памяти. Далее происходит возврат и перезапуск команды, вызвавшей исключение - теперь она успешно читает и записывает данные в память. До тех пор, пока опять кому-нибудь не приспичит поработать с памятью, которой нет (физически и/или в данный момент сброшена на диск).

Если в Windows чего-то перевернули, навернули или лишнего перемудрили, тогда может быть что угодно. Однако смысла в этом нет.
Можно тогда допустить, что windows что-то пишет именно на диск (или читает с него), а это что-то на некоторое задерживается в файловом кеше. В этот момент какому-то приложению понадобилась память, тогда бедный файловый кеш, вместо того, чтобы быть сразу опустошенным, вытесняется сначала на swap, а уже оттуда...
Вот ведь! На момент написания этих строк я начинаю верить, что такое действительно возможно. А если swap маленький или его нет - тогда ядро вынуждено сразу опустошать файловый кеш... Мдаааааа
Вполне может быть, что так все и происходит, в случае, если ядро не имеет представления о том, что делает драйвер, а тот, в свою очередь, понятия не имеет, кому, зачем и почему понадобилось работать именно с винтом или именно с памятью; тогда и возникает борьба частей windows между собой за жизненное пространство...

Однако, поспешу добавить :
1. Это все может происходить в случае заполнения всей памяти; а если ее 512 MB, тогда - нет или далеко не сразу.
2. Где-то я читал, что в реестре есть ключ, ограничивающий использование памяти. Он сделан для того, чтобы можно было работать с глючной памятью (исключение диапазона адресов, приходящегося, скажем, на какой-нибудь глючный модуль памяти). Так вот, с той памятью windows не работает.
Возможно, по умолчанию он имеет какое-то "неправильное" значение? Надо бы поискать инфу...

P.S. Господа, извините за некоторый флейм, но мне кажется, что это не менее важно, и все же имеет отношение к оверклокингу Windows.

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

Последний раз редактировалось ARTi; 04.02.2005 в 20:13.