¿Cuál es el concepto básico ‘Paginación’ en computadora?

El registro más importante en una computadora es el puntero de instrucciones. Le dice a la computadora de dónde tomar la siguiente instrucción y es lo que le permite a una computadora pasar por un programa y ejecutar cada instrucción a la vez.

El puntero de instrucciones tiene un tamaño limitado. En el caso de arquitecturas más antiguas como z80 y 6502, son 16 bits. Eso le da un espacio máximo de 65535 ubicaciones de instrucción.

En el 8086 tiene 20 bits de longitud: un contador base de 16 bits y algunos contadores de índice. Las computadoras más recientes son aún más largas.

Aquí está lo crítico: la computadora solo puede ejecutar o acceder directamente al espacio de memoria que está dentro del alcance del puntero de instrucciones, y la CPU coloca la dirección desde el puntero de instrucciones en el bus de direcciones para que pueda recuperar la siguiente instrucción. Las computadoras solo pueden ejecutar instrucciones dentro de este espacio.

En la antigüedad, las computadoras solo tenían 64K de memoria por esta razón, pero algunas venían con más, 128 o incluso 256k de memoria. El procesador no tenía forma de acceder a esta memoria, por lo que usó “Paginación”, es decir, un bloque de memoria se intercambiaría de la memoria en otro lugar al espacio de direcciones al que el procesador podría acceder.

Como ejemplo, considere una computadora de 64k con 128kb de memoria. Los 128 kb de memoria pueden considerarse 8 páginas de memoria de 16 kb.

Los primeros 16 kb a los que puede acceder el proceso pueden estar reservados para el espacio del sistema, y ​​el siguiente bloque de 16 kb reservado para el espacio de aplicación común que controla todo y siempre debe estar accesible. Entonces, si una computadora tuviera 128k de memoria real y tuviera que encajar en 64k, los 6 bloques restantes de 16kb serían “páginas” de memoria y el programa le diría al hardware cuál de esos 6 bloques de 16kb debería mapearse en el tercero y cuarto ranuras de 16 kb accesibles dentro del espacio inferior del programa de 64 kb.

Esta técnica permite a las computadoras dirigir más memoria de la que permitirían sus arquitecturas.

En el caso de los mainframes y las computadoras más modernas como el 386 (y para los procesadores actuales) también pueden usar memoria virtual, donde se reserva un espacio de memoria para ejecutar instrucciones que actualmente no están en la memoria. Cuando se debe ejecutar o acceder al código, se carga desde el disco duro u otra memoria lenta en la memoria principal donde se puede ejecutar. Esto también se llama paginación, y es por eso que tiene un archivo de página en su disco duro.

Comúnmente, esto se conoce como memoria de intercambio o memoria virtual, aunque el concepto es el mismo: la memoria se mueve desde el espacio fuera del espacio de direcciones al espacio de direcciones para acceso o ejecución. La paginación generalmente se refiere a tener un índice externo que el procesador puede configurar para que los bloques de memoria entren y salgan de su espacio de direcciones, sin perder o sobrescribir la memoria que está “paginada”.

No hay impacto en el rendimiento por usar memoria paginada, siempre y cuando todo esté en ram, excepto para configurar el registro de índice externo (o interno) apropiado para que la vista de la memoria que tiene la computadora se manipule para que solo vea las páginas del Espacio de memoria real.

La paginación se refiere al uso de archivos de página que la computadora está usando en lugar de ram (no hay suficiente ram para dar la vuelta). los archivos de página son lentos ya que están en el disco duro, y la computadora gira trabajando con el archivo de página tratándolo como ram para mantenerse al día con los procesos, ¡y el resultado es que la computadora se comporta como un perro!