sistemas simple segmento segmentacion resueltos paginada paginacion pagina operativos memoria gestion entre ejercicios diferencia caracteristicas asignacion memory-management operating-system paging memory-segmentation

memory-management - simple - segmentacion paginada ejercicios resueltos



¿Diferencias o similitudes entre la paginación segmentada y la segmentación paginada? (3)

Las mejores características de la paginación.

El hecho es que, la paginación tiene las siguientes golosinas:

  1. Asignación rápida (al menos más rápida que la segmentación)
  2. Sin fragmentación externa (la última página en este método sufre de fragmentación interna )

Las mejores caracteristicas de la segmentacion.

Pero también hay un gran comportamiento visto desde la segmentación:

  1. Compartir
  2. Proteccion

Los términos dados, se pueden combinar y crear los siguientes términos:

  • Paginación segmentada : El espacio de direcciones virtuales se divide en segmentos. El espacio de direcciones físicas se divide en marcos de página.
  • Segmentación paginada : ¡La técnica principal de segmentación que utiliza la tabla de segmentos de proceso a veces se sale del límite! Lo que significa que el tamaño es demasiado grande y que la memoria principal no tiene espacio suficiente para mantener la tabla de segmentos. Por lo tanto, la tabla de segmentos y el número de segmentos se dividen en páginas.

Requisitos para la paginación segmentada

Hay varios pasos que deben tomarse para lograr la paginación segmentada:

  1. Cada entrada de la tabla de segmentos representa una dirección base de la tabla de páginas.
  2. STR (Registro de tabla de segmentos) y PMT (Tabla de mapa de página) se llenan con los valores deseados.
  3. Cada dirección virtual consta de un Número de segmento , Número de página y el Desplazamiento dentro de esa página.
  4. El número de segmento se indexa en la tabla de segmentos que nos da la dirección base de la tabla de páginas para ese segmento.
  5. El número de página se indexa en la tabla de páginas.
  6. Cada entrada de la tabla de páginas es un marco de página .
  7. El resultado final que es una dirección física se encuentra agregando el número de marco de página y el desplazamiento .

Requisitos para la segmentación paginada.

Los siguientes pasos tienen lugar en este esquema:

  1. Cada entrada de segmento se divide en múltiples segmentos.
  2. Para cada entrada de la tabla de segmentos, que representa una reunión de las páginas, se crea una tabla de páginas.

Estaba estudiando sistemas combinados de paginación / segmentación y en mi libro había dos enfoques para esto:

1.paged segmentation 2.segmented paging

No pude distinguir la diferencia entre los dos. Creo que en la segmentación paginada el segmento se divide en páginas y en la paginación segmentada las páginas se dividen en segmentos, aunque no sé si estoy en lo correcto o no. Mientras tanto, en Internet, la paginación / segmentación combinada se describe utilizando solo un esquema. No puedo entender por qué en mi libro de curso hay dos esquemas para esto. Cualquier ayuda sería muy apreciada.


Entonces, después de buscar vigorosamente en la red la diferencia o similitud entre estos dos términos, he encontrado una respuesta final. En primer lugar, anotaría las similitudes:

  • Ambos (la paginación segmentada y la segmentación paginada) son un tipo de sistemas de paginación / segmentación combinados (La paginación y la segmentación se pueden combinar dividiendo cada segmento en páginas).
  • En ambos el sistema los segmentos se dividen en páginas.

Ahora para describir las diferencias , tendré que definir y describir cada término por separado:

  • Paginación segmentada: los segmentos se dividen en páginas. La implementación requiere STR (registro de tabla de segmentos) y PMT (tabla de mapa de páginas). En este esquema, cada dirección virtual consiste en un número de segmento , un número de página dentro de ese segmento y un desplazamiento dentro de esa página. Los índices de número de segmento en la tabla de segmentos que produce la dirección base de la tabla de página para ese segmento. Los índices de número de página en la tabla de páginas, cada una de las cuales es un marco de página. Agregando el PFN (número de marco de página) y los resultados de desplazamiento en la dirección física. Por lo tanto, el direccionamiento se puede describir mediante la siguiente función:

va = (s, p, w) donde, va es la dirección virtual, | s | determina el número de segmentos (tamaño de ST), | p | determina el número de páginas por segmento (tamaño de PT), | w | determina el tamaño de la página.

address_map(s, p, w) { pa = *(*(STR+s)+p)+w; return pa; }

El diagrama está aquí:

  • Segmentación paginada : a veces, la tabla de segmentos o la tabla de páginas puede ser demasiado grande para mantenerla en la memoria física (incluso pueden alcanzar MB). Por lo tanto, la tabla de segmentos también se divide en páginas y, por lo tanto, se crea una tabla de páginas de páginas ST. El número de segmento se divide en el número de página (s1) y el desplazamiento de página (s2) de la tabla de páginas de las páginas ST. Por lo tanto, la dirección virtual se puede describir como:

va = (s1, s2, p, w)

address_map (s1, s2, p, w) { pa = *(*(*(STR+s1)+s2)+p)+w; return pa; }

La descripción del diagrama está aquí:


La segmentación lleva a la traducción de páginas más lentas y al intercambio.

Por esas razones, la segmentación se redujo en gran medida en x86-64.

La principal diferencia entre ellos es que:

  • la paginación divide la memoria en trozos de tamaño fijo
  • La segmentación permite diferentes anchos para cada trozo.

Si bien puede parecer más inteligente tener anchos de segmento configurables, a medida que aumenta el tamaño de la memoria para un proceso, la fragmentación es inevitable, por ejemplo:

| | process 1 | | process 2 | | ----------- ----------- 0 max

eventualmente se convertirá a medida que crezca el proceso 1:

| | process 1 || process 2 | | ------------------ ------------- 0 max

hasta que una división sea inevitable:

| | process 1 part 1 || process 2 | | process 1 part 2 | | ------------------ ----------- ------------------ 0 max

En este punto:

  • la única forma de traducir páginas es hacer búsquedas binarias en todas las páginas del proceso 1, lo que requiere un registro inaceptable (n)
  • un intercambio fuera del proceso 1 parte 1 podría ser enorme ya que ese segmento podría ser enorme

Sin embargo, con páginas de tamaño fijo:

  • cada traducción de 32 bits hace solo 2 lecturas de memoria: tabla de páginas y directorios
  • Cada swap es un 4KiB aceptable.

Los trozos de memoria de tamaño fijo son simplemente más manejables, y han dominado el diseño actual del sistema operativo.

Ver también: ¿Cómo funciona la paginación x86?