Profesor: Rodrigo Sanhueza Figueroa Sistemas operativos Profesor: Rodrigo Sanhueza Figueroa
Administración de procesos Contenidos Concepto de proceso Planificación de procesos Operaciones con procesos Comunicación entre procesos
Concepto de proceso Programa en ejecución Siempre tiene una hebra de ejecución Se ejecuta de forma secuencial Durante la ejecución cambia de estados Nuevo En ejecución En espera (I/O) Listo Terminado
Concepto de proceso Durante la ejecución cambia de estados
Concepto de proceso S.O. multitareas cooperativos / preemptivos En cooperativos o no preemptivos un proceso se puede tomar la CPU y no soltarla más No puede garantizar que va a atender a un proceso cuando se lo pida También se les llama apropiativos y no apropiativos
Concepto de proceso El S.O. guarda info de ellos en el PCB, bloque de control de procesos. Estado del proceso Contador de programa, PC Registros de la CPU Información de planificación de CPU Información de uso (tiempos de CPU) Información de estado de I/O (dispositivos usados, archivos abiertos)
Concepto de proceso
Planificación de procesos Planificación: proceso por el cual el sistema operativo selecciona que proceso ejecutar, ocupa algoritmo de planificación Para que sirve planificar Equidad, todos los procesos deben poder ejecutarse Eficacia, mantener ocupada la CPU un 100% del tiempo Tiempo de respuesta, minimizar el tiempo de respuesta al usuario Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados Rendimiento, maximizar el número de tareas procesadas por hora.
Planificación de procesos Colas de planificación Cola de trabajo Cola de procesos listos Cola de dispositivos Existe migración de procesos entre las colas.
Planificación de procesos Diagrama de colas
Planificación de procesos Schedulers (planificadores) Un proceso migra de una cola de planificación a otra durante su existencia El planificador se encarga de la selección Cambio de contexto Cuando la CPU cambia a otro proceso, el sistema debe grabar el estado del proceso antiguo y cargar el estado del proceso nuevo Cambio de contexto System overhead
Planificación de procesos Dispatcher: Módulo que cede el control de la CPU al proceso seleccionado Devuelve el control al scheduler una vez que el proceso ha terminado
Planificación de procesos Criterios de planificación Max Utilización CPU Max Throughput (rendimiento) Min Tiempo retorno Min Tiempo espera Min Tiempo respuesta
Planificación de procesos Algoritmos de planificación FIFO SJF Con prioridad Round Robin
Planificación de procesos Servicio por orden de llegada: FIFO Consiste en una cola, la CPU atiende al los procesos en orden de llegada No es preemptivo Analogía: supermercado Hay un tiempo de espera por proceso Hay un tiempo de espera promedio
Planificación de procesos FIFO
Planificación de procesos Primero el trabajo más corto: SJF Asigna la CPU a la ráfaga más corta Si hay igual duración queda como un FIFO Minimiza tiempo promedio entre procesos Los trabajos largos atrasan lo menos posible a los demás
Planificación de procesos SJF
Planificación de procesos Planificación con prioridad Procesos asociados a número entero de prioridad CPU proceso con prioridad más alta, menor número Problema: bloqueo indefinido o inanición Solución: envejecimiento
Planificación de procesos Tiempo ráfaga Prioridad P1 10 3 P2 1 P3 2 P4 4 P5 5 Espera de 8.2 miliseg
Planificación de procesos Round Robin: FIFO preemptivo Cada proceso se ejecuta un quantum (cantidad pequeña de tiempo) Cambios de contexto
Planificación de procesos Un 80% de las ráfagas de CPU son más cortas que el quantum Proceso Duración de la ráfaga P1 24 P2 3 P3 Con Quantum de 4: Tiempo promedio 5.66
Administración de procesos
Administración de procesos Planificación de colas en múltiples niveles Se usa cuando es fácil clasificar los procesos Cada cola tiene propio algoritmo de planificación Planificación entre colas
Administración de procesos Planificación por cola de múltiples niveles y retroalimentación Se permite a los procesos pasar de una cola a otra Si un proceso usa demasiada CPU pasa a una cola de menor prioridad Si pasa mucho tiempo en una cola pasa a una de mayor prioridad (evitar envejecimiento de procesos)
Planificación de procesos
Planificación de procesos parámetros: Número de colas. El algoritmo de planificación de cada cola. El método empleado para determinar cuando promover procesos a cola con más prioridad. El método empleado para determinar en cual cola ingresará un proceso cuando necesite servicio.
Operaciones con procesos Los procesos padres crean procesos hijos Los procesos hijos: Padres e hijos comparten recursos Usan un subconjunto de recursos del padre No comparten recursos
Operaciones con procesos Opciones de ejecución Padre e hijo concurrentes Padre espera a que termine el hijo En UNIX: instrucción fork, que crea una copia del espacio de direcciones del padre, pueden ser concurrentes
Operaciones con procesos Terminación de procesos Termina cuando ejecuta su última instrucción Los procesos padres pueden terminar a un proceso hijo
Operaciones con procesos Los procesos pueden ser independientes o cooperativos Cooperativos comparten datos Aceleran cálculos Modularidad comodidad No determinismo
Operaciones con procesos Hebras o threads Una hebra es una unidad básica de utilización de CPU PC Registros Pila Puede compartir con otras hebras Código Datos recursos
Operaciones con procesos
Operaciones con procesos Hebras de usuario y hebras del kernel
Comunicación entre procesos Se tienen mecanismos que permiten la comunicación y sincronización de procesos Problema del productor y consumidor buffers Mensajería Send Receive
Comunicación entre procesos
Comunicación entre procesos
Comunicación entre procesos
Comunicación entre procesos
Comunicación entre procesos