Entendiendo a los ordenadores (O a las personas)

¿Cuántas veces te has visto, oh ser friki, en la disyuntiva de intentar explicar a un mortal común cómo funciona un ordenador? En el siguiente artículo intentaré mostrar un ejemplo que creo que es bastante didáctico. Mediante analogías con el ser humano explicaré el funcionamiento básico de un ordenador.

Periféricos de entrada/salida

Un ordenador necesita una interfaz con la que comunicarse con el exterior, ya sea enviando o recibiendo información. Algunos ejemplos son el teclado, el monitor, el ratón, la impresora… En el ser humano sus equivalentes serían los sentidos. La vista, el olfato, el oído, el tacto, el gusto… Gracias a éstos, podemos interactuar con el entorno que nos rodea. Los periféricos suelen traer una sencilla circuitería que les dota de una pequeña “inteligencia” capaz de tomar pequeñas decisiones y servir de interfaz con el propio ordenador. Ésto se conocido como controlador. En el ser humano los controladores de los periféricos se encuentran alojados en el cerebro, como por ejemplo la parte que se encarga del olfato.

Procesador

Lo de los periféricos está muy bien, pero ¿dónde reside la inteligencia que los controla y gobierna? Grosso modo podríamos decir que esa inteligencia es el microprocesador. Este elemento es el que da las órdenes, el que gobierna a todos los demás, y el que interpreta la información que le llega. El correspondiente en el ser humano es, cómo no, el cerebro (pero el cerebro hace más cosas a parte de eso!)

Espera activa

Hay varios mecanismos para saber que un periférico necesita enviar o recibir información. Uno de ellos es la espera activa. Su funcionamiento es muy sencillo. El procesador espera que el usuario pulse la tecla “Enter”. Entonces lo que hace es meterse en un bucle cuya condición de salida es que el usuario haya pulsado la tecla Enter. Es una técnica muy poco usada en computadores complejos ya que no es nada eficiente. Un ejemplo en el ser humano sería el clásico viaje de los niños con sus padres. El hijo repite constantemente “hemos llegado ya?” – “No” – “hemos llegado ya?” – “No”, hasta que al final… “hemos llegado ya?” – “Sí”. Y el hijo entonces ya sabe que han llegado a su destino.

Interrupciones

Otro mecanismo son las interrupciones. La idea es que el procesador permanece ocupado hasta el momento en que un periférico lanza una interrupción. En ese momento, el procesador deja lo que estaba haciendo, y se encarga de manejar la petición. Un ejemplo en el ser humano sería estar viendo la tele, y de pronto recibir una llamada de teléfono. En ese momento el cerebro (procesador) deja de ver la televisión, y atiende la llamada. Una vez finalizada prosigue con su trabajo

DMA

El tercer mecanismo es dejar que el periférico acceda diréctamente a los recursos del ordenador, sin necesidad de delegar esa tarea al procesador. De este modo logramos que nuestro micro pueda dedicarse a otras cosas, con lo que el rendimiento se ve notablemente incrementado. Ejemplo en el ser humano: Hay determinadas tareas que no necesitan de nuestro “consciente” para realizarse. Por ejemplo, podemos estar centrados en una conversación mientras damos un paseo. Puesto que caminamos, estamos enviando información a nuestro cuerpo para que se mueva. ¿Tenemos que pensarlo explícitamente? no. Estamos hechos de tal manera que se hace de forma automática sin tener que estar pensando “ahora avanza la pierna derecha. Peligro! Perdemos equilibrio! tienes que lanzar ya la pierna izquierda, …”.

La Memoria

Hay dos tipos de memoria. Volatil y no volatil. La memoria volatil es aquella que desaparece cuando se va la luz (RAM y caché). En la práctica la memoria volatil es una memoria por lo general a corto plazo. En cambio la memoria no volatil es a largo plazo (Disco Duro). Pero el disco duro no es infinito. A menudo hace falta liberar espacio en él para dejar que otras cosas puedan almacenarse. En el ser humano ocurre algo muy similar. La memoria caché es la memoria a muy corto plazo (“Corre! recuerda este numero de teléfono, que te lo voy a pedir enseguida!”), luego tenemos la RAM que dura un poco más (Como cuando estudias unas horas antes para un examen, y a las 5 horas se te ha olvidado), y por ultimo el disco duro (La memoria de “la vida”).

“Pero yo recuerdo muchas cosas. Tengo un disco duro la ostia de grande?”

No! La mente humana no recuerda tanto como creemos. El prodecimiento que subyace bajo esto es muy similar a técnicas que se emplean en la Programación Orientada a Objetos. En estas disciplinas, existe un concepto llamado “clase”. Una clase no es mas que una generalización. Consiste en quedarse con lo esencial de algo (abstracción). Por ejemplo, podemos definir “vehículo” como algo que transporta cosas. De la clase vehículo podría salir una nueva clase “vehículo de ruedas”, que es tan solo un vehículo que utiliza ruedas para moverse. De esta ultima clase podríamos sacar vehículos de 4 ruedas, así hasta llegar a un modelo de coche (Por ejemplo un Opel Corsa). De este modo se registran solo los atributos básicos que definen a los tipos de elementos, y luego se instancian por cada objeto con el que nos encontramos. Ocurre igual con los conceptos, por ejemplo “justicia”. El ¿problema? es que cada persona hace una generalización de lo que entiende por justicia.



Deja un comentario