48
,1*(1,(5¸$(1,1)250¨7,&$ 6LVWHPDVGH2SHUDFLyQ Multiprogramación 6LVWHPDV2SHUDWLYRV 81,9(56,’$’1$&,21$/(;3(5,0(17$/’(*8$<$1$

Clase II - Multiprogramacion

Embed Size (px)

Citation preview

Page 1: Clase II - Multiprogramacion

,1*(1,(5Ë$�(1�,1)250È7,&$6LVWHPDV�GH�2SHUDFLyQ

Multiprogramación�� �� �� �� � � �

6LVWHPDV�2SHUDWLYRV81,9(56,'$'�1$&,21$/�(;3(5,0(17$/�'(�*8$<$1$

Page 2: Clase II - Multiprogramacion

,QWURGXFFLyQ

• El SOP multiprogramación carga en memoria principal varios programas y el “distribuidor” asigna el procesador a los procesos “preparados” que esperan por él.

• En general se aprovechan:

6LVWHPDV�2SHUDWLYRV

• En general se aprovechan:a) Los tiempos muertos del procesador.b) Los tiempos de acceso a periféricos.c) El espacio de memoria principal no ocupado

por procesos o por el SOP.

Page 3: Clase II - Multiprogramacion

,QWURGXFFLyQ

• Ejemplo: Dos procesos P1 y P2; cada uno se ejecuta 1 seg. y espera otro seg. Esto se repite 60 veces:� Ejecución de procesos sin multiprogramación

(utilización 50%):

6LVWHPDV�2SHUDWLYRV

(utilización 50%):

Page 4: Clase II - Multiprogramacion

,QWURGXFFLyQ

� Ejecución de procesos con multiprogramación (utilización 100%):

6LVWHPDV�2SHUDWLYRV

Page 5: Clase II - Multiprogramacion

,QWURGXFFLyQ

• La ejecución se realiza de forma solapada en el tiempo (concurrentemente) de modo que parece que los procesos se ejecutan simultáneamente (no confundir concurrencia con paralelismo).

6LVWHPDV�2SHUDWLYRV

con paralelismo).• En un intervalo de tiempo determinado se

ejecutan alternativamente (a trozos) varios procesos ubicados en la memoria principal.

Page 6: Clase II - Multiprogramacion

,QWURGXFFLyQ

• El número de procesos en memoria principal preparados para su ejecución está limitado por el tamaño de ésta.

• Para evitar esta limitación se puede bajar a disco (memoria secundaria) un proceso de

6LVWHPDV�2SHUDWLYRV

disco (memoria secundaria) un proceso de los que está en memoria principal para dar cabida a otro.

• El proceso que permanece en memoria secundaria se carga nuevamente a memoria principal cuando llegue su turno.

Page 7: Clase II - Multiprogramacion

,QWURGXFFLyQ

• Este mecanismo de intercambio memoria principal / disco se denomina VZDSSLQJ.

• Si la relación capacidad de memoria principal / número de procesos es baja, aumenta el intervalo de tiempo entre dos

6LVWHPDV�2SHUDWLYRV

aumenta el intervalo de tiempo entre dos turnos, haciendo más lento el sistema (una posible solución es aumentar adecuadamente la memoria principal).

Page 8: Clase II - Multiprogramacion

,QWURGXFFLyQ

• Ejemplo:

6LVWHPDV�2SHUDWLYRV

Page 9: Clase II - Multiprogramacion

3URFHVR

• Es la imagen (copia) de un programa en ejecución.

• Contiene:a) Una copia del código ejecutable del programa

y de su área de datos.

6LVWHPDV�2SHUDWLYRV

y de su área de datos.b) La información acerca de su estado de

ejecución:� Los valores del contador del programa (SURJUDP�

FRXQWHU), registros y variables.� Información necesaria para su administración por

parte del SOP (id, prioridad, etc.).

Page 10: Clase II - Multiprogramacion

3URFHVR

• Ubicación en memoria:

6LVWHPDV�2SHUDWLYRV

Page 11: Clase II - Multiprogramacion

3URFHVR

• Necesita recursos para poder ejecutarse: memoria, dispositivos de E/S, CPU, etc.

• ¿Por qué usarlos?� 6LPSOLFLGDG:

o Cada actividad se aísla / envasa en un proceso.

6LVWHPDV�2SHUDWLYRV

o Cada actividad se aísla / envasa en un proceso.o Cada proceso trata con el SOP de forma

independiente.� 9HORFLGDG:

o Si un proceso se bloquea (esperando un recurso) se cambia a otro dando la ilusión de tener más de una CPU.

o Ejecución simultánea de varias procesos.

Page 12: Clase II - Multiprogramacion

3URFHVR

� 6HJXULGDG:o Se reducen los efectos de un error.o Los programas tienen la ilusión de que están sólos.o Cada proceso se ejecuta en su propio espacio de

direcciones (no puede acceder directamente a espacios de direcciones de otros procesos).

6LVWHPDV�2SHUDWLYRV

espacios de direcciones de otros procesos).o Su ejecución y posibles errores está confinada a su

espacio ⇒ compartir información se complica ⇒hay un costo implícito.

• Proceso = CPU virtual.

Page 13: Clase II - Multiprogramacion

3URFHVR

• Un proceso cambia de estado a medida que se ejecuta:� 1XHYR: recién creado por el SOP.� (Q�HMHFXFLyQ: está en la CPU ejecutando

instrucciones.

6LVWHPDV�2SHUDWLYRV

instrucciones.� %ORTXHDGR: esperando a que ocurra un

evento (ej: una operación de E/S).� 3UHSDUDGR: esperando a que le asignen un

procesador (CPU).� 7HUPLQDGR: no ejecutará más instrucciones y

el SOP le retirará los recursos que consume.

Page 14: Clase II - Multiprogramacion

3URFHVR

6LVWHPDV�2SHUDWLYRV

Page 15: Clase II - Multiprogramacion

3URFHVR

• Creación de procesos: � Un proceso se crea mediante una llamada al

sistema (ej: “CreateProcess”, “fork”, etc.).� El proceso creador (que hace la llamada) se

denomina “padre” y el proceso creado

6LVWHPDV�2SHUDWLYRV

denomina “padre” y el proceso creado (resultado de la llamada) se llama “hijo”.

� Aspectos a considerar en la relación padre/hijo:1. Compartición de recursos: todos, algunos, ninguno.2. Espacio de memoria: clonado, nuevo.3. Sincronización del padre: ¿esperar a que el hijo

termine?4. Terminación.

Page 16: Clase II - Multiprogramacion

3URFHVR

� Pasos a seguir por el SOP:1. Asignarle un PCB.2. Establecer su contexto de memoria (espacio de

direcciones).3. Cargar imagen (ejecutable) en memoria.4. Ajustar su contexto de CPU (registros).

6LVWHPDV�2SHUDWLYRV

4. Ajustar su contexto de CPU (registros).5. Marcar la tarea como ejecutable:

a. Saltar al punto de entrada, ob. Poner el proceso en la cola de procesos preparados.

Page 17: Clase II - Multiprogramacion

3URFHVR

• Terminación de procesos: � Un proceso termina cuando invoca al sistema

una llamada específica (ej: “exit”).� También si se genera una excepción y el SOP

decide abortarlo.

6LVWHPDV�2SHUDWLYRV

decide abortarlo.� En UNIX, cuando un proceso termina, con él

muere su descendencia (genocidio).� Podría existir una llamada al sistema para

abortar otro proceso.

Page 18: Clase II - Multiprogramacion

3URFHVR

� Pasos a seguir por el SOP:1. Envío de datos del proceso creado al creador (ej:

código de finalización).2. Desasignar los recursos que tiene.

� Un proceso puede finalizar la ejecución de otro si:

6LVWHPDV�2SHUDWLYRV

si:a. Ha sobrepasado los recursos asignados.b. La tarea asignada al proceso ya no es necesaria.c. Va a finalizar y el SOP no permite que los procesos

creados por él puedan continuar: terminación en cascada.

Page 19: Clase II - Multiprogramacion

3URFHVR

• Comunicación de procesos: � Los procesos pueden tener distintas relaciones

de comunicación entre sí:a) Independientes/competidores: los procesos

compiten por el uso de recursos escasos.

6LVWHPDV�2SHUDWLYRV

compiten por el uso de recursos escasos.b) Cooperantes: los procesos colaboran entre sí para

llevar a cabo un objetivo común.

Page 20: Clase II - Multiprogramacion

3URFHVR

• Ejemplos de algunas rutinas del API de UNIX y Win32 para manejar procesos.

6LVWHPDV�2SHUDWLYRV

Page 21: Clase II - Multiprogramacion

&RQWH[WR

• Por cada proceso, el SOP guarda toda la información (contexto) que se debe man-tener mientras éste no se está ejecutando:a) Estado actual.b) Registros de la CPU.

6LVWHPDV�2SHUDWLYRV

b) Registros de la CPU.c) Información del planificador (id, prioridad, etc.).d) Apuntadores a las zonas de memoria.e) Información de contabilidad (tiempo

consumido, etc.).f) Información de E/S (dispositivos que espera,

archivos abiertos, etc.).g) Etc.

Page 22: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

• Cuando un proceso se está ejecutando, su contexto está cargado en los registros de la CPU.

• Cuando el SOP detiene la ejecución de un proceso, salva su contexto en un PCB

6LVWHPDV�2SHUDWLYRV

proceso, salva su contexto en un PCB (3URFHVV�&RQWURO�%ORFN).

• La acción de conmutar (VZLWFKLQJ) la CPU de un proceso a otro se denomina cambio de contexto:� Los sistemas de tiempo compartido realizan de

10 a 100 cambios de contexto por segundo.

Page 23: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

� Es una operación de “tiempo perdido” ⇒ debe ser lo más rápido posible → suele tardar menos de 1 ms.

� En máquinas con dos modos de funcionamien-to (usuario y núcleo), el contexto se puede

6LVWHPDV�2SHUDWLYRV

to (usuario y núcleo), el contexto se puede separar en cada uno de los modos:1. Contexto de usuario.2. Contexto en modo núcleo.

� En estos casos, al pasar un proceso de modo usuario a núcleo, el SOP salva el contexto de usuario y utiliza el de modo núcleo. Al retornar, se restaura el contexto de usuario.

Page 24: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

� Ejemplo: relación tiempo en ejecución / tiempo ocioso en el cambio de contexto de dos procesos (P0 y P1).

6LVWHPDV�2SHUDWLYRV

Page 25: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

� Ejemplo: suponer la existencia de los procesos P1 (ejecutando la instrucción n que es una llamada al sistema) y P2 (se ejecutó anteriormente y ahora está esperando su turno nuevamente).

6LVWHPDV�2SHUDWLYRV

nuevamente).

Código del SOPEstructura de datosFlujo de controlSalvar estructuras de datosInstrucción i-ésima a ejecutar

Page 26: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

1) P1 ejecuta n

6LVWHPDV�2SHUDWLYRV

Page 27: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

2) Salva contexto usuario y ejecuta modo kernel

6LVWHPDV�2SHUDWLYRV

Page 28: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

3) Parar proceso, invoca la rutina de cambio de contexto (switch_context)

6LVWHPDV�2SHUDWLYRV

Page 29: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

4) “switch_context()” salva contexto kernel

6LVWHPDV�2SHUDWLYRV

Page 30: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

5) Reponer contexto kernel de P2

6LVWHPDV�2SHUDWLYRV

Page 31: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

6) El kernel termina la función que inició de P2

6LVWHPDV�2SHUDWLYRV

Page 32: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

7) Retorno a modo usuario

6LVWHPDV�2SHUDWLYRV

Page 33: Clase II - Multiprogramacion

&DPELR�GH�FRQWH[WR

8) Se reanuda ejecución de P2

6LVWHPDV�2SHUDWLYRV

Page 34: Clase II - Multiprogramacion

7LSRV�GH�0XOWLSURJUDPDFLyQ

• La multiprogramación puede ser:a) Clásica:

� El planificador da el turno a un programa determinado; cuando éste tiene que realizar una operación de E/S le da el control del procesador a otro programa.

6LVWHPDV�2SHUDWLYRV

otro programa.� Cuando un programa finaliza una operación de E/S,

el periférico se lo comunica a la CPU (interrupción) para cederle el control la próxima ocasión que le toque su turno.

� Aquellos procesos con mucho cálculo y poca E/S pueden monopolizar la CPU.

Page 35: Clase II - Multiprogramacion

7LSRV�GH�0XOWLSURJUDPDFLyQ

b) Tratamiento paralelo:� A cada uno de los procesos en memoria se le

asigna un intervalo de tiempo fijo o período 7llamado TXDQWXP (décima de segundos).

� Al finalizar el TXDQWXP asignado a un proceso, el control de la CPU pasa al siguiente proceso.

6LVWHPDV�2SHUDWLYRV

control de la CPU pasa al siguiente proceso.� La cuenta del tiempo se realiza mediante un circuito

contador activado por el reloj de la CPU; al transcurrir el período 7 se genera una interrupción de la CPU.

Page 36: Clase II - Multiprogramacion

7LSRV�GH�0XOWLSURJUDPDFLyQ

c) Tiempo compartido:� Se asigna el control de la CPU a un nuevo proceso

interrumpiendo al anterior siempre que este último agote su TXDQWXP de tiempo o que entre en la ejecución de una instrucción de E/S.

� Es una combinación de las dos modalidades

6LVWHPDV�2SHUDWLYRV

� Es una combinación de las dos modalidades anteriores.

� La CPU trabaja el 100% en determinados intervalos según el tipo de carga..

Page 37: Clase II - Multiprogramacion

7LSRV�GH�0XOWLSURJUDPDFLyQ

• La multiprogramación se puede realizar de dos maneras:a) No apropiativa:

� Multiprogramación clásica.� Es la que se utilizó inicialmente (MS-DOS y

6LVWHPDV�2SHUDWLYRV

� Es la que se utilizó inicialmente (MS-DOS y MacOS).

� Un proceso se ejecuta hasta que: 1) termina; 2) inicia una operación de E/S; 3) se bloquea por otro servicio solicitado al SOP; 4) el propio proceso cede el procesador mediante una llamada al SOP.

Page 38: Clase II - Multiprogramacion

7LSRV�GH�0XOWLSURJUDPDFLyQ

a) Apropiativa o preferente:� MS-Windows, UNIX, Linux.� El SOP puede interrumpir en cualquier momento el

proceso activo para ceder CPU a otro proceso preparado.

� El algoritmo de planificación decide qué proceso se

6LVWHPDV�2SHUDWLYRV

� El algoritmo de planificación decide qué proceso se detiene y cuál de los procesos preparados pasa a activo.

Page 39: Clase II - Multiprogramacion

+LORV

• En un proceso confluyen dos ideas:� Flujo de control: secuencia de instrucciones a

ejecutar, determinadas por el PC, la pila y los registros.

� Espacio de direcciones: direcciones de

6LVWHPDV�2SHUDWLYRV

� Espacio de direcciones: direcciones de memoria a las que puede acceder el proceso y recursos asignados (archivos, memoria, etc.).

• ¿Cómo permitir más de un flujo de control dentro del mismo espacio de direcciones?

Page 40: Clase II - Multiprogramacion

+LORV

• Un hilo / hebra (WKUHDG) o proceso ligero es una unidad básica de ejecución con su propio:� Contador de programas.� Registros de CPU.

6LVWHPDV�2SHUDWLYRV

� Registros de CPU.� Pila (VWDFN).

• Los hilos de una misma aplicación comparten:� Código y datos.� Recursos del SOP (archivos, E/S, etc.).

Page 41: Clase II - Multiprogramacion

+LORV

• Dos niveles de procesos:� Pesados: contienen uno o varios hilos que

comparten la misma memoria y recursos.� Ligeros o hilos.

• Los hilos pueden ser implementados tanto

6LVWHPDV�2SHUDWLYRV

• Los hilos pueden ser implementados tanto por el SOP como por el programa usuario.

• Para los hilos programados por el usuario:� El SOP no aplica protección entre ellos ya que

no conoce su existencia.� Si un hilo se bloquea, la tarea completa

también se bloquea.

Page 42: Clase II - Multiprogramacion

+LORV

• El objetivo es facilitar la escritura de aplicaciones concurrentes cooperativas:� Dado que todos los hilos comparten los

recursos, un proceso pesado puede contener decenas de hilos sin mucho costo adicional

6LVWHPDV�2SHUDWLYRV

decenas de hilos sin mucho costo adicional (sólo los pequeños BCP de sus hilos).

� La comunicación entre los hilos del proceso es más sencilla (usando la memoria que comparten).

� El cambio de contexto entre hilos de un mismo proceso pesado es menos costoso.

Page 43: Clase II - Multiprogramacion

+LORV

• Ejemplo: Solaris 2.x es una versión multihilo de UNIX; los hilos son identificados como LWP (Lightweight Process).

6LVWHPDV�2SHUDWLYRV

Page 44: Clase II - Multiprogramacion

+LORV

• ¿Por qué no usar procesos con memoria compartida?� Los procesos son más costosos: creación,

destrucción, cambio de contexto, etc.� Los procesos consumen mucha más memoria.

6LVWHPDV�2SHUDWLYRV

� Los procesos consumen mucha más memoria.� No es posible crear tantos procesos como

hilos.• Código reentrante: aquél que funciona

correctamente si dos o más hilos lo ejecutan simultáneamente (WKUHDG�VDIH).

Page 45: Clase II - Multiprogramacion

+LORV

• Ejemplos de algunas rutinas del API de UNIX y Win32 para manejar hilos.

6LVWHPDV�2SHUDWLYRV

Page 46: Clase II - Multiprogramacion

3URFHVRV�&RQFXUUHQWHV

• Un SOP de multiprogramación soporta múltiples procesos concurrentes; permite además que residan simultáneamente en la memoria principal las instrucciones y datos procedentes de dos o más procesos

6LVWHPDV�2SHUDWLYRV

procedentes de dos o más procesos disjuntos.

• La multiprogramación implica multiproceso pero el multiproceso no implica multiprogramación.

Page 47: Clase II - Multiprogramacion

3URFHVRV�&RQFXUUHQWHV

• Concurrencia (en términos de un SOP) es la existencia simultánea de varios procesos en ejecución.

• Existencia simultánea (concurrencia) no implica ejecución simultánea (paralelismo).

6LVWHPDV�2SHUDWLYRV

implica ejecución simultánea (paralelismo).• El paralelismo es un caso particular de

concurrencia.• La concurrencia implica que los procesos

sean cooperativos entre sí ⇒ se requiere manejar sincronización y comunicación.

Page 48: Clase II - Multiprogramacion

3URFHVRV�&RQFXUUHQWHV

• Comunicación ⇒ intercambio de información entre los procesos.

• Sincronización ⇒ detener un proceso hasta que se produzca un determinado evento o se den ciertas condiciones.

6LVWHPDV�2SHUDWLYRV

se den ciertas condiciones.• Ambos procesos requieren estrategias y

técnicas de solución.