Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de...
Transcript of Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de...
![Page 1: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/1.jpg)
Concurrencia
Programación ConcurrenteProcesosComunicación entre Procesos (IPC) con espera ocupada.
![Page 2: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/2.jpg)
2
Introducción a Procesos
� Todas las computadoras moderas realizan varias cosas al mismo tiempo.
� En cada instante la CPU ejecuta un único programa.
� Existen programas con un único hilo de control.
� Los sistemas de tiempo real son inherentemente concurrentes.
![Page 3: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/3.jpg)
3
Programación secuencial vs programación concurrente
Pascal, C, Fortran , Cobol
Secuenciales
único hilo de control
Java, Ada, Posix
Concurrentes
varios hilos de control
![Page 4: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/4.jpg)
4
Concurrencia
� Son la notación y las técnicas de programación que expresan el paralelismo potencial.
Un programa concurrente es un conjunto de procesos autónomos que se ejecutan en paralelo.
![Page 5: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/5.jpg)
5
Procesos concurrentes
El trabajar con procesos concurrentes añade complejidad a la tarea de programar.
¿Cuáles son entonces los beneficios que aporta la programación concurrente?
![Page 6: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/6.jpg)
6
Beneficios de la programaciónconcurrente
� Mejor aprovechamiento de la CPU.� Velocidad de ejecución.� Solución de problemas de naturaleza concurrente:
– Sistemas de control– Tecnologías web– Aplicaciones basadas en interfaces de usuarios– Simulación– SGDB
![Page 7: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/7.jpg)
7
Proceso
� Es una instancia de ejecución de un programa.
� Incluye un contador de programa, registros, variables, etc.
� Tiene un ciclo de vida, es decir pasa por distintos estados.
![Page 8: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/8.jpg)
8
El modelo de los procesos secuenciales
![Page 9: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/9.jpg)
9
El modelo de los procesos secuenciales
� La CPU conmuta de un proceso a otro.
� La velocidad a la cual un proceso realiza su cómputono es uniforme y probablemente ni siquiera es reproducible.
� Los procesos no deben programarse bajo suposiciones preconcebidas sobre su velocidad de ejecución.
� Cuando un proceso tiene requerimientos de tiempo real críticos es necesario tomar medidas especiales para asegurar que efectivamente los sucesos ocurran dentro de ciertoslímites de tiempo.
![Page 10: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/10.jpg)
10
El modelo de los procesos secuenciales
� Un proceso tiene un programa, entrada, salida y un estado.
� Un único procesador puede compartirse entre varios procesos utilizando un algoritmo de planificación que determine cuándo hay que detener el trabajo sobre un proceso y pasar a atender a otro diferente.
![Page 11: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/11.jpg)
11
Ciclo de vida de un proceso
terminado
nacido
listo
ejecución
No existente
bloqueado
4
2
3
1 1. El proceso se bloquea esperando un dato2. El planificador selecciona otro proceso3. El planificador selecciona este proceso4. El dato está disponible
![Page 12: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/12.jpg)
12
Creación de un proceso
1. La inicialización del sistema
2. La ejecución por parte de un proceso (en ejecución) de una llamada al sistema de creación de un nuevo proceso.
3. La petición por parte del usuario de la creación de un nuevo proceso.
4. El inicio de un trabajo en batch.
![Page 13: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/13.jpg)
13
Finalización de un proceso
1. Finaliza la ejecución de su cuerpo.2. Ejecución de alguna sentencia de auto
finalización.3. Condición de error sin tratar.4. Aborto por medio de la intervención de otro
proceso.5. Nunca: procesos que se ejecutan en
bloques que no terminan.6. Cuando ya no son necesarios.
![Page 14: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/14.jpg)
14
Programa concurrente
Es un conjunto de procesos secuenciales autónomos que se ejecutan en paralelo
![Page 15: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/15.jpg)
15
Implementación de un conjunto de procesos
1. Multiplexar sus ejecuciones en un único procesador (multiprogramación).
2. Multiplexar sus ejecuciones en un sistema multiprocesador con acceso a memoria compartida (multiprocesamiento).
3. Multiplexar sus ejecuciones en diversos procesadores que no comparten memoria (sistema distribuido).
![Page 16: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/16.jpg)
16
Ejecución de un programa concurrente
Los procesos deben ser creados, distribuidos en los procesadores y finalizados. Estas actividades la realiza el núcleo de ejecución conocido como Run Time System Support (RTSS).
Se encarga de la creación, terminación y multiplexado de los procesos
![Page 17: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/17.jpg)
17
Run Time System Support
� Estructura software programada como parte de la aplicación (Modula-2).
� Sistema software generado junto al código objeto del programa por el compilador (Ada y Java).
� Estructura hardware microcodificada en el procesador. Es más eficiente (Occam2).
![Page 18: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/18.jpg)
18
¿Quién provee los mecanismos de concurrencia?
� Sistema operativo (SO de Tiempo real)
� Lenguaje (lenguaje que proporciona mecanismos para concurrencia)
![Page 19: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/19.jpg)
19
Ejecución de los procesos
� Todos los SO tiene formas de crear procesos.� Cada proceso se ejecuta en su propia
máquina virtual.� Los SO modernos permiten crear hilos
(procesos ligeros) dentro de la misma máquina virtual.
![Page 20: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/20.jpg)
20
Ventajas si el lenguaje proporciona los mecanismos de concurrencia
� Programas más legibles.
� Programas más portables.� Si el sistema es embebido puede que no tenga
un SO residente.
![Page 21: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/21.jpg)
21
Ventajas si el SO proporciona la concurrencia
� El modelo de concurrencia es el mismo para todos los lenguajes.
� Puede no ser fácil implementar el modelo de concurrencia sobre algún modelo de SO.
![Page 22: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/22.jpg)
22
Threads
Hay situaciones en las que es deseable contar con múltiples hilos de control (threads) en el mismo espacio de direcciones ejecutándosequasi-paralelamente, como si fueran procesos separados (excepto que comparten el mismo espacio de direcciones).
![Page 23: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/23.jpg)
23
Threads
� Tener múltiples threads ejecutándose en paralelo dentro de un proceso es análogo a tener múltiples procesos ejecutándose en paralelo dentro de un ordenador.
� Los threads comparten el espacio de direcciones (variables globales), archivos abiertos y otros recursos.
� Se los suele llamar procesos ligeros (lightweight process).
� También se utiliza el término de multihilo (multithreaded) para describir la situación en la cual se permite que haya múltiples threads en el mismo proceso.
![Page 24: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/24.jpg)
24
Threads
![Page 25: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/25.jpg)
25
Threads
• Un thread puede estar en cualquiera de los estados de un proceso tradicional: en ejecución, bloqueado, listo o terminado.
• Un thread en ejecución tiene actualmente la CPU y está activo.
• Un thread bloqueado está esperando a que algún suceso lo desbloquee. Un thread puede bloquearse esperando a que tenga lugar algún suceso externo o a que algún otro thread lo desbloquee.
• Un thread listo está planificado para ejecutarse y lo hace tan pronto como le llega su turno.
• Las transiciones entre los estados de un thread son las mismas que lastransiciones entre los estados de un proceso.
código
![Page 26: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/26.jpg)
26
Utilización de Threads
� Tener simplemente múltiples procesos (con sus espacios de direcciones separados) no puede funcionar en algunos casos.
� Son más fáciles de crear y destruir que los procesos. � En numerosos sistemas, la creación de un thread
puede realizarse 100 veces más rápido que la creación de un proceso.
� Los threads proporcionan ganancia en el rendimiento cuando hay una necesidad substancial tanto de cálculo en la CPU como de E/S.
![Page 27: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/27.jpg)
27
Ejemplo
� Un procesador de texto.
� La mayoría de los procesadores de texto visualizan en la pantalla el documento que se está creando formateado exactamente como aparecería una vez impreso.
� Todos los saltos de línea y de página aparecen en su posición correcta final.
![Page 28: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/28.jpg)
28
Ejemplo
� Supongamos que el usuario está escribiendo un libro. – Desde el punto de vista del autor es más cómodo meter el libro entero
en un único archivo (búsqueda por temas, sustituciones globales, etc)– Alternativamente, puede ponerse cada capítulo en un archivo
separado.
� Se borra una frase de la página 1 de un documento de 800 páginas.
� Se busca la página 600. El procesador de texto se ve forzado a reformatear inmediatamente todo el libro hasta la página 600.
� Espera considerable.
![Page 29: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/29.jpg)
29
Ejemplo
� Los threads pueden ayudarnos. � Un thread interactúa con el usuario (atiende
teclado, mouse, scrolls).� Otro realiza el reformateo como una actividad de
fondo (tan pronto como se borra la frase de la página 1).
� Con un poco de suerte, el reformateo se completa antes de que el usuario pida ver la página 600, de forma que en ese momento puede visualizarse instantáneamente.
![Page 30: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/30.jpg)
30
Ejemplo
� Muchos procesadores de texto ofrecen la posibilidad de guardar automáticamente todo el archivo en el disco cada pocos minutos.
� El tercer thread puede ocuparse de los backups en el disco sin interferir con los otros dos.
![Page 31: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/31.jpg)
31
Ejemplo
![Page 32: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/32.jpg)
32
Programación concurrente
Los lenguajes concurrentes tiene elementos para:� Crear procesos � Sincronizar procesos� Comunicar procesos
![Page 33: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/33.jpg)
33
Comportamiento de procesos
� Independientes: no se sincronizan ni comunican (son muy raros).
•Cooperativos: se comunican y sincronizan sus actividades.
•Competitivos: compiten por recursos del sistema.
![Page 34: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/34.jpg)
34
Sincronizar y Comunicar
� Sincronizar: Satisfacer las restricciones en el enlazado de las acciones de los distintos procesos.
� Comunicar: pasar información de un proceso a otro.
![Page 35: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/35.jpg)
35
Modelo de concurrencia
� Estructura: nro de procesos fijo o variable.� Nivel: paralelismo soportado.� Granularidad: muchos o pocos procesos.� Inicialización: paso de parámetros, o comunicación
explícita después de su ejecución� Finalización: término, error, aborto, nunca, suicidio,
no son necesarios� Representación: proceso responsable de la
creación (padre/hijo) y proceso afectado por su finalización (guardián/dependiente).
![Page 36: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/36.jpg)
36
Sincronizar y Comunicar
• Variables compartidas: objetos a los que puede acceder más de un proceso• Paso de mensajes: intercambio explícito de datos entre dos procesos mediante el paso de un mensaje mediante alguna forma que brinda el SO o el propio lenguaje.
![Page 37: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/37.jpg)
37
Comunicación entre procesos (IPC)
� Cómo un proceso puede pasarle información a otro.
� Cómo asegurar que dos o más procesos no se interfieran mientras realizan tareas críticas.
� Cómo secuenciar correctamente cuando existen dependencias.
![Page 38: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/38.jpg)
38
Sincronización y comunicación basada en variables compartidas
Son objetos a los que puede acceder más de un proceso.
La comunicación se logra accediendo a dichas variables cuando sea necesario.
Trae problemas
![Page 39: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/39.jpg)
39
Variables compartidas
Considere dos procesos que actualizan una variable compartida, X, mediante la sentencia: X:= X+1
1. Carga el valor de X en algún registro. 2. Incrementa el valor en el registro en 1.3. Almacena el valor del registro de nuevo en X.
Como ninguna de las tres operaciones es indivisible, dos procesos que actualicen la variable simultáneamente generarían un entrelazamiento que podría producir un resultado incorrecto.
![Page 40: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/40.jpg)
40
Variables compartidas
� Las situaciones donde los resultados dependen del orden en que se ejecutan los procesos se llaman Condiciones de Competencia.
� Las partes de un proceso que tienen acceso a las variables compartidas han de ejecutarse indivisiblemente unas respecto a las otras.
� Estas partes se denominan Secciones Críticas.� La protección requerida se conoce como
Exclusión Mutua.
código
![Page 41: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/41.jpg)
41
� Sección crítica: secuencia de instrucciones que debe ejecutarse sin perder el control, y afecta variables compartidas. Si un proceso está ejecutando código de su sección crítica, ningún otro proceso puede estar ejecutando código de su sección crítica.
Variables compartidas
![Page 42: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/42.jpg)
42
El problema de la sección crítica(SC)
� Intenta sistematizar el estudiode la sincronización.
� Sean n procesos que tienen datos compartidos. Cada proceso tiene un segmento de código llamado SC en el cual se accede a los datos compartidos.
� Se pretende que cuando un proceso está en su sección crítica, ningún otro esté en su SC.
Sección de entrada
Sección crítica
Sección de salida
Sección siguientes
![Page 43: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/43.jpg)
43
Secciones o regiones críticas
� Para obtener una solución se deben cumplir:1. Ningún par de procesos pueden estar
simultáneamente dentro de sus regiones críticas.2. No debe hacerse ninguna suposición sobre la
velocidad o el número de CPUs.3. Ningún proceso fuera de su región crítica puede
bloquear a otros procesos.4. Ningún proceso deberá tener que esperar
infinitamente para entrar en su región crítica.
![Page 44: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/44.jpg)
44
– Exclusión mutua: es el mecanismo que asegura que sólo un proceso está haciendo algo en un instante determinado. Sincronización para proteger una sección crítica. Es necesario si dos procesos comparten variables.
– Sincronización condicionada: necesaria cuando un proceso necesita realizar alguna acción, sólo después que se haya cumplido una condición.
Sincronizaciones necesarias en la programación concurrente
![Page 45: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/45.jpg)
45
Exclusión Mutua con Espera Ocupada
� Posibles soluciones:– Inhabilitación de interrupciones– Variables de cerradura– Alternancia estricta– Solución de Peterson
![Page 46: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/46.jpg)
46
Inhabilitación de Interrupciones
� Se inhabilitan las interrupciones antes de entrar a la sección crítica. Se rehabilitan al salir.
� La CPU no podrá interrumpir la ejecución por timeout.
� Ventaja: muy simple
� Desventajas:
– Los procesos de usuario no pueden deshabilitar las interrupciones
– Si hay más de un procesador no funciona, pues la inhabilitación afecta a un solo CPU.
![Page 47: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/47.jpg)
47
Variables de Cerradura
� Variable compartida inicialmente en 0.
� Antes de entrar a su sección crítica un proceso chequea la bandera:
– Si está 0, el proceso la setea en 1 y entra a su SC.
– Si está en 1, espera hasta que se ponga en 0.
� Desventajas: – Espera ocupada.
– No funciona por condiciones de competencia.
![Page 48: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/48.jpg)
48
Alternancia Estricta
� Desventajas:– Ineficiente si un proceso es más lento que el otro.– Viola la condición 3. – Espera ocupada.
![Page 49: Departamento de Sistemas e Informática - Programaci ón … · 2016-09-26 · Un procesador de texto. La mayor ía de los procesadores de texto visualizan en la pantalla el documento](https://reader033.fdocuments.net/reader033/viewer/2022041513/5e29af614585460d1d00f89e/html5/thumbnails/49.jpg)
49
Solución de Peterson