Programación Asíncrona

February 18, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Programación Asíncrona...

Description

 

PROGRAMACION SINCRONA Y ASINCRONA

PROGRAMACION SINCRONA En un modelo de programación sincrónica, las cosas suceden una a la vez. Cuando se llama a una función que realiza una acción de larga duración, sólo vuelve cuando la acción ha finalizado y puede devolver el resultado. Esto detiene el programa durante el tiempo que dure la acción.

-  Cada instrucción se ejecutará en secuencia hasta terminar.

-  Características -  Fáciles de leer y entender Fáciles de depurar. --   No hay que preocuparse por la disponibilidad de los datos. 

PROGRAMACION ASINCRONA La programación asíncrona nos da la capacidad de “diferir” la ejecución de una función a la espera de que se complete una operación, normalmente de I/O (red, disco duro, …), y así evitar bloquear la ejecución hasta que qu e se haya completado la tarea en cuestión. Esto es posible gracias a que las funciones son ciudadanos de primer nivel (first-class citizens) y pueden ser pasadas como argumentos de otras funciones tal cual lo haríamos con las variables.

-  En el caso asíncrono, algunas de las instrucciones se ejecutarán a destiempo.

-  Características -  Su depuración no es tan sencilla. Un código puede que compile correctamente y puede que no funcione como lo pensamos. Puede que tengamos una función que depende de otra se ejecuta cuando no lo teníamos pensado.

 

-  Excelentes para el manejo de interfaces. -  Se podría decir que son más dificiles de «entender», debido a que es otro paradigma de programación. 

SÍNCRONO VS ASÍNCRONO Antes de poder hablar de programación asícrona debemos entender la diferencia entre ejecución síncrona y asícrona. Un código síncrono es aquel código donde cada instrucción espera a la anterior para ejecutarse e jecutarse mientras que un código asíncrono no espera a las instrucciones diferidas y continúa con su ejecución. Por lo general la asincronía permite tener una mejor respuesta en las aplicaciones y reduce el tiempo de espera del cliente.

SISTEMAS “POLLED LOOP”  Sistemas de bucle de consulta (polled loop) Este método reduce la complejidad de utilizar múltiples tareas, pero puede complicarse si se trata de manejar un gran número de interacciones simultáneas. El mantenimiento de estos sistemas suele ser complicado, ya que se debe ser muy cauteloso al realizar una modificación. 

 

 

TAREA Existe solo una tarea, la que verifica los flags y si alguno está activo, ejecuta una tarea asociada. Cuando esta tarea finaliza, se retoma la verificación de los flags El tiempo de respuesta del kernel a un determinado evento es simple de calcular.

THREATS Es una característica que permite a una aplicación realizar varias tareas a la vez(concurrentemente). Basicamente un thread es una tarea que puede ser ejecutada en paralelo con otra tarea y estas comparten código, datos y archivos abiertos.

 

PROGRAMACION CONCURRENTE DE POSIX (Portable Operating System Interface for X), Interfaz Portátil de Sistema Operativo para Unix.    

Los sistemas de tiempo real son concurrentes por naturaleza.   Las actividades del mundo exterior evolucionan e volucionan simultáneamente.

• Basado en el sistema operativo UNIX Estándar desarrollado conjuntamente por la Computer Society del IEEE y The Open Group • también denominado The Single UNIX Specification • la denominación oficial es IEEE Std. 1003, e ISO/IEC-9945 ISO/IEC -9945 

Objetivos del POSIX

“This standard defines a standard operating system interface and environment, including a command interpreter (or "shell"), and common utility programs to support applications portability at the source code level”  level”  Este estándar define una interfaz estándar del sistema operativo y entorno, incluido un intérprete de comandos (o "shell"), y Programas de utilidad comunes para soportar la  portabilidad de las aplicaciones en nivel de código código fuente   “  

” 

(Introducción del standard POSIX)

-  El estándar define: -  la interfaz del sistema operativo: conjunto de funciones, tipos y constantes (en lenguaje C) agrupadas en ficheros de cabeceras. -  intérprete de comandos: redirección, pipes, etc. -  programas de utilidad: vi, c99, ls, more, etc.

-  Pretende la portabilidad: de las aplicaciones a nivel de código fuente de los programadores

 

 

THREADS

 

 

 

 

PLANIFICACION Y DESPACHO DE TAREAS

NO SÉ SI ESTÉ BIEN

 

INVERSION DE PRIORIDADES En un entorno de multiprogramación con prioridades, la competencia por el acceso a los recursos puede crear anomalías, y en consecuencia estropear la planificación temporal. Estas anomalías son conocidas como los interbloqueos y la inversión de prioridades. Esta última no tiene solución, pero si puede ser minimizada.

La inversión de prioridades es un caso problemático en la planificación de tareas. Se da cuando dos tareas de distinta prioridad comparten un recurso y la tarea de menor  prioridad bloquea el recurso recurso antes que que la de prioridad mayor, quedando quedando bloqueada esta última tarea en el momento que precise el uso del recurso compartido. Esto hace que queden invertidas de forma efectiva las prioridades relativas entre ambas ya que la tarea que originalmente tenía mayor prioridad queda supeditada a la tarea de menor  prioridad. Como consecuencia, consecuencia, la tarea de de mayor prioridad puede puede no cumplir sus requisitos de tiempo establecidos.

La planificación de tareas es el punto crucial de un sistema de tiempo real. Dicha  función es llevada llevada a cabo por el planificador planificador del sistema operativo, dise diseñado ñado para  poder cumplir con las restricciones temporales temporales de dichas dichas tareas, teniendo teniendo en cuenta sus sus valores de prioridad. Al haber recursos compartidos por estas tareas, se produce el efecto llamado inversión de prioridades. En este trabajo se analiza dicho efecto y se evalúan las soluciones implementadas para este problema en el Sistema Operativo de Tiempo Real GNU/Linux con parche RT-PREEMPT.

 

PROTOCOLOS

 

 

EJEMPLOS DE SOTR - 

Se caracterizan por tener el tiempo como parámetro clave. Este Tiempo de respuesta puede ser muy largo (por ejemplo 2 minutos).  

 

TENEMOS:

 

4.4.QNX

 

CASOS DE APLICACION

NO SÉ SI ESTÉ BIEN

NO SÉ SI ESTÉ BIEN TENDENCIAS FUTURAS Puede definirse colaboración en tiempo real como un software que permite a diferentes usuarios trabajar juntos en un mismo proyecto de forma simultánea. Este tipo de soluciones suele contener una serie de características para facilitar la comunicación entre empleados:

  Mensajería instantánea



  Grupos de chat



  Pizarras colaborativas



  Compartir aplicaciones



 

  Compartir escritorio



  Video y herramientas de audio



View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF