management error memory operating-system

memory management error



¿Cuál es la diferencia entre el "intercambio" del sistema operativo y la "página"? (6)

¿Cuál es la diferencia entre estos 2 términos en el sistema operativo: intercambio y página?


A pesar del intercambio histórico de estos dos términos, indican cosas diferentes. Ambos son métodos para administrar datos móviles en la memoria a otro dispositivo de almacenamiento, llamado almacén de respaldo (a menudo un disco duro), pero utilizan diferentes métodos para hacerlo.

El intercambio implica mover los datos de la colección completa de un proceso en la memoria a un rango de espacio en la tienda de respaldo, a menudo a un archivo de intercambio o una partición de intercambio. El proceso pasa de estar en la memoria a ser intercambiado por completo; No hay término medio. Obviamente, el proceso tendrá que estar totalmente inactivo para que el intercambio valga la pena. La ventaja de esto es que es relativamente fácil de comprender y la memoria para un programa siempre se asigna contiguamente, la desventaja es que el rendimiento en una máquina puede llegar a ser absolutamente abismal cuando el sistema termina en un estado en el que las cosas cambian constantemente. El algoritmo también implica el intercambio repetido dentro y fuera de datos que no se usarán en el futuro previsible.

Paginación intenta resolver este problema, tomando memoria física, y dividiéndola en cosas llamadas "marcos" de algún tamaño fijo. También toma el espacio de memoria de cada proceso en ejecución y lo divide en páginas (que son del mismo tamaño que los marcos); esto se denomina espacio de direcciones físicas, debido a la necesidad de usar direcciones físicas para acceder a cada bloque de memoria.

El sistema operativo presenta un entorno para cada programa y es compatible con hardware moderno, lo que hace que la huella de memoria de los programas parezca un solo bloque contiguo de una gran cantidad de memoria; esto se llama espacio de direcciones lógico.

Sin embargo, cada página de este bloque contiguo puede estar en la memoria, o puede estar en la tienda de respaldo. El sistema operativo determina dónde está cada página consultando algo llamado "tabla de páginas". Si encuentra que la página que el programa solicitó está en alguna parte de la memoria, simplemente irá a esa página de memoria y captará los datos solicitados.

Si encuentra que la página no está en la memoria; esto causa un "error de página". El sistema operativo suspenderá el proceso mientras carga la página solicitada desde la tienda de respaldo y, a su vez, puede mover otra página de la memoria a la tienda de respaldo para hacer espacio, en función de algún algoritmo de reemplazo. El almacén de respaldo se puede llamar un archivo de paginación, o aún se puede llamar un archivo de intercambio o una partición de intercambio, lo que genera confusión sobre qué sistema se está utilizando. Si se trata de una partición separada, o simplemente un archivo, depende del sistema operativo.

Hay ciertas partes de la memoria que no están sujetas a paginación. Uno de estos es el código de paginación en sí, y las partes del kernel que manejan cosas como fallas de página. Algunos sistemas operativos, como MacOS, hacen referencia a esta memoria como "cableada".

El hardware de hoy en día tiene varios dispositivos que permiten que un sistema operativo admita paginación de manera mucho más efectiva. El más común de estos es un Translation Lookaside Buffer, o TLB. Esto almacena una especie de caché de tabla de páginas de hardware, de modo que cada vez que un programa necesita hacer una dirección lógica para la traducción de direcciones físicas, no tiene que ir al sistema operativo cada vez.

Los sistemas operativos modernos también aprovechan la búsqueda mediante la carga lenta de partes de los procesos que están ejecutando. Por ejemplo, si inicia Microsoft Word, en lugar de cargar todo el programa en la memoria, el sistema operativo solo cargará en la memoria las partes del programa que necesita, y tomará las otras partes del programa solo cuando las necesite. Esto también tiene ventajas y desventajas entre la huella de memoria, la velocidad de arranque y la frecuencia con la que se producen retrasos en el programa a medida que se deben cargar nuevas piezas.

De todos modos, tal vez más de lo que está buscando, pero con suerte interesante.


El intercambio y la búsqueda son conceptos ortogonales. Con paginación, la memoria (física) se divide en pequeños bloques llamados "marcos", y la memoria (lógica) de cada programa se divide en bloques llamados "páginas". Las páginas y los marcos tienen el mismo tamaño; cada página se mapea a un marco. Esta asignación se realiza a través de tablas de páginas. La paginación resuelve los problemas de fragmentación que estaban presentes con los esquemas de administración de memoria anteriores.

Con el intercambio, las partes de la memoria que no están en uso se escriben en el disco; esto permite ejecutar varios programas cuyo consumo total de memoria es mayor que la cantidad de memoria física. Cuando un programa realiza una solicitud de una parte de la memoria que se escribió en el disco, esa parte debe cargarse en la memoria. Para hacer espacio para ello, se debe escribir otra parte en el disco (de hecho, las dos partes intercambian lugares, de ahí el nombre). Esta "extensión" de la memoria física generalmente se conoce como "memoria virtual".

Los sistemas modernos usan tanto paginación como intercambio, y las páginas son lo que se está intercambiando y sin memoria.


Solo términos diferentes para más o menos lo mismo. Ambos se refieren a un área de memoria virtual que (normalmente) está almacenada en el disco duro.

* nix, et al. llamarlo "intercambio" de llamadas de Windows es un archivo de paginación

En Linux, etc., el espacio de intercambio generalmente es una partición separada. En Windows, por lo general, es un archivo almacenado en el sistema de archivos del sistema operativo, en alguna parte.


Swap in linux es una partición que se utiliza para la memoria virtual. Contiene páginas que son bloques de memoria que pueden intercambiarse dentro y fuera de la memoria real.


Una página es un bloque de memoria administrado por el sistema operativo. En Linux puede averiguar la asignación del kernel para su versión del sistema operativo ingresando

$ getconf PAGESIZE 4096

4 KB es una asignación bastante común.

Mientras que una página se refiere a una asignación de tamaño, el cambio se refiere a "moverlo". Si desea obtener los detalles, intente ver Todo sobre el espacio de intercambio de Linux .


Ver: Paginación e intercambio

El problema del intercambio y la paginación a menudo se malinterpreta. El intercambio y la búsqueda son dos cosas totalmente diferentes.

El intercambio fue la primera tecnología que se usó en Unix System V ya que la memoria física se llena de procesos y hay un problema. ¿Qué sucede cuando el sistema se ejecuta completamente sin RAM? ¡Se "detiene"!

La conservación y la administración correcta de la memoria RAM es muy importante porque la CPU solo puede trabajar con datos en la memoria RAM, una vez que el núcleo la haya cargado desde el disco duro. ¿Qué sucede cuando el número de montaje y el tamaño de los procesos excede la memoria física? Para permitir la situación, y porque solo un proceso puede ejecutarse en cualquier momento (en un sistema UniProcessor), solo ese proceso realmente necesita en la RAM. Sin embargo, la organización requeriría una gran cantidad de recursos, ya que varios procesos en ejecución están programados para ejecutarse en el procesador con mucha frecuencia (consulte la sección llamada "Programador").

Para abordar estos problemas, el kernel anuncia un uso abstracto de la memoria para las aplicaciones al anunciarles un espacio de direcciones virtual que supera con creces la memoria física. Una aplicación puede simplemente solicitar más memoria y el kernel puede otorgarla.

Un único proceso puede haber asignado 100 mb de memoria, aunque solo haya 64 mb de RAM en el sistema. El proceso no necesitará acceder a todo el 100mb al mismo tiempo, aquí es donde entra la memoria virtual. [...]