![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибки страницы [Win2k, WinXP]
alextim © (2008-12-10 21:04:00)Всем добрый день!
Мой код работает с файлами данных, смапированнными в страничной памяти - постоянно пишет-читает. Вроде бы все работает довольно стабильно. Недавно в Task Manager добавил колонку Ошибки страницы и обнаружил, что считчик ошибок за полчаса работы зашкаливает за десятки и сотни миллионов (!!!) и зависит от объема записанных/прочитанных данных.
Что это за ошибки такие? Как они влияют на работу системы и на ее стабильность? Нужно и их как-то избегать при написании кода? или может быть еще есть что-то еще серьезное, что я не спросил?...
Сергей М. (2008-12-11 15:49:00) [1]
> Так?
Ну в первом приближении так.
> Или это не тот случай?
Не тот, но смысл тот же.
> что в этом криминального?
Ничего. А причем здесь криминал ?
alextim (2008-12-11 14:44:00) [2]В этом случае у процесса фотошоп тоже будет увеличиваться счетчик ошибок страницы?
alextim (2008-12-11 14:43:00) [3]> Это значит, что страница вирт.памяти, к которой осуществляется попытка обращения, не отображена на станицу физ.памяти.
Я так понимаю, что это стандартная ситуация для любого не сильно активного процесса. Допустим я запустил Фотошоп, открыл там несколько изображений и свернул на некоторое время. ОС должна слить часть памяти, занимаемой этим роцессом в своп с течением времени, а затем, при активации окна заново переместить ее в оперативную память, а страницы другого процесса - наоборот, слить на диск. Так? И что в этом криминального? Или это не тот случай?...
Сергей М. (2008-12-11 10:19:00) [4]
> насколько эта ошибка является ошибкой в классическом понимании
Считай что к классике прикладного программирования эта ошибка не имеет ни малейшего отношения.
> Что значит "страница не готова общаться"
Это значит, что страница вирт.памяти, к которой осуществляется попытка обращения, не отображена на станицу физ.памяти.
Skyle (2008-12-11 10:05:00) [5]Эта ошибка не является
> ошибкой в классическом понимании, т.е. приводящей к каким-
> то отказам
alextim (2008-12-11 09:43:00) [6]>Сергей М. © (11.12.08 08:37) [1]
>Это не баг, а фича
>Тебя же не удивляет, что адресное пространство каждого процесса в Win32 равно 4 Гб, в то время как объем ОЗУ равен, скажем, 0.5 Гб, и при этом система нормально функционирует ?
Мой вопрос как раз в том, насколько эта ошибка является ошибкой в классическом понимании, т.е. приводящей к каким-то отказам? Если не трудно, причтите внимательнее вопрос. Я здесь не прошу лекцию читать об устройстве памяти Windows...
>Skyle © (11.12.08 08:45) [2]
>Эти ошибки означают, что страница памяти, к которой идёт обращение, в данный момент не готова общаться, например находится в свопе.
Что значит "страница не готова общаться", если я принудительно не сбрасываю ее на диск, никаких исключених по ходу выполнения не возникает и результат работы кода именно тот, что мне был нужен?
Сергей М. (2008-12-11 09:08:00) [7]
> alextim
Ликбез:
http://www.codenet.ru/progr/os/RAM/RAM-2.php
Skyle (2008-12-11 08:45:00) [8]Эти ошибки означают, что страница памяти, к которой идёт обращение, в данный момент не готова общаться, например находится в свопе.
Сергей М. (2008-12-11 08:37:00) [9]
> Что это за ошибки такие?
Это не баг, а фича
Тебя же не удивляет, что адресное пространство каждогопроцесса в Win32 равно 4 Гб, в то время как объем ОЗУ равен, скажем, 0.5 Гб, и при этом система нормально функционирует ?