Entradas

INTERNET OF THINGS

Imagen
INTERNET OF THINGS: Internet de las cosas (IoT) es la red de dispositivos físicos, vehículos, electrodomésticos y otros elementos integrados con componentes electrónicos, software, sensores, actuadores y conectividad de red que permiten que estos objetos se conecten e intercambien datos. Los expertos estiman que el IoT consistirá en alrededor de 30 mil millones de objetos para 2020. El IoT permite que los objetos sean detectados o controlados de forma remota a través de la infraestructura de red existente,creando oportunidades para una integración más directa del mundo físico en los sistemas basados ​​en computadora, y dando como resultado una mayor eficiencia, precisión y beneficio económico, además de una menor intervención humana. Historia: El concepto de una red de dispositivos inteligentes se discutió ya en 1982, con una máquina de Coca-Cola modificada en la Universidad Carnegie Mellon convirtiéndose en el primer dispositivo conectado a Internet, c

Multiples CPUs vs Multiples nucleos

Imagen
Con el paso de los años hemos buscado alternativas para que nuestro procesamiento de datos sea mas eficiente y así tener mas rapidez. Dos de esas alternativas han sido tener en un mismo procesador varios cores o tener varios procesadores en una computadora. A continuación presentaré ciertas diferencias para que el lector reflexione sobre su propia opinión y piense que alternativa es mejor. Cabe destacar que la estrategia de tener múltiples procesadores se ve mucho en computadoras servidores. Eficiencia energética Una computadora con un procesador de multiples nucleos es mas eficiente energeticamente que una con varios procesadores.  Múltiples CPU significan que varias copias del mismo circuito integrado se sientan en una placa de circuito, con cableado asociado entre ellas y otros chips. La consolidación de los núcleos en un chip reduce la energía utilizada para enviar señales de un chip a otro. También elimina algunos de los chips adicionales necesarios para ge

RISC VS CISC

Imagen
A la hora de diseñar un procesador se debe tomar en cuenta cual va ser su juego de instrucciones. Existen dos tipos distintos, el RISC(Reduced Instruction Set Computing) y el CISC(Complex instruction set computing). Su mayor diferencia es la complejidad y velocidad de ejecución de sus instrucciones. RISC: La estructura RISC esta basada en instrucciones simples y de rapida ejecución. Su set de instrucciones es pequeño, pero con instrucciones mucho mas optimizadas, esto quiere decir que cada instrucción cumple pequeñas tareas. Sus instrucciones también son de un tamaño fijo. Debido a su simpleza, los chips necesitan menos transistores, lo que los hace mas baratos de diseñar y producir. Algunas ventajas del RISC: La decodificación de instrucciones es simple. Sus instrucciones son uniformes Sus registros de propósito general son idénticos Tiene nodos de direccionamiento simple A la hora de escribir código, beneficia al programador permitiendole remover código inneces

Pipelining

Imagen
Pipeline de instrucciones Para mejorar el rendimiento de un CPU existen dos opciones: Mejorar el hardware, introduciendo circuitos mas rapidos Hacer que el CPU pueda hacer mas de una operación al mismo tiempo. Debido a que existe un limite en la velocidad  de un hardware, y conseguir componentes fisicos es mas costoso. La mejor opción es la segunda, para esto tenemos el pipeline. El pipeline básicamente es una técnica por medio de la cual se puede traslapar la ejecución de instrucciones. Se divide en segmentos o etapas que están conectadas unas con otras. Un ejemplo de pipeline en la vida real: En una lavandería tenemos a cuatro individuos (A,B,C,D). Cada uno tiene que lavar, secar, doblar y acomodar su ropa. Cada proceso toma 30 minutos. Si ocurre un proceso secuencial, es decir que el individuo A espera a que termine el individuo B y el C espera al D y así consecutivamente. El tiempo total para que los individuos terminen sus tareas sería de 8 horas.  ¿Que pasa

Llamadas al sistema

Imagen
Para entender como funcionan las llamadas al sistema primero debemos entender como funcionan los modos de operación de la unidad central de procesamiento. Tenemos dos modos, el modo usuario y el modo Kernel. En el modo kernel, la CPU puede realizar cualquier operación permitida por su arquitectura, es decir cualquier instrucción puede ser ejecutada, cualquier área de la memoria puede ser accedida, etc... Mientras que en el modo usuario, no se tiene ese acceso directo a los recursos. ¿Que pasa cuando un programa en modo usuario necesita acceder a la RAM o a otro recurso ? El programa le pide al kernel el acceso a ese recurso, y esto se hace con las llamadas al sistema. Cuando un programa hace una llamada al sistema, el modo es cambiado de usuario a kernel. El kernel provee los recursos pedidos por el programa y el modo vuelve a cambiar, pero esta vez de modo kernel a modo usuario. Generalmente, las llamadas al sistema son hechas por los programas en las siguientes situaci

ARDUINO

Imagen
¿Que es un arduino ? Un arduino es una plataforma de prototipos electrónicos de código abierto basa en hardware y softwares fáciles de utilizar y de aprender. Arduino consiste en un micro-controlador y su software o IDE (esto corre en la computadora) que se usa para escribir y enviar las instrucciones al micro-controlador. Con el pasar de los años los arduinos han sido el cerebro de muchos proyectos, desde cosas del usos diario hasta complicados proyectos científicos. Una gran comunidad de creadores es conocida para la plataforma, sus contribuciones hacen que la gran cantidad de conocimientos sobre el arduino sean de gran ayuda tanto como para novatos o para expertos también. Micro-controlador IDE del Arduino Las instrucciones creadas para el arduino se basan en un lenguaje simplificado de C++ Ventajas de Arduino: Los arduino son mucho más baratos si se compara su precio con otros micro-controladores. Las versiones mas baratas pueden armarse a mano, y las ve

Ejercicio lenguaje ensamblador

Imagen
Debido a que esta semana nos hemos enfocado en resolver ejercicios en lenguaje ensamblador, decidí desarrollar un pequeño programa. El programa nos permite contar la cantidad de veces que aparece un carácter en una cadena de caracteres. Aun que es un ejercicio básico y sencillo ayuda a entender un poco mas sobre el lenguaje ensamblador. Código completo del programa Para facilidad de entendimiento me centrare en las distintas etiquetas del programa. Variables Las variables las encontramos en el segmentos de datos. En la linea 3 y 5, vemos dos variables(amblas alienadas a 4 bytes). La variable entryMessage es la que almacena el texto al que queremos buscarle el carácter. Y la variable outMessage es el mensaje que se utilizara para imprimir. Vemos que la variable tiene un %c y un %d, esto nos permite ingresar en este texto un carácter(%c) y un valor decimal(%d).  Las variables tienen una dirección, y son las que se aprecian en la linea 36 y 37 del código.