es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué hay en el campo de dirección PTE para una página mapeada de relleno de cero bajo demanda anónima?

Cuando un programa llama a mmap para asignar una página anónima, también conocida como página con demanda cero, ¿qué aparece en el campo de dirección de la correspondiente entrada de tabla de páginas (PTE)? Supongo que el kernel no crea una página inicializada con ceros en la memoria física (y no ingresa el número de página de la página física en la PTE) hasta que el proceso solicitante toca la página, de ahí el término con demanda cero. Dado que no sería una dirección de disco y no sería 0 (que es para páginas no asignadas), ¿qué valor aparecería allí? Como una pregunta diferente pero relacionada, ¿cómo sabe el kernel que esta página debe manejarse como una página con demanda cero, es decir, que el controlador de interrupción de falla debería encontrar una página física e inicializarla con 0 en lugar de copiar una página del disco?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Cuando un programa llama a mmap para asignar una página anónima, el campo de dirección de la entrada de tabla de página (PTE) correspondiente contendría el valor 0. Esto indica que aún no se ha asignado una página física para la dirección virtual y que es una página de demanda-cero.

    El kernel “sabe” que esta página debe ser tratada como una página de demanda-cero debido a las banderas que se establecen en la estructura VMA (Área de Memoria Virtual) que está asociada con la región mapeada. Cuando se produce una falla de página en la página de demanda-cero, el controlador de falla de página del kernel comprobará estas banderas y asignará una nueva página física para la página en cuestión. Esta página física se inicializará con ceros antes de que se mapee a la dirección virtual.

Comments are closed.