04 - Planificación CPU

34
Ing. Rodrigo Higuera Universidad Nacional Experimental de Guayana Vicerrectorado académico. Coordinación de Ingeniería en Informática. Universidad Nacional Experimental de Guayana- 2012 UNEG - Venezuela

Transcript of 04 - Planificación CPU

Page 1: 04 - Planificación CPU

Ing. Rodrigo Higuera

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Universidad Nacional Experimental de Guayana- 2012 UNEG - Venezuela

Page 2: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Introducción

La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La selección del proceso se basa en alguno de los algoritmos de planificación existentes. Esta es una función primordial del Sistema. La mayoría de los recursos, si no es que todos, se planifican antes de que se utilicen. La asignación de procesadores físicos a los procesos hace posible que éstos realicen su trabajo, y tal asignación es un problema complejo manejado por el Sistema Operativo.

¿Cómo conseguir tener ocupados varios componentes de manera

simultanea?

Page 3: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Programa Vs Proceso

Programa: es una secuencia estática de instrucciones generalmente almacenadas en un archivo en disco. Aquí el termino estático hace referencia al hecho de que esas instrucciones no varían con el tiempo.

Proceso: representación del estado de una instancia de un programa en ejecución. Desde el punto de vista de S.O. un proceso es la entidad mínima planificable que posee:

Códigos. Datos. Atributos.

Page 4: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Estructuras de datos utilizadas por el kernel del SO

Desde todo punto de vista se considera que los procesos es la unidad mínima

planificable y está formado por:

Instrucciones de programa o código.

Estructuras de datos del programa.

Atributos.

Page 5: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Estados de un proceso

Page 6: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Estructura del BCP

Aunque la información del BCP varia dependiendo del sistema operativo en cuestión se

puede decir a grueso modo que el BCP esta constituido por:

Información relacionada con la administración del proceso.

Información relacionada con la gestión y administración de memoria.

Información relacionada con los dispositivos y el sistema de archivos.

Page 7: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Dispatcher Vs Scheduler

El Sistema Operativo debe:

Conmutar la CPU entre los procesos.

No permitir que los procesos se modifiquen entre si ni al S.O.

El código del dispatcher se ejecuta desde que se inicia el S.O. constituye su

parte mas interna y esta escrito en ensamblador, pues se ejecuta con mucha

frecuencia.

Page 8: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Funciones que realiza el Dispatcher

Permitir de que el proceso que se encuentre en el CPU cumpla su

Quantum de tiempo.

Modificar el estado del proceso en su respectivo BCP.

Actualizar el estado de los demás procesos mediante su BCP.

Transferir el control del CPU a un nuevo proceso.

Page 9: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Cuando se Activan el Dispatcher y el Scheduler

El Dispatcher se activa una vez el scheduler decide entregar la CPU a otro proceso. En cambio, el scheduler se activa al:

Cambio de Ejecución a Bloqueado.

Cambio de Ejecución a Listo.

Cambio de Bloqueado a Listo.

Al finalizar el proceso.

Page 10: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Cuando se Activan el Dispatcher y el Scheduler

En algunos SO el scheduler entra en acción al realizar una llamada al sistema o cuando terminan los casos 1 y 4 vistos anteriormente. Este tipo de planificación recibe el nombre de planificación no apropiativa, cooperativa o sin requisa. Si la activación del scheduler se produce con todas las condiciones vistas anteriormente estamos ante una planificación apropiativa, no cooperativa y con requisa.

Page 11: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Algoritmos de planificación del CPU

Para poder comparar los diferentes algoritmos de planificación se

establecen diversos criterios:

Rendimiento o productividad.

Tiempo de espera.

Tiempo de retorno o de estancia.

Tiempo de respuesta.

Grado de sobrecarga.

Page 12: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Tipos de planificadores

Planificadores a largo plazo: Son típicos de los sistemas por lotes. Se encarga de determinar que trabajos, de los contenidos en una cola de trabajos en espera, van a ser cargados en memoria para su ejecución. Po lo que determina el grado de multiprogramación. Distinguimos dos tipos de procesos:

Procesos limitados por E/S.

Procesos limitados por CPU.

Page 13: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Tipos de planificadores

Planificadores a medio plazo: Son propios de los sistemas interactivos. Su misión principal consiste es reducir y aumentar el grado la multiprogramación.

Planificadores a corto plazo: Se encarga de seleccionar cual de los procesos cargados en memoria y listos para ser ejecutados obtendrá la CPU. Este tipo de planificador se ejecuta con mucha frecuencia.

Con requisa Planificación apropiativa

Sin Requisa Planificación no apropiativa o cooperativa.

Page 14: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Algoritmos de planificación más comunes

Primero en llegar primero en ser servido (FCFS)

En este algoritmo las peticiones de uso del CPU se atienden en el mismo orden que ingresan al sistema. Se trata por tanto del algoritmo más sencillo.

Se implementa tratando la cola de proceso preparados (listos) como una estructura FIFO.

No apropiativo. Un proceso retiene la CPU hasta que esta finaliza o solicita una operación de E/S.

Page 15: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Algoritmos de planificación más comunes

Primero el trabajo más corto (SPN)

También conocido como SJF. Consiste en asociar a cada trabajo la duración de su siguiente ráfaga de CPU y asignar la CPU a aquel que presente menor ráfaga.

Puede producirse inanición sobre procesos con ráfagas de CPU grandes.

Existe una variante de este algoritmo denominado SRTF (shortest Remaining Time First), en esta variante siempre que ingresa un trabajo se compara la duración de la siguiente ráfaga frente al tiempo que le queda al proceso en la CPU para terminar su ráfaga.

Page 16: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Algoritmos de planificación más comunes – Con prioridad

Round Robin

Similar a FCFS pero con requisa. Para evitar que algunos procesos monopolicen el uso del CPU. round robin define el lapso máximo de tiempo que un proceso puede disponer de la CPU al que se denomina quantum. El planificador seleccionar el primer proceso de la cola y le cede el CPU hasta que ocurre alguno de estos eventos.

Fin del proceso.

Fin del quantum.

Solicitud de algún otro recurso.

Page 17: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Hilos (Threads)

Hilos soportados en el nivel de usuario

Lo hilos se ofrecen a los usuarios a través de un biblioteca fuera del kernel del sistema operativo. También se posee un planificador de hilos que se ejecuta dentro del tiempo asignado al proceso, para determinar que hilos ejecutar dentro del quantum asignado al proceso.

El bloqueo de un hilo provoca el bloqueo de todos los hilos pertenecientes a la tarea.

Page 18: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Hilos (Threads)

Hilos soportados por el núcleo del SO

Dispone de un planificador de hilos en el kernel para reparte el tiempo de la CPU.

El bloqueo de un hilo no afecta al resto de los hilos de la misma tarea. El único inconveniente es la sobrecarga del Sistema Operativo.

Page 19: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad

Compárese el rendimiento ofrecido al planificar el conjunto de tareas multi-hilo descrito en la tabla 1 bajo las siguientes configuraciones.

Sistema Operativo multitarea con hilos en espacio del usuario. En este sistema se dispone de un biblioteca para la programación con hilos en el espacio del usuario. El algoritmo de planificación de CPU utilizado por el sistema operativo es Round-Robin con un quantum de 100ut y un coste por cambio de contexto entre tareas de 20ut. El planificador de la biblioteca de hilos reparte el quantum de la tarea entre los hilos utilizando round robin con un quantum para cada hilo de 10ut y sin coste en el cambio de contexto entre sus hilos.

Page 20: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad (Continuación)

Sistema Operativo multitarea con hilos soportados dentro del núcleo. El sistema operativo planifica las tareas mediante round-robin con un quantum de 100ut; este tiempo se distribuye de forma circular entre los hilos de esa tarea en rodajas de 10ut. Como en el caso anterior, la unica sobrecarga que se considera es el cambio de contexto entre tareas con un coste de 20utconsidere además que las operaciones de E/S de una tarea únicamente bloquean al hilo que las solicita.

Suponga que en ambos casos que las dos tareas están disponibles y que el planificador entrega la CPU a T1.

Page 21: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad (Continuación)

Hilos Duración Ráfaga

Tiempo Espera

Duración Ráfaga

Tarea 1 Hilo 1 30 110 40

Hilo 2 50 - -

Hilo 3 30 - -

Hilo 4 20 60 40

Tarea 2 Hilo 1 20 50 60

Hilo 2 40 110 20

Uso CPU =

CPU Ocupada

Tiempo Total

Uso efectivo = de la CPU

CPU Ocupada en hilos

Tiempo Total

Sobrecarga SO = CPU Ocupada en SO

Tiempo Total

Page 22: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 2

El siguiente conjunto de trabajos va a ser planificado siguiendo el algoritmo FCFS:

Trabajo Duración Ráfaga Tiempo bloqueado

T0 7 4

T1 1 2

T2 1 2

Page 23: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 2 (Continuación…)

Estudie los siguientes casos:

1. Cada trabajo necesita para su finalización tres ráfagas de CPU y todos los trabajos se bloquean cuando solicitan operaciones de E/S sobre un mismo dispositivo compartido. Estas solicitudes son atendidas por el sistema operativo secuencialmente y en el mismo orden que fueron efectuadas por los procesos.

2. Cada trabajo necesita para su finalización tres ráfagas de CPU, pero por ahora los trabajo se bloquean cuando solicitan operaciones de E/S sobre dispositivos diferentes, por lo que el S.O. puede atenderlas concurrentemente.

Page 24: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 3

El siguiente conjunto de trabajos va a ser planificado siguiendo el algoritmo SJF y SRTF:

Calcular los tiempos medio de espera que resulta de aplicar el algoritmo de SJF y SRTF(expulsivo)

Proceso Llegada Duración

P1 0 7

P2 2 4

P3 4 1

P4 5 4

Page 25: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 4

Determine cual debe ser la duración de las ráfagas de CPU del conjunto de trabajos que se muestran en la siguiente tabla, sabiendo que utilizando un cierto algoritmo de planificación, el tiempo de espera de los trabajos T1 y T2 fue de 5 u.t. en ambos casos, para el trabajo T3 su tiempo de espera coincide con su tiempo de proceso. Además se sabe que el tiempo de permanencia medio es de 20 u.t.

Trabajo Duración Ráfagas

T1 X, 5

T2 3, X, 10

T3 4, X

Page 26: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 4 (Continuación)

Por último represente gráficamente el resultado de planificar los trabajos mediante el algoritmo de planificación SRTF. Para ello, tenga en cuenta que siempre que un trabajo abandona la CPU requiere de 2 u.t. sobre un dispositivo común antes de volver a la cola de trabajos preparados y que los trabajos llegan en los siguientes instantes:

• T1 = 0 u.t.

• T2 = 1 u.t.

• T3 = 3 u.t.

De igual manera se debe hallar el tiempo de respuesta medio al aplicar el algoritmo de SRTF.

Page 27: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 5

Sean los siguientes procesos a ejecutar en un sistema

Proceso Instante de llegada

Orden de llegada

Tiempo de CPU

Prioridad

A 0 1 8 3

B 0 2 1 1

C 0 3 2 3

D 0 4 1 4

E 0 5 5 2

Aplicar Algoritmo de prioridades no expulsivo, considere mayor número de prioridad el que tenga más prioridad

Page 28: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 6

Se tienen cuatro(04) procesos en un sistema con las siguientes características:

Proceso Instante de llegada

Tiempo de CPU

P1 0 8

P2 2 4

P3 5 9

p4 12 3

Aplicar Algoritmo de prioridades expulsivas, considere mayor número de prioridad el que llega más tarde

Page 29: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 1 - Respuesta

El siguiente conjunto de trabajos va a ser planificado siguiendo el algoritmo SJF y SRTF:

Uso CPU =

470

520

Uso efectivo = de la CPU

350

520

Sobrecarga SO =

120

520

A)

Uso CPU =

430

430

Uso efectivo = de la CPU

350

430

Sobrecarga SO =

80

430

B)

Page 30: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 2 - Respuesta

El siguiente conjunto de trabajos va a ser planificado siguiendo el algoritmo SJF y SRTF:

Grado de ocupación del CPU =

(7 + 1 + 1) x 3

31

Grado de ocupación del Dispositivo =

16

31

Grado de solapamiento Obtenido=

12

31

A)

Grado de ocupación del CPU =

(7 + 1 + 1) x 3

29

Grado de ocupación del Subsistema E/S=

10

29

Grado de solapamiento Al menos un dispositivo= 34%

B) Grado de solapamiento Al menos dos dispositivo= 17%

Grado de solapamiento Al menos dos dispositivo= 3%

Page 31: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 3 - Respuesta

El siguiente conjunto de trabajos va a ser planificado siguiendo el algoritmo SJF y SRTF:

SJF no expulsivo = (0 + 6 + 3 + 7) / 4 = 4 (espera media)

A)

SJF expulsivo = (9 + 1 + 0 + 2) / 4 = 3 (espera media)

B)

Page 32: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 4 - Respuesta

El valor de la ráfaga a Buscar es:

X = 6 A) Proceso Tiempo

Espera Tiempo

Permanencia

T1 13 24

T2 20 39

T3 17 27

B)

Tpermanencia = 30

C) Trespuesta = 12.83

Page 33: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Actividad 5 - Respuesta

Valores obtenidos:

A) B) Tpermanencia = 10.8 Tespera = 7.4

Actividad 6 - Respuesta

Valor obtenido:

A) Tespera = 7.75

Page 34: 04 - Planificación CPU

Universidad Nacional Experimental de Guayana

Vicerrectorado académico.

Coordinación de Ingeniería en Informática.

Con el uso de esta presentación se acepta las condiciones abajo descritas basadas en la licencia LGPL.

La presentación puede ser utilizada libremente por los particulares. El empleo comercial de la presentación gratuita no está permitido.

En ningún caso Rodrigo Higuera será responsable por ningún daño indirecto, especial o consecuente que surja de o en conexión con el uso de la presentación.

En caso de preguntas o inquietudes técnicas, no se las lleve a casa, Pregunte.

E-Mail: [email protected] / [email protected]

Muchas Gracias…