Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf ·...

39
CFGS DAM 1 © Patricia Hurtado Sayas Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM 2 © Patricia Hurtado Sayas 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de Proceso 2. Tabla de Procesos 3. Tipos de Procesos 4. Creación de Procesos 5. Terminación de Procesos 6. Estados y transiciones de Procesos 3. Multiprogramación y Multiproceso 1. Principios de Concurrencia 2. Planificación de Procesos 3. Expulsión de un Proceso de la CPU Índice de contenidos:

Transcript of Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf ·...

Page 1: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

1 © Patricia Hurtado Sayas

Tema 1: Programación Multiproceso.

Curso 2012-2013

CFGS DAM

2 © Patricia Hurtado Sayas

1. Elementos funcionales de un SI. Repaso.2. Concepto de Proceso o Tarea.

1. PCB, Bloque de Control de Proceso2. Tabla de Procesos3. Tipos de Procesos4. Creación de Procesos5. Terminación de Procesos6. Estados y transiciones de Procesos

3. Multiprogramación y Multiproceso1. Principios de Concurrencia2. Planificación de Procesos3. Expulsión de un Proceso de la CPU

Índice de contenidos:

Page 2: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

3 © Patricia Hurtado Sayas

4. Razones para suspender un Proceso5. Problemas con los Procesos

4. Concepto de Hilos y SO Multihilos y Multiproceso.5. Programación Concurrente6. Comunicación entre Procesos7. Sincronización entre Procesos8. Programación Paralela y Distribuida9. Herramientas gráficas para la gestión de

Procesos en sistemas libres y propietarios

Índice de contenidos:

CFGS DAM

4 © Patricia Hurtado Sayas

1.- Repaso arquitectura de von Neumann:

Año 1946

Page 3: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

5 © Patricia Hurtado Sayas

1.- Repaso arquitectura de von Neumann:

Unidad de Control

CFGS DAM

6 © Patricia Hurtado Sayas

1.- Repaso arquitectura de von Neumann:

ALU

Page 4: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

7 © Patricia Hurtado Sayas

1.- Repaso arquitectura de von Neumann:

Unidad de Memoria

CFGS DAM

8 © Patricia Hurtado Sayas

1.- Repaso arquitectura de von Neumann:

Ciclo de instrucción

Page 5: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

9 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

Un programa es un conjunto de instrucciones listo para ser ejecutado. Es el resultado de un proceso de compilación y por tanto es un concepto pasivo dado que no se está ejecutando.

CFGS DAM

10 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:Un proceso o tarea es un concepto manejado por el sistema operativo formado por:� Las instrucciones de un programa destinadas a ser

ejecutadas por el microprocesador.� Su estado de ejecución en un momento dado, esto es,

los valores de los registros de la CPU para dicho programa.

� Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

� Otra información que permite al sistema operativo s u planificación.

Concepto Activo

Page 6: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

11 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

CFGS DAM

12 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

�Región de código ���� tamaño fijo y es de solo lectura, lo que le permite compartida por más de un proceso.

�Región de datos ���� contiene las variables globales del proceso y las estructuras de datos dinámicas.

�Región de pila ���� contiene datos temporales.

Page 7: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

13 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

CFGS DAM

14 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:Características de los procesos (I):�Para que un proceso pueda empezar su

ejecución, debe de residir completamente en memoria y tener asignados todos los recursos que necesite.

�Dos procesos pueden asociarse al mismo programa.

�Cada proceso está protegido del resto de procesos, ningún otro proceso podrá escribir en las zonas de memoria pertenecientes a ese proceso.

Page 8: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

15 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:Características de los procesos (II):�Los procesos pertenecientes a los usuarios se

ejecutan en el modo usuario del procesador (con restricciones de acceso a los recursos), los que pertenecen al sistema se ejecutarán en el modo kernel del procesador (podrán acceder a cualquier recurso).

�Para que un proceso de usuario acceda a los recursos tendrá que hacerlo por medio de llamadas al sistema.

�Los procesos se podrán comunicar, sincronizar y colaborar entre ellos.

CFGS DAM

16 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:�Identificadores numéricos:

�Identificador del procesos en sí (pid)�Identificador del proceso padre (quién lo creó)�Identificador del usuario

� Información de gestión de memoria�Información del estado del procesador: contador

de programa, registros de la CPU, etc.�Información de estado y planificación: estado del

proceso (ejecución, listo, suspendido o zombie), prioridad, evento por el cual espera, etc.

2.1.

-P

CB

, Blo

que

de C

ontr

ol d

e P

roce

so

Page 9: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

17 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:� Información de planificación y estadísticas de

uso, por ejemplo tiempo real y de CPU utilizado. � Estado de E/S, como por ejemplo dispositivos

asignados, operaciones pendientes. � Información de gestión de archivos (archivos

abiertos, derechos). � Información de mantenimiento.

2.1.

-P

CB

, Blo

que

de C

ontr

ol d

e P

roce

so

CFGS DAM

18 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.2.

-T

abla

de

Pro

ceso

s

Es la estructura donde se mantienen los PCB de los procesos usuarios.

Page 10: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

19 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.3.

-T

ipos

de

Pro

ceso

s

Proceso init : es el primer proceso a nivel de usuario iniciado por el SO y es el padre de todos los procesos de usuario. Tiene el pid con valor 1. Si representásemos a todos estos procesos en un árbol, entonces Init quedaría como el nodo raíz.

CFGS DAM

20 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.3.

-T

ipos

de

Pro

ceso

s

Page 11: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

21 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.3.

-T

ipos

de

Pro

ceso

s Procesos huérfanos : Cuando un proceso padre muere antes que el proceso hijo, este proceso hijo queda huérfano y es adoptado por el proceso Init. En la siguiente imagen vemos cómo, al morir un proceso padre, Init acepta a sus procesos hijos.

CFGS DAM

22 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.3.

-T

ipos

de

Pro

ceso

s

Page 12: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

23 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.3.

-T

ipos

de

Pro

ceso

s Procesos zombies : Un proceso que termina no puede abandonar el sistema hasta que su padre acepte su c ódigo de retorno. Si el proceso padre ya está muerto, es adoptado por el proceso init . Si el proceso padre está vivo pero nunca ejecuta un wait() o proceso por el que espera a la finalización de su hijo, el código de retorno de l proceso hijo nunca será aceptado y tal proceso se convierte en zombie. Un proceso zombie no tiene ni código, ni pi la, ni datos, pero continúa habitando en la tabla de proce sos (que es de tamaño fijo).

CFGS DAM

24 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.3.

-T

ipos

de

Pro

ceso

s

Page 13: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

25 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.4.

-C

reac

ión

de P

roce

sos

Los procesos son creados y destruidos por el sistema operativo, así como también éste se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación .

CFGS DAM

26 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.4.

-C

reac

ión

de P

roce

sos La creación de un proceso

supone la asignación de todos los recursos que el proceso necesita.

Page 14: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

27 © Patricia Hurtado Sayas

Un proceso puede crear nuevos hijos mediante una llamada al SO. El proceso creador se denomina padre y, el creado hijo . En Windows se puede crear un proceso con CreateProcess , donde se indica el fichero ejecutable donde está el código del hijo. En sistemas UNIX, las llamadas al sistema son �fork , crea un proceso hijo que es un duplicado

del padre.�exec, sustituye el código por un nuevo fichero

ejecutable (no crea un nuevo proceso).

2.- Concepto de Proceso o Tarea:

2.4.

-C

reac

ión

de P

roce

sos

CFGS DAM

28 © Patricia Hurtado Sayas

Un proceso termina cuando invoca a una llamada al sistema específica, por ejemplo exit() . También si se genera una excepción y el SO decide abortarlo. En sistemas UNIX, cuando un proceso termina, muere también su descendencia.

2.- Concepto de Proceso o Tarea:

2.5.

-T

erm

inac

ión

de P

roce

sos

Page 15: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

29 © Patricia Hurtado Sayas

Los estados caracterizan el comportamiento de los procesos y están relacionados con la actividad de proceso en un momento determinado.

2.- Concepto de Proceso o Tarea:

2.6.

-E

stad

os y

tran

sici

ones

CFGS DAM

30 © Patricia Hurtado Sayas

�Nuevo : El proceso está siendo creado pero aún no ha sido admitido en la lista de procesos ejecutables por el SO.

�Ejecución : El proceso está ejecutando instrucciones. En un sistema con un solo procesador, sólo habrá un proceso en este estado.

�Bloqueado : El proceso espera por algún evento, por lo que no puede hacer nada.

2.- Concepto de Proceso o Tarea:

2.6.

-E

stad

os y

tran

sici

ones

Page 16: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

31 © Patricia Hurtado Sayas

�Listo : El proceso está listo para ser ejecutado y espera a que se le asigne tiempo de CPU. Todos los procesos en este estado están compitiendo por la CPU.

�Finalizado : Ha finalizado su ejecución ya sea de forma normal o anormal. En este estado los procesos permanecen mientras el SO libera sus recursos y extrae información necesaria para tareas de contabilidad.

2.- Concepto de Proceso o Tarea:

2.6.

-E

stad

os y

tran

sici

ones

CFGS DAM

32 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.6.

-E

stad

os y

tran

sici

ones

�Bloqueado y Suspendido : el proceso estáen memoria secundaria suspendido y esperando por un evento.

�Listo y Suspendido : el proceso está en memoria secundaria suspendido temporalmente, pero listo para ejecución, una vez que se reanude.

Page 17: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

33 © Patricia Hurtado Sayas

2.- Concepto de Proceso o Tarea:

2.6.

-E

stad

os y

tran

sici

ones

Todas las transiciones son iniciadas por el SO, la ú nica que además, puede ser iniciada por el mismo proceso usuario es la de Ejecución a Bloqueado .

CFGS DAM

34 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Se denomina multiprogramación o multitarea , a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" (seudo-paralelismo, ya que en una única CPU sólo puede haber un proceso a la vez) en la unidad central de proceso o CPU, es decir, permite la ejecución de varios procesos al mismo tiempo corriendo sobre un único procesador.

Page 18: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

35 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Ventajas:� Permite la existencia de varios procesos en ejecuci ón.� Permite el servicio interactivo simultáneo a varios usuarios

de manera eficiente.� Aprovecha los tiempos que los procesos pasan espera ndo

a que se completen sus operaciones de E/S, por lo q ue aumenta el uso de la CPU.

� Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estar á el proceso dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física.

CFGS DAM

36 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Multiprogramación es distinto a multiproceso.

El multiproceso implica la existencia de varios procesadores en el mismo sistema, ejecutando por ejemplo simultáneamente diferentes trabajos, pudiendo ser usados en multiprogramación.

En cambio un sistema de multiprogramación no podría ser utilizado en multiproceso si sólo tuvier a un procesador.

Page 19: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

37 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

El grado de multiprogramación viene determinado por el número de procesos activos.

La ejecución aparentemente simultánea de varios procesos en un mismo sistema, requiere repartir el tiempo de CPU entre los objetos a ejecutar. Eso implica expulsar de la CPU, al proceso en ejecución y asignarla a un proceso preparado . Esta actividad se conoce como cambio de contexto .

CFGS DAM

38 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Los cambios de contexto no son trabajo útil e impli can una sobrecarga importante si se hacen con frecuencia ���� reducen la utilización.

Page 20: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

39 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

EJERCICIOVisualiza la animación de la siguiente dirección we b:

http://ies.barajas.madrid.educa.madrid.org/ies/inde x.php?option=com_content&view=article&id=124:gestion-de-procesos&catid=65:unidades-de-trabajo&Itemid=55

CFGS DAM

40 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Tipos de multitarea (I):�Multitarea Nula : es aquel SO que carece de

multitarea, por ejemplo MS-DOS.�Multitarea Corporativa, Cooperativa o No

apropiativa : es aquella donde los procesos de usuario son los que ceden la CPU al SO a intervalos regulares. Es el tipo de multitarea de los SO Windows anteriores a 1995 como Windows 3.11.

Page 21: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

41 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Tipos de multitarea (II):�Multitarea Preferente o Apropiativa : es aquella en

donde el SO se encarga de administrar el/los procesador/es, repartiendo el tiempo de uso del mismo entre los distintos procesos que esperan utilizarlo. Si hay un solo procesador, cada proceso lo utiliza en periodos cortísimos de tiempo, dando la sensación de que se ejecutan al mismo tiempo. Es el tipo de multitarea de los SO UNIX (y sus clones Linux), Windows NT, etc.

CFGS DAM

42 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Tipos de multitarea (III):�Multitarea Real : es aquella en donde el SO ejecuta

los procesos realmente al mismo tiempo, haciendo uso de múltiples procesadores. En el caso de que los procesos o tareas sean más que la cantidad de procesadores, éstos comienzan a ejecutarse como en la multitarea preferente. Es el tipo de multitarea de los SO modernos. En este caso tenemos un sistema multiproceso.

Page 22: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

43 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

CFGS DAM

44 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

La Concurrencia es la habilidad para ejecutar varias actividades en paralelo o simultáneamente en un sistema con un único procesador.

Comprende entre otras, la comunicación entre procesos, la compartición y competencia por los recursos, la sincronización de la ejecución de varios procesos y la asignación del procesador a los procesos.

3.1.

-P

rinci

pios

de

Con

curr

enci

a

Page 23: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

45 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

El objetivo de la multiprogramación es que en todo momento haya un proceso en ejecución (maximiza la utilización)

La Planificación es la forma o criterio que se sigue a la hora de decidir qué proceso debe entrar en ejecución.

3.2.

-P

lani

ficac

ión

de p

roce

sos

CFGS DAM

46 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

El proceso del SO dedicado a la tarea de determinar el procesos a ejecutar, recibe el nombre de planificador.

Este proceso suele estar en estado bloqueado , y es despertado periódicamente, dependiendo del esquema de planificación, o cuando el proceso en ejecución no puede continuar y pasa a estado bloqueado .3.2.

-P

lani

ficac

ión

de p

roce

sos

Page 24: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

47 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

Algoritmo de planificación es el criterio que utiliza el planificador para designar el proceso que entra en ejecución.

3.2.

-P

lani

ficac

ión

de p

roce

sos

CFGS DAM

48 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

3.2.

-P

lani

ficac

ión

de p

roce

sos

Planificador de trabajos: Encargado del intercambio entre memoria y almacenamiento secundario. Controla el número de pr ocesos en memoria. Se ejecuta con menor frecuencia ���� puede ser lento.

Planificador de la CPU: Selecciona un proceso preparado y le asignar la CPU. Se ejecuta con mucha frecuencia ���� debe ser más rápido.

Page 25: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

49 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

3.3.

-E

xpul

sión

de

la C

PU Las principales interrupciones por las que

un proceso puede ser expulsado de la CPU, son:�Interrupción por E/S. �Interrupción por fin de tiempo (en la que

se llama al planificador) �Interrupción por error (como la división

por 0)

El proceso pasa a Bloqueado

CFGS DAM

50 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

3.4.

-S

uspe

nsió

n de

pro

ceso

s Un proceso puede ser suspendido por:� Falta de espacio en memoria principal que requiere un

intercambio de memoria. � Reducción del grado de multiprogramación por parte del

SO.� Solicitud de un usuario interactivo, por ejemplo pa ra

depuración.� Temporización del proceso.� Solicitud del padre para sincronizar descendientes.

El proceso pasa a Bloqueado y Suspendido

Page 26: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

51 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

3.4.

-P

robl

emas

con

pro

ceso

s La programación multiproceso supone la compartición y competencia entre los procesos por el uso de recursos físicos.Los procesos necesitan técnicas de:�Comunicación : necesidad de transmitir

información entre procesos concurrentes. �Sincronización : necesidad de que las

ejecuciones de los procesos concurrentes se produzcan según una secuenciación temporal, conocida y establecida entre ellos.

CFGS DAM

52 © Patricia Hurtado Sayas

3.- Multiprogramación y Multiproceso:

3.4.

-P

robl

emas

con

pro

ceso

s

Cuando varios procesos entran en competencia se pueden producir las siguientes situaciones:

�Exclusión mutua : el acceso a ciertos recursos debe ser exclusivo de un proceso cada vez ����

sección crítica.

�Interbloqueo : dos procesos pueden estar esperando el mismo recurso.

�Inanición : un proceso nunca accede a un recurso.

Page 27: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

53 © Patricia Hurtado Sayas

4.- Concepto de Hilo:

Una hebra o hilo (thread) o proceso ligero , es un punto de ejecución de un proceso. Un proceso tendrá una o más hilos.

Los hilos de un mismo proceso compartirán recursos, siempre pertenecen a un proceso y no pueden existir por ellos mismos, pero pueden ser planificados por ejecución .

CFGS DAM

54 © Patricia Hurtado Sayas

4.- Concepto de Hilo:

Los hilos no son independientes entre sí. Como todo s los hilos pueden acceder a todas las direcciones de la tarea, un hilo puede leer la pila de cualquier otro hilo o escribir sobr e ella.

Page 28: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

55 © Patricia Hurtado Sayas

4.- Concepto de Hilo:

Los procesos pueden pertenecer a varios usuarios, pero los hilos de un proceso pertenecen a un mismo usuario y por tanto, se asume que estarán diseñados para colaborar, no para competir. La programación de procesos multihilo se ajusta a la programación concurrente sobre sistemas que comparten memoria.

CFGS DAM

56 © Patricia Hurtado Sayas

4.- Concepto de Hilo:

Con los hilos distinguimos dos tipos o niveles de procesos:�Procesos pesados: contienen uno o varios

hilos que comparten la misma memoria y recursos. Así un proceso pesado puede contener centenares de hilos sin mucho coste adicional, tan solo los BCP de sus hilos.

�Procesos ligeros: implementados por el SO o por el programa de usuario.

Page 29: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

57 © Patricia Hurtado Sayas

4.- Concepto de Hilo:

Ventajas de los hilos sobre los procesos:� Se tarda mucho menos tiempo en crear un nuevo hilo en

un proceso existente que en crear un nuevo proceso.� Se tarda mucho menos tiempo en terminar un hilo que un

proceso.� Se tarda mucho menos tiempo en conmutar entre hilos de

un mismo proceso que entre procesos.� Los hilos hacen más rápida la comunicación entre

procesos, ya que al compartir memoria y recursos, s e pueden comunicar entre sí sin invocar el núcleo del SO.

CFGS DAM

58 © Patricia Hurtado Sayas

5.- Programación concurrente:

EJEMPLOVeamos la diferencia entre la programación secuencial clásica, y la programación concurrente. Para ello supongamos que tenemos que realizar un programa que cada 3 seg. muestre el mensaje Hola y cada 5 seg. muestre el mensaje Mundo .

Page 30: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

59 © Patricia Hurtado Sayas

5.- Programación concurrente:

1. ���� muestra el mensaje Hola2. ���� muestra el mensaje Mundo3. ���� muestra el mensaje Hola mundo

CFGS DAM

60 © Patricia Hurtado Sayas

5.- Programación concurrente:

Page 31: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

61 © Patricia Hurtado Sayas

5.- Programación concurrente:

La programación concurrente permite obtener soluciones distintas a un mismo problema. Por ejemplo, supongamos el siguiente fragmento de código:

n=0;tarea P1{

n = n+1;}tarea P2{

n = n+1;}

CFGS DAM

62 © Patricia Hurtado Sayas

5.- Programación concurrente:

En este ejemplo se dan dos posibles resultados, ambos correctos y dependientes del orden de ejecución de los procesos P1 y P2:

n=0;tarea P1{

n = n+1;}tarea P2{

n = n+1;}

Page 32: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

63 © Patricia Hurtado Sayas

5.- Programación concurrente:

En este ejemplo estamos tratando las instrucciones de modificación de la variable n como atómicas. Pero, ¿qué pasaría si realmente cada modificación supone la ejecución de varias instrucciones atómicas? Una instrucción atómica no puede ser entrelazada con la ejecución de otras instrucciones. Dependiendo de la atomicidad, algunas soluciones serán correctas o no.

CFGS DAM

64 © Patricia Hurtado Sayas

5.- Programación concurrente:

Veamos las instrucciones del ejemplo, a nivel de atomicidad e intercaladas su ejecución:

El resultado obtenido no sería correcto.

Page 33: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

65 © Patricia Hurtado Sayas

5.- Programación concurrente:

Las secciones de código de un programa que acceden a un mismo recurso (un mismo objeto de una clase, un fichero del disco, etc.) desde dos procesos o hilos distintos se denominan secciones críticas .

CFGS DAM

66 © Patricia Hurtado Sayas

En el punto 3.4. se ha visto que cuando varios procesos entran en competencia se pueden producir las siguientes situaciones a evitar:

�Exclusión mutua : el acceso a ciertos recursos debe ser exclusivo de un proceso cada vez ����

sección crítica.

�Interbloqueo : dos procesos pueden estar esperando el mismo recurso.

�Inanición : un proceso nunca accede a un recurso.

5.- Programación concurrente:

Page 34: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

67 © Patricia Hurtado Sayas

6.- Comunicación entre procesos:

La comunicación de procesos es la capacidad de transmitir información de un proceso a otro. La forma de comunicarse varios procesos o hilos, normalmente consiste en compartir un mismo objeto (uso de memoria compartida), que suele pasarse como parámetro en la clase constructora de la clase hilo. Será necesario además, disponer de un sistema de sincronización para garantizar el acceso exclusivo a las variables compartidas.

CFGS DAM

68 © Patricia Hurtado Sayas

6.- Comunicación entre procesos:

Formas de conseguir la comunicación:�Memoria compartida , requiere un mecanismo de

sincronización externo y, la responsabilidad de comunicación recae en los procesos, mientras que el SO tan solo proporciona llamadas para manipular dicha memoria compartida.

�Paso de mensajes , la responsabilidad de comunicación y sincronización recae en el SO, que proporciona un e nlace lógico entre procesos. Los procesos sólo tienen que invocar correctamente a dos llamadas básicas: send y receive, que pueden ser bloqueantes o no.

Page 35: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

69 © Patricia Hurtado Sayas

6.- Comunicación entre procesos:

Las relaciones de comunicación entre procesos pueden ser de distintos tipos:�Independientes o competidores cuando los

procesos compiten por el uso de recursos escasos, como la CPU o E/S.

�Cooperantes cuando los procesos colaboran entre sí para llevar a cabo un objetivo común.

CFGS DAM

70 © Patricia Hurtado Sayas

7.- Sincronización entre procesos:

La sincronización surge debido a la necesidad de ev itar que dos o más procesos o hilos traten de acceder a l os mismos recursos al mismo tiempo. La sincronización es la capacidad de informar de la situación de un proceso a otro y se puede obtener:�Por exclusión mutua , asegurando que un solo proceso

tiene acceso a un recurso compartido único.�Por condición , asegurando que un proceso no

progresa hasta que se cumpla una determinada condición.

Page 36: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

71 © Patricia Hurtado Sayas

7.- Sincronización entre procesos:.

Al igual como la comunicación, la sincronización pu ede conseguirse de dos formas distintas:�Memoria compartida , mediante los métodos siguientes:

� Inhibición de interrupciones que consiste en que un proceso inhabilita todas las interrupciones justo antes de entrar en su sección crítica, y las rehabilita cuando sale de ella;

� Espera activa ,� Semáforos , son mecanismos tanto de comunicación como

de sincronización.� Regiones críticas ,� Monitores .

�Paso de mensajes utilizando para ello canales o buzones. Son mecanismos tanto de comunicación como de sincronización.

CFGS DAM

72 © Patricia Hurtado Sayas

7.- Sincronización entre procesos:.

El problema del productor-consumidor , en el que los procesos productores producen elementos de informac ión que se almacenan en un buffer compartido hasta ser retirados por los procesos consumidores. Si el buff er estávacío, los consumidores esperan; si está lleno, espe ran los productores hasta que se libere espacio. Este e s muy habitual en un sistema operativo. El esquema client e-servidor es un caso particular del productor-consum idor donde los procesos clientes producen peticiones que son consumidas por un proceso servidor. E

jem

plos

de

sinc

roni

zaci

ón

Page 37: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

73 © Patricia Hurtado Sayas

7.- Sincronización entre procesos:.

El problema de los lectores y escritores ; en el que hay un objeto de datos (fichero de texto) que es utilizado por varios procesos, unos leen y otro que escribe. Solo puede utilizar el recurso un proceso y solo uno, es decir, o bien un proceso estará escribiendo o bien leyendo, pero nunca ocurrirá simultáneamente (teniendo en cuenta que si no lo esta utilizando nadie, tendrápreferencia el escritor ante el lector).

Eje

mpl

os d

e si

ncro

niza

ción

CFGS DAM

74 © Patricia Hurtado Sayas

7.- Sincronización entre procesos:.

El problema de los filósofos comilones , en el que cinco filósofos se sientan a la mesa, cada uno con un pla to de espagueti. El espagueti es tan escurridizo que un f ilósofo necesita dos tenedores para comerlo. Entre cada dos platos hay un tenedor. La vida de un filósofo const a de periodos alternos de comer y pensar. Cuando un filó sofo tiene hambre, intenta obtener un tenedor para su ma no derecha, y otro para su mano izquierda, cogiendo un o a la vez y en cualquier orden. Si logra obtener los dos tenedores, come un rato y después deja los tenedore s y continúa pensando. En este caso, el recurso compart ido son los tenedores.

Eje

mpl

os d

e si

ncro

niza

ción

Page 38: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

75 © Patricia Hurtado Sayas

8.- Programación paralela y distribuida:.

La programación paralela requiere el uso de varios procesadores trabajando juntos para resolver una tarea común. El modo de uso de los procesadores puede ser diseñado por el programador, de forma que:�Cada procesador trabaja en una porción del

problema.�Los procesos pueden intercambiar datos, a

través de la memoria o por una red de interconexión.

CFGS DAM

76 © Patricia Hurtado Sayas

8.- Programación paralela y distribuida:.

La concurrencia es más general que el paralelismo, de forma que las soluciones que se utilizan en la programación concurrente para la sincronización y comunicación son válidas para la programación paralela

Page 39: Tema 1: Programación Multiproceso. Curso 2012-2013roble.pntic.mec.es/phus0002/Tema1x2_DAM.pdf · Tema 1: Programación Multiproceso. Curso 2012-2013 CFGS DAM ... Repaso. 2. Concepto

CFGS DAM

77 © Patricia Hurtado Sayas

8.- Programación paralela y distribuida:.

CFGS DAM

78 © Patricia Hurtado Sayas

8.- Programación paralela y distribuida:.

La programación distribuida supone la existencia de varios procesadores geográficamente distribuidos. Hay paso de mensajes pero se necesita infraestructura especial.