48
1 Sistemas Operativos Gestión de procesos Objetivo : Comprender el concepto de proceso, como un programa de sistema que tiene un modelo de registros y valores particulares de la computadora y que conduce a la multiprogramación. Sección 1: Procesos

Sistemas Operativos

  • Upload
    brenna

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Sistemas Operativos. Gestión de procesos Objetivo : Comprender el concepto de proceso , como un programa de sistema que tiene un modelo de registros y valores particulares de la computadora y que conduce a la multiprogramación. Sección 1 : Procesos . Módulo 2, Sección 1. Procesos. - PowerPoint PPT Presentation

Citation preview

Page 1: Sistemas Operativos

1

Sistemas Operativos

Gestión de procesos• Objetivo : Comprender el concepto de proceso, como un

programa de sistema que tiene un modelo de registros y valores particulares de la computadora y que conduce a la multiprogramación.

Sección 1: Procesos 

Page 2: Sistemas Operativos

2

Módulo 2, Sección 1

Procesos

Page 3: Sistemas Operativos

3

Procesos

Objetivo: Comprender el sistema como una colección de procesos que ejecutan código del sistema de manera concurrente con programas del usuario que ejecutan código del usuario

Page 4: Sistemas Operativos

4

Temas

• Idea Conceptual de Proceso

•Coordinación de Procesos

•Operación sobre los Procesos

•Procesos Cooperativos•Comunicación entre los Procesos

Page 5: Sistemas Operativos

5

Idea Conceptual de Proceso

• Un sistema operativo ejecuta una variedad de programas:– Tareas en Batch – Tareas o programas de usuario en Tiempo Compartido

• Los términos tarea y proceso se usan casi como sinónimos y son la unidad de trabajo de los sistemas modernos.

• Proceso – un programa en ejecución; la ejecución de un proceso debe progresar de

manera secuencial.• Un proceso incluye:

– program counter – stack– Sección de Datos

Page 6: Sistemas Operativos

6

Stack: Direcciones de Retorno

Page 7: Sistemas Operativos

7

Stack: Paso de Parámetros

Page 8: Sistemas Operativos

8

Stack: Cambio de Contexto

Page 9: Sistemas Operativos

9

Bloque de Control del Proceso (PCB)

Información asociada con cada proceso.• Estado del proceso

• Program counter• Registros del CPU

• Información para la coordinación del CPU

• Información para la Administración de Memoria

• Información para la Contabilidad

• Información del Estado de la E/S

Page 10: Sistemas Operativos

10

Bloque de Control del Proceso (PCB)

Page 11: Sistemas Operativos

11

Estados del Proceso• Cuando un proceso se ejecuta, este cambia de estado.

– nuevo: El proceso se esta creando.Cargador- Ligador– listo: El programa esta en la Memoria Principal en

espera de ser asignado a un proceso.– corriendo: Las instrucciones se están ejecutando en el

CPU.

– esperando: El proceso esta en el Disco en espera de que ocurra algún evento.

– terminado: El proceso ha finalizado su ejecución y es enviado al Disco.

Page 12: Sistemas Operativos

12

Diagrama de Estado del Proceso

Admitido Interrupción Salir

Terminación de E/S o suceso Despacho-Coordinador

Espera por E/S o suceso

Memoria Principal CPU

Disco Duro

Page 13: Sistemas Operativos

13

Intercambio del CPU de un Proceso a otro Proceso

Interrupción o llamada al sistema

Interrupción o llamada al sistema

Page 14: Sistemas Operativos

14

Colas de la Coordinación de Procesos

• Cola de tareas – conjunto de todos los procesos en el sistema.

• Cola de procesos listos – conjunto de todos los procesos residentes en la memoria-principal, listos y en espera para ejecutarse.

• Cola de dispositivos –conjunto de todos los procesos en espera de un dispositivo de E/S.

• Migración de los Procesos entre las distintas colas.

Page 15: Sistemas Operativos

15

Cola de Listos y Varias Colas de Dispositivos de E/S

Cola de procesos listos

Page 16: Sistemas Operativos

16

Diagrama de Colas de la Coordinación de Procesos Coordinador

de Largo plazo

Coordinador de

Corto plazo

Coordinador de

Mediano plazo

Page 17: Sistemas Operativos

17

Schedulers-Coordinadores

• Coordinador de largo plazo (o coordinador de tareas) – selecciona cual proceso deberá ser traído a la cola de procesos listos.

• Coordinador de corto plazo (o coordinador del CPU) –selecciona cual proceso deberá ser ejecutado enseguida y colocarlo en el CPU.

• Coordinador de mediano plazo ( en sistemas de tiempo compartido) – realiza intercambio (swapping), para liberar a la memoria principal y reducir el grado de multiprogramación y también para mejorar la mezcla de procesos

Page 18: Sistemas Operativos

18

Coordinador de mediano plazo

Sale por intercambioEntra por intercambio

Page 19: Sistemas Operativos

19

Schedulers-Coordinadores (Cont.)

• Los procesos pueden ser descritos como:

– Procesos limitados por E/S – pasan mas tiempo realizando E/S que computaciones, y va muchas veces al CPU -de carrera corta.

– Procesos limitados por CPU –pasan mas tiempo realizando computaciones; y va muy pocas veces al CPU -de carrera larga.

• El sistema con el mejor rendimiento tiene una buena mezcla de ambos procesos.

Page 20: Sistemas Operativos

20

Schedulers-Coordinadores (Cont.)

• El coordinador de corto plazo es invocado muy frecuentemente: (en milisegundos) (deberá de ser rápido).

• El coordinador de largo plazo es invocado muy infrecuentemente: (en segundos, o minutos) (deberá de ser lento).

• El coordinador de largo plazo controla el grado de multiprogramación.

Page 21: Sistemas Operativos

21

Cambio de Contexto

• Cuando el CPU cambia a otro proceso, el sistema deberá: guardar el estado del proceso viejo y cargar el estado guardado para el nuevo proceso.

• El tiempo de cambio-contexto es solo (overhead) gasto extra; el sistema no realiza trabajo útil durante la conmutación.

• Este tiempo depende del hardware.

Page 22: Sistemas Operativos

22

Operación sobre los Procesos:Creación

• Los procesos padres crean procesos hijos, los cuales, a su vez crean otros procesos, formando un árbol de procesos.

• Recursos compartidos

– Los padres dividen todos sus recursos entre sus hijos.– Los hijos comparten un subconjunto de los recursos

de los padres.Padres e hijos comparten datos de iniciación

(entradas).

Page 23: Sistemas Operativos

23

Creación de Procesos (Cont.)

Cuando se crea un proceso nuevo (Posibilidades):

• Espacio de direcciones– El hijo es un duplicado del padre.– Se carga un programa dentro del proceso hijo

• Ejecución – El padre sigue ejecutándose concurrentemente

con sus hijos.– El padre espera hasta que uno de los hijos, o todos,

han terminado.

Page 24: Sistemas Operativos

24

Creación de Procesos (Cont.)

• Ejemplo UNIX :Cada proceso se identifica con un número entero único

– El llamado a sistema fork (bifurcar) crea un nuevo proceso con una copia del espacio de direcciones del proceso original

– El llamado a sistema execve usado después de un fork para reemplazar el espacio de memoria del proceso con un programa nuevo.

Page 25: Sistemas Operativos

25

Un Árbol de Procesos en un Sistema UNIX

Page 26: Sistemas Operativos

26

Terminación de Procesos

• El proceso termina cuando ejecuta su ultima proposición y pide al sistema operativo que lo elimine con (exit).

– Devuelve datos de salida desde el hijo al padre (vía wait).

– Los recursos del proceso son liberados por el sistema operativo.

Page 27: Sistemas Operativos

27

Terminación de Procesos (Cont.)

• Padres pueden terminar la ejecución de los procesos hijos (abort):

– El hijo ha excedido los recursos que se le asignaron.– Las tareas asignadas a los hijos ya no son

necesarias.– El padre esta saliendo.

El sistema operativo no le permite al hijo continuar si su padre termina.

Terminación en cascada de todos sus hijos.

Page 28: Sistemas Operativos

28

Procesos Cooperativos

• Proceso Independiente no puede afectar ni ser afectado por la ejecución de otro proceso (no comparte datos).

• Proceso Cooperativo puede afectar y ser afectado por la ejecución de otro proceso (comparte datos).

• Ventajas de la cooperación de procesos.

– Información compartida– Aceleración de la Computación – Modularidad (procesos individuales)– Comodidad

Page 29: Sistemas Operativos

29

Problema del Productor-Consumidor

• Paradigma de los procesos cooperativos, el proceso productor produce información que es consumida por un proceso consumidor.

• Buffer: que el productor pueda llenar y el consumidor pueda vaciar.

– Buffer-ilimitado sin prácticamente limite sobre el tamaño del buffer.

– Buffer-limitado supone que hay un tamaño fijo para el tamaño del buffer.

Page 30: Sistemas Operativos

30

Buffer Limitado – Solución Memoria Compartida• Datos Compartidos

var n;type item = … ;var buffer. array [0..n–1] of item;

in, out: 0..n–1;• Proceso Productor

repeat…produce an item in nextp…while in+1 mod n = out do no-op;buffer [in] :=nextp;in :=in+1 mod n;

until false;

Page 31: Sistemas Operativos

31

Buffer-Limitado (Cont.)• Proceso Consumidor

Repeatwhile in = out do no-op;

nextc := buffer [out];out := out+1 mod n;

…consume the item in nextc

until false;

• Solución correcta, pero solo puede llenar n–1 buffers.

Page 32: Sistemas Operativos

32

Hilos• Un Hilo (o proceso ligero) es la Unidad básica de

utilización del CPU; consiste de:

– program counter– Conjunto de registros – Espacio en el stack

• Un hilo comparte con su hilo par (del mismo nivel):

– sección de código– Sección de datos– Recursos del sistema- operativo como archivos

abiertos y señales lo que se conoce como tarea (task).• Un proceso tradicional (o proceso pesado) es igual a

una tarea con un solo hilo

Page 33: Sistemas Operativos

33

Hilos Múltiples dentro de una Tarea

Tarea

Hilos

Page 34: Sistemas Operativos

34

Hilos (Cont.)• En una tarea de hilos múltiples, mientras un hilo servidor es

bloqueado y esta esperando,un segundo hilo de la misma tarea puede correr.

– Cooperación de hilos múltiples en una misma tarea confiere alto rendimiento y un desempeño mejorado.

– Aplicaciones que requieren un buffer común compartido (ejemplo, productor-consumidor) se benefician de la utilización de hilos.

• Los hilos proveen un mecanismo que permite a los procesos secuenciales hacer llamados de bloqueo mientras realizan paralelismo.

Page 35: Sistemas Operativos

35

Hilos (Cont.)

• Kernel-soportado por hilos (Mach y OS/2).• Hilos a nivel de usuario; soportado sobre el kernel, vía un

conjunto de llamadas a biblioteca al nivel de usuario (Proyecto Andrew de CMU).

• Aproximación Híbrida implementa hilos a nivel de usuario y kernel-soportado por hilos (Solaris 2).

Page 36: Sistemas Operativos

36

Hilos en Solaris 2

• Solaris 2 es una versión de UNIX con soporte de hilos a nivel de kernel y de usuario, multiprocesamiento simétrico, y coordinación en tiempo real.

• LWP: Procesos Ligeros – nivel intermedio entre hilos a nivel de usuario e hilos a nivel de kernel.

Page 37: Sistemas Operativos

37

Solaris 2 :Hilos

hilo en el nivel de usuario

Proceso ligero

hilo del núcleo

Page 38: Sistemas Operativos

38

Hilos en Solaris 2 (Cont.)• Recursos que requieren los distintos tipos de hilos:

– Hilo de Kernel : estructura de datos pequeña y un stack; el cambio entre hilos no requiere cambiar la información de acceso a memoria – relativamente rápidos.

– Procesos Ligeros (LWP): PCB con datos de registro, información de memoria y de contabilidad;el cambio entre procesos ligeros es relativamente lento.

– Hilos a nivel de usuario: solo necesitan stack y program counter; el no involucramiento del kernel significa cambios rápidos..

Page 39: Sistemas Operativos

39

Comunicación Ínter-procesos (IPC)

• Mecanismo para comunicar procesos cooperativos y para sincronizar sus acciones.

• Sistema de Mensajes – comunica procesos uno con otro sin frecuentar el área de la memoria-compartida.

• La comunicación ínter- procesos provee dos operaciones primitivas:

– send(message) – receive(message)– el tamaño del mensaje es fijo o variable

Page 40: Sistemas Operativos

40

Comunicación Ínter-procesos (IPC) Cont.

• Si P y Q desean comunicarse, ellos tienen que:

1. Establecer un (link) enlace de comunicación entre ellos

2. Intercambiar mensajes vía send/receive• Para establecer el (link) enlace de comunicación, tienen

que:

1. físico (ejemplo, memoria-compartida, bus en hardware o una red)

2. lógico (ejemplo, propiedades lógicas)

Page 41: Sistemas Operativos

41

Propiedades Lógicas

• ¿Como establecer los enlaces?

• ¿Puede un enlace estar asociado con mas de dos procesos?

• ¿Cuántos enlaces puede haber entre cualquier par de procesos en comunicación?

• ¿Qué capacidad tiene un enlace?

• ¿El tamaño de un mensaje, que el enlace puede acomodar, es fijo o variable?

• ¿El enlace es unidireccional o bi-direccional?

Page 42: Sistemas Operativos

42

Intercambio de Mensajes:Comunicación Directa

• Los procesos deberán referirse uno al otro explícitamente:send (P, message): enviar un mensaje al proceso Preceive(Q, message):recibir un mensaje del proceso Q

• Propiedades de los lazos de comunicación• Los enlaces son establecidos automáticamente.

Un enlace esta asociado con exactamente un par de procesos en comunicación.

Entre cada par existe exactamente un enlace.• El enlace puede ser unidireccional,

pero usualmente es bi-direccional.

Page 43: Sistemas Operativos

43

Intercambio de Mensajes:Comunicación Indirecta• Los mensajes son dirigidos y recibidos desde mailboxes

(también llamados ports).

– Cada buzón tiene un id (identificador) único.– Los procesos pueden comunicarse solo si comparten

un buzón• Propiedades de un lazo de comunicación:

– El enlace se establece solo si los procesos comparten un buzón común

– Un enlace puede estar asociado con muchos procesos.– Cada par de procesos puede compartir varios enlaces

de comunicación.– El enlace puede ser unidireccional o bi-direccional.

Page 44: Sistemas Operativos

44

Comunicación Indirecta (Cont.)

•Operaciones– create un nuevo buzón– send y receive mensajes por medio

del buzón– destroy un buzón

Page 45: Sistemas Operativos

45

Comunicación Indirecta (Continuación)• Buzón compartido

P1, P2, y P3 comparten el buzón A. P1, sends; P2 y P3 receive. ¿Quién tiene el mensaje?

• Soluciones– Permitir que un enlace este asociado cuando mucho

a dos procesos .– Permitir que solo un proceso a un tiempo ejecute una

operación receive .– Permitir que el sistema seleccione arbitrariamente

al receptor. El transmisor será notificado de quien fue el receptor.

Page 46: Sistemas Operativos

46

Buffering: Uso de Buffers• Implementado en una de la tres formas siguientes:

1. Capacidad cero –Sin Buffer: 0 mensajes

– El transmisor deberá de sincronizarse: esperar por el receptor (rendezvous) o enviar el mensaje sin esperar aunque se

pierda.– Comunicarse de manera asíncrona no-responsiva:

esperar el acuse de recibo del receptor, ó por medio de la primitiva reply( P, mensaje).

Page 47: Sistemas Operativos

47

Buffering: Uso de Buffers (Cont.)• Cola de mensajes adherida al enlace (link);

implementada en una de las formas siguientes:

2. Capacidad limitada – longitud finita de los n mensajes – El transmisor deberá de esperar, si el Buffer

esta lleno.3. Capacidad ilimitada –longitud infinita

– El transmisor jamás espera.

Page 48: Sistemas Operativos

48

Condiciones de Excepción y Recuperación

Cuando ocurre un fallo antes de que se procese un mensaje o durante la comunicación:

• El proceso termina.– Notificación

• Mensajes perdidos– Retransmite el mensaje– Retransmite el mensaje, si el emisor desea

hacerlo• Mensajes alterados

– Códigos de verificación de errores– Retransmisión