Administración de la Memoria: Conceptos de Memoria Virtual
Ventajas de la Memoria Virtual
- Presenta una memoria aparentemente mayor que la memoria física real: Permite tener programas con una capacidad de direccionamiento mayor que la capacidad de direccionamiento física del ordenador.
- Ejemplo en Pentium: Permite programas de hasta 64TiB con una memoria de 512MiB; permite tener muchos más procesos en la memoria ejecutándose concurrentemente que los que caben físicamente.
Funcionamiento de la Memoria Virtual
- Se mantiene una copia completa del proceso en disco y en la memoria únicamente se tiene una parte del proceso (la parte activa).
- Si se intenta acceder a una parte del proceso que no está en memoria, se produce una interrupción de fallo de página, se accede a disco y se copia esa parte a la memoria.
Localidad de las Referencias
- En la ejecución de un proceso, las direcciones de la memoria a las que se accede durante un corto periodo de tiempo (partes activas) suelen estar localizadas en zonas pequeñas de la memoria.
- Fallo de página:
- Localidad temporal: Se copia el contenido de la dirección de disco a la memoria.
- Localidad espacial: Se copia el contenido de las direcciones contiguas de disco a la memoria.
Gestión de Memoria Paginada
- En disco, se mantiene un archivo con la imagen completa del proceso troceado en páginas.
- En memoria, únicamente se carga la página que se está ejecutando.
- Se intercambian páginas entre disco y memoria cuando sea necesario.
Consideraciones en la Gestión de Memoria Virtual
- ¿Qué páginas deben cargarse en memoria?: Paginación por demanda; Asignación previa (localidad espacial).
- ¿Qué página debe sustituirse si hay un fallo de página?: Sustitución con alcance local; Sustitución con alcance global.
- Algoritmos de sustitución: LRU (Least Recently Used) (localidad temporal); FIFO (First In First Out); NRU (Not Recently Used); Reloj (la más antigua no utilizada recientemente).
Tamaño de Página y Segmentación
- Tamaño de página grande: Reduce la tasa de fallos; Mejora la eficiencia de los accesos a disco.
- Desventajas:
- Aumenta la fragmentación interna.
- Segmentación:
- Los procesos se dividen en segmentos de tamaño variable.
- Un segmento es un grupo lógico de información (código, pila y datos).
- Cada segmento se carga en una zona.
Gestión de la Entrada/Salida (E/S)
Función y Objetivos
Función: Administrar y controlar las operaciones de E/S y los periféricos de E/S.
Objetivos:
- Permitir simultanear las operaciones de E/S con la ejecución de procesos, ya que las operaciones de E/S son lentas en comparación con el procesador.
- Utilizar los periféricos eficientemente, ya sean de uso exclusivo, compartidos o virtuales.
- Programar las operaciones de E/S con independencia del dispositivo, dada la amplia variación en la función y velocidad de los dispositivos de E/S (ratón vs. disco duro).
- Ejemplo:
numero = read (descrip. archivo, zona, numB)
- Se abstraen los complejos detalles requeridos por el hardware para hacer la lectura.
Proceso de Usuario o Shell
- Solicita una operación de E/S mediante una llamada al sistema, lo que genera una interrupción programada.
- El sistema operativo pasa el proceso a bloqueado o preparado.
- El sistema operativo inicia la operación de E/S (órdenes al controlador de periférico).
- El sistema operativo (distribuidor) pasa un proceso preparado a activo.
Sistema de Gestión de E/S (Sistema Operativo)
Estructuras de Datos
- Zona de E/S (búfer) por dispositivo.
- Tabla de estado de dispositivos con una entrada por dispositivo:
- Tipo de dispositivo.
- Dirección.
- Estado (apagado, libre, ocupado).
- Dirección de la zona de E/S.
- Datos de la solicitud de operación de E/S activa.
- Cola de solicitudes pendientes.
Servicios Proporcionados
- Planificación de operaciones de E/S.
- Uso de zonas de E/S (búfer).
- Uso de cachés.
- Uso de spool (impresoras).
- Configuración e inicialización de los drivers.
- Gestores de dispositivo o drivers:
- Presentan al subsistema de E/S del sistema operativo una interfaz de acceso a dispositivos uniforme.
- Se encargan de inicializar y controlar el periférico (mediante instrucciones concretas para interactuar con el hardware).
- Atención de interrupciones y detección de estado del periférico.
Controlador de Dispositivo
Registros de propósito especial:
- Puertos de estado.
- Puertos de control.
- Puertos de entrada y salida de datos.
Funciones de los Puertos
- Puertos de estado: Indican al driver el estado. Por ejemplo:
- La orden actual ya se ha ejecutado.
- Hay información disponible en el registro de entrada de datos.
- Ha habido un error.
- Puertos de control: Reciben órdenes del driver. Por ejemplo:
- Transferir datos entre el periférico y el sistema operativo.
- Iniciar el periférico.
- Habilitar verificación de paridad.