administrador de procesos · administrador de procesos . multitarea la multitarea se basa en:...

49
Sistemas Operativos M. en C. Violeta del Rocío Becerra Velázquez Marzo de 2014. Administrador de Procesos

Upload: others

Post on 30-Apr-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Sistemas Operativos

M. en C. Violeta del Rocío Becerra Velázquez

Marzo de 2014.

Administrador de Procesos

Page 2: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Multitarea

La multitarea se basa en:

Paralelismo real entre E/S y

procesador.

Alternancia en los procesos de fases

de E/S y de procesamiento.

Memoria principal capaz de

almacenar varios procesos.

2

Page 3: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Ejemplo de Ejecución en un Sistema

Multitarea

3

Proceso A

Proceso B

Proceso C

Procesador

Tiempo

Procesamiento

Entrada/Salida

Listo

SO

Page 4: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Cambio de Contexto

4

Page 5: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Información del Proceso

Estado del procesador: (conformado

por todos sus registros)

Registros generales.

Contador de programa.

Puntero de pila.

Registro o registros de estado.

Registros especiales

5

Page 6: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Información del Proceso

Imagen de Memoria del Proceso

Esta formada por los espacios de memoria

que está autorizado a utilizar.

6

Page 7: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Información del Proceso

Información del BCP

Información de Identificación: esta identifica

al usuario y al proceso.

Estado del procesador: contiene los valores

iniciales del estado del procesador.

Información de control del proceso.

• Información de planificación y estado.

• Descripción de segmentos de memoria asignados.

• Recursos asignados.

• Punteros.

• Comunicación entre procesos.

7

Page 8: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Tabla de Procesos

8

Page 9: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Tipos de Planificación

9

Page 10: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Objetivos de Planificación

10

Page 11: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Un hilo es una secuencia de instrucciones

relacionadas que se ejecuta de forma

independiente a otras secuencias.

Todos los programas tienen al menos un

hilo principal

Inicializa el programa y comienza la ejecución

de las instrucciones iniciales.

Puede crear otros hilos que ejecuten varias

tareas o puede hacer todo el trabajo el solo

Procesos Ligeros

11

Page 12: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Procesos Ligeros o Threads

12

Page 13: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

•Un hilo es una unidad básica de

utilización del CPU; que consiste de: Contador de programa

Conjunto de registros

Espacio de stack

Procesos Ligeros o Threads

13

Page 14: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

•Un hilo comparte con sus hilos pares:

Sección de código

Sección de datos

Recursos del sistema operativo

En conjunto se les conoce como tarea

•Un proceso tradicional o pesado, es

igual a una tarea con un hilo.

Procesos Ligeros o Threads

14

Page 15: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Estados del Proceso Ligero

15

Page 16: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

En una tarea donde hay múltiples hilos,

mientras un hilo servidor está

bloqueado y esperando, otro hilo en la

misma tarea puede ejecutarse.

Cooperación de múltiples hilos en la misma

tarea aumenta la tasa de trabajos por unidad

tiempo y mejora el rendimiento.

Aplicaciones que requieren compartir un buffer

común (productor-consumidor) sacan

provecho de la utilización de hilos.

Estados del Proceso Ligero

16

Page 17: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Un proceso puede dividirse en múltiples

hilos

Mejor uso de los recursos de hardware

Es necesario entender

Diseño y estructura de la aplicación.

La interface de programación con hilos.

El compilador y el ambiente de ejecución de la

aplicación.

Las plataformas destino donde la aplicación se

va a ejecutar.

Dividiendo una aplicación

17

Page 18: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

18

Un trabajo en un núcleo

1 trabajo en 10 segundos

Tasa = 1 / 10 = 0.1

Tiempo de retorno

=10 segs

10 segundos

En el CPU

Uso intensivo de CPU

Page 19: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

19

Dos trabajos en un núcleo

2 trabajos en 20 segundos

Tasa = 2 / 20 = 0.1

Tiempo de retorno P0 =20 segs

Tiempo de retorno P1 =20 segs

10 segundos

10 segundos

En el CPU

Uso intensivo de CPU

Page 20: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

20

Dos trabajos en un núcleo

2 trabajos en 20 segundos

Tasa = 2 / 20 = 0.1

Tiempo de retorno

P0 =15 segs Tiempo de retorno

P1=19 segs

El tiempo de retorno de los

procesos puede variar

•Prioridades

•Políticas de planificación

La tasa de trabajos se

mantiene igual

10 segundos

10 segundos

En el CPU

Uso intensivo de CPU

Page 21: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

21

Un trabajo en dos núcleos

1 trabajo en 10 segundos

Tasa = 1 / 10 = 0.1

Tiempo de retorno

=10 segs

No hay mejora en el

tiempo de retorno ni la

tasa de trabajos

Nucleo 0

Nucleo 1

10 segundos

Uso intensivo de CPU

Page 22: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

22

Dos trabajos en dos núcleos

2 trabajos en 10 segundos

Tasa = 2 / 10 = 0.2

Tiempo de retorno

=10 segs

La tasa de trabajos

aumenta al doble

El tiempo de retorno se

mantiene igual que

cuando ejecutamos un

trabajo 10 segundos

10 segundos

Nucleo 0

Nucleo 1

Uso intensivo de CPU

Page 23: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

23

Un trabajo optimizado en dos núcleos

1 trabajo en 5 segundos

Tasa = 1 / 5 = 0.2

Tiempo de retorno =5 segs 10 segundos

Nucleo 0

Nucleo 1

5 segundos 5 segundos

Hilo 0 Hilo 1

Uso intensivo de CPU

Page 24: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

24

Concurrencia vs. Paralelismo

Concurrencia: dos o más hilos están en

progreso al mismo tiempo

Paralelismo: dos o más hilos están

ejecutandose al mismo tiempo

Se requieren varios núcleos

Hilo 1

Hilo 2

Hilo 1

Hilo 2

Page 25: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Paralelismo con hilos

25

Page 26: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

26

Creando hilos por funcionalidad

Asignar hilos a diferentes funciones de

la aplicación El método más simple ya que no hay como

sobreponer

Ejemplo: Construyendo una casa Albañil, carpintero, pintor, plomero,…

Page 27: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

27

Hilos para el rendimiento

Mejora el rendimiento de computadoras

Paralelizar para mejorar el tiempo de retorno o la tasa de trabajos

Ejemplo

Línea de ensamblado de automóviles • Cada trabajador hace una función asignada.

Page 28: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

28

Tiempo de retorno

Complete una sola tarea en la menor

cantidad de tiempo

Ejemplo: Poner la mesa para la cena

• Uno pone los platos

• Uno que dobla y pone las servilletas

• Uno que ponga los cubiertos

– Cucharas, cuchillos, tenedores

• Uno que ponga los vasos

Page 29: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

29

Tasa de trabajos

Completar la mayor cantidad de

trabajos en un tiempo fijo

Ejemplo: Poner las mesas de un

banquete • Varios meseros hacen mesas separadas

• Meseros especializados para platos, vasos,

cubiertos, etc.

Page 30: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

30

Descomposición de una tarea

Divide el tiempo de computación

basado en un conjunto natural de

tareas independientes • Asignar datos para cada tarea conforme se van

necesitando

Ejemplo: Pintar por números • Pintando un color es una sola tarea

• Número de tareas = número de colores

• Dos artistas: uno hace los impares y otro los pares

1

1 1 2

2

3

3 3

3

3

3 3

3 3

3

4

4

4

4

5 5 5 5 5

5 5

5

5

5 5 5 5 5

3 6

6

7 9

8

3

8

3

3

8 8

9

1

10 7

6

11

Page 31: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

31

Descomposición de los datos

Conjuntos de datos grandes cuyos

elementos pueden computarse de

manera independiente • Divide datos y asocia la computación entre los

hilos

Ejemplo: Calificar exámenes • Varios profesores con la misma llave

Page 32: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

32

Aceleración y Eficiencia

Medir que tanto se acelera la ejecución

de cómputo vs. el mejor código serial • Tiempo serial dividido por tiempo paralelo

Ejemplo: Pintar una barda de tablitas • 30 minutos se preparación (serial)

• Un minuto para pintar una tabla

• 30 minutos para limpiar (serial)

Por lo tanto, 300 tablas toman 360

minutos (tiempo serial)

Page 33: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

33

Computando Aceleración

¿Que pasa si el dueño de la barda usa un spray para pintar 300 tablas en una hora ? Mejor algoritmo serial

Si no hay sprays disponibles para varios pintores, ¿cuál es la máxima paralelización?

Número de pintores

Tiempo Velocidad

1 30 + 300 + 30 = 360 1.0X

2 30 + 150 + 30 = 210 1.7X

10 30 + 30 + 30 = 90 4.0X

100 30 + 3 + 30 = 63 5.7X

Infinito 30 + 0 + 30 = 60 6.0X

Illustra la ley de Amdahl La aceleración potencial está restringida por la porción serial

Page 34: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

34

Eficiencia

Medir que tan efectivamente los

recursos de cómputo están ocupados • Aceleración dividida entre el número de hilos

• Expresada como porcentaje promedio de tiempo

no ocioso

Número de pintores

Tiempo Aceleración Eficiencia

1 360 1.0X 100%

2 30 + 150 + 30 = 210 1.7X 85%

10 30 + 30 + 30 = 90 4.0X 40%

100 30 + 3 + 30 = 63 5.7X 5.7%

Infinito 30 + 0 + 30 = 60 6.0X Muy baja

Page 35: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

35

Granularidad

Pobremente definido

como tasa de

computación a

sincronización

Asegurarse que hay

suficiente trabajo que

merezca cómputo en

paralelo

Ejemplo: Dos

granjeros dividen un

campo. ¿Cuántos

granjeros más se

pueden agregar?

Page 36: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

36

Balanceo de carga

La distribución más efectiva es tener la

misma cantidad de trabajo por hilo • Los primeros hilos que terminan se convierten en

ociosos

• Los hilos deben terminar casi al mismo tiempo

Ejemplo: Poner las mesas de un

banquete • Lo mejor es asignar la misma cantidad de mesas a

cada cuadrilla

Page 37: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

37

Estado del CPU

Lógica de Interrupciones

Cache

Unidades de ejecución

Single Core

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Hilos en plataforma single core

Page 38: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

38

Estado del CPU

Lógica de Interrupciones

Estado del CPU

Lógica de Interrupciones

Cache

Unidades de ejecución

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Tecnología Hyper Threading

Ambas instrucciones

requieren diferentes

unidades funcionales

Ambas instrucciones

requieren una misma

unidad funcional

Hilos en plataforma Hyper Threading

Page 39: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

39

Estado del CPU

Lógica de Interrupciones

Estado del CPU

Lógica de Interrupciones

Cache Cache

Unidades de ejecución Unidades de ejecución

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Instrucción

Multi Core

Multi-hilos en plataforma multi core

Page 40: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Jerarquía de Procesos Ligeros

40

Page 41: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Todas las computadoras

proporcionan un mecanismo mediante

el cual otros módulos (E/S, memoria)

pueden interrumpir la ejecución

normal del procesador.

El objetivo de las interrupciones es

ser una vía para mejorar la eficiencia

del procesamiento.

Interrupciones

41

Page 42: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

De programa.

De reloj.

De E/S.

Por fallo de hardware.

Tipos de Interrupciones

42

Page 43: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

De programa: Generadas por alguna condición que se

produce como resultado de la ejecución de

una instrucción, como el desbordamiento

aritmético, la división por cero, el intento de

ejecutar una instrucción ilegal de la

máquina o una referencia a una zona de

memoria fuera del espacio permitido al

usuario.

Tipos de Interrupciones

43

Page 44: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

De reloj: Generadas por un reloj interno del

procesador. Esto permite al sistema

operativo llevar a cabo ciertas funciones

con determinada regularidad.

Tipos de Interrupciones

44

Page 45: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

De Entrada/Salida: Generadas por un controlador de

Entrada/Salida, para indicar que una

operación ha terminado normalmente o

para indicar diversas condiciones de error.

Tipos de Interrupciones

45

Page 46: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

Por fallo de hardware: Generadas por fallos tales como un corte

de energía o un error de paridad de la

memoria.

Tipos de Interrupciones

46

Page 47: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

1) El dispositivo emite una señal de interrupción

al procesador

2) El procesador finaliza la ejecución de la

instrucción en curso, antes de responder a la

interrupción.

3) El procesador pregunta por la interrupción,

comprueba que hay una y envía una señal de

reconocimiento al dispositivo que generó la

interrupción.

Tratamiento de Interrupciones

47

Page 48: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

4) El procesador necesita ahora prepararse para

transferir el control a la rutina de

interrupción.

5) El procesador carga ahora el contador de

programa, con la ubicación de entrada del

programa de tratamiento de la interrupción,

que responderá a esta interrupción.

6) En este punto, el contador de programa y la

PSW relativa al programa interrumpido se

han salvado en la pila de sistema. (cambio de

contexto)

Tratamiento de Interrupciones

48

Page 49: Administrador de Procesos · Administrador de Procesos . Multitarea La multitarea se basa en: Paralelismo real entre E/S y procesador. Alternancia en los procesos de fases de E/S

7) La rutina de tratamiento de la interrupción puede ahora proceder a procesar la interrupción.

8) Cuando se completa el tratamiento de la interrupción, se recuperan de la pila los registros de los valores que se salvaron y se restauran sobre los registros del procesador.

9) La operación final es restaurar los valores de la PSW y del contador de programa a partir de la pila. Como resultado, la próxima instrucción ejecutada será la del programa interrumpido previamente.

Tratamiento de Interrupciones

49