Programación dirigida por eventos y control:

La programación dirigida por eventos es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. 
Es decir, que el programa (ejecución) se va a controlar según el programador indique y no automáticamente como en la programación estructurada.En la programación dirigida por eventos, al comenzar la ejecución del programa se llevarán a cabo las inicializaciones y demás código inicial y a continuación el programa quedará bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasará a ejecutar el código del correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho click en el botón de play de un reproductor de películas, se ejecutará el código del administrador de evento, que será el que haga que la película se muestre por pantalla.En otros palabras el programa queda en espera hasta que el usuario realice una acción (evento) para que se active de nuevo el programa realizando la acción pre-programada por el programador.

Deteccion de eventos:
En contraposición al modelo clásico, la programación orientada a eventos permite interactuar con el usuario en cualquier momento de la ejecución. Esto se consigue debido a que los programas creados bajo esta arquitectura se componen por un bucle exterior permanente encargado de recoger los eventos, y distintos procesos que se encargan de tratarlos. Habitualmente, este bucle externo permanece oculto al programador que simplemente se encarga de tratar los eventos, aunque en algunos lenguajes será necesaria su construcción.
Ejemplo de programa orientado a eventos en lenguaje codigo:

While (true){
Switch (event){
case mousse_button_down:
case mouse_click:
case keypressed:
case Else:
}
}
Los problemas que se pueden implicar en este tipo de programacion son que la programación orientada a eventos supone una complicación añadida con respecto a otros paradigmas de programación, debido a que el flujo de ejecución del software escapa al control del programador. En cierta manera podríamos decir que en la programación clásica el flujo estaba en poder del programador y era este quien decidía el orden de ejecución de los procesos, mientras que en programación orientada a eventos, es el usuario el que controla el flujo y decide.



Programa multitarea:


Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de (Sistema Operativo),  normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.

Programa concurrente:


Un programa concurrente es un programa que tiene mas de una linea lógica de ejecución,  es decir, es un programa que parece que varias partes del mismo se ejecutan simultáneamente.  Un ejemplo de  de esto es un programa que realice determinada función y, simultáneamente  exponga datos en la pantalla. Un programa concurrente puede correr en varios procesadores simultáneamente  no. Esta importancia de la concurrencia es especialmente destacable en sistemas operativos como Linux, que ademas de concurrentes, presentan unos mecanismos de concurrencia estables.

Evento secuencial:



En los primeros tiempos de los ordenadores los programas eran de tipo secuencial (también llamados tipo batch) Un programa secuencial es un programa que se arranca, lee los datos que necesita, realiza los cálculos e imprime o guarda en el disco los resultados. De ordinario, mientras un programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este tipo de programas se les llama también programas basados u orientados a procedimientos o a algoritmos (procedural lenguajes) lo que debe hacer por medio de menús.
Los eventos secuenciales son una forma de programación también conocida como programación dirigida por eventos, esto es un paradigma de programación el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.