Está en la página 1de 8

Conceptos de Programación

Un proceso es la ejecución de un programa, es decir, los datos e instrucciones están


cargados en la memoria principal, ejecutándose o esperando a hacerlo.

Un proceso no tiene porqué estar siempre en ejecución. Puede pasar por diferentes
estados:

 Preparado: Un proceso preparado es un proceso que está preparado para


ejecutarse. Sólo le "falta" la CPU
 En Ejecución: Un proceso en ejecución es un proceso que "tiene" CPU, se está
ejecutando

 Bloqueado: Un proceso bloqueado está esperando que ocurra un suceso antes


de poder "usar" la CPU. Dicho suceso suele ser una operación de Entrada /
Salida: pulsar una tecla, leer de disco... Pero también puede ser que esté
esperando a que otro proceso haga algo
 1. Creación del proceso. Está preparado para ejecutarse
 2. El proceso se ejecuta en CPU
 3. El proceso espera a que ocurra un suceso y se bloquea
 4. Ocurre el suceso por el que esperaba el proceso. Está preparado para
ejecutarse
 5. El proceso "sale" de la CPU
 6. Fin de la ejecución del proceso

No es necesario que se cumplan todos los pasos, por ejemplo, podría ser que un proceso
hiciera los pasos 1-2-6.

Desde el punto de vista del Hardware, dependiendo del número de CPU's, un sistema
puede ser:

 Sistema Monoprocesador
 Sistema Multiprocesador
o Sistema fuertemente acoplado
o Sistema débilmente acoplado

Como su nombre indica, un sistema monoprocesador es aquel en el que sólo hay una
CPU; y como todos habréis imaginado, un sistema multiprocesador es el que tiene
varias CPU's. Éste último se divide en 2 tipos. Los sistemas fuertemente aclopados,
en los que hay memoria común y los débilmente acoplados, en los que no hay
memoria común. Un ejemplo de los fuertemente acoplados es un PC con varios
procesadores, y otro de los débilmente acoplados es una red de ordenadores.

Desde el punto de vista del Software, también hay diferentes tipos de sistemas,
atendiendo a cómo se ejecutan los procesos:

 Sistema de Multiprogramación
 Sistema de Multiprocesamiento

La Multiprogramación consiste en que todos los procesos se ejecuten en la misma


CPU. Esto se consigue mediante la intercalación de la ejecución de los procesos.

En Multiprocesamiento cada proceso se ejecuta en una CPU. En este caso hay


paralelismo real en la ejecución de los procesos.

Además de la programación imperativa o secuencial y la programación


concurrente, hay otros paradigmas o enfoques de la programación.

La programación imperativa se centra en la transformación que hay que realizar para


procesar los datos, pasando estos a un segundo plano. En cambio, la programación
orientada a objetos gira en torno a un nuevo concepto: el objeto. Éste comprende
tanto procesos como datos. Aunque pueda parecer más complejo, este tipo de
programación se asemeja a la forma que tiene el ser humano de ver el mundo, frente a
la programación imperativa que está orientada a la máquina. Para entenderlo mejor, un
objeto es "una cosa con límites definidos", como por ejemplo, una pelota, que tiene
características (datos como tamaño o color), asociadas a unas operaciones (procesos
como botar o lanzar) aplicables sobre el objeto. Otras operaciones no son válidas. No
puedes beberte una pelota... aunque el mundo es muy raro y hay de todo. Otra
característica importante de la programación orientada a objetos es la herencia. Este
mecanismo se utiliza para estructurar el programa en forma jerárquica.

La programación declarativa es otra visión de la programación, en la que no se


describe cómo obtener los resultados, sino qué es lo que debemos obtener. Se divide en
2 tipos, la programación lógica y la programación funcional.

Hace unos años, cuando todavía no existían los entornos gráficos, ni el hardware que
los soportara, todo se hacía en un entorno de consola. Al abrir una ventana de msdos
en windows, o una consola de comandos en unix... entran escalofríos sólo de pensar que
las cosas eran antes "tan frías". Eso si, no se colgaban de vez en cuando sin saber
porqué. Primero Apple copiando de Xerox, y después Microsoft copiando de Apple,
crearon los entornos visuales, con lo que vino la revolución multimedia y se disparó el
negocio de la informática. Dichos entornos visuales constan de una interfaz gráfica "más
amigable", además de ofrecernos un amplio abanico de posibilidades. No hay que creer
que los entornos multitarea aparecieron con lo entornos visuales en los que se puede
"tener abiertas muchas ventanitas". UNIX siempre ha sido multitarea, desde sus inicios
en modo consola.

Ahora vamos a hacer un pequeño repaso de las arquitecturas existentes dentro del
mundo de la informática. Cuando en los años 60 se empezaron a comercializar los
ordenadores, disponibles sólo para empresas debido a su alto coste, se
utilizaban sistemas centralizados o mainframes, que tenían diferentes consolas para
dar acceso a múltiples usuarios. Todo el trabajo lo realizaba el mainframe. En los años
80 surgió el PC, con un precio más asequible. Nacieron los sistemas en red que
permiten interconectar ordenadores de diferentes características compartiendo recursos.
El siguiente paso fueron los sistemas distribuidos en los que hay diferentes estaciones
interconectadas, aunque el usuario no necesita conocer su ubicación, como sucede en
los sistemas en red. El acceso a los recursos es transparente, es decir, se accede a los
recursos como si fueran locales, aunque no lo sean. También existen sistemas
paralelos, que constan de varios procesadores operando conjuntamente.

Una vez aclarados ciertos conceptos, es hora de empezar con el curso de Metodología
de la Programación.

Estructuras de un programa

Un programa se va a dividir en 3 partes claramente diferenciadas:

 procesos de entrada
 proceso de datos
 procesos de salida

Todo programa esta constituido por un conjunto de instrucciones capaces de


gestionar un conjunto de datos.

Algoritmos

Un algoritmo es la descripción abstracta de todas las acciones que debe realizar


un ordenador, que nos conduce a la solución del problema.
Debe ser conciso y detallado, así como finito, pero sobre todo tiene que ser claro y
lo más sencillo posible.

Herramientas y técnicas para el diseño de algoritmos

Para el diseño de algoritmos lo que más se utiliza son los diagramas de flujos.

Diagramas de flujo

Los diagramas de flujo son representaciones gráficas que mediante el uso de


símbolos unidos mediante líneas de flujo, muestran la secuencia lógica que se
debe suceder para la solución del problema.
Los diagramas de flujo deber ser independientes del lenguaje de programación
empleado, deben ser flexibles y sencillos.
Por otro lado tienen que estar normalizados con algún estándar como puede ser el
ISO (a nivel mundial), ANSI (a nivel americano) o el IEEE ( a nivel europeo)

Existen 3 tipos de diagramas de flujos:


 Organigramas: Representación gráfica sencilla con los elementos que representas las
entradas y salida de datos del programa
 Ordinograma: Representación gráfica con secuencias lógicas y detalladas de todos los
pasos a seguir para la resolución del algoritmo.
 Pseudocódigo: Lenguaje intermedio entre el natural y el de programación que representa
mediante la palabra la solución del algoritmo.

Dentro de estos tres los más utilizados son los ordinogramas o pseudocódigos, ya
que son los que más ayudan a los programadores a la hora de pasar esos
algoritmos a los distintos lenguajes de programación.

En los siguientes artículos profundizaremos más en cada uno de ellos y


aprenderemos a construirlos y leerlos para su posterior paso al lenguaje de
programación requerido.

El uso básico de LabView es una de aquellas habilidades que nunca estará de


más. Es algo fundamental que debemos tener a mano, ya que nunca sabremos el
momento en el cual lo vayamos a utilizar. Al menos entre nosotros, los
estudiantes de ingeniería.

El LabView es una plataforma y entorno de desarrollo para diseñar sistemas, con un


lenguaje de programación visual gráfico. Recomendado para sistemas hardware y
software de pruebas, control y diseño, simulado o real y embebido, pues acelera la
productividad. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es
lenguaje Gráfico.

5 Aplicaciones que Revolucionaron la Ingeniería con


LabVIEW
Fecha de Publicación: abr 30, 2014 | 0 Calificaciones | 0.00 fuera de 5 | Imprimir

Visión General
Hemos escuchado mucho del software NI LabVIEW y de sus capacidades en la industria, pero ¿Qué otros
ejemplos existen en la práctica que podamos identificar? ¿Qué otro tipo de aplicaciones se pueden desarrollar
con LabVIEW que incluso sean poco comunes o más extremas? A continuación se presenta una lista de las 5
aplicaciones más interesantes que se han desarrollado con la ayuda de LabVIEW.

5. El acelerador de partículas más grande del mundo


En el 2008 hubo muchos comentarios del Large Hadron Colider (LHC), “la máquina de Dios”, la cual algunas
personas temían por ser el inicio de un experimento que crearía un hoyo negro y acabaría con el mundo. En
esta máquina se hicieron colisionar partículas a velocidades cercanas a la de la luz para recrear la reacción
del Big Bang, teoría con la que científicos argumentan que se originó el universo tal como lo conocemos. Este
experimento sin dudas ha ayudado a comprender más a fondo el origen teórico de nuestro universo y predecir
tendencias futuras. LabVIEW, en combinación con su módulo FPGA, fueron utilizados para detectar haces de
luz de partículas, cumpliendo con los requerimientos del hardware y software necesarios para este tipo de
aplicación.
Vean el caso de estudio completo aquí

4. Integración LabVIEW y Sensor Kinect®

Actualmente existe incluso un toolkit con funciones específicas para leer e interpretar la información que la
cámara de Xbox Kinect® nos ofrece. Esto ha tenido algunas variantes, pues es utilizado para seguir el
movimiento de una persona, controlar una mano robótica con sólo ademanes, detectar y capturar posturas y
movimientos, entre otros ¿Quién hubiera pensado que LabVIEW es compatible incluso con hardware
originario de consolas de videojuegos? Tal vez muy pocas persona, pero el combinar el software LabVIEW
con este hardware hizo posible obtener una herramienta verdaderamente científica.
Conozca más del tema aquí

3. Cazador de tormentas
¿Recuerdan la película “Tornado”? El ahora difunto Tim Samara fue básicamente este tipo de investigador en
carne y hueso, apasionado por la ciencia y la información del flujo del aire que ofrecían las tormentas y
tornados; dedicó su vida a perseguirlas, estudiarlas y monitorearlas. No se puede tener más respeto por un
científico que día con día, ponía su vida en riesgo en nombre de la ciencia y el conocimiento.
Conozcan más aquí

2. Entrenamiento de alimentación para bebés prematuros

LabVIEW no sólo está en la industria, también tiene su lado humanitario. El NTrainer System, desarollado por
Innara Health™, es un dispositivo que controla por medio de bombas el flujo de aire y fluidos para entrenar a
bebés prematuros para que puedan responder a cuando son amamantados. El sistema monitorea la
respuesta que el bebé está teniendo con la mamila y va usando dicha información para que el bebé vaya
aprendiendo a alimentarse por sí mismo, un problema que muchos bebés prematuros presentaban. Esto
incrementa considerablemente las oportunidades del bebé de salir adelante en un momento crítico.
Vean el caso de estudio aquí

1. El salto más grande de la historia


Stratos Base Jump, el salto de paracaidismo que desde más altura se ha hecho en la historia de la
humanidad. Por la complejidad de esta hazaña, los científicos involucrados fungieron básicamente como
ingenieros de la NASA. Las mediciones y monitoreo de variables como presión, temperatura, altura,
aceleración, niveles de oxígeno, entre otras, fueron realizadas con LabVIEW. En el punto que se puede ver la
orilla del planeta tal vez no sea la más cómoda de las situaciones, pero al menos da la tranquilidad mental
saber que el sistema que se encarga de monitorear las condiciones de vida es altamente confiable.
Descubran más de este proyecto aquí

Como podemos observar, LabVIEW va más allá de la industria y la investigación al ser un ambiente de
programación que se complementa perfectamente con sus contrapartes de hardware, se convierte en una
herramienta que francamente fija sus límites donde lo haga la imaginación. Así que ya sabemos que si en
algún momento tuviéramos un proyecto fuera de lo común o incluso muy ambicioso, en vez de preguntarnos
¿Lo podré hacer con LabVIEW? Más bien la pregunta correcta sería ¿Cómo lo voy a hacer con LabVIEW?

También podría gustarte