Multiprocesamiento, Hilos y Planificación de Procesos en Sistemas Operativos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,54 KB
Conceptos Clave de Multiprocesamiento y Planificación de Procesos
Diferencias entre Programa y Proceso
- Programa: Entidad estática.
- Proceso: Programa en ejecución.
Objetivos del Multiprocesamiento
- Mejor aprovechamiento de los recursos físicos.
- Compartición de recursos lógicos.
- Aumento del rendimiento del procesador.
- Conveniencia (incluso en sistemas monousuario).
Bloque de Control de Procesos (PCB)
Estructura de datos del Sistema Operativo que permite controlar a todos los procesos que existen en el sistema.
Hilos (Threads)
Objetivo: Compartir recursos entre procesos cooperantes.
Hilo = Unidad fundamental de uso del procesador.
- Se compone de: Contador de Programa (CP), una serie de registros y área de pila.
- Comparte con otros hilos cooperantes (de una tarea) código, datos y recursos del Sistema Operativo.
Ventajas de los Hilos
- La conmutación entre hilos se puede realizar rápidamente sin ayuda del Sistema Operativo.
- Se crean y destruyen más rápidamente que los procesos. No es necesario asignar recursos, los posee la tarea.
Tarea (Task)
- No tiene capacidad de ejecución.
- Posee el código, los datos y los recursos compartidos que comparten varios hilos.
- Cada hilo sólo puede pertenecer a una tarea.
Hilos y Procesos en Linux
- Se crean con la llamada clone().
- De hecho, fork() y pthread_create() derivan de clone().
Planificación de Procesos
Objetivos de la Planificación
- Incrementar el rendimiento global del sistema.
- Maximizar el uso de la CPU.
Planificador o Scheduler
Determina quién es el siguiente proceso en hacer uso de la CPU. Define las políticas de planificación.
Dispatcher o Repartidor
Conmuta el procesador de un trabajo a otro. Implementa los mecanismos de planificación.
Tipos de Planificadores
- Planificador a largo plazo: Carga el proceso en memoria. Controla el grado de multiprogramación.
- Planificador a corto plazo: Selecciona entre los trabajos cargados en memoria y que están listos para ejecutarse, cuál hará uso del procesador.
- Planificador a medio plazo: Carga y descarga trabajos (swap in-out) desde el disco a la memoria y de la memoria al disco en función del grado de sobrecarga del sistema.
Métricas de Rendimiento
- Rendimiento (Throughput): Trabajos completados por unidad de tiempo.
- Tiempo de estancia (Turnaround time): Tiempo transcurrido desde que se lanza hasta que finaliza un proceso.
- Tiempo de espera: Tiempo que está un proceso en una cola (no en ejecución).
- Tiempo de respuesta: Importante en aplicaciones interactivas o de tiempo real (hasta la primera respuesta del sistema).
- Grado de sobrecarga: Recursos que emplea el planificador: tiempo de procesador y memoria.
Algoritmos de Planificación
- FIFO (First In, First Out): Primero en entrar, primero en salir.
- Ventaja: Es el algoritmo más sencillo de codificar.
- Desventaja: Un proceso puede monopolizar la CPU. Efecto convoy.
- SJF (Shortest Job First): Primero el más corto. Asigna la CPU al trabajo con la siguiente ráfaga más pequeña.
- Ventaja: Reduce los tiempos medios de respuesta.
- Desventaja: Es necesario conocer cuáles van a ser las duraciones de las próximas ráfagas de CPU de cada proceso.
- Método de Predicción: La siguiente ráfaga de CPU se predice como una media exponencial de las longitudes medias en anteriores ráfagas.
- Planificación con Prioridades: Se asigna la CPU al trabajo con la prioridad más alta.
- Planificación con Requisa: Un proceso puede desalojar al que usa la CPU.
- Planificación Round-Robin: Planificación por turno rotatorio. La CPU se asigna a cada proceso listo durante un cuanto de tiempo (quantum).