Planificacion cpu

7,521 views 84 slides Dec 12, 2012
Slide 1
Slide 1 of 84
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84

About This Presentation

No description available for this slideshow.


Slide Content

Sistemas Operativos Planificación de la CPU

1 Introducción La planificación de la CPU es la base de los sistemas operativos multiprogramados. Mediante la conmutación de la CPU entre distintos procesos, el sistema operativo puede hacer que la computadora sea más productiva.

1 Introducción Debemos considerar el problema de seleccionar el mejor algoritmo para un sistema particular .

2 Conceptos básicos En un sistema monoprocesador , sólo puede ejecutarse un proceso cada vez Cualquier otro proceso tendrá que esperar hasta que la CPU quede libre y pueda volver a planificarse. El objetivo de la multiprogramación es tener continuamente varios procesos en ejecución , con el fin de maximizar el uso de la CPU .

2 Conceptos básicos Un proceso se ejecuta hasta que tenga que esperar, normalmente porque es necesario completar alguna solicitud de E/S . La CPU permanecería entonces inactiva y todo el tiempo de espera se desperdiciaría al no realizar ningún trabajo útil. Con la multiprogramación, se usa ese tiempo de forma productiva .

2 Conceptos básicos Se mantienen varios procesos en memoria a la vez. Cuando un proceso tiene que esperar , el sistema operativo le retira el uso de la CPU a ese proceso y se lo cede a otro proceso .

2 Conceptos básicos La CPU es uno de los principales recursos de la computadora, así que su correcta planificación resulta crucial en el diseño del sistema operativo.

2 Conceptos básicos THREADS (o hilos): En los sistemas operativos tradicionales, cada proceso tiene su propio espacio de direcciones y un único flujo (hilo) de control . Hay situaciones en las que es deseable contar con múltiples hilos de control ( threads ) en el mismo espacio de direcciones ejecutándose paralelamente Son como procesos separados (excepto que comparten el mismo espacio de direcciones ).

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

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 la ejecución .

3 Ciclo de ráfagas de CPU y de E/S La duración de las ráfagas de CPU varían enormemente de un proceso a otro y de una computadora a otra.

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 .

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)

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

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

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 .

4 Planificación apropiativa Puede ser necesario tomar decisiones sobre planificación de la CPU en las siguientes cuatro circunstancias:

4 Planificación apropiativa 1 - Cuando un proceso cambia del estado de ejecución al estado de espera . Por ejemplo, como resultado de una solicitud de E/S .

4 Planificación apropiativa 2 - Cuando un proceso cambia del estado de ejecución al estado preparado . Por ejemplo, cuando se produce una interrupción .

4 Planificación apropiativa 3 - Cuando un proceso cambia del estado de espera al estado preparado . Por ejemplo, al completarse una operación de E/S .

4 Planificación apropiativa 4 - Cuando un proceso termina .

4 Planificación apropiativa En las situaciones 1 y 4 , tenemos solo una opción: debe seleccionarse un nuevo proceso para su ejecución (si existen procesos en la cola de preparados)

4 Planificación apropiativa En las situaciones 2 y 3 : existe la opción de planificar un nuevo proceso o no .

4 Planificación apropiativa Cuando las decisiones de planificación sólo se dan en las circunstancias 1 y 4 , decimos que el esquema de planificación es sin desalojo o cooperativo ; en caso contrario, se trata de un esquema apropiativo .

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

4 Planificación apropiativa Planificación apropiativa: Tiene un coste asociado con el acceso a los datos compartidos . Afecta al diseño del kernel del sistema operativo. Coste del cambio de contexto .

5 Despachador El despachador es el módulo que proporciona el control de la CPU a los procesos seleccionados por el planificador a corto plazo .

5 Despachador El despachador debe ser lo más rápido posible, ya que se invoca en cada conmutación de proceso . El tiempo que tarda el despachador en detener un proceso e iniciar la ejecución de otro se conoce como latencia de despacho .

6 Criterios de planificación Los diferentes algoritmos de planificación tienen distintas propiedades La elección de un algoritmo en particular puede favorecer una clase de procesos sobre otros. Para decidir qué algoritmo utilizar en una situación particular, debemos considerar las propiedades de los diversos algoritmos .

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.

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

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 ; para transacciones cortas, puede ser de 10 procesos por segundo .

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.

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 .

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 .

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 .

7.1 Planificación FCFS FCFS First -come first-served . primero en llegar, primero en ser servido.

7.1 Planificación FCFS Es el algoritmo más simple de planificación de la CPU . Con este esquema, se asigna primero CPU al proceso que primero la solicite.

7.1 Planificación FCFS Es No Apropiativo o Cooperativo. Una vez que la CPU ha sido asignada a un proceso, dicho proceso conserva la CPU hasta que termina su ejecución o éste realiza una E/S .

7.1 Planificación FCFS El tiempo medio de espera con el algoritmo FCFS es a menudo bastante largo.

7.1 Planificación FCFS Al alternarse con este algoritmo procesos intensivos en CPU (ráfagas largas de CPU y pocas E/S) con procesos intensivos en E/S (ráfagas cortas de CPU y muchas E/S), puede producirse el llamado “efecto convoy”.

7.2 Planificación SJF SJF Shortest-job-first . El trabajo mas corto primero

7.2 Planificación SJF Asocia a cada proceso la duración de su siguiente ráfaga de CPU . Cuando la CPU está disponible, se asigna al proceso que tiene la siguiente ráfaga de CPU más corta . Si las siguientes ráfagas de CPU de dos procesos son iguales , se usa FCFS para romper el empate .

7.2 Planificación SJF SJF es óptimo, en el sentido que proporciona el tiempo medio de espera mínimo para un conjunto de procesos dado. Anteponer un proceso corto a uno largo disminuye el tiempo de espera del proceso corto en mayor medida de lo que incrementa el tiempo de espera del proceso largo. Así, el tiempo medio de espera disminuye .

7.2 Planificación SJF La dificultad real del algoritmo SJF es conocer la duración de la siguiente solicitud de CPU. podemos no conocer la duración de la siguiente ráfaga de CPU, pero podemos predecir su valor , confiando en que la siguiente ráfaga será similar en duración a las anteriores.

7.2 Planificación SJF Generalmente, para poder predecir la siguiente ráfaga de CPU se define: τ n+1 = α t n + (1 - α) τ n

7.2 Planificación SJF τ n+1 = α t n + (1 - α) τ n τ n+1 es el valor predicho para la siguiente ráfaga de CPU

7.2 Planificación SJF τ n+1 = α t n + (1 - α) τ n t n es la duración de la n- ésima ráfaga de CPU (última ráfaga conocida)

7.2 Planificación SJF τ n+1 = α t n + (1 - α) τ n τ n es la duración promedio histórica de las ráfagas de CPU.

7.2 Planificación SJF τ n+1 = α t n + (1 - α ) τ n α es un parámetro que controla el peso relativo del historial reciente y pasado de nuestra predicción. Siempre 0 ≤ α ≤ 1

7.2 Planificación SJF τ n+1 = α t n + (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 = t n y sólo la ráfaga de CPU más reciente importa.

7.2 Planificación SJF τ n+1 = α t n + (1 - α ) τ n Frecuentemente, α = ½ , en cuyo caso, el historial reciente y pasado tienen el mismo peso .

7.2 Planificación SJF τ n+1 = α t n + (1 - α) τ n El valor inicial τ puede definirse como una constante o como un promedio global para todo el sistema.

7.2 Planificación SJF El algoritmo SJF puede ser cooperativo o apropiativo. La planificación SJF apropiativa a veces se denomina planificación con selección del proceso con tiempo restante más corto (SRTJF - Shortest Remaining Time Job First ) .

7.3 Planificación por prioridades A cada proceso se le asocia una prioridad y la CPU se asigna al proceso que tenga la prioridad más alta .

7.3 Planificación por prioridades La planificación por prioridades puede ser apropiativa o cooperativa . Los procesos con la misma prioridad se planifican en orden FCFS .

7.3 Planificación por prioridades Generalmente, las prioridades se indican mediante un rango de números fijo, como por ejemplo de 0 a 7, o de 0 a 4095.

7.3 Planificación por prioridades No existe un acuerdo general sobre si es la prioridad más alta o la más baja . Algunos sistemas usan los números bajos para representar una prioridad baja . Otros, emplean números bajos para especificar una prioridad alta .

7.3 Planificación por prioridades Las prioridades pueden definirse interna o externamente .

7.3 Planificación por prioridades Para calcular las prioridades de manera interna se han usado en diversos sistemas 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.

7.3 Planificación por prioridades Las prioridades definidas externamente se establece en función de criterios externos al 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.

7.3 Planificación por prioridades Un problema importante de los algoritmos de planificación por prioridades es el bloqueo indefinido o muerte por inanición . Un proceso que está preparado para ejecutarse pero está esperando a acceder a la CPU puede considerarse bloqueado. Un algoritmo de planificación por prioridades puede dejar a algunos procesos de baja prioridad esperando indefinidamente .

7.3 Planificación por prioridades Una solución al problema del bloqueo indefinido de los procesos de baja prioridad consiste en aplicar mecanismos de envejecimiento . Esta técnica consiste en aumentar gradualmente la prioridad de los procesos que estén esperando en el sistema durante mucho tiempo.

7.4 Planificación por turnos Tambien conocida como: Round Robin (RR)

7.4 Planificación por turnos Es similar a la planificación FCFS , pero se añade la técnica de desalojo para conmutar entre procesos.

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 100 milisegundos.

7.4 Planificación por turnos El planificador de la CPU recorre la cola de procesos preparados, asignando la CPU a cada proceso durante un intervalo de tiempo de hasta 1 cuanto de tiempo .

7.4 Planificación por turnos El tamaño del cuanto de tiempo define la frecuencia de cambios de contexto

7.4 Planificación por turnos

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 .

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

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 .

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.

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 .

7.5 Planificación mediante colas multinivel Los procesos se asignan permanentemente a una cola, generalmente en función de alguna propiedad del proceso . Cada cola tiene su propio algoritmo de planificación.

7.5 Planificación mediante colas multinivel Además, debe definirse una planificación entre las colas, la cual suele implementarse como una planificación apropiativa y prioridad fija . Por ejemplo, la cola de procesos de primer plano puede tener prioridad absoluta sobre la cola de procesos de segundo plano.

7.5 Planificación mediante colas multinivel Otra posibilidad consiste en repartir el tiempo entre las colas. En este caso, cada cola obtiene una cierta porción del tiempo de CPU , con la que puede entonces planificar sus distintos procesos.

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 plano recibe el 20% del tiempo de CPU para gestionar sus procesos mediante FCFS.

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.

7.6 Planificación mediante colas multinivel realimentadas Por ejemplo, considere un planificador de colas multinivel realimentadas con tres colas numeradas de a 2 : En primer lugar, el planificador ejecuta todos los procesos de la cola 0 . Sólo cuando la cola 0 esté vacía ejecutará procesos de la cola 1 .

7.6 Planificación mediante colas multinivel realimentadas De forma similar, los procesos de la cola 2 solo se ejecutarán si las colas 0 y 1 están vacías . Un proceso que llegue a la cola 1 desalojará a un proceso de la cola 2 y ese proceso de la cola 1 será, a su vez, desalojado por un proceso que llegue a la cola 0 .

7.6 Planificación mediante colas multinivel realimentadas En general, un planificador mediante colas multinivel realimentadas se define mediante los parámetros siguientes:

7.6 Planificación mediante colas multinivel realimentadas

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