algoritmos y programación 3 - cátedra fontela concurrencia
TRANSCRIPT
![Page 1: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/1.jpg)
Algoritmos y programación 3 - cátedra Fontela
Concurrencia
![Page 2: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/2.jpg)
A3F
Concurrencia La Real Academia Española dice:
Concurrencia.
1. f. Acción y efecto de concurrir.
2. f. Conjunto de personas que asisten a un acto o reunión.
3. f. Coincidencia, concurso simultáneo de varias circunstancias.
En computación: Capacidad de los sistemas de realizar mas de una tarea al mismo
tiempo
![Page 3: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/3.jpg)
A3F
Concurrencia
Proceso Programa en ejecución Tiene recursos propios
Hilo Subproceso Utiliza los recursos del proceso
![Page 4: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/4.jpg)
A3F
Tipos de concurrencia
Multiprogramación Un solo procesador
Multiprocesamieto Mas de un procesador
Computación distribuida Los procesos corren en máquinas distintas
![Page 5: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/5.jpg)
A3F
Ademas...
Varios procesos en paralelo Ej: Varias instancias de un programa Comparten recursos externos (archivos)
Varios hilos (multithreading) Dentro del mismo proceso, mas de un hilo Comparten recursos externos e internos (objetos,
clases)
![Page 6: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/6.jpg)
A3F
Usos
Optimización de tiempos Operaciones de E/S son lentas Hago cosas “en background” mientras el usuario
sigue trabajando. Ejemplo, eclipse compila todo el tiempo sin que yo tenga que dejar de escribir
Diseño
![Page 7: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/7.jpg)
A3F
Concurrencia en Java
Interfaz Runnable y clase Thread
Manejada por la JVM Scheduler basado en prioridades
![Page 8: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/8.jpg)
A3F
Concurrencia en Java
class Hilo extends Thread {
public void run() {//codigo del hilo
}}
...
Hilo unHilo = new Hilo();
unHilo.start();//start invoca a run()
...
![Page 9: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/9.jpg)
A3F
Concurrencia en Java
class Hilo implements Runnable {
public void run() {//codigo del hilo
}}
...
Thread t = new Thread(new Hilo());
t.start();
...
![Page 10: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/10.jpg)
A3F
Concurrencia en C#
public class Hilo {
public void run() {
//codigo del hilo}
}
...
Hilo unHilo = new Hilo();
Thread t = new Thread (new ThreadStart(unHilo.run));
t.start();
![Page 11: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/11.jpg)
A3F
Problemas de la concurrencia
No-determinismo No tenemos control sobre el flujo de ejecución
Recursos críticos No pueden ser accedidos por varios objetos al
mismo tiempo Necesitamos exclusión mutua
Semaforos Cerrojos Monitores
![Page 12: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/12.jpg)
A3F
Problemas de la concurrencia
Deadlock (interbloqueo)
![Page 13: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/13.jpg)
A3F
Problemas de la concurrencia
Starvation (inanición) Proceso que nunca obtiene recursos
Inversion de prioridades
![Page 14: Algoritmos y programación 3 - cátedra Fontela Concurrencia](https://reader035.vdocumento.com/reader035/viewer/2022062305/5665b4961a28abb57c926e01/html5/thumbnails/14.jpg)
A3F
Ejercicios