¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Diferencia entre revisiones de «Programación concurrente»

(Fuentes)
Línea 1: Línea 1:
{{Normalizar}}
+
{{Objeto|nombre=Programación Concurrente en  CSharp|imagen=Proc.JPG|descripcion=Conjunto de [[técnicas]] y notaciones  que sirven para expresar el [[paralelismo]] potencial en los  [[programas]]}}'''Programación Concurrente.''' Se entiende por  [[programación]] [[concurrente]] el conjunto de [[técnicas]] y  notaciones que sirven para expresar el [[paralelismo]] [[potencial]] en  los [[programas]], así como resolver problemas de [[comunicación]] y  [[sincronización]].
{{Objeto|nombre=Programación Concurrente en  CSharp|imagen=Proc.JPG|descripcion=conjunto de [[técnicas]] y notaciones  que sirven para expresar el [[paralelismo]] potencial en los  [[programas]]}}'''Programación Concurrente.''' Se entiende por  [[programación]] [[concurrente]] el conjunto de [[técnicas]] y  notaciones que sirven para expresar el [[paralelismo]] [[potencial]] en  los [[programas]], así como resolver problemas de [[comunicación]] y  [[sincronización]].
 
  
 +
==Proceso==
 
Un [[proceso]] es un [[programa]]  en ejecución con un estado asociado. Las distintas [[aplicaciones]] que  se ejecutan en un [[sistema operativo]] [[multitarea]] son [[procesos]]  independientes. Cada una de ellas tiene asociado un contexto (prioridad,  estado del [[procesador]], lista de interrupciones y señales que  admite, páginas de [[memoria]] que ocupa, etc.).
 
Un [[proceso]] es un [[programa]]  en ejecución con un estado asociado. Las distintas [[aplicaciones]] que  se ejecutan en un [[sistema operativo]] [[multitarea]] son [[procesos]]  independientes. Cada una de ellas tiene asociado un contexto (prioridad,  estado del [[procesador]], lista de interrupciones y señales que  admite, páginas de [[memoria]] que ocupa, etc.).
 
+
==Aplicacaión==
 
Una  [[aplicación]] [[concurrente]] está formada por un conjunto de  [[procesos concurrentes]]. En ella existen distintas hebras de  [[control]] independientes, vías simultáneas de [[ejecución]]. Dichas  [[hebras]] de control pueden ser [[procesos independientes]] en el  [[sistema operativo]] o [[hebras]] dentro de un [[proceso]]. Una  [[aplicación multihebra]] está constituida por distintas [[hebras]] que  comparten el espacio de un [[proceso]] en el [[sistema operativo]].
 
Una  [[aplicación]] [[concurrente]] está formada por un conjunto de  [[procesos concurrentes]]. En ella existen distintas hebras de  [[control]] independientes, vías simultáneas de [[ejecución]]. Dichas  [[hebras]] de control pueden ser [[procesos independientes]] en el  [[sistema operativo]] o [[hebras]] dentro de un [[proceso]]. Una  [[aplicación multihebra]] está constituida por distintas [[hebras]] que  comparten el espacio de un [[proceso]] en el [[sistema operativo]].
  

Revisión del 09:50 8 nov 2011

Programación Concurrente en CSharp
Información sobre la plantilla
Proc.JPG
Conjunto de técnicas y notaciones que sirven para expresar el paralelismo potencial en los programas

Programación Concurrente. Se entiende por programación concurrente el conjunto de técnicas y notaciones que sirven para expresar el paralelismo potencial en los programas, así como resolver problemas de comunicación y sincronización.

Proceso

Un proceso es un programa en ejecución con un estado asociado. Las distintas aplicaciones que se ejecutan en un sistema operativo multitarea son procesos independientes. Cada una de ellas tiene asociado un contexto (prioridad, estado del procesador, lista de interrupciones y señales que admite, páginas de memoria que ocupa, etc.).

Aplicacaión

Una aplicación concurrente está formada por un conjunto de procesos concurrentes. En ella existen distintas hebras de control independientes, vías simultáneas de ejecución. Dichas hebras de control pueden ser procesos independientes en el sistema operativo o hebras dentro de un proceso. Una aplicación multihebra está constituida por distintas hebras que comparten el espacio de un proceso en el sistema operativo.

Consideraciones

Cada hebra/proceso supone una carga adicional para el sistema.

¿Por qué usar hebras y procesos?

El uso de paralelismo (múltiples procesos y hebras, en particular) proporciona una serie de ventajas frente a las limitaciones de los sistemas monotarea.

Ejemplo

Estructuración, Paralelismo implícito

El objetivo principal del uso de paralelismo es mejorar el rendimiento del sistema. El diseñador/programador deberá decidir hasta qué punto debe utilizarse en cada momento.

Ejecución de procesos

La clase System.Diagnostics.Process permite crear y monitorizar procesos (accediendo a la información que se visualiza en el Administrador de Tareas de Windows). El método Process.Start() equivale a la llamada ShellExecute del API de Windows (Win32) y es el que deberemos utilizar para lanzar un proceso. Los parámetros del proceso se especifican mediante un objeto de la clase ProcessStartInfo. Al encapsular una llamada al shell de Windows, el método Start también podemos usarlo para abrir un fichero de cualquier tipo de los que tengan acciones asociadas en el registro de Windows.

Fuentes

  • Galiano Fernando Berzal.Concurrencia. 2009
  • Carmona David. Programming the Thread Pool in the .NET Framework.June 2002.