Como ya llevo bastantes añitos en esto y creo tener algo de experiencia, os traigo un tutorial dividido en secciones para todos aquéllos que quieran construir sus propias aplicaciones y aprender un poco sobre programación pero nunca se atrevieron a preguntar. Planetared es seguido por muchos tipos de personas, así que empezaré desde cero con los conceptos más fundamentales intentando hacer un barrido donde queden claras las ideas básicas en la construcción de un programa simple.
Mi idea es que esta serie de tutoriales sean interactivos en la medida de lo posible, respondiendo a cualquier tipo de duda que queráis plantearme, puesto que así yo también podré beneficiarme investigando más acerca de un tema. Estoy abierto a todo tipo de sugerencias en cuanto a nuevas tecnologías que queráis que incluya en los tutoriales o ideas sobre talleres personalizados con ideas interesantes. Comencemos.
En esta primera sección nos vamos a centrar en explicar los componentes físicos (hardware) básicos de un ordenador.
Arquitectura general de un ordenador
En esta sección vamos a presentar algunos conceptos básicos de la arquitectura física de un ordenador (hardware). Realmente hay muchos más componentes y tienen muchos más detalles de lo expuesto aquí, pero es suficiente de cara al enfoque software que tiene el post.
CPU (Unidad de proceso central): También conocido como procesador, este componente del ordenador es el «cerebro» del equipo. La CPU se encarga de ejecutar los programas que vamos a crear. En la actualidad, las CPUs se subdividen en núcleos y cada núcleo puede ejecutar un programa en paralelo. Es decir, si tenemos dos núcleos podemos ejecutar dos programas al mismo tiempo en nuestra máquina pudiendo acelerar el rendimiento de nuestro ordenador.
Memoria: La memoria RAM de un equipo es donde se almacenan los programas (datos e instrucciones) antes de ser ejecutados. Cuando un usuario abre varios programas, estos se van almacenando en memoria (completos o una parte de ellos). Digamos que actúa como surtidor de la CPU. La memoria se conecta con la CPU a través del bus de memoria. Cuanto más rápida sea esta conexión, antes podremos enviar los datos y las instrucciones de los programas a la CPU para que pueda ejecutarlos.
Disco: Nos estamos refiriendo al disco duro del ordenador. Aquí se almacenan los ficheros y carpetas de los programas instalados en nuestro ordenador. Uno se podría preguntar si al igual que la memoria, el disco podría enviar los datos desde allí a la CPU. La respuesta es sí, lo que sucede es que puede tardar en tiempo más de cien veces en llegar que desde la memoria. Por ello, los programas alojados en el disco se cargan en memoria previamente y desde allí se puede acceder a ellos con mayor rapidez.La velocidad a la que una unidad (ya sea el disco o la memoria) puede servir los datos es menor cuanto más tamaño tenga la unidad. La memoria principal se compone de unos cuántos gigabytes mientras que ya existen discos de varios terabytes (1000 gigabytes), por lo que podemos concluir que servir los datos desde el disco es mucho más lento.
Cachés: Las cachés no son más que pequeñas memorias (no del mismo tipo que la memoria principal) que están integradas en el mismo chip que el procesador. La distancia entre estas y el procesador es prácticamente nula; y al ser muy pequeñas en tamaño (unos cuantos megabytes o kilobytes) son muy rápidas sirviendo datos. En las cachés se guardan un subconjunto de datos de lo que ya está alojado en la memoria principal. ¿Con qué objetivo? Pues si somos capaces de anticipar que es lo que el procesador va a necesitar de la memoria, podremos enviarlo a la caché con antelación y desde allí podrá ser enviado sin demora a la CPU en cuanto lo necesite.
Placa Base: Es una placa de circuitos impresos que proporciona la infraestructura básica para que los componentes se comuniquen entre sí. Los componentes se suelen adherir a la placa base a través de puertos (USB, HDMI, DVI, Firewire…) o ranuras (DIMM,AGP, PCI-express…) que ésta dispone para ellos. El número de puertos y su tipo, es la característica que determina la compatibilidad de la placa con los componentes que existen en el mercado.
Aclaraciones:
Existen otros componentes como pueden ser los puentes, las tarjetas gráficas, las tarjetas de sonido, la BIOS, diversos controladores, etc. Para quienes quieran ampliar y conocer más exhaustivamente cómo funciona un ordenador internamente, les dejaré información en los enlaces al final del post.
Con respecto a los términos usados en esta entrada, hay que aclarar que todo dispositivo programable tiene dos partes bien diferenciadas: una parte hardware que es la parte física y tangible del dispositivo y una parte software que no es más que las interpretaciones que hace el ordenador de si hay electricidad (1) o no la hay (0) en sus dispositivos electrónicos en el caso de una lógica bivaluada (2 valores, 0 y 1). Un bit en este tipo de lógica es la mínima unidad de información que puede manejar un ordenador (0 ó 1), mientras que un byte no son más que 8 bits (con estos 8 bits puedes representar caracteres como una ‘a’ o un ‘8’). A un bit le puedes asignar dos interpretaciones, una al 0 y una al 1. A dos bits le puedes asignar cuatro interpretaciones: una al 00, una al 01, una al 10 y una al 11. Más adelante profundizaremos más acerca de estos temas.
Los programas se subdividen en datos e instrucciones y se almacenan en la memoria de manera separada. El sistema operativo (no es más que otro programa) es el encargado de gestionar el total de memoria y de dividirla entre los distintos programas abiertos. Cada programa puede consumir tanta memoria como quiera hasta el tope que le haya asignado el sistema operativo.
¡Hasta la próxima!
Enlaces:
Que se noten esas duras horas de estudio…. 😛