Que es la paginacion?
la memoria en los sistemas operativos, estaba dividida de manera contigua como indica en la figura:

el problema de este tipo de asignacion de memoria a un proceso era la fragmentacion externa, ( si tengo varios huecos en el medio de 12 k, y viene un proceso de 24k, no puedo atenderlo, aunque cuente con la memoria, no esta contigua)
para solucionar esto se planteo, la paginacion, que se divide la memoria en bloques de igual tamaño y se asigna a un proceso la cantidad de paginas que necesite, y estas no necesarimente tienen que estar juntas

entonces como aplicamos esto bueno:
si tenemos una matriz, esta misma, se asigna cada fila a lo ancho de una pagina y cada columna como un renglon nuevo.
entonces si la recorremos por columna, cuando pasemos una frontera de pagina, el sistema operativo va a tener que cargar en memoria la pagina, si no lo esta (lo que se conoce como page fault) y eso traeria un problema de rendimiento.
Entonces conviene recorrer la matriz fila por columna.
Ejemplo:
matriz[256][256]
for j=o to 255
{
for i=0 to 255 matriz[j] = 5;
}
Page fault: al usar memoria virtual, no todas las paginas estan en memoria, entonces en la paginacion por demanda solo se usan las paginas cuando son requeridas, el page fault genera una interrupcion del proceso hasta que obtenga del sistema operativo la pagina correspondiente. lo cual genera un retardo de nuestra aplicacion.
bueno espero que les haya servido, y hayan aprendido algo basico de como funciona la gestion en memoria (a grandes rasgos) el que quiera saber mas que lea el silberchantz o el stallin , sistemas operativos, (la tuve que estudiar hace poco :P )
Saludos!
Leos.