TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso...

66
Tema 2: Procesos y hebras TEMA 2. Procesos Concepto de proceso ¿Qué entendemos por proceso? Estados de un proceso Bloque de Control de Proceso (PCB) Cambio de contexto Planificación de procesos Tipos de planificadores Despachador Políticas de planificación de la CPU Operaciones sobre procesos Hebras (Threads)

Transcript of TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso...

Page 1: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

TEMA 2. Procesos Concepto de proceso

¿Qué entendemos por proceso? Estados de un proceso Bloque de Control de Proceso (PCB) Cambio de contexto

Planificación de procesos Tipos de planificadores Despachador Políticas de planificación de la CPU

Operaciones sobre procesos Hebras (Threads)

Page 2: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

TEMA 2. Objetivos

1. Conocer y diferenciar los conceptos de proceso y hebra.2. Conocer los estados básicos de un proceso/hebra, causas y efectos

que produce la transición entre dichos estados.3. Conocer el concepto de cambio de contexto y sus costes. 4. Contenido y utilidad de las estructuras de datos que el SO utiliza

para la gestión de los procesos/hebras. 5. Conocer el concepto de planificación, y los distintos planificadores

de CPU, así como algunos de los algoritmos de planificación de CPU.

6. Comparar los distintos algoritmos de planificación de CPU.7. Conocer y compara las distintas implementaciones de las hebras 8. Conocer las operaciones básicas sobre procesos/hebras que pueden

realizar los usuarios

Page 3: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso¿Qué entendemos por proceso?

Un proceso es una instancia de un programa en ejecución:» Pueden existir varios procesos ejecutando un mismo

programa, pero cada uno es un proceso distinto, con su propia representación.

Un proceso consta al menos de: el código del programa. los datos del programa. una pila de ejecución. el PC indicando la próxima instrucción. un conjunto de registros de propósito general con los

valores actuales. un conjunto de recursos del SO (memoria, archivos

abiertos, etc.)

Page 4: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso ¿Qué entendemos por proceso? (II)

Para la planificación de la CPU lo importante son los procesos, no los programas.

La idea básica es que un proceso se puede ver como:

» unidad de ejecución: cada proceso se ejecuta independientemente y tiene su propio flujo de control.

» unidad de planificación.

Page 5: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Estados de un proceso

Cada proceso tiene un estado de ejecución que indica lo que esta haciendo actualmente, p. ej.» Nuevo – El proceso se está creando.

» Ejecutándose - ejecutando instrucciones en la CPU.

» Preparado o ejecutable - en espera de la CPU.» Bloqueado - esperando por un suceso.» Terminado – El proceso terminó su ejecución.

Durante su vida en el sistema, un proceso va pasando de un estado a otro.

Page 6: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Estados y transiciones

Diagrama de estados

Interrupción/fin de su tiempo

Espera porE/S o suceso

Fin de E/So suceso

Admitido

Planificación

El proceso terminó

Finalizado

Ejecutándose

Bloqueado

Preparado

Nuevo

Page 7: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Bloque de Control de Proceso

PCB (Bloque de Control de Proceso)» estructura de datos que representa al proceso, es decir,

que contiene la información asociada con cada proceso.» estructura de datos donde el SO mantiene toda la

información sobre el estado de ejecución del proceso, p. ej. PC y registros, cuando éste no se esta ejecutando...

Tabla de procesos: matriz o lista enlazada de PCB’s (una entrada por cada proceso que exista actualmente en el sistema)

Page 8: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Contenido del PCB

Identificador del proceso en el sistema. Estado actual del proceso. Valores de los registros de la CPU. Información de planificación. Información para la gestión de memoria. Información del estado de las E/S. Información de contabilidad o estadística. Suceso por el cual el proceso está bloqueado.

Page 9: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Cambio de contexto

Cuando un proceso esta ejecutándose, su PC, puntero a pila, registros, etc., están cargados en la CPU (es decir, los registros hardware contienen los valores actuales).

Cuando el SO detiene un proceso ejecutándose, salva los valores actuales de estos registros (contexto) en el PCB de ese proceso.

La acción de conmutar la CPU de un proceso a otro se denomina cambio de contexto. Los sistemas de tiempo compartido realizan de 100 a 1000 cambios de contexto por segundo. Este trabajo es sobrecarga.

Page 10: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Cambio de contexto

P1 Sistema Operativo P2

Agotado tº de CPU

Guardar contexto de P1 en su PCB

Guardar contexto de P2 en su PCB

Cargar contexto de P2 desde su PCB

Cargar contexto de P1 desde su PCB

Agotado tº de CPU

Activo

Activo

Activo

Page 11: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso PCB’s y Colas de Estados

El SO mantiene una colección de colas que representan el estado de todos los procesos en el sistema.

Típicamente hay una cola por estado. Cada PCB esta encolado en una cola de estado

acorde a su estado actual. Conforme un proceso cambia de estado, su PCB es

retirado de una cola y encolado en otra.

Page 12: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Colas de estados

Cola de trabajos -- conjunto de los trabajos pendientes de ser admitidos en el sistema (trabajos por lotes que no están en memoria).

Cola de preparados -- conjunto de todos los procesos que residen en memoria principal, preparados y esperando para ejecutarse.

Cola(s) de bloqueados -- conjunto de todos los procesos esperando por un dispositivo de E/S particular o por un suceso.

Page 13: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

1. Concepto de proceso Migración entre colas

Cola deTrabajos

Cola dePreparados

Cola(s) de bloqueados

E/S ósuceso

Fin

(1)

(2)

Programasinteractivos

CPU

Page 14: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesosTipos de planificadores

Planificador Parte del SO que controla la utilización de un recurso.

Tipos de planificadores de la CPU:» Planificador a largo plazo (planificador de trabajos)

selecciona los procesos que deben llevarse a la cola de preparados; (1) en figura anterior.

» Planificador a corto plazo (planificador de la CPU) selecciona al proceso que debe ejecutarse a

continuación, y le asigna la CPU; (2) en figura anterior.» Planificador a medio plazo.

Page 15: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Características de los planificadores

El planificador a corto plazo :» trabaja con la cola de

preparados.» se invoca muy

frecuentemente (milisegundos) por lo que debe ser rápido.

El planificador a largo plazo » Permite controlar el

grado de multiprogramación.

» se invoca poco frecuentemente (segundos o minutos), por lo que puede ser más lento.

Page 16: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Clasificación de procesos

Procesos limitados por E/S o procesos cortos -- dedican más tiempo a realizar E/S que computo; muchas ráfagas de CPU cortas y largos períodos de espera.

Procesos limitados por CPU o procesos largos -- dedican más tiempo en computación que en realizar E/S; pocas ráfagas de CPU pero largas.

Page 17: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Mezcla de trabajos

Es importante que el planificador a largo plazo seleccione una buena mezcla de trabajos, ya que:

Si todos los trabajos están limitados por E/S, la cola de preparados estará casi siempre vacía y el planificador a corto plazo tendrá poco que hacer.

Si todos los procesos están limitados por CPU, la cola de E/S estará casi siempre vacía y el sistema estará de nuevo desequilibrado.

Page 18: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Planificador a medio plazo

En algunos SO’s, p. ej. SO de tiempo compartido, a veces es necesario sacar procesos de la memoria (reducir el grado de multiprogramación), bien para mejorar la mezcla de procesos, bien por cambio en los requisitos de memoria, y luego volverlos a introducir (intercambio). El planificador a medio plazo se encarga de devolver los procesos a memoria. Transición (3) en la siguiente figura.

Page 19: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Planificador a medio plazo

CPU

Cola deTrabajos

Cola de Preparados

Cola(s) de bloqueados

E/S ósuceso

Fin

Programasinteractivos

(3)

Procesos parcialmente ejecutados e intercambiados a disco

Page 20: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos.Planificador a corto plazo.

Las decisiones de planificación a corto plazo pueden tener lugar :

1. Un proceso finaliza (ejecutándose a finalizado). 2. Un proceso se bloquea (ejecutándose a bloqueado).3. Un proceso pasa de ejecutándose a ejecutable por ej: cuando un proceso

agota el quantum de tiempo asignado.4. Un suceso cambia el estado de un proceso bloqueado a ejecutable.

5. Se crea un proceso. No apropiativas (sin desplazamiento): una vez que se le asigna el

procesador a un proceso, no se le puede retirar hasta que éste voluntariamente lo deje (finalice o se bloquee) (1)(2)

Apropiativas (con desplazamiento): al contrario, el SO puede apropiarse del procesador cuando lo decida.(1)(2)(3)(4)(5)

Page 21: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Despachador

El despachador (dispatcher) es el módulo del SO que da el control de la CPU al proceso seleccionado por el planificador a corto plazo; esto involucra:» Cambio de contexto (se realiza en modo kernel).» Conmutación a modo usuario.» salto a la posición de memoria adecuada del

programa para su reanudación. Latencia de despacho -- tiempo que emplea el

despachador en detener un proceso y comenzar a ejecutar otro.

Page 22: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesosCriterios de planificación

Para saber si un proceso obtiene un buen servicio, definiremos un conjunto de medidas: dado un proceso P, que necesita un tiempo de servicio (ráfaga) t

Tiempo de respuesta (T)-- tiempo transcurrido desde que se remite una solicitud (entra en la cola de preparados) hasta que se produce la primera respuesta (no se considera el tiempo que tarda en dar la salida)

Tiempo de espera (M)-- tiempo que un proceso ha estado esperando en la cola de preparados: T-t

Penalización (P) -- T/t

Indice de respuesta (R) -- t/T : fracción de tiempo que P está recibiendo servicio.

Page 23: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesosCriterios de planificación ( II)

Métricas de planificación» Máxima utilización.» Máxima productividad.» Mínimo tiempo de retorno.» Mínimo tiempo de respuesta.» Mínimo tiempo de espera.

Las políticas de planificación se comportan de distinta manera dependiendo de la clase de procesos» Ninguna política de planificación es completamente

satisfactoria, cualquier mejora en una clase de procesos es a expensas de perder eficiencia en los procesos de otra clase .

Page 24: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Criterios de planificación ( y III)

Otras medidas interesantes son:

Tiempo del núcleo-- tiempo perdido por el SO tomando decisiones que afectan a la planificación de procesos y haciendo los cambios de contexto necesarios. En un sistema eficiente debe representar entre el 10% y el 30% del total del tiempo del procesador

Tiempo de inactividad-- tiempo en el que la cola de ejecutables está vacía y no se realiza ningún trabajo productivo

Page 25: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

2. Planificación de procesos Políticas de planificación de la CPU

FCFS El más corto primero:

» no apropiativo» apropiativo

Planificación por prioridades Por turnos Colas múltiples Colas múltiples con realimentación.

Page 26: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

FCFS (First Come First Served)

Los procesos son servidos según el orden de llegada a la cola de ejecutables.

Es no apropiativo, cada proceso se ejecutará hasta que finalice o se bloquee.

Fácil de implementar pero pobre en cuanto a prestaciones.

Todos los procesos pierden la misma cantidad de tiempo esperando en la cola de ejecutables independientemente de sus necesidades.

Procesos cortos muy penalizados. Procesos largos poco penalizados.

Page 27: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

FCFS (First Come First Served)

Procesos Tº llegada Ráfaga T(tº respuesta) M(tº espera) A 0 15 15-0=15 0 B 1 3 18-1=17 14 C 2 3 21-2=19 16

Diagrama de ocupación de la CPU

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ABC

Page 28: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

FCFS (y II)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Procesos Tº llegada Ráfaga T(tº respuesta) M(tº espera) A 2 15 21-2 = 19 4 B 1 3 6-1 = 5 2 C 0 3 3-0 = 3 0

Diagrama de ocupación de la CPU

ABC

Page 29: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

El más corto primero (SJF)

Es no apropiativo. Cuando el procesador queda libre, selecciona el

proceso que requiera un tiempo de servicio menor. Si existen dos o más procesos en igualdad de

condiciones, se sigue FCFS. Necesita conocer explícitamente el tiempo estimado

de ejecución (tº servicio) ¿Cómo?. Disminuye el tiempo de respuesta para los procesos

cortos y discrimina a los largos. Tiempo medio de espera bajo.

Page 30: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

El más corto primero (II)

Procesos Tº llegada Ráfaga real Ráfaga estimada A 0 3 3 B 1 5 5 C 3 2 2 D 2 5 5

Diagrama de ocupación de la CPU

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ABCD

Page 31: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

El más corto primero (y III)

Procesos Tº llegada Ráfaga real Ráfaga estimada A 0 3 3 B 1 5 6 C 3 2 5 D 2 5 5

Diagrama de ocupación de la CPU

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ABCD

Page 32: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

El más corto primero apropiativo (SRTF)

Cada vez que entra un proceso a la cola de ejecutables se comprueba si su tiempo de servicio es menor que el tiempo de servicio que le queda al proceso que está ejecutándose. Casos:» Si es menor: se realiza un cambio de contexto y el

proceso con menor tiempo de servicio es el que se ejecuta.

» No es menor: continúa el proceso que estaba ejecutándose.

El tiempo de respuesta es menor excepto para procesos muy largos.

Se obtiene la menor penalización en promedio (mantiene la cola de ejecutables con la mínima ocupación posible).

Page 33: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

El más corto primero apropiativo (y II)

Procesos Tº llegada Ráfaga real Ráfaga estimado A 0 6 6 B 1 2 2 C 2 7 7 D 3 3 3

Diagrama de ocupación de la CPU

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ABCD

Page 34: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

¿Cómo podemos conocer la duración de la siguiente ráfaga de CPU?

Sólo podemos estimar su duración. Podemos estimar el valor de la siguiente ráfaga

basándonos en las ráfagas previas de CPU y utilizando una media exponencial, por ejemplo, para la n+1 ráfaga:

Tn = duración actual de la n-ésima ráfaga

Ψn = valor estimado de la n-ésima ráfaga 0 ≤ W ≤ 1 Definimos: Ψn+1 = W * Tn + (1-W) Ψn

Ψ0 = valor inicial (constante o promedio global del sistema)

Page 35: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Ejemplos

W = 0 Ψn+1 = Ψn ⇒ La historia reciente no influye.

W = 1 Ψn+1 = Tn ⇒ Sólo cuenta la ráfaga actual.

Si desarrollamos la formula: Ψn+1 = W * Tn + (1-W) * W * Tn-1 +

(1-W)2 * W * Tn-2 + ... + (1-W)q* W * Tn-q

Si W = 1/2 ⇒ cada término sucesivo tiene menos efecto.

Page 36: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Planificación por prioridades

Asociamos a cada proceso un número de prioridad (entero).

Se asigna la CPU al proceso con mayor priori-dad (enteros menores = mayor prioridad)» Apropiativa» No apropiativa

Problema: Inanición -- los procesos de baja prioridad pueden no ejecutarse nunca.

Solución: Envejecimiento -- con el paso del tiempo se incrementa la prioridad de los procesos.

Page 37: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Planificación por prioridades (y II)

Procesos Tº llegada Ráfaga Prioridad A 1 10 3 B 3 1 1 C 0 2 3 D 0 1 2 E 2 5 2

Diagrama de ocupación de la CPU

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ABCDE

No apropiativo

Apropiativo

Page 38: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Por Turnos (Round-Robin)

La CPU se asigna a los procesos en intervalos de tiempo (quatum).

Un proceso pierde la CPU:» Si el proceso finaliza o se bloquea antes de agotar el quantum,

libera la CPU. Se toma el siguiente proceso de la cola de ejecutables (la cola es FIFO) y se le asigna un quantum completo.

» Si el proceso no termina durante ese quantum, se interrumpe y se coloca al final de la cola de ejecutables.

Es apropiativo. En los ejemplos supondremos que si un proceso A llega a la

cola de ejecutables al mismo tiempo que otro B agota su quantum, la llegada de A a la cola de ejecutables ocurre antes de que B se incorpore a ella.

Page 39: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Por Turnos (II)

Estado de la cola de ejecutables

t=0 A; t=3 BC; t=7 CB t=9 BD; t=13 DB; t=17 BD

t=18 D

Procesos Tº llegada Ráfaga A 0 3 B 1 9 C 3 2 D 9 5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

ABCD

q = 4Finaliza A

Finaliza C Finaliza B Finaliza D

Page 40: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Por Turnos (y III)

Los valores típicos del quantum están entre 10 y 100 msg.

Penaliza a todos los procesos en la misma cantidad, sin importar si son cortos o largos.

Las ráfagas muy cortas están más penalizadas de lo deseable.

¿valor del quantum?- muy grande (excede del tº de servicio de todos los procesos) se convierte en FCFS- muy pequeño el sistema monopoliza la CPU haciendo cambios de contexto (tº del núcleo muy alto)

Page 41: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Colas múltiples La cola de preparados se divide en varias colas y

cada proceso es asignado permanentemente a una cola concreta P. ej. interactivos y batch

Cada cola puede tener su propio algoritmo de planificación P. ej. interactivos con RR y batch con FCFS

Requiere una planificación entre colas» Planificación con prioridades fijas. P. ej. primero

servimos a los interactivos luego a los batch» Tiempo compartido -- cada cola obtiene cierto

tiempo de CPU que debe repartir entre sus procesos. P. ej. 80% interactivos en RR y 20% a los batch con FCFS

Page 42: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Fin de C

Colas múltiples (II)

P TºLlegada Ráfaga Bloqueo Ráfaga ColaA 0 2 10 1 1B 4 1 5 2 1C 3 4 - - 2D 2 6 - - 3E 1 9 - - 3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

ABCDE

El algoritmo de cada cola es RR con q=1, 2 y 3 mlsg. respectivamenteEl algoritmo entre colas es prioridades no apropiativo

t = 0 1 2 5 6 8 10 13 14 15 16 19 22Cola 1 A A B BA AB BCola 2 C C CCola 3 E ED DE DE DE DE ED ED ED ED DE E

Fin de A

Fin de B Fin de D

Fin de E

Page 43: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Fin de B

Colas múltiples (y III)

t = 0 1 2 3 4 5 7 8 10 11 12 13 16 19 22 23Cola 1 A A B B B A Cola 2 C C C CCola 3 E ED DE DE DE DE DE ED ED ED ED DE ED DE E

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

ABCDE

El algoritmo de cada cola es RR con q=1, 2 y 3 mlsg. respectivamenteEl algoritmo entre colas es prioridades es apropiativo

P TºLlegada Ráfaga Bloqueo Ráfaga ColaA 0 2 10 1 1B 4 1 5 2 1C 3 4 - - 2D 2 6 - - 3E 1 9 - - 3

Fin de A

Fin de CFin de D

Fin de E

Page 44: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Colas múltiples con realimentación Un proceso se puede mover entre varias colas Requiere definir los siguientes parámetros:

» Número de colas» Algoritmo de planificación para cada cola» Método utilizado para determinar cuando trasladar a un

proceso a otra cola» Método utilizado para determinar en qué cola se

introducirá un proceso cuando necesite un servicio» Algoritmo de planificación entre colas

Mide en tiempo de ejecución el comportamiento real de los procesos

Disciplina de planificación más general (Unix, Windows NT)

Page 45: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Ejemplo de colas múltiples con realimentación

Tres colas gestionadas mediante Round Robin:» Cola 1 con quantum = 2 milisegundos» Cola 2 con quantum = 4 milisegundos» Cola 3 con quantum = 8 milisegundos

Algoritmo entre colas: prioridades no apropiativo, cola 1 mayor prioridad, cola 3 menor prioridad.

Los procesos entran inicialmente en la cola 1 Cuando un proceso se bloquea, al regresar a la cola de

ejecutables sigue en la misma cola si no hay traspaso Un proceso se traspasa a una cola de menor prioridad

cuando agota dos quantum de tiempo seguidos, o bien, agota uno y se bloquea en el siguiente

Page 46: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

Ejemplo de colas múltiples con realimentación (y II)

P TºLlegada TºServicio total Ráfaga Bloqueo

A 0 4 1 3B 2 6 3 4C 3 23 - -

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

ABC

t = 0 1 2 4 6 7 8 10 11 15 16 19 23Cola 1 A B CAB ABC BC C A A Cola 2 C C BC BC C Cola 3 C

(*)

(*) Los procesos tienen un comportamiento cíclico

Fin de AFin de CFin de B

Page 47: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

3. Operaciones sobre procesosCreación de procesos

¿Qué significa crear un proceso?» Asignarle el espacio de direcciones que utilizará» Crear las estructuras de datos para su administración

¿Cuándo se crea? Los sucesos comunes son:» En sistemas batch: en respuesta a la recepción y

admisión de un trabajo» En sistemas interactivos: cuando el usuario se conecta, el

SO crea un proceso que ejecuta el intérprete de órdenes» El SO puede crear un proceso para llevar a cabo un

servicio solicitado por un proceso de usuario» Un proceso puede crear otros procesos formando un

árbol de procesos. Hablamos de relación padre-hijo (creador-creado)

Page 48: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

3. Operaciones sobre procesos Creación de procesos (II)

Cuando un proceso crea a otro, ¿cómo obtiene sus recursos el proceso hijo?» Los obtiene directamente del SO: padre e hijo

no comparten recursos.

» Comparte todos los recursos con el padre.» Comparte un subconjunto de los recursos del

padre.

Page 49: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

3. Operaciones sobre procesos Creación de procesos (III)

Ejecución:» Padre e hijo se ejecutan concurrentemente.» Padre espera al que el hijo termine.

Espacio de direcciones:» Hijo es un duplicado del padre (Unix).» Hijo tiene un programa que lo carga (VMS)

Ejemplo: En UNIX» La llamada al sistema fork (bifurcar) crea un nuevo

proceso.» La llamada exec después de fork reemplaza el

espacio de direcciones con el programa del nuevo proceso.

Page 50: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

3. Operaciones sobre procesos Creación de procesos (y IV)

Por tanto, ¿qué pasos, en general, deben realizarse en una operación de creación?» Nombrar al proceso: asignarle un PID único

» Asignarle espacio (en MP y/o memoria secundaria)

» Crear el PCB e inicializarlo

» Insertarlo en la Tabla de procesos y ligarlo a la cola de planificación correspondiente

» Determinar su prioridad inicial

Page 51: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

3. Operaciones sobre procesos Terminación de procesos

¿Qué sucesos determinan la finalización de un proceso?» Cuando un proceso ejecuta la última instrucción, solicita

al SO su finalización (exit)– Envío de datos del hijo al padre– Recursos del proceso son liberados por el SO

» El padre puede finalizar la ejecución de sus hijos (abort o kill)

– El hijo ha sobrepasado los recursos asignados– La tarea asignada al hijo ya no es necesaria– El padre va a finalizar: el SO no permite al hijo

continuar (terminación en cascada)» El SO puede terminar la ejecución de un proceso porque

se hayan producido errores o condiciones de fallo

Page 52: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras (hilos)

Un proceso:» Unidad de propiedad de los recursos: el proceso

incluye memoria ( sección de código, sección de datos) y otros recursos como: archivos abiertos, señales,...

» Unidad de expedición: sigue un camino de ejecución que puede ser intercalada con la de otros procesos. (Contador de programa, conjunto de registros, espacio de pila, estado)

Estas dos características puede ser tratadas de manera independiente por el SO, apareciendo el concepto de hebra

Page 53: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras (II)

Una hebra (o proceso ligero) es la unidad básica de utilización de la CPU (unidad de expedición). Consta de:» Contador de programa.» Conjunto de registros.» Espacio de pila.» Estado

Una tarea es la unidad de propiedad de los recursos. » Sección de código.» Sección de datos.» Recursos del SO (archivos abiertos, señales,..).

Una hebra comparte con sus hebras pares una tarea. Un proceso pesado o tradicional es igual a una tarea con una

hebra.

Page 54: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras (III)

Un proceso, un hilo Un proceso, múltiples hilos

Múltiples procesos,

un hilo por proceso

Múltiples procesos,

múltiples hilos por proceso

Flujo de instrucciones

Procesos e hilos (Stalling)

Page 55: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras (IV)

Una Hebra posee:

» Un estado de ejecución (Ejecución, Listo, etc.).

» El contexto del procesador se salva cuando no está ejecutando.

» Una pila de ejecución.

» Almacenamiento estático para las variables locales.

» Acceso a la memoria y a los recursos del proceso, compartidos con todos los hilos del mismo.

Page 56: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras (y V)

Modelo de proceso monohilo

Modelo de proceso multihilo

Espacio de direcciones del usuario

Pila del usuario

Pila del núcleo

Bloque de control de proceso

Espacio de direcciones del usuario

Pila del usuario

Pila del núcleo

Bloque de control de hilo

Pila del usuario

Pila del núcleo

Bloque de control de hilo

Hilo Hilo

Bloque de control de proceso

Page 57: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Ventajas de las hebras

Se obtiene un mayor rendimiento y un mejor servicio debido a :» Se reduce el tiempo de cambio de contexto, el tiempo de creación

y el tiempo de terminación.» En una tarea con múltiples hebras, mientras una hebra servidora

esta bloqueada y esperando, una segunda hebra de la misma tarea puede ejecutarse (depende del tipo de hebras)

» La comunicación entre hebras de una misma tarea se realiza a través de la memoria compartida (no necesitan utilizar los mecanismos del núcleo).

» Las aplicaciones que necesitan compartir memoria se benefician de la hebras.

Page 58: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Funcionalidad de las hebras.

Al igual que los procesos la hebras poseen un estado de ejecución y pueden sincronizarse.

Estados de las hebras: Ejecución, Lista y Bloqueada. Operaciones básicas relacionadas con el cambio de estado

en hebras:» Creación

» Bloqueo

» Desbloqueo

» Terminación

Sincronización entre hebras.

Page 59: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Ejemplo: estados de una hebra (I).

Tiempo

Proceso 1

Llamada

a RPC

Llamada

a RPC

Servidor

(a) RPC utilizando un solo hilo

Bloqueado, esperando respuesta del servidor

Ejecutando

Llamadas a Procedimiento Remoto (RPC) utilizando hilos.

Servidor

Page 60: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Ejemplo: estados de una hebra (y II).

ServidorLlamada

a RPC

Llamada

a RPC

Hilo A (proceso 1)

Hilo B (proceso 1)

(b) RPC utilizando un hilo por servidor (en un monoprocesador)

Bloqueado, esperando respuesta de una RPC

Bloqueado, esperando al procesador que está siendo usado por el hilo B

Ejecutando

Llamadas a Procedimiento Remoto (RPC) utilizando hilos.

Servidor

Page 61: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Tipos de hebras

Tipos de hebras: Kernel, usuario y enfoques híbridos Hebras usuario

» Todo el trabajo de gestión de hebras lo realiza la aplicación, el núcleo no es consciente de la existencia de hebras.

» Se implementan a través de una biblioteca en el nivel usuario. La biblioteca contiene código para gestionar las hebras:

– crear hebras, intercambiar datos entre hebras, planificar la ejecución de las hebras y salvar y restaurar el contexto de las hebras.

» La unidad de planificación para el núcleo es el proceso

Page 62: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Tipos de hebras (II)

Hebras Kernel (Núcleo) » Toda la gestión de hebras lo realiza el núcleo.» El SO proporciona un conjunto de llamadas al sistema

similares a las existentes para los procesos (Mach, OS/2).

» El núcleo mantiene la información de contexto del proceso como un todo y de cada hebra.

» La unidad de planificación es la hebra.» Las propias funciones del núcleo pueden ser

multihebras.

Page 63: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Tipos de hebras (III)

Ventajas del uso de las hebras tipo usuario frente a las de tipo núcleo:» Se evita la sobrecarga de cambios de modo, que sucede

cada vez que se pasa el control de una hebra a otra en sistemas que utilizan hebras núcleo.

» Se puede tener una planificación para las hebras distinta a la planificación subyacente del SO.

» Se pueden ejecutar en cualquier SO. Su utilización no supone cambio en el núcleo.

Page 64: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Tipos de hebras (IV)

Desventajas del uso de las hebras tipo usuario frente a las de tipo núcleo.» Cuando un proceso realiza una llamada al sistema

bloqueadora no sólo se bloquea la hebra que realizó la llamada, sino todas las hebras de la tarea.

» En un entorno multiprocesador, una aplicación multihebra no puede aprovechar la ventajas de dicho entorno ya que el núcleo asigna un procesador a un proceso.

Page 65: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Tipos de hebras (V)

Enfoques híbridos » Implementan tanto hebras a nivel kernel como usuario (p. ej.

Solaris 2).» La creación de hebras, y la mayor parte de la planificación y

sincronización se realizan en el espacio de usuario.» Las distintas hebras de una aplicación se asocian con varias

hebras del núcleo (mismo o menor número), el programador puede ajustar la asociación para obtener un mejor resultado.

» Las múltiples hebras de una aplicación se pueden paralelizar y las llamadas al sistema bloqueadoras no necesitan bloquear todo el proceso.

Page 66: TEMA 2. Procesos · Tema 2: Procesos y hebras 1. Concepto de proceso Bloque de Control de Proceso PCB (Bloque de Control de Proceso) »estructura de datos que representa al proceso,

Tema 2: Procesos y hebras

4.Hebras Tipos de hebras ( y VI)

Biblioteca

de hilos

Biblioteca

de hilos

Espacio

de usuario

Espacio

de usuario

Espaciode

usuario

Espacio

de núcleo

Espacio

de núcleo

Espacio

de núcleo

(a) Nivel de usuario puro (b) Nivel de núcleo puro (c) Combinado

Hilo a nivel de usuario Hilo a nivel de núcleo Proceso

Hilos a nivel de usuario y a nivel de núcleo.