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).

Entradas relacionadas: