segmentation raspberry page error dumped memory-management segmentation-fault page-fault

memory management - raspberry - falla de segmentación vs falla de página



segmentation fault raspberry pi (2)

  1. Me preguntaba qué diferencias y relaciones existen entre la falla de segmentación y la falla de página.

  2. ¿La falla de segmentación solo pertenece al modelo de memoria segmentada?

    ¿El error de página solo pertenece al modelo de memoria paginada?

    Si ambos son afirmativos, dado que la mayoría de los sistemas informáticos como x86 y Linux utilizan el modelo de memoria paginada en lugar del modelo de memoria segmentada, ¿por qué el compilador C de GCC a veces informa de un error de falla de segmentación?

¡Gracias y saludos!


Estas dos cosas son muy diferentes, en realidad. Una falla de segmentación significa que un programa intentó acceder a una dirección de memoria no válida o ilegal: por ejemplo, 0 o un valor mayor que cualquier puntero válido. Un error de página se produce cuando un puntero intenta acceder a una página de espacio de direcciones que actualmente no está asignada a la memoria física, por lo que la MMU debe extraerla del disco antes de poder usarla. El primero es una condición ilegal y el programa generalmente será abortado; el último es perfectamente normal y el programa ni siquiera lo sabrá.

La "segmentación" no está relacionada en absoluto con el antiguo "modelo de memoria segmentada" utilizado por los primeros procesadores x86; es un uso anterior que solo se refiere a una porción o segmento de memoria.


Las fallas de segmentación se utilizan cuando no se permite el acceso a la memoria (no existe o está prohibida). Lo más frecuente es que ocurran cuando desreferencia una variable nula o se ejecuta al final de una matriz. Las fallas de página ocurren cuando se accede a la memoria asignada pero no cargada. No son errores, y le indican al sistema operativo que debe cargar la página apropiada en la memoria.