Entradas

Como crear tu propia consola RatLink

Imagen
¿Que es una consola RatLink? RatLink = compañía de los estudiantes encargados del proyecto. Una consola RatLink es un raspberry Pi el cual fue trabajado por los estudiantes Kevin Redondo, Gilbert Ching y Axel Mairena para que por medio de botones funcionara como una consola antigua. En la siguiente entrada se explicaran los pasos para poder tener una RatLink funcional. Les recordamos que los juegos se deben hacer de manera propia o descargarse unos que tengan la configuración de los botones correcta para funcionar. Materiales Para hacer este trabajo utilizamos los siguientes materiales: Una caja de zapatos 6 botones de 33mm de diámetro y 65mm de alto Un cúter o unas tijeras Cables hembra-hembra Un Raspberry Pi con puertos GPIO Herramientas para soldar (Opcional) Cable microUSB-USB Cable HDMI (Opcional) Procedimiento Tiempo Estimado: 2 a 4 días  1-Preparar los botones: Primero tomamos un cable hembra-hembra y lo cortamos en uno de sus extremos de...

Clusters de Computadores

Imagen
Clusters de Computadores ¿Que son? Los clusters de computadores son es una sola unidad lógica que consiste de múltiples computadoras trabajando y usualmente se encuentran unidas por una conexión LAN. Básicamente todas las computadoras que forman parte del cluster trabajan juntas como una sola. LAs organizaciones usualmente lo usan para obtener  mas velocidad de procesamiento, mas memoria para usar, mas seguridad y en general muchos mas recursos para usar. Entre algunos tipos de clusters se encuentran: los de alta disponibilidad los de alto rendimiento de balance de carga Entre algunas de las ventajas, por las cuales muchas compañías tienden a usar sistemas así, se encuentran las siguientes: Flexibilidad Alta disponibilidad de recursos Infraestructura de red mejorada Mayor  velocidad de procesamiento Historia Los clusters no fueron inventados por alguien en especifico, de hecho surgieron debido a la necesidad que tenían las personas de ampliar la capac...

Pipelining de instrucciones e Información sobre los Buses

Imagen
Ciclo Fetch-Decode-Execute Para poder entender los conceptos de las instrucciones y algunos problemas que pueden tener necesitamos saber sobre el ciclo fetch-decode-execute de instrucciones. Una versión resumida del ciclo puede ser la siguiente: Fetch: se lee la siguiente instrucción que debe ejecutarse en memoria. Decode: se analiza el código para saber que es lo que la instrucción desea hacer y que necesita para completarse. Read: se accede a la memoria para traer los operandos. Execute: se ejecuta la operación. Write: se escribe el resultado de la operación. Después de escribir el resultado de la operación el ciclo vuelve al inicio y repite sus pasos con la siguiente instrucción. El ciclo termina hasta que termine el programa. Pipeline En la computación, el pipelining de instrucciones se refiere a la técnica para implementar el paralelismo de instrucciones en un mismo procesador. El paralelismo de instrucciones se refiere a la habilidad de poder hacer mas de u...

Llamadas al sistema

Imagen
¿Que es una llamada al sistema? Cuando el programa necesita realizar algo que no puede solo o no tiene los permisos necesarios para hacerlo, la única opción que le queda es llamar al sistema para que lo haga por él. En la computación, una llamada al sistema es la manera en la cual un programa de computadora pide un servicio al kernel del sistema operativo que se esta ejecutando (no debemos confundir las llamadas al sistemas con un comando del sistema). Existen mas de 344 llamadas al sistema, sin embargo podemos dividir las llamadas del sistema en 5 grupos diferentes: Control de Procesos Manejo de Archivos Manejo de Dispositivos Mantenimiento de Informacion Comunicación Implementar una llamada del sistema requiere de una transferencia de control del espacio del usuario al espacio del kernel. Una manera típica de hacer esto es usar una interrupción del sistema. La interrupción transfiere el control al kernel del sistema operativo y solo es necesario ingresar informac...

Respuestas de las preguntas planteadas en el examen

Imagen
Hace casi dos semanas nuestra clase tuvo el examen de Arquitectura de Computadores, al inicio del examen habían 5 preguntas las cuales se mostraran y resolverán con información aprendida en el curso. En el examen también entraron otros temas como tipos de direccionamiento y diferentes codificaciones de información, pero en esta entrada solo retomaremos las primeras preguntas. ¿Cual es la diferencia entre la arquitectura de una computadora y la organización de una computadora? Ademas brinde un ejemplo para cada una de ellas. La diferencia entre estas dos es que la arquitectura de un computador se refiere a los atributos del sistema que el programador puede ver, en otras palabras, los que tienen impacto directo en la ejecución lógica de un programa. En cambio, la organización de una computadora tiene que ver con las unidades operativas y las interconexiones, esta incluye aspectos de alto nivel del diseño de la computadora y el sistema de memoria. Ejemplos:  Sets...

Arduino - Información e Historia

Imagen
¿Que es un Arduino? Logo de Arduino Arduino es una plataforma electrónica de código abierto basada en un hardware y software fácil de usar. Contiene una serie de partes e interfaces juntas en una sola tabla de circuitos. Gracias a su simpleza, Arduino ha sido utilizado en miles de diferentes proyectos y aplicaciones. Arduino nació en el 2005 como un proyecto para estudiantes del Instituto IVREA. En ese tiempo los estudiantes usaban un microcontrolador que costada 100$ cada uno, lo cual era demasiado costoso para ellos. Uno de los fundadores de Arduino era profesor de estos estudiantes. Los fundadores del proyecto junto con un estudiante colombiano trabajaron duro para poder hacer una placa mas económica y pequeña para uso estudiantil. Existen diferentes modelos de Arduino y todos tienen características diferentes, debido a esto para poder mostrar algunas características que incluyen las placas usaremos como base el Arduino Uno R3 (características extraídas de la pagina ...

Explicación de código para contar letras - Simple

Imagen
Explicación de Código A continuación se explicara de la manera mas simple posible el código creado en la clase de Arquitectura de Computadores para poder contar cuantas vocales y consonantes tiene una oración o palabra ya definida anteriormente. En este código tomamos todo lo que no sea una vocal como consonante.El único valor que dejamos sin contar es el espacio, por ejemplo: el arreglo de caracteres "hola mundo!" tiene 4 vocales y 6 consonantes. Debemos tomar en cuenta que este programa solo funciona con letras minúsculas. El programa completo final acepta mayúsculas e incluso separa a los caracteres que no son letras, sin embargo deseo explicar este algoritmo incompleto ya que me parece interesante la manera rápida en que es resuelto. Para iniciar veremos que se encuentra en el segmento de data: Como podemos ver en la imagen anterior en "separar" se encuentra el fragmento de texto que deseamos separar en cantidad de vocales y consonantes, en "...

Estructuras de Control

Imagen
Estructuras de Control Las estructuras de control tienen como función modificar el flujo de ejecución de las instrucciones en un programa. Estas estructuras solo tienen un punto de entrada y un punto de salida. Gracias a estas estructuras los programas son mas rápidos, fáciles de modificar y en general mas fáciles de probar. Todos los lenguajes de programación tienen estructuras de control similares, generalmente lo único que cambia es la sintaxis en la cual se escribe la estructura. Existen dos tipos diferentes de estructuras de control: las condicionales y las iterativas. Estructuras Condicionales Estas estructuras consisten en que dependiendo de que algunas condiciones se cumplan la secuencia de instrucciones en cierta tarea tomara caminos diferentes. if-else: La sentencia if viene seguida por una condición, si esta se cumple ejecuta un bloque de instrucciones. En caso de que la condición no se cumpla el programa toma el camino del else y ejecuta un bloque de in...

Raspberry Pi

Imagen
¿Que es un Raspberry Pi? Logo de Raspberry Pi Un Raspberry Pi es una computadora de placa reducida creada en el Reino Unido por la Fundación Raspberry Pi con el objetivo de proponer la educación de la computación. La idea se basaba en crear un computador compacto y barato para que los niños no tuvieran miedo de usarlo y hacer cosas creativas con él. Busca que aprender sea entretenido y el individuo aprenda a ampliar y mejorar su dispositivo. En 2006 la idea de el Raspberry Pi apareció basándose en un micro controlador y su esquema y diseño de circuito impreso estaba disponible para descargar de manera publica. En mayo del 2009  sin embargo fue hasta el 2012 que se fabrico el primer lote de 10000 placas. En enero del 2013 Google anuncio que junto con otros socios repartiría 15000 placas entre estudiantes del Reino Unido para fomentar las ciencias de la computación,  Las especificaciones del Raspberry Pi 3(extraídos de su pagina oficial) son: SoC: Broadcom...

Arquitectura del Set de Instrucciones y Conjunto de Instrucciones

Imagen
¿Que es el ISA? ISA es una especificación que detalla el conjunto de instrucciones de un procesador, es llamada así por su nombre en ingles "Instruction Set Architecture" lo cual se traduce al español como arquitectura del set de instrucciones. Un conjunto de instrucciones se refiere a el grupo de instrucciones que puede entender y ejecutar un procesador. Para poder definir como debe ser el hardware de un procesador y su organización es necesaria la arquitectura del set de instrucciones. Una ISA define todo lo que un programador de lenguaje maquina debe saber para programar un computador. El ISA consiste en el direccionamiento de modos, instrucciones, tipos nativos de data, registros, arquitectura de memoria, interrupciones y manejo de excepciones. Un set de instrucciones puede estar construido en el hardware del procesador o puede ser emulado en el software, sin embargo la versión emulada en software es mucho menos eficiente y mas lenta que el diseño en hardware....

Representación de Números: Punto Fijo

Imagen
Punto Fijo (Coma Fija) Es una forma de notación científica que se basa en destinar cierta cantidad de dígitos a la parte entera de un numero y otra cantidad a su parte fraccionaria. Se utiliza normalmente cuando se desea rendimiento mas que precisión, debido a que es mas rápida que el punto flotante. El punto fijo puede representar números entre siendo "n" el numero de bits que tiene el numero. Cabe destacar que esta representación solo puede usarse con números que presentan parte fraccionaria. Un ejemplo de un numero que puede ser representado es: 1001,101(binario). ¿Como se representa? Punto Binario Para poder representar los números con punto fijo debemos recordar lo siguiente: El numero binario 110101 representa el valor 1 * 2 5  + 1 * 2 4  + 0 * 2 3  + 1 * 2 2  + 0* 2 1  + 1 * 2 0  en decimal. La clave para poder usar este proceso en los números con parte fraccionaria es el punto binario (funciona como el punto decimal). Los bits que co...

Lenguajes de Alto Nivel: Lenguaje C

Imagen
En esta entrada aprenderemos un poco sobre el lenguaje de programación del alto nivel llamado C. ¿Que son los lenguajes de alto nivel? Los lenguajes de programación de alto nivel son aquellos que se acercan mas al lenguaje humano y no a el de maquina, utilizando palabras de fácil comprensión para el programador. Ademas permite hacer el código mucho mas pequeño, debido a que para algunas instrucciones en alto nivel se necesitarían varias instrucciones en ensamblador. Entre algunos ejemplos de estos lenguajes se encuentran C, Pascal, Java y Python. Lenguaje C El C es un lenguaje de programación intermedio, esto quiere decir que combina elementos de lenguajes de alto nivel y lenguajes de bajo nivel. Este permite lenguaje a bajo nivel (bit), ademas incluye el uso de punteros. Presenta la posibilidad de ser compilado en varias computadoras sin la necesidad de tener que hacer muchos cambios para lograrlo. Tiene muchas ventajas, sin embargo su dificultad aleja a los princ...

Generaciones de las Computadoras

Imagen
A continuación conoceremos un poco mas de información sobre las diferentes etapas que tuvieron las computadoras para llegar a ser lo que son en la actualidad. Todos los cambios que sufrieron las computadoras suelen separarse en generaciones. Primera Generación (1946-1958) En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos.(Computación Aplicada al Desarrollo S.A. de C.V. ,sin fecha)  En esta generación las computadoras eran muy grandes (ocupaban habitaciones enteras), eran muy lentas, y consumían demasiada electricidad. Para funcionar usaban tubos al vació y tarjetas perforadas, ademas usaban cilindros magnéticos para almacenar información. Se programaban en lenguaje de maquina ( combinación de 0's y 1's para formar las ordenes) y su mayor uso era en el...