Recomendado, 2024

La Elección Del Editor

Diferencia entre paginación y segmentación en OS

La administración de la memoria en el sistema operativo es una funcionalidad esencial, que permite la asignación de memoria a los procesos para su ejecución y desasigna la memoria cuando el proceso ya no es necesario. En este artículo, discutiremos dos esquemas de gestión de memoria de paginación y segmentación. La diferencia básica entre la paginación y la segmentación es que, "página" es un bloque de tamaño fijo, mientras que un "segmento" es un bloque de tamaño variable.

Discutiremos algunas diferencias más entre la paginación y la segmentación con la ayuda del cuadro de comparación que se muestra a continuación.

Gráfica comparativa

Bases para la comparaciónPaginacionSegmentación
BASICUna página es de tamaño de bloque fijo.Un segmento es de tamaño variable.
FragmentaciónLa paginación puede conducir a la fragmentación interna.La segmentación puede conducir a una fragmentación externa.
DirecciónLa dirección especificada por el usuario se divide por CPU en un número de página y desplazamiento.El usuario especifica cada dirección por dos cantidades, un número de segmento y el desplazamiento (límite de segmento).
tamañoEl hardware decide el tamaño de la página.El tamaño del segmento es especificado por el usuario.
MesaLa paginación implica una tabla de páginas que contiene la dirección base de cada página.La segmentación implica la tabla de segmentos que contiene el número y el desplazamiento del segmento (longitud del segmento).

Definición de paginación

La paginación es un esquema de gestión de memoria . La paginación permite que un proceso se almacene en una memoria de una manera no contigua . El proceso de almacenamiento de una manera no contigua resuelve el problema de la fragmentación externa .

Para implementar la paginación, los espacios de memoria físicos y lógicos se dividen en los mismos bloques de tamaño fijo. Estos bloques de memoria física de tamaño fijo se denominan marcos, y los bloques de memoria lógica de tamaño fijo se denominan páginas .

Cuando se necesita ejecutar un proceso, las páginas de proceso del espacio de la memoria lógica se cargan en los marcos del espacio de direcciones de la memoria física. Ahora la dirección generada por la CPU para acceder al marco se divide en dos partes, es decir , número de página y desplazamiento de página .

La tabla de páginas utiliza el número de página como un índice; Cada proceso tiene su tabla de páginas separada que mapea la dirección lógica a la dirección física. La tabla de páginas contiene la dirección base de la página almacenada en el marco del espacio de memoria física. La dirección base definida por la tabla de páginas se combina con el desplazamiento de la página para definir el número de cuadro en la memoria física donde se almacena la página.

Definición de segmentación

Al igual que la paginación, la segmentación es también un esquema de administración de memoria . Es compatible con la vista del usuario de la memoria. El proceso se divide en segmentos de tamaño variable y se carga en el espacio de direcciones de la memoria lógica.

El espacio de direcciones lógicas es la colección de segmentos de tamaño variable. Cada segmento tiene su nombre y longitud . Para la ejecución, los segmentos del espacio de la memoria lógica se cargan en el espacio de la memoria física.

La dirección especificada por el usuario contiene dos cantidades: el nombre del segmento y la compensación . Los segmentos están numerados y referidos por el número de segmento en lugar del nombre del segmento. Este número de segmento se usa como un índice en la tabla de segmentos, y el valor de compensación decide la longitud o el límite del segmento. El número de segmento y el desplazamiento juntos generan de manera combinada la dirección del segmento en el espacio de la memoria física.

Diferencias clave entre paginación y segmentación

  1. La diferencia básica entre la paginación y la segmentación es que una página siempre tiene un tamaño de bloque fijo, mientras que un segmento tiene un tamaño variable .
  2. La paginación puede llevar a una fragmentación interna ya que la página tiene un tamaño de bloque fijo, pero puede ocurrir que el proceso no adquiera el tamaño de bloque completo, lo que generará el fragmento interno en la memoria. La segmentación puede conducir a una fragmentación externa a medida que la memoria se llena con los bloques de tamaño variable.
  3. En la paginación, el usuario solo proporciona un único entero como la dirección que se divide por el hardware en un número de página y Offset . Por otro lado, en la segmentación, el usuario especifica la dirección en dos cantidades, es decir , número de segmento y desplazamiento .
  4. El tamaño de la página es decidido o especificado por el hardware . Por otro lado, el usuario especifica el tamaño del segmento.
  5. En la paginación, la tabla de la página asigna la dirección lógica a la dirección física y contiene la dirección base de cada página almacenada en los marcos del espacio de la memoria física. Sin embargo, en la segmentación, la tabla de segmentos asigna la dirección lógica a la dirección física, y contiene el número de segmento y el desplazamiento (límite de segmento).

Conclusión:

La paginación y la segmentación son ambos esquemas de gestión de memoria . La paginación permite que la memoria se divida en bloques de tamaño fijo, mientras que la segmentación divide el espacio de memoria en segmentos del tamaño de bloque variable . Cuando la paginación conduce a una fragmentación interna, la segmentación conduce a una fragmentación externa .

Top