jueves, 19 de marzo de 2009

SEGUNDA SOCIALIZACION

SÍNTESIS EN VIDEO DE LA PROGRAMACION CONCURRENTE

Este es un ejemplo de programacion concurrente en la I.A aplicada en la plataforma robótica para probar algoritmos que resuelven problemas reales de concurrencia.

Su funcionamiento nos ha llevado a la coordinación de robots, diseño de protocolos de comunicación, sistemas empotrados o sistemas en tiempo real, entre otros, utilizando lenguajes de programacion como: C, PASCAL entre otros.

Lenguaje scheme se podría decir que es como un tipo de programacion concurrente ya que para conseguir un resultado necesitamos realizar ciertos procesos unos tras de otros para conseguir un resultado.

miércoles, 4 de marzo de 2009

Introducción:

Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea. Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones. La programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina. Los pioneros en este campo fueron Edsger Dijkstra, Per Brinch Hansen, y C. A. R. Hoare.

Se conoce por programación concurrente a la rama de la informática que trata de las notaciones y técnicas de programación que se usan para expresar el paralelismo potencial entre tareas y para resolver los problemas de comunicación y sincronización entre procesos. En la programación concurrente se supone que hay un procesador utilizable por cada tarea; no se hace ninguna suposición de si el procesador será una unidad independiente para cada uno de ellos o si será una sola CPU que se comparte en el tiempo entre las tareas. Independientemente de cómo se vaya a ejecutar realmente el programa, en un sistema uniprocesador o multiprocesador, el resultado debe ser el correcto. Por ello, se supone que existe un conjunto de instrucciones primitivas que son o bien parte del S.O. o bien parte de un lenguaje de programación, y cuya correcta implementación y corrección está garantizada por el sistema.

Estado de arte

Hace referencia al nivel más alto de desarrollo conseguido en un momento determinado sobre cualquier aparato, técnica o campo científico.

Dentro del ambiente tecnológico industrial, se entiende como "estado del arte" o "estado de la técnica" todos aquellos desarrollos de última tecnología realizados a un producto, que han sido probados en la industria y han sido acogidos y aceptados por diferentes fabricantes.

Programación Concurrente: Diseño de software para robots

Programación Concurrente. Desde el punto de vista de la Automática, el interés de la experiencia reside en el hecho de que se ha usadouna plataforma robótica para probar algoritmos que resuelven problemas reales de concurrencia que, a menudo, se encuentran en sistemas de control automático. La plataforma mencionada: B.EN.DE.R. (Basic Environment for the DEvelopment of Robotic software), se ha construido específicamente para la asignatura pero puede aplicarse a asignaturas tales como Robótica, Ingeniería de Control o Dinámica de Sistemas. En el plan de estudios de la titulación, Programación Concurrente es una asignatura obligatoria y, concretamente, la única que trata los problemas de concurrencia inherentes a sistemas paralelos y/o distribuidos tales como: coordinación de robots, diseño de protocolos de comunicación, sistemas empotrados o sistemas en tiempo real, entre otros. Se ha usado C como lenguaje base, Linux como Sistema Operativo y los hilos del estándar Posix como herramienta práctica para la

Implementación de hebras debido a las ventajas que proporciona usarlas: facilidad de uso de memoria compartida y cambios de contexto menos costosos.

Lenguaje de programación:

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina.

Un lenguaje de programación permite a uno o más programadores especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias.

Entre los lenguajes utilizados en programación concurrente están:

LST (Labelled System Analyser)

Lenguaje de programación c

Lenguaje de programación pascal

class MostrarLletres2{
   
   public static void main (String[] args){
               EscriureLletra2 a= new EscriureLletra2("a");
               a.start();          
               EscriureLletra2 b= new EscriureLletra2("b");
               b.start();
               EscriureLletra2 c= new EscriureLletra2("c");
               c.start();
               EscriureLletra2 d= new EscriureLletra2("d");
               d.start();
   }
}
class EscriureLletra2 extends Thread{
   private Lletra2 l;
   private String s;
   
   public EscriureLletra2 (String str){
               s= str;
   }
   
   public void run(){
               l= new Lletra2();
               for (int i= 0; i< 100; i++){
                           try{
                                       l.SetLletra(s);
                                       sleep( (int) (Math.random() * 3000));
                           }
                           catch (InterruptedException e){
                                       System.err.println("Exception " + e.toString());
                           }
               }
   }
}

class Lletra2{
   private String valor;
   private boolean esperar = false;
   
   public synchronized void SetLletra (String s){
               
        }
}

Conclusiones:

Dos procesos serán concurrentes cuando la primera instrucción de uno de ello se ejecuta después de la primera del otro y antes de la última.

Programación concurrente orientada a objetos: unión de los paradigmas concurrente y objetos.

Programa concurrente: conjunto de acciones que pueden ser ejecutadas simultáneamente.