| Предыдущий | Следующий |
| KERN_MEMORY_PRESENT | KERN_MEMORY_RESTART_COPY |
KERN_MEMORY_DATA_MOVED
KERN_MEMORY_DATA_MOVED — состояние объекта памяти Mach, используемое при обработке копирования. XNU описывает его для страницы, запрошенной у диспетчера памяти, когда ядро проходит цепочку теневых копий: диспетчер обнаруживает, что страница была перемещена в копию объекта.
Важная практическая деталь состоит в том, что, согласно XNU, этот код передаётся через путь ошибки объекта памяти, обрабатывается ядром и не виден пользователям. Поэтому обычно это не ошибка уровня приложения, которую нужно показывать, повторять или преобразовывать в пользовательский диагноз.
Когда это состояние актуально
- При аудите исходного кода XNU, расширений ядра или пользовательского диспетчера памяти либо пейджера.
- При трассировке сбоев, связанных с копированием при записи или объектом памяти, настроенным на поведение copy-call.
- При интерпретации внутренней диагностики ядра, где упоминается перезапущенная ошибка страницы или перемещённые данные страницы.
Не путайте это состояние с неудачным перемещением файла или обычной миграцией данных. «Перемещённые» данные здесь — страница в механизме копий объекта памяти Mach. Ожидаемая реакция — внутреннее восстановление после ошибки страницы, а не цикл повторов приложения.
Ссылки
- XNU: kern_return.h
- Apple: руководство по программированию ядра — объекты памяти
- Справочник GNU Mach: внешнее управление памятью
Нужно найти другой код? Найти другой код состояния или ошибки.