Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin Concurrencia Caracteristicas Propiedades de vida Desventajas Problemas Programas concurrentes C++ Concurrente Caractersticas de C++ Concurrente Procesos en C++ Concurrente Procesos vs corrutinas Ejemplos Conclusin Bibliografia
La concurrencia o ejecucin simultnea (al mismo tiempo) de procesos aparece inicialmente como una necesidad de los sistemas de operacin. Podemos definir que dos actividades son concurrentes si, en un momento dado, cada una est en algn punto entre su punto de comienzo y su punto de finalizacin. Hoy en da suele haber confusin entre varios trminos que implican ejecucin simultnea de procesos:
Dos o ms procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cuando son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.
La seguridad
La vida
Indeterminismo
Interaccin entre procesos Palabras Reservada como:
Process Null Select When
Ocurrencia de bloqueos
Interrupcin de procesos
Bsicamente los problemas en concurrencia son Exclusin Mutua y Sincronizacin. Exclusin Mutua
Condicin de sincronizacin
En nuestro caso, supongamos que una instruccin como x:=x+1 da lugar a tres instrucciones de un lenguaje ensamblador cualquiera, que es lo que realmente va a ejecutar el procesador.
Condicin de sincronizacin
Es la simultaneidad en la ejecucin de mltiples tareas interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecucin creados por un nico programa.
Existen diversos motivos por los que la programacin concurrente es til. Dos de estos motivos son:
C++ concurrente es el resultado de un esfuerzo de mejoramiento de C. Con el fin de que pudiera ser utilizado en el desarrollo de programas concurrentes y que estos puedan correr eficientemente en una sola computadora y en redes de computadoras distribuidas o en computadoras multiprocesadores.
Programacin
(extensin).
en
el
estilo
de
proceso
distribuido
Es una secuencia de instrucciones dentro de un programa que se puede ejecutar de forma independiente de otro cdigo. El propsito del trabajo con hilos es ejecutar el trabajo en menor cantidad de tiempo.
Un hilo central o maestro crea otros hilos esclavos, asignndole a cada esclavo una tarea. El hilo maestro deber esperar a que cada esclavo termine su tarea.
Todos los hilos tienen un mismo nivel de asignacin de trabajo. Tambin llamados puntuales.
Esta tcnica permita varias entradas de datos que se procesan simultneamente. La ltima etapa genera el resultado final del proceso.
El hilo producto genera datos que sern utilizados por el hilo consumidor.
La librera de PTHREADS provee el API para crear y administrar los hilos de una aplicacin.
Los procesos son los bloques de desarrollo de la programacin concurrente. Cada proceso es un componente secuencial del programa que tiene su propio control de flujo, y su propio stack y registros.
Es un proceso predefinido cuyo propsito es el de simplificar el mecanismo de inicio y fin de la actividad concurrente, as como el algoritmo de asignacin del procesador. El proceso nulo posee la menor prioridad de todos los procesos.
En el lenguaje C++ Concurrente, la nica diferencia entre procesos y corrutinas radica en el modo de cmo se transfiere el control ya que comparten la misma representacin.
Una corrutina es una serie de rdenes para realizar cierta actividad.
C++ Concurrente es el resultado de un esfuerzo de mejoramiento de C, para que pueda ser utilizado para el desarrollo de programas concurrentes que puedan correr eficientemente en una sola computadora, en redes de computadoras distribuidas o en computadoras multiprocesadores.
Es una extensin de C que incluyen mecanismos para la declaracin y creacin de procesos, para la sincronizacin e iteracin y terminacin de procesos.
http://www.webprogramacion.com/43/sistemasoperativos/concurrencia-de-procesos.aspx http://www.depi.itch.edu.mx/apacheco/lengs/paralelo/index.ht ml http://www.geocities.ws/immonroy7/ccpp.pdf http://www.isa.uniovi.es/docencia/TiempoReal/Recursos/RTSPL/Concurrencia.pdf http://www.halconia.org/escolar/sistemas_operativos/b4/c_con cu.html http://arco.esi.uclm.es/~david.villa/pensar_en_C++/vol2/ch10s 02.html http://arco.esi.uclm.es/~david.villa/pensar_en_C++/vol2/C11.h tml file:///H:/Materias%20UPV/new/Desc.%20Simulacion%20y%20Ver ificacion%20de%20Sist.%20concurrentes/DSC/10.2.%20Concurre ncia%20en%20C++.htm http://randu.org/tutorials/threads/ http://www.engcomputacaopucgo.com/arquivos/Materiais/Siste mas%20Operacionais/progconcCPP.pdf