Download Conceptos básicos de los computadores

Document related concepts
no text concepts found
Transcript
Conceptos básicos
de los computadores
Montse Peiron Guàrdia
PID_00153517
© FUOC • PID_00153517
Índice
Introducción .............................................................................................. 5
Objetivos ..................................................................................................... 6
1. Los computadores y su uso ............................................................... 7
1.1. El computador, una máquina de propósito general. Algoritmo,
programa ........................................................................................... 7
1.2. Evolución en los tipos y usos de los computadores ......................... 8
2. Estructura jerárquica de un computador .................................... 11
2.1. Niveles de la jerarquía. Software, hardware ....................................... 11
2.2. Estructura básica de un computador ................................................ 12
3. Codificación de información mediante señales binarias ......... 14
3.1. Señales analógicas, digitales y binarias ............................................ 14
3.2. Digitalización de señales .................................................................. 15
Resumen ...................................................................................................... 18
Bibliografía ................................................................................................ 19
Conceptos básicos del computador
© FUOC • PID_00153517
5
Introducción
Actualmente nos es difícil imaginar un mundo sin computadores. Es poco habitual no haber utilizado ninguno, ya sea en el ámbito doméstico, en el académico o en el laboral. Actividades tan diferentes como reservar un billete de
avión, hacer una resonancia magnética o editar una película son hoy impensables sin la ayuda de un computador.
No obstante, su aparición en la historia de la humanidad es muy reciente: los
primeros se construyeron en torno al año 1945. Los computadores significaron un salto cualitativo muy importante en el desarrollo tecnológico y, por
tanto, social. Además, debido a su versatilidad y eficiencia, permiten una aceleración constante del ritmo de aparición de todo tipo de innovaciones tecnológicas. Es posible que, una vez transcurrido el tiempo necesario para estudiar
la segunda mitad del siglo xx con la suficiente perspectiva, la historia considere la introducción de los computadores un hito tan importante como la aparición de la agricultura o la Revolución Industrial.
En este módulo veremos cuáles son los rasgos característicos de los computadores, cómo ha evolucionado su uso y presentaremos una primera aproximación a su estructura interna.
Conceptos básicos de los computadores
© FUOC • PID_00153517
6
Objetivos
El objetivo de este módulo es adquirir una visión global de qué es un computador y cuáles son sus rasgos característicos. Se introduce una serie de términos
y conceptos con los que empezaréis a familiarizaros:
1. El computador es una máquina de propósito general, es decir, es programable.
2. Los programas se escriben en un lenguaje de programación de alto nivel.
El compilador los traduce a un lenguaje de bajo nivel o de máquina.
3. El computador se organiza en una jerarquía de niveles. Esta asignatura se
centra en el estudio del nivel físico.
4. El nivel físico tiene tres componentes básicos: el procesador, la memoria y la
unidad de entrada/salida. Es lo que se conoce como estructura de von Neumann.
5. El nivel físico trabaja con señales binarias. Cualquier información se puede
expresar mediante una señal binaria gracias al proceso de digitalización.
Algunos de estos conceptos se estudiarán con más detalle a lo largo de la asignatura. Otros, en cambio, se conocerán en asignaturas posteriores de la carrera, por lo que en este módulo nos limitaremos a citarlos.
Conceptos básicos de los computadores
© FUOC • PID_00153517
7
Conceptos básicos de los computadores
1. Los computadores y su uso
En este apartado ofrecemos una definición muy general del término computador,
citamos algunos conceptos básicos relacionados con los computadores y explicamos su evolución, tanto en los tipos como en los usos.
1.1. El computador, una máquina de propósito general.
Algoritmo, programa
Muchas de las máquinas presentes en el mundo actual tienen una sola funcionalidad, o un conjunto reducido de ellas. Una nevera sirve para mantener una
temperatura determinada, un coche sirve para trasladar personas u objetos,
una máquina de afeitar sirve para afeitar, etc.
Uno de los rasgos que diferencia de manera más notable un computador de
otras máquinas es que el computador es una máquina de propósito general,
que se puede usar para múltiples funciones: llevar la contabilidad de una empresa, calcular la estructura de un puente, diseñar una nave espacial, escuchar
música o simplemente jugar.
Esta característica viene dada por el hecho de que los computadores son programables: en cada momento les podemos indicar qué función queremos que hagan.
Un programa es un conjunto de instrucciones que se dan a un computador para que realice una función determinada.
Tal como veremos a continuación, un programa es un caso particular de algoritmo.
Un algoritmo especifica el proceso necesario para llevar a cabo una tarea determinada: da todos los pasos que se tienen que seguir y el orden
en que se deben ejecutar.
El ejemplo más típico de algoritmo es una receta de cocina. Si el proceso lo
debe llevar a cabo una persona (como en el caso de las recetas de cocina), el
algoritmo se puede explicar en un idioma que la persona conozca. Sin embargo, si lo tiene que realizar un computador, se debe explicar en un lenguaje que
éste entienda. Existen varios lenguajes, llamados lenguajes de programación,
que tienen una gramática que el computador es capaz de descifrar.
Los aparatos
programables
Muchos aparatos se pueden
programar hasta cierto punto.
Por ejemplo, a una lavadora se
le puede ordenar que caliente
el agua o no, que centrifugue
o no, etc. Eso se debe a que tiene lo que se puede llamar un
computador de propósito específico, muy sencillo, que sólo
puede ejecutar un conjunto
de programas limitado y predeterminado en el momento
de la fabricación de la máquina.
En cambio, a un computador
se le puede dar un programa
nuevo en cualquier momento.
Los aparatos
programables
Ejemplo típico de algoritmo
El algoritmo para hacer un
huevo frito es el siguiente:
1. Poner una sartén en
el fuego.
2. Tirarle un buen chorro
de aceite.
3. Cuando el aceite esté bastante caliente, romper un
huevo y echarlo en la sartén.
4. Mientras se va haciendo, tirar aceite por encima del huevo para cocer la parte superior.
© FUOC • PID_00153517
8
Conceptos básicos de los computadores
Así pues, un programa es un algoritmo expresado en algún lenguaje de
programación.
Los lenguajes de programación de alto nivel están próximos a los lenguajes
que utilizamos las personas (más específicamente, al inglés). Para que los computadores los puedan ejecutar, los programas se deben traducir a un lenguaje
de bajo nivel o lenguaje de máquina. Los compiladores son programas encargados de hacer esta traducción. Se define programa ejecutable como un
programa escrito en lenguaje máquina.
1.2. Evolución en los tipos y usos de los computadores
En torno a 1940, varios científicos aplicaron el álgebra booleana en los circuitos electrónicos, asociando los conceptos cierto y falso a los estados on y off,
con lo que establecieron la base tecnológica para los computadores electróni-
Podéis ver con más detalle
la aplicación del álgebra booleana
en los circuitos electrónicos en el
módulo “Los circuitos lógicos
combinacionales” de esta asignatura.
cos digitales. El advenimiento de la Segunda Guerra Mundial propició que se
destinaran grandes cantidades de dinero en la investigación de computadores, y
entre 1945 y 1950 se diseñaron y construyeron varias máquinas electrónicas
y programables hasta cierto punto (es difícil determinar cuál de éstas merece
el honor de haber sido el “primer computador propiamente dicho”).
Antes de los computadores
Se puede decir que la primera máquina de calcular es el ábaco, que ya se usaba en Asia Menor
en torno al año 3000 a.C. En el siglo XVII se inventaron en Europa varios ingenios mecánicos
para realizar las cuatro operaciones aritméticas básicas. Durante la primera mitad del siglo XIX
se diseñó una máquina con la finalidad de resolver ecuaciones diferenciales. Funcionaba con
vapor y era tan grande como una locomotora. Se considera que el primer proceso a gran escala que tuvo apoyo computacional fue el censo de Estados Unidos del año 1889, que se
procesó con la ayuda de una máquina de vapor. Fueron necesarias sólo seis semanas para
hacer un trabajo que, en la ocasión anterior, había costado siete años. El ingeniero que diseñó
la máquina fundó una empresa que más adelante se convertiría en IBM.
Los primeros computadores eran máquinas muy grandes, debido a que sus
componentes básicos eran tubos de vacío. Un sólo computador podía ocupar
varias salas de un laboratorio. Además, eran caros y consumían mucha energía. Se utilizaban para cálculos complejos, largos y difíciles de hacer de forma
manual. Sus usuarios eran centros de investigación, administraciones y algunas grandes empresas.
Los microprocesadores
El rendimiento de los computadores se ha optimizado gracias a los avances en
tres grandes áreas de trabajo:
1) Las innovaciones tecnológicas, que han permitido disminuir el espacio
ocupado y el consumo energético, aumentar la capacidad y la velocidad de
cálculo, así como su fiabilidad. Durante la década de 1960, los avances tecnológicos más destacables fueron el uso del transistor en sustitución de los tubos de
vacío, de tamaño y consumo energético mucho menor que éstos, y la aparición
Los circuitos integrados dieron
lugar a la aparición de los microprocesadores, que además
de reducir el tamaño de los
computadores, permitieron
ponerlos en todo tipo de
aparatos, como hornos
microondas o coches.
Tal como se verá más adelante,
el procesador sería el corazón
de los computadores.
© FUOC • PID_00153517
9
Conceptos básicos de los computadores
de los circuitos integrados, que permiten incluir muchos transistores en un solo
chip. Durante la década de 1980 se desarrolló la tecnología VLSI (Very Large Scale
Integration), y actualmente se usa la Deep Submicron Technology, que permite integrar aproximadamente decenas de millones de transistores en un solo chip.
2) Las mejoras en la arquitectura o diseño de los circuitos que componen
los computadores. En este apartado se deben destacar las arquitecturas vectoriales –que permiten procesar de manera eficiente conjuntos estructurados de datos–, la segmentación –que convierte el procesador en una cadena
de proceso en serie para aumentar la cantidad de trabajo realizado por unidad
de tiempo–, la arquitectura RISC –que simplifica el diseño del computador al
mismo tiempo que incrementa su rendimiento–, o el paralelismo –que permite
realizar más de una operación de manera simultánea gracias a replicar uno o
más componentes del computador.
3) Los avances en el software. Durante los años sesenta aparecieron los
primeros lenguajes de programación de alto nivel, que facilitaban enormemente la tarea de programar, así como los sistemas operativos, que permitieron que los computadores pudieran llevar a cabo varias tareas de manera
concurrente. También se incluyen en este capítulo las optimizaciones de
las técnicas de compilación, que permiten generar programas ejecutables
más eficientes.s
La introducción de las diferentes mejoras hace que computadores más potentes y pequeños sean cada vez menos caros y que se extienda su uso. Durante
la primera mitad de la década de 1980, empresas, administraciones medianas
y universidades podían disponer de minicomputadores (¡que ocupaban una
sola habitación!) para su gestión. Los centros de vanguardia de investigación
usaban los denominados supercomputadores, con una capacidad de cálculo
muy superior. Por su parte, los usuarios particulares tenían los computadores
personales (PC), en aquel momento con una capacidad y prestaciones aún
muy limitadas, que les permitían utilizar programas no demasiado complejos
o, simplemente, jugar.
A partir de 1985, la potencia de los minicomputadores pasó a máquinas mucho menores y baratas, las llamadas estaciones de trabajo (workstations) y posteriormente, a los PC y a los computadores portátiles. La aparición de interfaces
gráficas amigables para el usuario permitió incrementar el número de usuarios
que podía utilizar de forma cómoda computadores baratos para un abanico creciente de aplicaciones, ya que el nivel de experiencia del usuario necesario podía
ser menor. Las tecnologías multimedia, desarrolladas durante la década de 1990,
significaron una nueva e importante ampliación de las prestaciones de los computadores al alcance de los usuarios particulares. Hoy, una agenda electrónica de
bolsillo puede ser más potente que un PC de hace diez años.
Las constantes innovaciones
tecnológicas hacen que las mejoras
en el rendimiento se produzcan
a un ritmo cada vez más acelerado.
© FUOC • PID_00153517
10
Conceptos básicos de los computadores
Durante la década de 1980, el uso de las redes de computadores, tanto de área
local (LAN) como de alcance global (WAN), permitió compartir el trabajo efec-
LAN es la sigla de la expresión
inglesa Local Area Network.
tuado por varios computadores e incrementar su utilidad. Durante la década
WAN es la sigla de la expresión
inglesa Wide Area Network.
de 1990 se extendió el uso de Internet y de la World Wide Web. Las posibilidades de las redes de computadores se veían multiplicadas aún más, gracias a
las innovaciones en la tecnología de comunicaciones.
De este modo, hoy día apenas concebimos la idea de un computador como
una máquina individual, sino que lo vemos como un punto de trabajo dentro
de una red de alcance mundial. Ejecutamos los programas y guardamos los datos y documentos en nuestros PC, pero transferimos continuamente información entre computadores y compartimos programas y datos con personas que
quizá no hemos visto nunca. Además, la red abarca otras “máquinas”, como
los teléfonos móviles.
Actualmente, muchos esfuerzos de investigación se centran en el llamado NetPC.
El objetivo es conseguir que incluso la ejecución de los programas y el almacenamiento de los datos tenga lugar en la red global, de manera que los computadores
se convertirían meramente en un punto de acceso a esta red.
El protocolo WAP
El protocolo WAP (Wireless
Application Protocol) permite
el acceso a la información, a
servicios, y la interacción desde
aparatos sin cable.
© FUOC • PID_00153517
11
2. Estructura jerárquica de un computador
En este apartado presentamos los niveles de jerarquía básicos en que se estructura un computador.
2.1. Niveles de la jerarquía. Software, hardware
Un edificio se puede ver, o conocer, a diferentes niveles. Tiene una apariencia
externa, que es la que observa un peatón. Está estructurado en plantas y pisos,
que es lo que conocen los vecinos. Las paredes están construidas con un cierto
número de capas de diferentes materiales y contienen las conducciones para
el agua, el gas o la electricidad; ésta sería la visión del constructor. El edificio
se sostiene por una estructura de fundamentos, columnas y vigas que ha diseñado el arquitecto.
De la misma forma, un computador se estructura en una jerarquía de niveles,
tal como se muestra en la figura 1:
Figura 1
a) Nivel de usuario: corresponde a la visión que el usuario tiene del computador. Visto desde este nivel, un computador es una máquina que tiene un cierto
número de dispositivos que permiten interactuar con éste (el teclado, el ratón,
la pantalla, el CD-ROM, etc.) y que ejecuta programas o aplicaciones. El usuario
sólo necesita saber cómo funcionan los diferentes dispositivos, para qué sirve
cada programa y cómo se debe usar.
b) Nivel de programación: las aplicaciones que el usuario utiliza han sido escritas por un programador. Éste conoce las prestaciones que debe tener el programa y el lenguaje de programación elegido para escribirlo. Debe conocer
también las facilidades que le proporciona el sistema operativo sobre el que se
ejecutará el programa.
Conceptos básicos de los computadores
© FUOC • PID_00153517
12
Conceptos básicos de los computadores
c) Nivel de sistema operativo: el sistema operativo es un conjunto de programas (escritos por los programadores de sistemas) que administran el computador. El sistema operativo posibilita la comunicación entre el procesador
y los diferentes dispositivos periféricos, así como la comunicación con otros
computadores; coordina las tareas que efectúan las partes del computador
involucradas en la ejecución de los programas y proporciona al programador
los compiladores y las librerías necesarias para que los programas se ejecuten
en la máquina. También ofrece al usuario o usuarios del computador la interfaz para que trabajen en él.
d) Nivel físico: corresponde a los circuitos electrónicos que forman el computador, diseñados por los arquitectos de computadores. El nivel físico ejecuta
los programas de aplicación y los del sistema operativo. Para hacerlo, necesita
que los compiladores hayan traducido los programas a lenguaje de máquina.
Las aplicaciones y el sistema operativo forman el software y el nivel físico constituye el hardware.
2.2. Estructura básica de un computador
Esta asignatura se centra en el estudio del nivel físico de un computador.
La estructura básica del nivel físico es común a todos los computadores actualmente existentes. Fue descrita en 1946 por John von Neumann y otros ingenieros, y se conoce como estructura de von Neumann.
Según esta estructura (que se muestra en la figura 2), los computadores constan de tres grandes módulos:
1) La unidad central de proceso, procesador o CPU ejecuta los programas. A su
vez, se estructura en dos bloques: la unidad de proceso (UP) es el conjunto de dis-
CPU es la sigla de la expresión
inglesa Central Processing Unit.
positivos electrónicos necesarios para ejecutar programas, y la unidad de control
(UC) es un circuito encargado de gobernar la unidad de proceso.
2) La memoria guarda los programas mientras se ejecutan. Éstos constan de un
conjunto de datos que se modificarán o consultarán al ejecutar el programa y de
un conjunto de instrucciones que indican las operaciones que se deben hacer sobre los datos. La memoria está estructurada como un conjunto de palabras o
términos, en cada uno de los cuales, se puede guardar una instrucción o un dato
individual. La ubicación de cada palabra en la memoria se denomina dirección.
3) La unidad de entrada/salida (unidad E/S) permite que el computador se
relacione con el usuario y el entorno mediante varios dispositivos periféricos
(teclado, pantalla, discos, etc.).
Abreviamos unidad
de entrada/salida con la expresión
unidad E/S.
© FUOC • PID_00153517
13
Conceptos básicos de los computadores
Figura 2
Estos tres módulos se comunican mediante tres conexiones denominadas
buses:
• El bus de datos permite la transferencia de datos entre los tres módulos, y
la de instrucciones de la memoria hacia el procesador.
• El bus de direcciones permite al procesador indicar a la memoria (o a la
unidad de E/S) qué palabra quiere leer (obtener su valor) o escribir (modificar su valor).
• Por el bus de control se transmiten las señales que posibilitan que los tres
módulos actúen de forma coordinada.
El funcionamiento básico de un computador es el siguiente: la unidad de entrada/salida permite cargar programas en la memoria desde una unidad de disco*.
Para ejecutar el programa, las instrucciones se transmiten de una en una de la memoria al procesador. Éste las examina y activa los circuitos apropiados para llevar
a cabo las operaciones indicadas por cada instrucción. Para hacer una operación sobre unos datos determinados, éstos también deben ser transferidos previamente de la memoria al procesador. Los datos que resultan de la ejecución
de los programas se transfieren del procesador a la memoria y se guardan en
una unidad de disco.
* Por ejemplo, un disco duro,
un CD-ROM, etc.
© FUOC • PID_00153517
14
Conceptos básicos de los computadores
3. Codificación de información mediante
señales binarias
En este apartado se explica por qué y cómo se lleva a cabo la digitalización de
la información.
3.1. Señales analógicas, digitales y binarias
Las señales analógicas son aquéllas que varían, con el tiempo, de una manera
continua, y pueden adoptar infinitos valores.
Figura 3
Ejemplo de señal analógica
El sonido describe una onda
que se puede representar gráficamente tal como se muestra
en la figura 3. La línea curva es
continua y, por tanto, incluye
infinitos valores reales.
Las señales digitales toman un conjunto finito de valores discretos. Éstas son
más pobres que las analógicas, en el sentido de que no pueden transmitir la
información con el mismo grado de detalle. Ahora bien, son más manejables,
ya que el conjunto de valores que pueden adoptar es finito.
Las señales binarias son un caso particular de las señales digitales. En concreto, son señales que sólo pueden tomar dos valores diferentes. Éstos se suelen
representar mediante 0 y 1.
El nivel físico de un computador es un conjunto de circuitos electrónicos que sólo pueden distinguir dos valores diferentes de voltaje.
Señales analógicas
y señales digitales
Según un reloj digital que
marque horas, minutos y segundos, el tiempo no es una
dimensión continua, sino que
cambia de valor sólo una vez
cada segundo, y el número de
valores diferentes que puede
adoptar es finito. En cambio,
un reloj de esfera representa
el tiempo como una señal analógica, ya que las manecillas
recorren ininterrumpidamente
los infinitos puntos de la esfera.
© FUOC • PID_00153517
15
Conceptos básicos de los computadores
Dicho de otra manera, el comportamiento de un circuito electrónico sólo puede
variar dependiendo de si el voltaje es bajo (próximo a 0 voltios) o alto (próximo
a 5 voltios). El voltaje bajo se suele representar con un “0” y el alto, con un “1”.
Los voltajes correspondientes a 0 y 1 dependen de la tecnología utilizada.
Así, los computadores trabajan con señales binarias. Por tanto, toda la información que se les proporcione debe estar expresada o codificada mediante
una señal binaria. Por este motivo, los programas se traducen a un lenguaje de
máquina, que está formado sólo por ceros y unos. Y de igual forma, los datos
sobre los que trabajan los programas se pueden expresar mediante señales binarias gracias al proceso denominado digitalización.
3.2. Digitalización de señales
La digitalización consiste en codificar con una señal binaria la información expresada mediante una señal analógica.
El proceso de digitalización consta de tres etapas: el muestreo, la cuantificación y la codificación binaria.
1) El muestreo (o discretización) consiste en tomar muestras de la señal
analógica en intervalos de tiempo regular.
Figura 4
Ejemplo de muestreo
de una señal analógica
Un muestreo de la señal dibujada en la figura 3 a intervalos
de periodo T daría el resultado
que se observa en la figura 4.
2) La cuantificación consiste en asignar un valor, de entre un conjunto finito, a la amplitud de la señal en cada intervalo de muestreo.
© FUOC • PID_00153517
16
Conceptos básicos de los computadores
Figura 5
Ejemplo de cuantificación
de una señal
En el ejemplo de la figura 4,
si al cuantificar admitimos valores de amplitud múltiplos
de 10, obtenemos el resultado
que se muestra en la figura 5.
El sonido representado en esta
figura es de menor calidad que
el de la figura 3, ya que está
escalonado.
Cuanto menores sean los intervalos de tiempo del muestreo (hasta un cierto
límite más allá del cual ya no ganamos nada), y cuanto mayor sea el conjunto
de valores admitidos en la cuantificación, más cercana será la información digitalizada a la información analógica.
3) La codificación binaria consiste en traducir los valores de las diferentes
muestras a un sistema binario, es decir, en expresar estos valores mediante
ceros y unos.
Ejemplo de codificación binaria
Los valores de las amplitudes que aparecen en la figura 5 se podrían codificar de la manera
que se muestra a continuación:
Amplitud
Codificación binaria
90
0000
100
0001
140
0010
150
0011
170
0100
190
0101
210
0110
220
0111
230
1000
Una vez digitalizada, la información que en la figura 3 se expresaba mediante una línea curva, ahora se expresaría de esta manera:
0010
0100
0101
0010
0001
0000
0011
0110
1000
0111
0110
0101
Ventajas
de la digitalización
La digitalización es la técnica
que se usa, por ejemplo, para
grabar música en un CD. El
sonido se muestrea, se codifica
en binario y se graba en el CD
haciendo muescas: un 1 se
traduce al hacer una muesca,
un 0 se traduce al no hacerla.
La tecnología actual permite
hacer el muestreo y la cuantificación lo bastante detallados
como para que la distancia
entre los escalones provocados por la digitalización no
sean perceptibles por el oído
humano. Por otro lado, la digitalización evita los sonidos
y distorsiones que se introducen con medios analógicos,
circunstancia que permite
que el sonido digital pueda
ser de más calidad que el
analógico.
© FUOC • PID_00153517
17
Conceptos básicos de los computadores
Se puede digitalizar cualquier tipo de información (sonido, imagen, vídeo, etc.).
Una vez digitalizada, se la podemos proporcionar a un computador y éste la puede procesar, ya que está codificada sólo mediante ceros y unos.
Podéis ver cómo se representan
en un computador los diferentes
tipos de información en el módulo
“Representación de la información
numérica” de esta asignatura.
© FUOC • PID_00153517
18
Resumen
En este módulo hemos visto que un rasgo diferencial de los computadores es
que son de propósito general, ya que se pueden programar para realizar distintas tareas.
También hemos estudiado que los avances en ingeniería permiten incrementar las prestaciones de los computadores al mismo tiempo que reducir su precio y sus dimensiones, de manera que máquinas cada vez más completas están
al alcance de un número de usuarios cada vez más amplio. Además, cada vez
más, los computadores no son máquinas aisladas, sino nodos dentro de una
red de alcance mundial.
Hemos conocido los diferentes niveles de la estructura jerárquica de los computadores y la estructura básica del nivel físico, que es el objeto de estudio de
esta asignatura.
Finalmente, hemos observado que el nivel físico trabaja con señales binarias
y que se puede procesar cualquier tipo de información una vez ésta se ha digitalizado.
Conceptos básicos de los computadores
© FUOC • PID_00153517
19
Bibliografía
Stallings, W. (2000). Organización y diseño de computadores (5.ª ed.). Madrid: Prentice-Hall.
Conceptos básicos de los computadores