planificacion-procesos SO

25
Planificación de procesos

description

sistemas operativo

Transcript of planificacion-procesos SO

  • Planificacin de procesos

  • Planificacin de ProcesosRecordando cambio de contextoCambiando CPU de un proceso a otroProcesos cambian de estados ejecucin a bloqueado (ejecucin instruccin I/O)bloqueado a listo por interrupcionesProceso espera por evento, evento se produceReloj interrumpe y SO planifica a otro procesoPlanificacin: Elegir que proceso de la cola de listos ejecutarPlanificacin implica una decisin (poltica)Cambio de contexto es una forma de hacerlo (mecanismo)

  • Multiprogramacin y planificacinMultiprogramacin permite aumentar la utilizacin de recursos y productividad sobreponiendo E/S y procesamientoQue procesos/hebras ejecutar y por cuanto tiempo?2 visiones para la planificacin en CPULargo plazo: determina nivel de multiprogramacinCuantos trabajos se cargan a memoriaIngresarlo a memoria o sacarlo (swapping)Corto plazo: qu trabajo ejecutar a continuacin para proporcionar un buen servicioOcurre frecuentemente, idea minimizar sobrecarga por cambio de contextoIdea de buen servicio depende de muchas cosas

  • Objetivos de PlanificacinMaximizar la utilizacin de CPU (CPU Utilization)Maximizar la Productividad nmero de requerimientos atendidos por unidad de tiempo (throughput)Minimizar tiempo de respuesta promedio (Response time)Desde inicio hasta obtencin primera respuesta de sistemaMinimizar tiempo de espera promedio (Waiting time)Tiempo en cola de listosMinimizar tiempo que tarda en proceso ejecutarse completamente, de inicio a fin (Turnaround time)Favorecer algunos procesos, prioridad (Priority)Evitar espera indefinidaAlgunos sistemas favorecen algunos objetivos frente a otrosProductividad. Sistema de procesamiento de transaccionesTiempo de respuesta. Sistema interactivo

  • Diferencia entre sistemas batch e interactivosSistemas batchImporta maximizar throughput y minimizar turnaround timeSistemas interactivosImporta maximizar throughput y minimizar turnaround time y response timeDe acuerdo a como se comportan procesos o hebras en un sistemaProcesos batch (CPU-bound)Procesos interactivos (I/O-bound)

  • Tambin importante para planificadoresTpicamente tratan de evitar inanicin (starvation)Cuando un proceso es prevenido de progresar porque otro proceso tiene el recurso que necesitaEjemplo. Procesos de alta prioridad no permiten a procesos de baja prioridad ejecutarseInanicin tambin se puede producir en hebras/procesos sincronizados

  • PlanificadorMdulo que mueve trabajos entre colasAlgoritmo de planificacin determina que trabajo ejecutar a continuacinSe ejecuta cuandoUn trabajo pasa de listo a bloqueadoOcurre una interrupcin del timerSe crea o termina un trabajo2 tipos de sistemas de planificacinNo apropiativaPlanificador espera que trabajo termine o ceda CPUApropiativaPlanificador interrumpe trabajo en ejecucin y fuerza un context switch

  • Planificacin Apropiativa/No ApropiativaNo Apropiativa. Una vez que procesos adquieren CPU no la liberan, exceptoProceso pasa a estado de espera (bloqueado) Proceso terminaApropiativa. SO puede decidir quitar CPU a proceso para drsela a otroUsa interrupciones de reloj

  • Algoritmos No 1 (FCFS)FCFS (First Come, First Served) Atencin por orden de llegadaJusto, simula mundo real (banco, supermercado, etc)Tpicamente No ApropiativoEjemplo: P1 : 24ms, P2 : 3ms, P3 : 3msTiempo de respuesta promedio? Tiempo de espera promedio? Ventajas?Desventajas?

  • FCFS (cont)VentajasNingn proceso espera indefinidamenteDesventajasTiempo de espera promedio puede ser alto, depende de:tiempo de ejecucin de procesosorden de llegadaprocesos cortos tienen espera alta si estn detrs de los largosPuede producir baja utilizacin de recursoscuando procesos esperan podran ocupar otros recursos

  • Algoritmo No2 (SJF)Short-Job-First (SJF)Asocia cada proceso con el tiempo de ejecucin, tiempo que ocupo CPU la ultima vez antes de cambiarse a estado de esperaCPU es asignada a proceso con el menor tiempo de ejecucinSi dos procesos tienen igual tiempo de ejecucin se aplica FCFSCalcule tiempo de respuesta y espera promedios usando ejemplo anteriorPuede ser apropiativo y no apropiativo

  • SJF (cont)Versin apropiativa Shortest-Remaining-Time-FirstCalcula tiempo de ejecucin mas corto y tiempo de llegadaEjemplo: Calcular tiempo de respuesta y espera promedio Proceso Tiempo llegadaTiempo ejecucin P108 P214 P329 P435

  • SJF (cont)VentajasParece perfecto Mejor tiempo de espera promedio que FCFSDesventajasEspera indefinida?Como estimar tiempo de procesamiento de prximo requerimiento de proceso?

  • Algoritmo No 3: (RR)Round Robin (RR)Cola de procesos listos tratada como cola FIFO circularA cada proceso se le entrega CPU por un periodo de tiempo, llamado quantumProceso se ejecuta por la duracin del quantum o hasta que pasa a bloqueadoEjemplo P1 : 24 ms, P2 : 3ms, P3 : 3ms, quantum 4msVentajas ?Estupendo para procesos interactivos (sistemas de tiempo compartido)

  • RR (cont)DesventajasValor del quantum muy importante en rendimiento de RRProblemas si es muy chico?Tiempo de overhead por cambio de contextoProblemas si es muy grande?Se acerca a FCFSRecomendacin80% de tiempo de ejecucin de procesos (cada requerimiento antes de bloquearse) debera ser mas cortas que quantum

  • Algoritmo No 4 : PrioridadesAsignar prioridades a procesosEjecutar proceso con mayor prioridadSi hay procesos con igual prioridad, aplicar FCFSSJF, prioridad es tiempo de prximo requerimientoEjemplo: ProcesoTiempo EjecucinPrioridadP1103P211P324P415P552

  • Prioridades (cont)Como asignar prioridadesInternamente por SO, en base a uso de recursos (memoria, archivos, etc)Externamente (no por SO) de acuerdo a importancia de procesosEspera indefinidaSi continuamente llegan procesos de alta prioridad, los de baja prioridad esperan indefinidamenteSolucin Espera indefinidaEnvejecimientoaumentar prioridad como funcin acumulada en el tiempodecrementar prioridad como funcin acumulada de tiempo de procesamiento

  • Combinando AlgoritmosEn la prctica los sistemas actuales usan una combinacin de estos algoritmos (RR, Prioridad, SJF)Ejemplo: Mltiples colas retroalimentadasTiene jerarqua de colasTiene prioridades para ordenar las colasNuevos procesos entran a cola de mayor prioridadCada cola planificada con RRQuantums son distintos en cada colaProcesos se cambian de colas en base a historia

  • Mltiples Colas RetroalimentadasIdea, separar procesos en base a sus necesidades de ejecucinProcesos interactivos estn en las colas de mayor prioridadProcesos que usan mucha CPU se cambian a colas de menor prioridadProcesos que llevan mucho tiempo en el sistema se cambian a colas de mayor prioridad

  • Planificacin en UNIXUsa mltiples colas realimentadasDe acuerdo a tipo de procesoprocesos de tiempo compartidoprocesos de sistemaProcesos de tiempo realPlanificacin por prioridad entre distintas colas y RR dentro de cada colaProcesos con alta prioridad siempre se ejecutan primeroProcesos con la misma prioridad se planifican con RRProcesos cambian prioridad dinmicamenteSe incrementa si proceso hace E/S antes de terminar quantumSe decrementa si proceso usa todo su quantumObjetivo?Premiar procesos interactivosTpicamente usan CPU por periodos pequeos de tiempo

  • Planificador LinuxSoporta:una CPUSMP (Simultaneous Multi-Processors)Multiprocesadores en un chip o no, cada uno con caches y compartiendo Memoria PrincipalSMT (Simultaneous Multi-Threading) Procesador con recursos adicionales para soportar hebras. Sistema con Memoria principal compartidaNUMA (Non- Uniform Memory Access)Unico sistema usando mas de un nodo (una mquina con un procesador o un multiprocesador es decir con propia CPU o set de CPUs y memorias)

  • Planificador de CPU en Linux 2.42 algoritmos para planificacin de procesosUno para procesos de tiempo compartido, en donde CPU se multiplexa en forma justa entre procesosUna para procesos con requermientos de tiempo real, donde prioridades absolutas son ms importantes que justiciaAlgoritmo para procesos que comparten tiempoPrioridades y crditos asociadas a procesoProceso con ms crditos se ejecuta primeroA cada interrupcin del timer se decrementan crditos de proceso en ejecucin. Cuando llega a 0 se planifica el siguiente procesoCuando crditos de todos los procesos listos es 0, crditos se recalculan para todos los procesos (incluyendo los bloqueados) crditos = (crditos/2) + prioridad

  • Algoritmo Planificador Linux 2.4 vs 2.6Diferencias entre version 2.4 y 2.6Algoritmos de 2.4 del orden O(n)Tiempo ejecucin vara linealmente al aumentar tamao entradaAlgoritmos de 2.6 del orden O(1)Tiempo ejecucin constante independiente del nmero de tareas a ejecutar en sistemaEstructuras bsicas en 2.6RunqueuesPriority arrays

  • Algunos problemas mejorados en 2.6Planificacin de tareas de tiempo real (soft)Mayor rapidez en atender este tipo de tareasAlgunos problemas para procesos que parecen interactivos (I/O-bound)Procesos/hebras que usan mucho E/S considerados como interactivosA veces estn relacionados con BD no necesariamente interactivosProcesos/hebras que son CPU-bound e I/O-bound pueden anular efectos de boost y penalidad de planificador Mayor informacinhttp://www.inf.udec.cl/~chernand/links/linux_cpu_scheduler.pdf

  • ResumenPlanificacin de procesos puede influenciar fuertemente el rendimientoComo?Generalmente, mltiples objetivos tienen conflictosComo?Existen diversos algoritmos puros, pero normalmente los sistemas implementan lo bueno de varios