Explicación sobre la memoria y paginación
Vamos a ver. Poco a poco.
Me explico. La memoria virtual lo que te permite es que trabajes como si tuvieses más capacidad de memoria central. Es decir 4es una zona del disco que se reserva para tal efecto.
Dado que como los programas en ejecución se encuentran en la memoria central y no todos caben (piensa que los procesos tienen una zona en memoria para su código otra para sus datos y otra para su pila) se produce un trasiego de información (páginas) entre la memoria central y la tabla de páginas (digamos la memoria virtual). Entonces cuando un proceso necesita cargar en memoria algún información lo que hace es pedirla a la tabla de páginas o a una memoria cache que pueda haber de por medio. Por otro lado puede que el proceso tenga ya en memoria el número máximo de páginas que puede tener entonces lo que se hace es sacar de memoria alguna de ellas (generalmente la que más tiempo llevaba sin usarse) y meter en su lugar la nueva página sacada de disco.
No sé si me he explicado bien.
Si necesitas más datos me lo dices y te los paso sin problema alguno.
Por otro lado lo del desbordamiento se debe a que la pila de un proceso que está en memoria no puede exceder un determinado tamaño, es decir no puede meterse dentro del espacio para datos y código. Cuando un programa va a sobrepasar ese memoria se produce un stack overflow, es decir el desbordamiento. Esto puede producirse por errores de programación por ejemplo llamadas recursivas en los programas mal controladas, etc...
Me explico. La memoria virtual lo que te permite es que trabajes como si tuvieses más capacidad de memoria central. Es decir 4es una zona del disco que se reserva para tal efecto.
Dado que como los programas en ejecución se encuentran en la memoria central y no todos caben (piensa que los procesos tienen una zona en memoria para su código otra para sus datos y otra para su pila) se produce un trasiego de información (páginas) entre la memoria central y la tabla de páginas (digamos la memoria virtual). Entonces cuando un proceso necesita cargar en memoria algún información lo que hace es pedirla a la tabla de páginas o a una memoria cache que pueda haber de por medio. Por otro lado puede que el proceso tenga ya en memoria el número máximo de páginas que puede tener entonces lo que se hace es sacar de memoria alguna de ellas (generalmente la que más tiempo llevaba sin usarse) y meter en su lugar la nueva página sacada de disco.
No sé si me he explicado bien.
Si necesitas más datos me lo dices y te los paso sin problema alguno.
Por otro lado lo del desbordamiento se debe a que la pila de un proceso que está en memoria no puede exceder un determinado tamaño, es decir no puede meterse dentro del espacio para datos y código. Cuando un programa va a sobrepasar ese memoria se produce un stack overflow, es decir el desbordamiento. Esto puede producirse por errores de programación por ejemplo llamadas recursivas en los programas mal controladas, etc...
1 Respuesta
Respuesta de alvarinchu
1