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.
Contigua: particiones fijas y variables
En este esquema, la memoria se encuentra dividida en espacios o particiones. Cuando un proceso necesita ejecutarse, se le asigna uno de estos espacios, almacenando toda la información del proceso en posiciones contiguas de la partición seleccionada.
Cada partición solo puede contener un proceso.
Es posible encontrar esquemas con particiones fijas, donde el tamaño de la partición se configura cuando se enciende el ordenador, quedando fija hasta que se apaga, o bien con particiones de tamaño variables.
La principal ventaja que introdujo este esquema fue la protección del espacio de ejecución del proceso. Ningún proceso puede acceder al espacio de memoria de otro.
Los inconvenientes son obvios: se desperdicia gran cantidad de memoria que permanece oculta en cada partición cuando el tamaño es fijo y se producen huecos de memoria demasiado pequeños que no son aprovechados por otros programas en el caso de la partición variable.
Actividades
1.En un sistema con esquema de asignación con múltiples particiones de tamaño fijo, ¿qué determinaría el límite del grado de multiprogramación de dicho sistema?
Aplicación práctica
¿Cómo quedaría la estructura de la pila de memoria después de que el sistema operativo asigne los procesos de la siguiente tabla a memoria principal, teniendo en cuenta que se está ante un esquema de memoria contigua con particiones fijas de 200 K y que la secuencia de llegada de los procesos es C, B, A, D?
SOLUCIÓN
0-74 |
C |
75-149 |
C |
150-224 |
B |
225-299 |
|
300-374 |
|
375-499 |
|
450-524 |
A |
525-599 |
A |
600-674675-749 |
DD |
750-824825-899 |
DD |
Este esquema de gestión de memoria se basa en mover procesos que están en suspensión desde la memoria principal a la memoria de disco, cuando no caben en memoria principal, y mover procesos que deben ejecutarse desde la memoria de disco a la memoria principal, cuando se ha liberado parte de la memoria principal.
Las funciones principales son:
Seleccionar procesos a eliminar de la memoria principal.
Seleccionar procesos a cargar en la memoria principal.
Asignación y gestión del espacio de intercambio.
Para usar este tipo de esquema, es necesario configurar en el sistema operativo el uso de un archivo de intercambio para almacenar la imagen dinámica del proceso retirado de la memoria principal. Se podrá tener un archivo global o bien un archivo por proceso.
Actividades
Читать дальше