Recomendado, 2024

La Elección Del Editor

Diferencia entre la asignación de memoria contigua y no contigua

La memoria es una gran variedad de bytes, donde cada byte tiene su propia dirección. La asignación de memoria se puede clasificar en dos métodos: asignación de memoria contigua y asignación de memoria no contigua. La principal diferencia entre la asignación de memoria contigua y no contigua es que la asignación de memoria contigua asigna los bloques de memoria consecutivos a un proceso que solicita memoria, mientras que la asignación de memoria no contigua asigna los bloques de memoria separados en la ubicación diferente en el espacio de memoria de una manera no consecutiva a Un proceso de solicitud de memoria. Discutiremos algunas diferencias más entre la asignación de memoria contigua y no contigua con la ayuda de la tabla de comparación que se muestra a continuación.

Gráfica comparativa

Basar la comparaciónAsignación de memoria contiguaAsignación de memoria no contigua
BASICAsigna bloques de memoria consecutivos a un proceso.Asigna bloques separados de memoria a un proceso.
Gastos generalesLa asignación de memoria contigua no tiene la sobrecarga de la traducción de direcciones durante la ejecución de un proceso.La asignación de memoria no contigua tiene una sobrecarga de traducción de direcciones mientras se ejecuta un proceso.
Tasa de ejecuciónUn proceso ejecuta fatser en la asignación de memoria contigua.Un proceso se ejecuta bastante más lento comparativamente en la asignación de memoria no contigua.
SoluciónEl espacio de memoria se debe dividir en la partición de tamaño fijo y cada partición se asigna a un solo proceso.Divida el proceso en varios bloques y colóquelos en diferentes partes de la memoria de acuerdo con la disponibilidad de espacio de memoria disponible.
MesaEl sistema operativo mantiene una tabla que mantiene la lista de particiones disponibles y ocupadas en el espacio de memoriaSe debe mantener una tabla para cada proceso que lleva las direcciones base de cada bloque que ha sido adquirido por un proceso en la memoria.

Definición de asignación de memoria contigua

El sistema operativo y los procesos del usuario deben estar alojados en la memoria principal. Por lo tanto, la memoria principal se divide en dos particiones: en una partición reside el sistema operativo y en la otra residen los procesos del usuario. En condiciones normales, los diversos procesos de usuario deben residir en la memoria al mismo tiempo y, por lo tanto, es importante considerar la asignación de memoria a los procesos.

La asignación de memoria contigua es uno de los métodos de asignación de memoria. En la asignación de memoria contigua, cuando un proceso solicita la memoria, una única sección contigua de bloques de memoria se asigna al proceso de acuerdo con su requisito.

La asignación de memoria contigua se puede lograr dividiendo la memoria en la partición de tamaño fijo y asignando cada partición a un solo proceso. Pero esto causará el grado de multiprogramación, limitado al número de particiones fijas realizadas en la memoria. La asignación de memoria contigua también conduce a la fragmentación interna . Por ejemplo, si un bloque de memoria de tamaño fijo asignado a un proceso es ligeramente mayor que su requisito, el espacio de memoria restante en el bloque se denomina fragmentación interna. Cuando el proceso que reside en la partición termina, la partición queda disponible para el otro proceso.

En el esquema de partición variable, el sistema operativo mantiene una tabla que indica qué partición de la memoria está libre y cuál está ocupada por los procesos. La asignación de memoria contigua acelera la ejecución de un proceso al reducir los gastos generales de traducción de direcciones.

Definición de asignación de memoria no contigua

La asignación de memoria no contigua permite que un proceso adquiera los varios bloques de memoria en la ubicación diferente en la memoria de acuerdo con sus requerimientos. La asignación de memoria no contigua también reduce el desperdicio de memoria causado por la fragmentación interna y externa. Como utiliza los agujeros de memoria, creados durante la fragmentación interna y externa.

La paginación y la segmentación son las dos formas que permiten que el espacio de direcciones físicas de un proceso no sea contiguo. En la asignación de memoria no contigua, el proceso se divide en bloques (páginas o segmentos) que se colocan en el área de espacio de memoria diferente según la disponibilidad de la memoria.

La asignación de memoria no contigua tiene la ventaja de reducir el desperdicio de memoria, pero aumenta los gastos generales de traducción de direcciones. Como las partes del proceso se colocan en una ubicación diferente en la memoria, se ralentiza la ejecución de la memoria porque el tiempo se consume en la traducción de direcciones.

Aquí, el sistema operativo necesita mantener la tabla para cada proceso que contiene la dirección base de cada bloque que es adquirido por el proceso en el espacio de memoria.

Diferencias clave entre la asignación de memoria contigua y no contigua

  1. La diferencia básica entre la asignación de memoria contigua y no contigua es que la asignación contigua asigna un solo bloque contiguo de memoria al proceso, mientras que la asignación no contigua divide el proceso en varios bloques y los coloca en el espacio de direcciones diferente de la memoria, es decir, de manera no contigua .
  2. En la asignación de memoria contigua, el proceso se almacena en el espacio de memoria contiguo; por lo que no hay sobrecarga de traducción de direcciones durante la ejecución. Pero en la asignación de memoria no contigua, hay una sobrecarga de traducción de direcciones mientras que la ejecución del proceso, ya que los bloques de proceso se extienden en el espacio de la memoria.
  3. El proceso almacenado en la memoria contigua se ejecuta más rápido en comparación con el proceso almacenado en un espacio de memoria no contiguo.
  4. La solución para la asignación de memoria contigua es dividir el espacio de memoria en la partición de tamaño fijo y asignar una partición a un solo proceso. Por otro lado, en la asignación de memoria no contigua, un proceso se divide en varios bloques y cada bloque se coloca en diferentes lugares de la memoria según la disponibilidad de la memoria.
  5. En la asignación de memoria contigua, el sistema operativo debe mantener una tabla que indique qué partición está disponible para el proceso y cuál está ocupada por el proceso. En la asignación de memoria no contigua, se mantiene una tabla para cada proceso que indica la dirección base de cada bloque del proceso colocado en el espacio de memoria.

Conclusión:

La asignación de memoria contigua no crea gastos generales y acelera la velocidad de ejecución del proceso, pero aumenta el desperdicio de memoria . A su vez, la asignación de memoria no contigua crea gastos generales de traducción de direcciones, reduce la velocidad de ejecución de un proceso, pero aumenta la utilización de la memoria . Así que hay ventajas y desventajas de ambos métodos de asignación.

Top