Primero, una computadora no funciona y no hace nada particularmente interesante. Tengo uno sentado en mi escritorio en este momento y hasta que comencé a golpear el teclado no estaba haciendo nada. Era menos de un pisapapeles porque ni siquiera sostenía el papel. Como siempre les dije a mis alumnos de CS: “Las computadoras son tontas. Los programadores son inteligentes “.
Segundo, hablemos un poco sobre cómo entiendo que están hechas las computadoras. No soy un ingeniero electrónico o informático, así que tomas esta parte con un grano de sal. Salvo detalles realmente técnicos, esto probablemente servirá como una descripción “suficientemente buena”. Las computadoras tienen tres componentes principales: algún tipo de medio que almacena voltajes binarios, eléctricos, algún tipo de medio que puede evaluar esos voltajes y algunos medios que permiten la entrada y salida para que podamos cambiar los voltajes y mostrar los voltajes. Si todo eso suena bastante tonto, entonces entiendes la parte sobre “las computadoras son tontas”.
Tercero, necesitamos algún método, dispositivo o sistema para hacer que los voltajes tengan sentido. Necesitamos aplicar el orden al caos. En su forma más simple, podríamos establecer los valores de los medios de almacenamiento utilizando una configuración permanente como un soldador y luego, de alguna manera, asignar los medios de almacenamiento a una pantalla de televisión como medio de salida. Si el voltaje es alto, encendemos un píxel en la pantalla y si es bajo, lo dejamos oscuro. Dependiendo del orden de los medios de almacenamiento, podríamos dibujar una imagen primitiva en blanco y negro en la pantalla. Podríamos hacer esto con la computadora más poderosa del mundo. Todavía no sería muy útil ni muy inteligente.
El próximo gran avance es agrupar los medios de almacenamiento. En nuestra primera iteración, tuvimos un gran grupo de elementos de medios únicos. Más precisamente, nuestros elementos multimedia se dividieron en 1 elemento de longitud. Llamamos a esos elementos un poco. Cada elemento de memoria solo puede decirnos dos cosas: está activado o desactivado. Por convención los agruparemos en 8 bits y lo llamaremos byte. Ahora cada elemento de memoria puede decirnos 8 cosas. Podemos tener grados de encendido y apagado. Esto es útil. Por ejemplo, podríamos asignar diferentes colores a cada uno de los 8 valores. Ahora, cuando asignamos un elemento de memoria (un byte) a nuestra pantalla de salida, podemos hacer que muestre uno de los 8 colores. Todavía no hacemos nada, pero obtenemos una imagen más interesante. También podemos asignar un valor a un byte y asignarlo a algún símbolo. Por ejemplo, en EBCDIC (uno de los métodos de mapeo) podemos tomar el valor 1111 0110 y eso representa el carácter ‘6’. El número entero 6 está representado por 0000 0110.
Las cosas se ponen interesantes cuando agregamos un concepto de programabilidad. Entonces podemos hacer una computadora de propósito general, una que pueda hacer varias cosas. Un programa es un conjunto de instrucciones que cambia los valores de los medios de memoria y aplica algún tipo de lógica a la salida. Se podría decir que crea datos y extrae información. El poder en una computadora de propósito general es que el programa se carga en los medios de memoria. Para cambiar lo que hará la computadora solo necesitamos cargar un programa diferente. Basado en el modelo de Turing (llamado así por Alan Turning, el matemático británico que creó el concepto), un programa es una cadena infinita de bits. Estos bits componen las instrucciones de la computadora. La computadora lee una sola instrucción, la ejecuta y obtiene la siguiente instrucción. La mayoría de los programas tienen una instrucción que termina el programa.
No hemos discutido la tercera parte del hardware que evalúa los voltajes. Se llama la unidad central de procesamiento (CPU). Contiene una serie de ranuras de memoria llamadas registros. El número exacto depende de la CPU en particular. Algunos están especializados como el puntero de instrucción (IP). La IP apunta a la siguiente instrucción que se debe buscar y ejecutar. Otros son de uso general (GP). Podríamos cargar un número en GP1 y el segundo en GP2. La instrucción podría ser AGREGAR GP1, GP2. Esto sumaría los dos registros y almacenaría la respuesta. El lugar donde se almacena depende una vez más de la CPU en particular. O podría comparar los valores en GP1 y GP2. Si GP1> GP2, devuelve VERDADERO. El programa podría usar ese valor para tomar una decisión. O lea un valor en GP1, inicie el disco duro y escriba el valor en GP2 en el disco duro.
Me estoy cansando de escribir esto y hay muchas cosas que he dejado fuera. La clave es saber que las computadoras están formadas por millones y millones de dispositivos muy poco interesantes que individualmente hacen cosas muy estúpidas. Los programas son cientos o miles o millones de líneas de instrucciones que individualmente hacen cosas estúpidas y triviales. Juntas, las computadoras programadas hacen todas las cosas complejas y maravillosas en las que confiamos.
- ¿Cómo podría resolver el problema '100% load HDD' en Dell Inspirion 3542?
- ¿Cuáles son los diferentes tipos de computadoras personales?
- Cómo hacer que mis auriculares con micrófono funcionen en un puerto solo para auriculares
- ¿Cuál es la mejor computadora portátil para estudiantes de ingeniería menores de 20000?
- ¿La mayoría de los monitores de las computadoras tienen un puerto HDMI?