Cola única:
• Cola por cada partición: el usuario es el encargado de establecer estas particiones. No han de tener todas necesariamente el mismo espacio, pues el gestor de memoria es quien controlar la ejecución de estos procesos, es decir, indica en qué partición se colocará cada uno de ellos. Sistemas operativos monopuesto 49 Se puede realizar la asignación de memoria de diferentes maneras: • Asignar el primer proceso de la cola a un espacio según quede libre. Si el proceso es mayor que el hueco, no se ejecuta. • Asignar el primer proceso de la cola que quepa en el espacio que ha quedado libre. • Asignar el proceso más grande de la cola que quepa en el espacio que ha quedado libre. En este algoritmo se excluye a los proce- sos más cortos, puesto que se prioriza los largos para aprovechar al máximo la memoria. Esto se podría resolver estableciendo una partición de tamaño menor para este tipo de procesos. Gestión de memoria mediante particiones variables Mediante este método, la memoria se particiona según la ejecu- ción de los procesos, es decir, un proceso solo ocupa en memoria el espacio que necesita. El número de particiones, tamaño y posición cambian según se va utilizando esta. Se puede utilizar de dos formas: • Cuando un proceso termina, se combina el hueco que deja libre con el que hay disponible al lado. • Cuando un proceso termina, se compactan los espacios ocupados de la memoria, por lo que al principio está toda la memoria ocupa- da y después toda la memoria libre. Tema 3. Gestión de los recursos y de la memoria 50 Esta técnica tiene diferentes estrategias para gestionar los procesos: • De primer ajuste: se asigna al primer proceso de la cola el primer hueco que le sirva. • De siguiente ajuste: se asignan los procesos por orden de cola. • De mejor ajuste: se asigna el hueco más pequeño al proceso que mejor se adapte al espacio. • De peor ajuste: se asigna el hueco más grande al primer proceso de la cola. Gestión de la memoria mediante memoria virtual El gestor de memoria utiliza el disco duro o un espacio secundario de almacenamiento como si formara parte de la memoria principal del sistema. De este modo, trabaja con una memoria RAM de mayor alma- cenamiento que la que el sistema tiene físicamente. Un programa se divide en capas activas y capas inactivas. Las prime- ras se forman con los procesos que están en ejecución en la memoria principal, mientras que las segundas están compuestas por aquellos que se localizan en la memoria secundaria. Mediante esta técnica, el usuario piensa que el programa se localiza en la memoria RAM, pero en ella solo está realmente la parte que se está ejecutando. El resto del programa se encuentra en la memoria virtual, esperando a que sea necesaria su ejecución. En este caso, se pueden cambiar dichos procesos de memoria mediante la técnica denominada swapping. Sistemas operativos monopuesto 51 Swapping Se denomina swapping al traslado de un proceso que está en la memoria principal al disco duro, y después, devolverlo a la memoria principal. El principal problema de esta técnica reside en la ralentización del sistema, puesto que constantemente se produce un intercambio de in- formación entre la memoria RAM y el disco duro. Además, si un proceso hace referencia a otro que todavía no se encuentra en la memoria, oca- siona un fallo de página que obliga al gestor de memoria a recuperar ese proceso de la memoria virtual. Existen dos técnicas principales para usar la memoria secundaria como memoria virtual: • Paginación: tanto la propia memoria como los procesos se divi- den en unidades más pequeñas. Los programas están distribuidos en segmentos dentro de la memo- ria principal, denominadas unidades lógicas o páginas, mientras que la memoria lo hace en diferentes secciones o partes de igual tamaño que las páginas, conocidas como marcos de página. Esta técnica minimiza la fragmentación interna y evita la externa, puesto que, cuando la memoria y los segmentos de los procesos tie- nen el mismo tamaño, no se desperdicia memoria RAM por cada partición, sino solamente en la última página de un programa. • Segmentación: los programas también se dividen en segmentos, pero, al contrario que en la paginación, estos son de diferente ta- maño. Esta técnica permite, entre otras cosas, la modularidad de pro- gramas, es decir, que cada rutina dentro de un programa permita cambios que no afecten al resto del programa. También admite la compilación de módulos por separado, lo que hace que la modifi- cación de cada uno de ellos sea más fácil. Para + info Para conocer cómo relaciona el sistema operativo las direcciones de memoria física con las lógicas mediante esta técnica, se puede visitar este enlace: https://bit.ly/2Qrm6jn Proceso P1 Proceso P2 Espacio usuario Memoria principal 1.Swap out 2.Swap in Memoria de apoyo Sistema operativo Tema 3. Gestión de los recursos y de la memoria 52