Читать книгу Desarrollo y optimización de componentes software para tareas administrativas de sistemas. IFCT0609 - José Luis Villada Romero - Страница 9
2.2.Gestión de memoria. Memoria virtual
ОглавлениеTodo sistema operativo necesita proporcionar a los programas un entorno de ejecución sin interferencias sobre otros programas que están ejecutándose a la misma vez. Por lo tanto, debe repartir la memoria almacenada de forma que ningún programa altere el espacio de otro programa.
En la actualidad, existen varios tipos de memorias que el sistema operativo puede utilizar y que, en función de su velocidad y tamaño, siguen la siguiente jerarquía (de mayor a menor velocidad de acceso y de menor a mayor capacidad):
Registros de CPU del procesador.
Caché.
Memoria principal (RAM).
Memoria secundaria.
El modelo de gestión de memoria de un sistema operativo debe cumplir con los siguientes objetivos:
Ofrecer a cada proceso un espacio lógico propio.
Proporcionar protección entre los procesos.
Permitir que los procesos compartan memoria.
Dar soporte a las distintas regiones del proceso.
Maximizar el rendimiento del sistema.
Proporcionar a los procesos mapas de memoria muy grandes.
Para conseguir alcanzar todos estos objetivos, el sistema operativo necesita llevar un registro de las partes de memoria que se están utilizando y las que no.
Importante
Un proceso no es más que un programa en ejecución. Son los elementos que maneja el sistema operativo a nivel de aplicación y son identificados por un conjunto de instrucciones,
los valores de los registros de la CPU en el momento de ejecución, la memoria reservada y su contenido, e información necesaria para la planificación del sistema operativo.
El grado de multiprogramación sería el nª de procesos de ejecución simultanea.
Cuando se habla de memoria a nivel de sistema operativo se está haciendo referencia al concepto lógico o abtracto. Es decir, aunque se sabe que existe el material que constituye la memoria física de un ordenador, el sistema operativo usa mecanismos lógicos para su getión, independientemente de que la memoria sea de un material o de otro.
Ese concepto de memoria es el que permite abstraer la idea de almacenamiento lógico al nivel de usuario y su uso a nivel de aplicación. Desde este punto de vista, es posible entender la memoria como una secuencia bytes de datos, donde cada byte es referenciado mediante un número decimal de 32 bits, o bien un número hexadecimal de ocho cifras. A este concepto se le denomina direccionamiento de la memoria.
En los sistemas operativos modernos, las políticas de gestión de memoria hacen uso de técnicas muy depuradas para asignar un espacio de memoria a un proceso. Los esquemas principales de gestión de memoria adoptan la siguiente clasificación:
En el esquema de gestión de memoria de un solo proceso el usuario tiene un control total sobre el espacio de memoria. La memoria se encuentra dividida en dos partes: una reservada al sistema operativo y otra para la ejecución del proceso, que es cargado y ejecutado de uno en uno. En implementaciones reales, la memoria se encuentra dividida en tres partes:
El esquema de multiprogramación es más complejo, ya que permite la ejecución simultánea de más de un programa. Este tipo de esquemas requieren dividir la memoria. A continuación, se detallan las características de los principales esquemas de este tipo.