Diferencia entre la paginación y la segmentación

Diferencia entre la paginación y la segmentación

La gestión de la memoria es una de las funciones básicas del sistema operativo. Los sistemas operativos modernos permiten cada proceso obtener más memoria virtual que el tamaño total de la memoria real (física) en un sistema informático determinado. El objetivo principal de la gestión de la memoria es que al combinar memoria grande pero lenta con memoria pequeña pero alta velocidad, para lograr el efecto de una memoria de alta velocidad más grande.

¿Qué es la paginación??

La separación entre la partición fija y variable es ineficaz en términos de utilización de la memoria, ya que la partición fija da como resultado interno, mientras que es dinámica en fragmentación externa. Una posible solución al problema de la fragmentación es permitir que el proceso no se escriba en un bloque de memoria continua. El programa se puede dispersar arbitrariamente en la memoria. En este caso, la memoria de trabajo se divide en bloques más pequeños de tamaño fijo llamados marcos. El espacio de dirección lógica del programa también se divide en bloques del mismo tamaño, llamado páginas. Cuando se ingresa un programa en la memoria, las páginas se escriben en marcos de memoria gratuitos. Para facilitar la transferencia de programas de un disco a una memoria de trabajo, el disco también se divide en marcos del mismo tamaño que los marcos de memoria. Por lo tanto, un cuadro del disco se escribe en un cuadro de la memoria de trabajo. El sistema de paginación funciona de la siguiente manera: cuando se acepta el programa para la ejecución, se calcula su tamaño, que se expresa con el número requerido de páginas. Si un número suficiente de marcos es gratuito, el proceso se registra en la página de memoria por página. Al mismo tiempo, el número de cuadros en los que se escribe cada página se ingresa en la tabla de marco.

¿Qué es la segmentación??

El programa de usuario y los datos asociados se pueden dividir en varios segmentos. Los segmentos de todos los programas no tienen que ser del mismo tamaño, aunque hay una longitud de segmento máxima. Al igual que con la paginación, la dirección lógica que utiliza la segmentación consta de dos partes, en este caso el número de segmentos y dislocaciones dentro de ese segmento. Debido al uso de segmentos de diferentes tamaños, la segmentación es similar a la partición dinámica. En ausencia de un esquema de superposición o el uso de la memoria virtual, se requiere que todos los segmentos del programa se carguen en la memoria para su ejecución. La diferencia en comparación con la partición dinámica es que la segmentación puede tomar más de una partición, y esa partición no tiene que ser adyacente. La segmentación resuelve el problema de la fragmentación interna, pero además de la partición dinámica, el problema de la fragmentación externa permanece. Sin embargo, debido a que el proceso se divide en una serie de partes más pequeñas, la fragmentación externa es típicamente más pequeña. A diferencia de la paginación que es invisible para el programador, la segmentación suele ser visible y adecuada para organizar programas y datos. A los fines de la programación modular, el programa o los datos pueden dividirse aún más en varios segmentos más pequeños. La desventaja de esta técnica es que el programador debe conocer las limitaciones del tamaño máximo de segmento. La siguiente conveniencia de usar segmentos de diferentes tamaños es que no hay una conexión prospectiva entre las direcciones lógicas y físicas. Similar a la paginación, la técnica de segmentación simple utiliza la tabla de segmentos para cada proceso y una lista de bloques disponibles en la memoria principal.

Diferencia entre la paginación y la segmentación

1. Concepto de paginación y segmentación

Paging ofrece un espacio de direcciones virtual y físico, y un espacio de memoria secundario en bloques (páginas) de igual longitudes. Esto permite que el espacio continuo de direcciones virtuales se asigne al proceso de dispersión (no necesariamente distribuido continuamente) en el espacio de dirección real y la memoria secundaria. Incluso la página, como término, se refiere a la memoria en lugar de objetos lógicos que son visibles a nivel de programa. La segmentación ofrece un espacio de dirección virtual en bloques (segmentos) que corresponden directamente a los objetos a nivel de programa. Debido a esto, el segmento no tiene una longitud fija, por lo que incluso el tamaño del segmento se puede cambiar durante la ejecución del programa. La protección y la división son, por lo tanto, posibles a nivel de objeto, y hay procesos visibles donde se realiza la segmentación.

2. Características de la paginación y la segmentación

El desarrollador de aplicaciones desconoce la paginación. Escribe programas como si la memoria fuera lineal, y el sistema operativo y el procesador están preocupados por su partición y conversión a direcciones virtuales. Programador en sistemas de segmentación, sin embargo, enumera dos partes de la dirección, segmento y página en sus programas. Todas las páginas son del mismo tamaño, mientras que los segmentos son diferentes. La segmentación tiene múltiples espacios de direcciones lineales y solo una paginación uno. Los segmentos permiten la división lógica y la protección de los componentes de la aplicación, y las páginas no.

3. Ventajas de la paginación y la segmentación

La paginación, que es transparente al programador, elimina la fragmentación externa y, por lo tanto, garantiza un uso eficiente de la memoria principal. Las piezas que entran y salen de la memoria principal son fijas y del mismo tamaño, por lo que es posible desarrollar algoritmos sofisticados de gestión de la memoria que exploten el comportamiento del programa. La segmentación es visible para el desarrollador y tiene la capacidad de gestionar el crecimiento de la estructura de datos, la modularidad y el soporte para el intercambio y la protección.

Paging vs. Segmentación: tabla de comparación

Paginación

Segmentación

Tamaño de las páginas fijas Los segmentos no son fijos en tamaño
Invisible para programador visible para programador
Un espacio de direcciones lineal múltiples espacios de dirección lineal
no permite la división lógica y la protección de los componentes de la aplicación permitir

Resumen de paginación y segmentación

  • La paginación se basa en la distribución de todo el espacio de direcciones en bloques de longitud fija que se operan a medida que la memoria cuantifica. Además, es necesario proporcionar un medio para marcar la memoria disponible que puede ejecutarse por la presencia del "encabezado" de cada página que indica el estado de la página (lista global vinculada donde cada nodo apunta a la siguiente página gratuita) o por colocar la dirección de página gratuita en la matriz global, que generalmente es la peor solución.
  • Segmentación significa dividir el espacio de direcciones en segmentos que tienen claramente marcados derechos de acceso al procesador MMU. Dentro del segmento, los procesos asignan exactamente tanta memoria como necesitan, pero el problema de la gestión de la memoria es cómo proporcionar tal asignación donde puede preservar la memoria de bloque continua lo suficientemente grande que puede necesitar algo de tiempo.