Upload
juliocanelon5909
View
1.095
Download
0
Embed Size (px)
Citation preview
,1*(1,(5Ë$�(1�,1)250È7,&$6LVWHPDV�GH�2SHUDFLyQ
Multiprogramación�� �� �� �� � � �
6LVWHPDV�2SHUDWLYRV81,9(56,'$'�1$&,21$/�(;3(5,0(17$/�'(�*8$<$1$
,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.
,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%):
,QWURGXFFLyQ
� Ejecución de procesos con multiprogramación (utilización 100%):
6LVWHPDV�2SHUDWLYRV
,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.
,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.
,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).
,QWURGXFFLyQ
• Ejemplo:
6LVWHPDV�2SHUDWLYRV
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.).
3URFHVR
• Ubicación en memoria:
6LVWHPDV�2SHUDWLYRV
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.
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.
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.
3URFHVR
6LVWHPDV�2SHUDWLYRV
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.
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.
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.
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.
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.
3URFHVR
• Ejemplos de algunas rutinas del API de UNIX y Win32 para manejar procesos.
6LVWHPDV�2SHUDWLYRV
&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.
&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.
&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.
&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
&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
&DPELR�GH�FRQWH[WR
1) P1 ejecuta n
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
2) Salva contexto usuario y ejecuta modo kernel
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
3) Parar proceso, invoca la rutina de cambio de contexto (switch_context)
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
4) “switch_context()” salva contexto kernel
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
5) Reponer contexto kernel de P2
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
6) El kernel termina la función que inició de P2
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
7) Retorno a modo usuario
6LVWHPDV�2SHUDWLYRV
&DPELR�GH�FRQWH[WR
8) Se reanuda ejecución de P2
6LVWHPDV�2SHUDWLYRV
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.
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.
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..
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.
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.
+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?
+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.).
+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.
+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.
+LORV
• Ejemplo: Solaris 2.x es una versión multihilo de UNIX; los hilos son identificados como LWP (Lightweight Process).
6LVWHPDV�2SHUDWLYRV
+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).
+LORV
• Ejemplos de algunas rutinas del API de UNIX y Win32 para manejar hilos.
6LVWHPDV�2SHUDWLYRV
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.
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.
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.