Planificacion cpu

84
Sistemas Operativos Planificación de la CPU

Transcript of Planificacion cpu

Page 1: Planificacion cpu

Sistemas Operativos

Planificación de la CPU

Page 2: Planificacion cpu

1 Introducción

• La planificación de la CPU es la base de lossistemas operativos multiprogramados.

• Mediante la conmutación de la CPU entredistintos procesos, el sistema operativo puedehacer que la computadora sea másproductiva.

Page 3: Planificacion cpu

1 Introducción

• Debemos considerar el problema deseleccionar el mejor algoritmo paraun sistema particular.

Page 4: Planificacion cpu

2 Conceptos básicos

• En un sistema monoprocesador, sólo puedeejecutarse un proceso cada vez

• Cualquier otro proceso tendrá que esperarhasta que la CPU quede libre y pueda volver aplanificarse.

• El objetivo de la multiprogramación es tenercontinuamente varios procesos enejecución, con el fin de maximizar el uso de laCPU.

Page 5: Planificacion cpu

2 Conceptos básicos

• Un proceso se ejecuta hasta que tenga queesperar, normalmente porque es necesariocompletar alguna solicitud de E/S.

• La CPU permanecería entonces inactiva y todoel tiempo de espera se desperdiciaría al norealizar ningún trabajo útil.

• Con la multiprogramación, se usa ese tiempode forma productiva.

Page 6: Planificacion cpu

2 Conceptos básicos

• Se mantienen varios procesos enmemoria a la vez.

• Cuando un proceso tiene que esperar, elsistema operativo le retira el uso de laCPU a ese proceso y se lo cede a otroproceso.

Page 7: Planificacion cpu

2 Conceptos básicos

• La CPU es uno de los principalesrecursos de la computadora, así quesu correcta planificación resultacrucial en el diseño del sistemaoperativo.

Page 8: Planificacion cpu

2 Conceptos básicos

THREADS (o hilos):

• En los sistemas operativos tradicionales, cadaproceso tiene su propio espacio de direcciones y unúnico flujo (hilo) de control.

• Hay situaciones en las que es deseable contar conmúltiples hilos de control (threads) en el mismoespacio de direcciones ejecutándose paralelamente

• Son como procesos separados (excepto quecomparten el mismo espacio de direcciones).

Page 9: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

La ejecución de un proceso consta de:

• Un ciclo de ejecución en la CPU.

• Seguido de una espera de E/S

Page 10: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

• Los procesos alternan entre estos dos estados.• La ejecución del proceso comienza con una

ráfaga de CPU.• Esta va seguida de una ráfaga de E/S.• A la cual sigue otra ráfaga de CPU, luego otra

ráfaga de E/S, etc.• Finalmente, la ráfaga final de CPU concluye con

una solicitud al sistema para terminar laejecución.

Page 11: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

• La duración de las ráfagas de CPUvarían enormemente de unproceso a otro y de unacomputadora a otra.

Page 12: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

• Cuando la CPU queda inactiva, el sistema operativo debe seleccionar uno de los procesos que se encuentran en la cola de procesos preparados para ejecución.

• El planificador a corto plazo (o planificador de la CPU) lleva a cabo esa selección del proceso.

Page 13: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

• El planificador elige uno de los procesos que están en memoria preparados para ejecutarse y asigna la CPU.

• Todos los procesos de la cola de procesos preparados se ponen en fila esperando ejecutarse en la CPU.

• En las colas, generalmente, se almacenan bloques de control de proceso (PCB)

Page 14: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

Page 15: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

• El proceso (a), invierte la mayor parte de su tiempo computando. se dice que es intensivo

en computación (CPU-bound).

• El proceso (b), invierte la mayor parte de su tiempo esperando por la terminación de operaciones de E/S. Se dice que es intensivo

en E/S (I/O-bound).

Page 16: Planificacion cpu

3 Ciclo de ráfagas de CPU y de E/S

• A medida que las CPUs se hacen más rápidas, los procesos tienden a ser más intensivos en E/S.

• Este efecto se produce debido a que las CPUs se están mejorando mucho más rápido que los discos.

Page 17: Planificacion cpu

4 Planificación apropiativa

• Puede ser necesario tomar decisiones sobre planificación de la CPU en las siguientes cuatrocircunstancias:

Page 18: Planificacion cpu

4 Planificación apropiativa

1 - Cuando un proceso cambia del

estado de ejecución al estado deespera.

• Por ejemplo, como resultado de una solicitud deE/S.

Page 19: Planificacion cpu

4 Planificación apropiativa

2 - Cuando un proceso cambia delestado de ejecución al estadopreparado.

• Por ejemplo, cuando se produce unainterrupción.

Page 20: Planificacion cpu

4 Planificación apropiativa

3 - Cuando un proceso cambia delestado de espera al estadopreparado.

• Por ejemplo, al completarse unaoperación de E/S.

Page 21: Planificacion cpu

4 Planificación apropiativa

4 - Cuando un proceso termina.

Page 22: Planificacion cpu

4 Planificación apropiativa

En las situaciones 1 y4, tenemos solo una opción:

• debe seleccionarse un nuevoproceso para su ejecución

(si existen procesos en la colade preparados)

Page 23: Planificacion cpu

4 Planificación apropiativa

En las situaciones 2 y 3:

• existe la opción de planificarun nuevo proceso o no.

Page 24: Planificacion cpu

4 Planificación apropiativa

Cuando las decisiones deplanificación sólo se dan en lascircunstancias 1 y 4, decimos que elesquema de planificación es sindesalojo o cooperativo; en casocontrario, se trata de un esquemaapropiativo.

Page 25: Planificacion cpu

4 Planificación apropiativa

Planificación sin desalojo:Una vez que se ha asignado la CPU aun proceso, este se mantiene en laCPU hasta que ésta es liberada, porla terminación del proceso o bien porla conmutación al estado de espera.

Page 26: Planificacion cpu

4 Planificación apropiativa

Planificación apropiativa:• Tiene un coste asociado con elacceso a los datos compartidos.

• Afecta al diseño del kernel delsistema operativo.

• Coste del cambio de contexto.

Page 27: Planificacion cpu

5 Despachador

• El despachador es el módulo queproporciona el control de la CPU alos procesos seleccionados por elplanificador a corto plazo.

Page 28: Planificacion cpu

5 Despachador

• El despachador debe ser lo másrápido posible, ya que se invoca encada conmutación de proceso.

• El tiempo que tarda el despachadoren detener un proceso e iniciar laejecución de otro se conoce comolatencia de despacho.

Page 29: Planificacion cpu

6 Criterios de planificación

• Los diferentes algoritmos de planificacióntienen distintas propiedades

• La elección de un algoritmo en particularpuede favorecer una clase de procesossobre otros.

• Para decidir qué algoritmo utilizar en unasituación particular, debemos considerar laspropiedades de los diversos algoritmos.

Page 30: Planificacion cpu

6 Criterios de planificación

Criterios:• Utilización de la CPU.

• Tasa de procesamiento.

• Tiempo de ejecución o retorno.

• Tiempo de espera.

• Tiempo de respuesta.

Page 31: Planificacion cpu

6 Criterios de planificación

Utilización de la CPU.

• Deseamos mantener la CPU tan ocupada como sea posible.

• La utilización de CPU se define en un rango que va del 0% al 100 %.

• En un sistema real, debe variar entre el 40% (sistema ligeramente cargado) y el 90% (sistema intensamente utilizado).

Page 32: Planificacion cpu

6 Criterios de planificación

Tasa de procesamiento. • Es una medida de la cantidad de trabajo de

la CPU.• Es el número de procesos que se

completan por unidad de tiempo.• Para procesos de larga duración, este valor

puede ser de un proceso por hora; paratransacciones cortas, puede ser de 10procesos por segundo.

Page 33: Planificacion cpu

6 Criterios de planificación

Tiempo de ejecución o retorno. • A un proceso individual, le importa cuánto tarda en

ejecutarse.• Es el intervalo que va desde el instante en que se ordena su

ejecución hasta el instante en que se completa.• Ese tiempo de ejecución es la suma de los períodos que el

proceso invierte en:– esperar para cargarse en memoria– esperar en la cola de preparados– ejecutarse en la CPU– realizar las operaciones de E/S.

Page 34: Planificacion cpu

6 Criterios de planificación

Tiempo de espera. • Es la suma de los períodos invertidos en

esperar en la cola de procesos preparados.• El algoritmo de planificación de la CPU no

afecta a la cantidad de tiempo durante la que un proceso se ejecuta o hace una operación de E/S; afecta sólo al período de tiempo que un proceso invierte en esperar en la cola de procesos preparados.

Page 35: Planificacion cpu

6 Criterios de planificación

Tiempo de respuesta. • Es el tiempo que el proceso tarda en

empezar a responder, no el tiempo que tarda en enviar a la salida toda la información de respuesta.

• Generalmente, el tiempo de respuesta está limitado por la velocidad del dispositivo de salida.

Page 36: Planificacion cpu

7 Algoritmos de planificación

Planificación de la CPU:

• Es decidir a qué proceso de la cola de procesos preparados debe asignársele la CPU.

Page 37: Planificacion cpu

7.1 Planificación FCFS

FCFS

• First-come first-served.

• primero en llegar, primero en serservido.

Page 38: Planificacion cpu

7.1 Planificación FCFS

• Es el algoritmo más simple deplanificación de la CPU.

• Con este esquema, se asigna primeroCPU al proceso que primero lasolicite.

Page 39: Planificacion cpu

7.1 Planificación FCFS

• Es No Apropiativo o Cooperativo.

• Una vez que la CPU ha sido asignadaa un proceso, dicho procesoconserva la CPU hasta que terminasu ejecución o éste realiza una E/S.

Page 40: Planificacion cpu

7.1 Planificación FCFS

• El tiempo medio de espera con elalgoritmo FCFS es a menudobastante largo.

Page 41: Planificacion cpu

7.1 Planificación FCFS

• Al alternarse con este algoritmoprocesos intensivos en CPU (ráfagaslargas de CPU y pocas E/S) con procesosintensivos en E/S (ráfagas cortas de CPUy muchas E/S), puede producirse elllamado “efecto convoy”.

Page 42: Planificacion cpu

7.2 Planificación SJF

SJF

• Shortest-job-first.

• El trabajo mas corto primero

Page 43: Planificacion cpu

7.2 Planificación SJF

• Asocia a cada proceso la duraciónde su siguiente ráfaga de CPU.

• Cuando la CPU está disponible, seasigna al proceso que tiene lasiguiente ráfaga de CPU más corta.

• Si las siguientes ráfagas de CPU dedos procesos son iguales, se usaFCFS para romper el empate.

Page 44: Planificacion cpu

7.2 Planificación SJF

• SJF es óptimo, en el sentido queproporciona el tiempo medio de esperamínimo para un conjunto de procesosdado.

• Anteponer un proceso corto a uno largodisminuye el tiempo de espera del procesocorto en mayor medida de lo queincrementa el tiempo de espera del procesolargo.

• Así, el tiempo medio de espera disminuye.

Page 45: Planificacion cpu

7.2 Planificación SJF

• La dificultad real del algoritmo SJF esconocer la duración de la siguientesolicitud de CPU.

• podemos no conocer la duración de lasiguiente ráfaga de CPU, pero podemospredecir su valor, confiando en que lasiguiente ráfaga será similar en duracióna las anteriores.

Page 46: Planificacion cpu

7.2 Planificación SJF

• Generalmente, para poder predecir la siguiente ráfaga de CPU se define:

τn+1 = α tn + (1 - α) τn

Page 47: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• τn+1 es el valor predicho para la

siguiente ráfaga de CPU

Page 48: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• tn es la duración de la n-ésima

ráfaga de CPU (última ráfagaconocida)

Page 49: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• τn es la duración promedio

histórica de las ráfagas de CPU.

Page 50: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• α es un parámetro que controla elpeso relativo del historial reciente ypasado de nuestra predicción.

• Siempre 0 ≤ α ≤ 1

Page 51: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• Si α = 0, entonces τn+1 = τn y se toma en cuenta el historial y las ráfagas recientes no tienen efecto.

• si α = 1, entonces τn+1 = tn y sólo la ráfaga de CPU más reciente importa.

Page 52: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• Frecuentemente, α = ½, en cuyocaso, el historial reciente ypasado tienen el mismo peso.

Page 53: Planificacion cpu

7.2 Planificación SJF

τn+1 = α tn + (1 - α) τn

• El valor inicial τ0 puede definirse comouna constante o como un promedioglobal para todo el sistema.

Page 54: Planificacion cpu

7.2 Planificación SJF

• El algoritmo SJF puede ser cooperativo oapropiativo.

• La planificación SJF apropiativa a veces sedenomina planificación con seleccióndel proceso con tiempo restante máscorto (SRTJF - Shortest Remaining TimeJob First).

Page 55: Planificacion cpu

7.3 Planificación por prioridades

• A cada proceso se le asocia una prioridady la CPU se asigna al proceso que tenga laprioridad más alta.

Page 56: Planificacion cpu

7.3 Planificación por prioridades

• La planificación por prioridades puedeser apropiativa o cooperativa.

• Los procesos con la misma prioridad seplanifican en orden FCFS.

Page 57: Planificacion cpu

7.3 Planificación por prioridades

• Generalmente, las prioridades se indicanmediante un rango de númerosfijo, como por ejemplo de 0 a 7, o de 0 a4095.

Page 58: Planificacion cpu

7.3 Planificación por prioridades

• No existe un acuerdo general sobre si 0es la prioridad más alta o la más baja.

• Algunos sistemas usan los números bajospara representar una prioridad baja.

• Otros, emplean números bajos paraespecificar una prioridad alta.

Page 59: Planificacion cpu

7.3 Planificación por prioridades

• Las prioridades pueden definirseinterna o externamente.

Page 60: Planificacion cpu

7.3 Planificación por prioridades

• Para calcular las prioridades de manerainterna se han usado en diversossistemas magnitudes tales como:– los límites de tiempo– los requisitos de memoria–el número de archivos abiertos–y la relación entre la ráfaga de E/S

promedio y la ráfaga de CPU promedio.

Page 61: Planificacion cpu

7.3 Planificación por prioridades

• Las prioridades definidas externamente seestablece en función de criterios externosal sistema operativo, como por ejemplo:– la importancia del proceso– el coste monetario de uso de la computadora– el departamento que patrocina el trabajo– otros factores, a menudo de carácter político.

Page 62: Planificacion cpu

7.3 Planificación por prioridades

• Un problema importante de los algoritmos deplanificación por prioridades es el bloqueoindefinido o muerte por inanición.

• Un proceso que está preparado paraejecutarse pero está esperando a acceder a laCPU puede considerarse bloqueado.

• Un algoritmo de planificación por prioridadespuede dejar a algunos procesos de bajaprioridad esperando indefinidamente.

Page 63: Planificacion cpu

7.3 Planificación por prioridades

• Una solución al problema del bloqueoindefinido de los procesos de baja prioridadconsiste en aplicar mecanismos deenvejecimiento.

• Esta técnica consiste en aumentargradualmente la prioridad de los procesosque estén esperando en el sistema durantemucho tiempo.

Page 64: Planificacion cpu

7.4 Planificación por turnos

• Tambien conocida como:

Round Robin (RR)

Page 65: Planificacion cpu

7.4 Planificación por turnos

• Es similar a la planificaciónFCFS, pero se añade la técnica dedesalojo para conmutar entreprocesos.

Page 66: Planificacion cpu

7.4 Planificación por turnos

• Se define una pequeña unidad de tiempo, denominada cuanto de tiempo (o quantum)

• Generalmente, el quantum se encuentra en el rango comprendido entre 10 y 100milisegundos.

Page 67: Planificacion cpu

7.4 Planificación por turnos

• El planificador de la CPU recorrela cola de procesospreparados, asignando la CPU acada proceso durante unintervalo de tiempo de hasta 1cuanto de tiempo.

Page 68: Planificacion cpu

7.4 Planificación por turnos

• El tamaño del cuanto de tiempodefine la frecuencia de cambiosde contexto

Page 69: Planificacion cpu

7.4 Planificación por turnos

Page 70: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Se ha desarrollado para aquellas situaciones en las que los procesos pueden clasificarse fácilmente en grupos diferentes.

Page 71: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Una clasificación habitual consiste en diferenciar entre procesos de primer plano (interactivos) y procesos de segundo plano (por lotes).

Page 72: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Estos dos tipos de procesos tienen requisitos diferentes de tiempo de respuesta.

• Por tanto, pueden tener distintas necesidades de planificación.

Page 73: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Además, los procesos de primer plano pueden tener prioridad(definida externamente) sobre los procesos de segundo plano.

Page 74: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Un algoritmo de planificación mediante colas multinivel divide la cola de procesos preparados en varias colas distintas.

Page 75: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Los procesos se asignanpermanentemente a unacola, generalmente en función dealguna propiedad del proceso.

• Cada cola tiene su propio algoritmode planificación.

Page 76: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Además, debe definirse unaplanificación entre las colas, la cualsuele implementarse como unaplanificación apropiativa y prioridadfija.

• Por ejemplo, la cola de procesos deprimer plano puede tener prioridadabsoluta sobre la cola de procesos desegundo plano.

Page 77: Planificacion cpu

7.5 Planificación mediante colas multinivel

• Otra posibilidad consiste en repartirel tiempo entre las colas. En estecaso, cada cola obtiene una ciertaporción del tiempo de CPU, con laque puede entonces planificar susdistintos procesos.

Page 78: Planificacion cpu

7.5 Planificación mediante colas multinivel

Por ejemplo, en el caso de la colas de procesos de primer plano y segundo plano:

• La cola de primer plano puede disponer del 80% del tiempo de CPU para planificar por tumos sus procesos

• La cola de procesos de segundo planorecibe el 20% del tiempo de CPU para gestionar sus procesos mediante FCFS.

Page 79: Planificacion cpu

7.6 Planificación mediante colas multinivel realimentadas

• Este algoritmo de permite mover un proceso de una cola a otra.

• La idea es separar los procesos en función de las características de sus ráfagas de CPU.

• Si un proceso utiliza demasiado tiempo de CPU, se pasa a una cola de prioridad más baja.

• Este esquema deja los procesos limitados por E/S y los procesos interactivos en las colas de prioridad más alta.

Page 80: Planificacion cpu

7.6 Planificación mediante colas multinivel realimentadas

• Por ejemplo, considere un planificador de colas multinivel realimentadas con tres colas numeradas de 0 a 2:

• En primer lugar, el planificador ejecuta todos los procesos de la cola 0.

• Sólo cuando la cola 0 esté vacíaejecutará procesos de la cola 1.

Page 81: Planificacion cpu

7.6 Planificación mediante colas multinivel realimentadas

• De forma similar, los procesos de la cola2 solo se ejecutarán si las colas 0 y 1están vacías.

• Un proceso que llegue a la cola 1desalojará a un proceso de la cola 2 yese proceso de la cola 1 será, a suvez, desalojado por un proceso quellegue a la cola 0.

Page 82: Planificacion cpu

7.6 Planificación mediante colas multinivel realimentadas

• En general, un planificador mediantecolas multinivel realimentadas sedefine mediante los parámetrossiguientes:

Page 83: Planificacion cpu

7.6 Planificación mediante colas multinivel realimentadas

Page 84: Planificacion cpu

7.6 Planificación mediante colas multinivel realimentadas

• El algoritmo de planificación de cada cola.• El método usado para determinar cuándo pasar

un proceso a una cola de prioridad más alta.• El método usado para determinar cuándo pasar

un proceso a una cola de prioridad más baja.• El método usado para determinar en qué cola

se introducirá un proceso cuando haya que darle servicio.