Requisito previo: partición variable , paginación de partición fija y segmentación son las dos formas que permiten que el espacio de direcciones físicas de un proceso no sea contiguo. Tiene la ventaja de reducir el desperdicio de memoria, pero aumenta los gastos generales debido a la traducción de direcciones. Ralentiza la ejecución de la memoria porque se consume tiempo en la traducción de direcciones.
En la asignación no contigua, el sistema operativo necesita mantener la tabla que se llama Tabla de página para cada proceso que contiene la dirección base de cada bloque que adquiere el proceso en el espacio de memoria. En la asignación de memoria no contigua, diferentes partes de un proceso se asignan a diferentes lugares en la memoria principal. Se permite la expansión, lo que no es posible en otras técnicas, como la asignación de memoria dinámica o estática contigua. Es por eso que se necesita la paginación para garantizar una asignación de memoria efectiva. La paginación se realiza para eliminar la fragmentación externa.
Hay cinco tipos de asignación de memoria no contigua en el sistema operativo:
- Paginación
- Paginación multinivel
- Paginación invertida
- Segmentación
- Paginación segmentada
Trabajo:
aquí un proceso puede abarcar diferentes espacios en la memoria principal de manera no consecutiva. Supongamos que el proceso P tiene un tamaño de 4 KB. Considere que la memoria principal tiene dos ranuras vacías, cada una de 2 KB de tamaño. Por lo tanto, el espacio libre total es 2*2 = 4 KB. En la asignación de memoria contigua, el proceso P no se puede acomodar ya que no se permite la expansión.
En la asignación contigua, el espacio en la memoria debe asignarse a todo el proceso. Si no, entonces ese espacio permanece sin asignar. Pero en la asignación no contigua, el proceso se puede dividir en diferentes partes y, por lo tanto, llenar el espacio en la memoria principal. En este ejemplo, el proceso P se puede dividir en dos partes de igual tamaño: 2 KB. Por lo tanto, una parte del proceso P se puede asignar al primer espacio de 2 KB de la memoria principal y la otra parte del proceso se puede asignar al segundo espacio de 2 KB de la memoria principal. El siguiente diagrama lo explicará de una mejor manera:
Pero, es muy importante entender de qué manera dividimos un proceso para asignarlos a la memoria principal. El proceso se divide luego de analizar el número de espacios vacíos y su tamaño en la memoria principal. Entonces solo hacemos dividir nuestro proceso. Es un proceso que consume mucho tiempo. Su número así como sus tamaños cambian cada vez debido a la ejecución de procesos ya presentes en la memoria principal.
Para evitar este proceso que consume mucho tiempo, dividimos nuestro proceso en la memoria secundaria antes de llegar a la memoria principal para su ejecución. Cada proceso se divide en varias partes de igual tamaño llamadas Páginas. También dividimos nuestra memoria principal en diferentes partes de igual tamaño llamadas Frames. Es importante entender que:
Size of page in process = Size of frame in memory
Aunque sus números pueden ser diferentes. El siguiente diagrama le ayudará a comprenderlo mejor: considere que la memoria principal vacía tiene un tamaño de cada cuadro de 2 KB, y dos procesos P1 y P2 tienen 2 KB cada uno.
Memoria principal solvente,
En conclusión, podemos decir que la paginación permite que el espacio de direcciones de memoria de un proceso no sea contiguo. La paginación es más flexible ya que solo se mueven las páginas de un proceso. Permite que residan más procesos en la memoria principal que la asignación de memoria contigua.
Publicación traducida automáticamente
Artículo escrito por Vidhayak_Chacha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA