Conceptos básicos y arquitectura
Este libro trata, como su título indica, de programación científica. Sin embargo, creemos que es importante tener unos conceptos básicos y claros del funcionamiento del ordenador para comprender ciertos aspectos importantes en programación como pueden ser algunas limitaciones de representación numérica, por ejemplo. Por lo tanto, en este capítulo nos centraremos en aquellos conocimientos básicos que toda persona que se “enfrenta” a un ordenador debe conocer, aún cuando intentaremos huir de conceptos particulares y que pueden quedar desfasados en pocos años.
Informática
En primer lugar, debemos preguntarnos por el significado y el campo de estudio del que se ocupa la Informática. En general, podemos decir que la Informática estudia diversos aspectos relacionados con la información, como son la adquisición, representación, tratamiento y transmisión, todo ello mediante ordenadores.
El origen del término Informática surge como unión de dos palabras:
Según la R.A.E. (Real Academia Española), su definición oficial sería:
Es decir, que aparte de la necesidad del ordenador, es necesario tratar la información, entendida como cualquier conjunto de símbolos que represente hechos, objetos o ideas. Es decir, información es todo aquello que podemos representar con símbolos, siendo esta información clasificable atendiendo a múltiples factores y en distintos niveles. Así, podemos considerar como información los números, las palabras, las matrículas de coche, resultados de juegos olímpicos, características climatológicas de una región, etc.
Computador, computadora, ordenador
Como comentábamos en la definición anterior, la informática se encarga del tratamiento automático de la información, pero lo que es importante, mediante ordenadores. Los términos computador, computadora u ordenador se refieren a lo mismo, mas aunque se puedan emplear indistintamente, está más extendido el término ordenador y es el que utilizaremos en este libro.
Un ordenador es una máquina que es capaz de realizar operaciones complejas sobre la información sin intervención humana a partir de un programa de instrucciones. Vemos aquí una diferencia fundamental respecto a una calculadora, la cual también puede realizar operaciones complejas pero que necesita de una persona que la maneje. Un ordenador, sin embargo, trabaja ejecutando un programa de instrucciones previamente almacenado. De esta manera, podemos ver al ordenador como un elemento que recibe unas entradas, realiza unas operaciones, fundamentalmente lógicas y aritméticas, sobre ellas y devuelve unas salidas (Figura 2-1). Las entradas son simplemente datos, algunos de los cuales pueden ser instrucciones específicas para que opere el ordenador. La información que resulta de este procesamiento son nuevos datos que pueden volver a ser tratados o ser interpretados por el usuario final.
Por lo tanto, el ordenador trabaja con datos que aparecen representados por símbolos. Estos datos, como indicábamos antes cuando hablábamos de la información, pueden ser valores numéricos, hechos, objetos, ideas, etc. Lo importante es que puedan ser representados por símbolos para que el ordenador pueda procesarlos. Es habitual que los ordenadores trabajen con un subconjunto de todos los símbolos posibles, los denominados caracteres. Dentro del conjunto de caracteres, podemos distinguir tres subconjuntos:
- Numéricos: los dígitos del 0 al 9
- Alfabéticos: los caracteres alfabéticos de la a a la z tanto en mayúscula como en minúscula
- Especiales: aquí están incluidos todos los caracteres que no se incluyen en los subconjuntos anteriores, es decir, todo símbolo adicional que podamos necesitar a la hora de expresar una información: coma, punto y coma, dos puntos, signo de suma, resta, multiplicación, división, paréntesis, etc.
Resumiendo, podemos concluir que un ordenador trabaja con datos e instrucciones; las instrucciones le indican la tarea que debe realizar con los datos, obteniendo a su finalización nuevos datos, y los datos representan la información.
Un elemento clave en el funcionamiento del ordenador es lo que se llama codificación de la información.
Por lo tanto, la codificación de la información trata simplemente de una transformación de la información. ¿Por qué es importante en Informática? Es importante porque un ordenador solamente es capaz de almacenar y transferir la información en código binario, es decir, solamente maneja los valores 0 y 1, verdadero y falso, activado y desactivado. Sin embargo, las personas estamos acostumbradas a manejar otros códigos (caracteres para el texto, código decimal para las matemáticas, etc.). Por lo tanto, se hace necesaria la codificación de la información para poder traducir esta entre humanos y ordenadores.
La unidad elemental de información en Informática va a ser el BIT.
El bit se representa por la letra b minúscula, y lo podemos definir:
Esta unidad de información es muy pequeña ya que con un único bit solamente podemos representar dos posibilidades: el circuito está abierto (1) o cerrado (0), el vaso está lleno (1) o vacío (0), verdadero (1) o falso (0), etc. Es habitual disponer de información que precisa de mayor “espacio de almacenamiento”. En muchas ocasiones, en un ordenador querremos almacenar texto, ya que es la forma habitual en la que nos aparece la información. Por ello, se define un múltiplo del bit, con el que es posible almacenar un carácter, al que se denomina byte.
Actualmente, está bastante aceptado que un byte consta de 8 bits, por lo que también se denomina octeto. Esta unidad de información se representa con la B mayúscula para distinguirla del bit. Si calculamos todas las posibles combinaciones distintas que podemos formar con 8 bits, nos encontramos que son 28=256, empezando por los 8 bits a 0 (00000000) y terminando por todos a 1 (11111111), pasando por el resto de combinaciones de ceros y unos. Es decir, podemos representar 256 caracteres. Teniendo en cuenta que en el alfabeto castellano existen 27 caracteres distintos, tendríamos 54 entre minúsculas y mayúsculas, más los caracteres numéricos (0-9) tendríamos 66. Todavía nos quedarían todos los caracteres especiales, pero aun así puede parecer que 8 bits son demasiados para almacenar un carácter. Cuando veamos los códigos de E/S (Entrada/Salida) se verá la razón de utilizar 8 bits para almacenar un carácter, aunque existen códigos con solamente 7 bits. Sin embargo, esto no cambia para que haya permanecido como conversión fija:
Nos podemos dar cuenta inmediatamente de que 1 byte es todavía una unidad de información muy pequeña: sólo nos permite representar un carácter.
¿Cuántos bytes necesitamos para almacenar una novela como El Quijote? Para cualquier texto que nos encontramos, el indicar su tamaño en bytes puede resultar pesado por ser en general números muy grandes. Por ello, es habitual emplear múltiplos del byte. Sin embargo, debe tenerse cuidado con estos múltiplos ya que su equivalencia es distinta que en otras ramas de la ciencia, como, por ejemplo, en la física. En física, el prefijo kilo equivale a mil unidades. En informática, kilo equivale a 210 unidades que son 1024, algo más de mil. La razón de esta discrepancia se encuentra en que en el sistema decimal resulta muy útil trabajar con potencias de 10; sin embargo, en el sistema binario (que desarrollaremos más adelante), es más conveniente trabajar con potencias de 2, y la potencia de 2 más próxima a 1000 es 210. De la misma manera, para el prefijo mega que equivale a 106 en la física, en informática equivale a 220 que son 1048576. Así tenemos:
Arquitectura Von Neumann
Aunque no nos vamos a detener en el análisis de un ordenador desde un punto de vista de arquitectura interna, sí es conveniente conocer al menos los elementos principales de que consta, así como algunas características que hacen que un ordenador sea más potente que otro, aspecto fundamental a la hora de ejecutar cualquier algoritmo científico de mediana complejidad.
Existen multitud de arquitecturas a las que puede responder un ordenador en particular. En lugar de centrarnos en una arquitectura en particular (PC-XT, PC-AT, Macintosh, Sun, …), se suele considerar una arquitectura genérica y abstracta que explica bastante bien la forma de operar de un ordenador, aún cuando no exista en la realidad ningún ordenador que responda a esta tan simplista. Esta arquitectura se denomina arquitectura Von Neumann y aparece representada en la Figura 2-2.
La Unidad Central de Procesos (UCP) o CPU (Central Processing Unit) es el
"cerebro" del ordenador y consta de tres partes básicas diferenciadas:
1. Unidad de Control: Se encarga de gestionar el secuenciamiento de las instrucciones, es decir, controlar el orden en que estas se ejecutan, activar señales en instantes adecuados para que se realice una tarea, etc.
2. Unidad Aritmético-Lógica (UAL) o ALU (Arithmetic-Logic Unit): Se encarga de realizar las operaciones de tipo aritmético y lógico.
3. Registros: Son zonas de almacenamiento temporal de datos. Los más importantes son:
· PC (Program Counter, Contador de Programa): Contiene la dirección de memoria de la siguiente instrucción a ejecutar.
· IR (Instruction Register, Registro de Instrucción): Donde se almacena la instrucción en ejecución.
· Otros: Acumulador, Registro de Estado, etc.
La memoria del ordenador sirve para almacenar tanto datos como instrucciones. La memoria la podemos representar como una matriz con 2m filas y n columnas. En cada celda se puede almacenar un 0 o un 1. Cada dirección (es decir, cada fila) da acceso a una posición o palabra de memoria de longitud n. Si n=16, en cada acción de escritura almacenaríamos una palabra de 16 bits, por lo que se precisa de 16 terminales en el dispositivo de memoria (los niveles 0 y 1 se representan eléctricamente en el ordenador como dos niveles distintos de tensión), más m terminales adicionales para indicar en cuál de las 2m filas se almacena (con m combinaciones de ceros y unos, podemos representar 2m elementos). Además, necesitamos un terminal, denominado R/W, para indicar si queremos leer (Read) o escribir (Write) en la memoria.
Cuando hablamos de la memoria del ordenador, habitualmente nos referimos a memoria RAM (Random Access Memory, memoria de acceso aleatorio) y ROM (Read Only Memory, memoria de solo lectura), aunque existen otras como la memoria caché. Cuando en un ordenador nos indican la memoria de que dispone, se suele referir a la memoria RAM, que es en la que almacenamos los programas en ejecución y los datos en uso.
En la Figura 2-2 aparece también un bloque denominado E/S que se refiere a los dispositivos de Entrada/Salida. En este bloque aparecen todos los elementos distintos de la CPU y la memoria, y que permiten al ordenador comunicarse con el exterior, bien recibiendo datos a través de teclados, ratones, tabletas digitalizadoras, sensores de temperatura, etc., bien enviando datos a otros como monitores, altavoces, impresoras, etc. Existen también unos dispositivos que se pueden considerar tanto como de E/S como de memoria masiva y que sirven para almacenar y acceder a grandes cantidades de información como son los discos duros, discos ópticos, cintas magnéticas, etc.
Los distintos elementos del ordenador se comunican a través de los denominados buses. Estos son simplemente pistas eléctricas a través de las cuales se envían datos unos dispositivos a otros.
No hay comentarios:
Publicar un comentario