Beruflich Dokumente
Kultur Dokumente
Grau en matemtiques
1.
Introduccin
Durante toda la historia, la humanidad ha buscado la manera de desarrollar mquinas que los liberen
de los trabajos difciles y tediosos.
Dentro de esta bsqueda se han desarrollado los computadores. Una computadora es una mquina de
proposito general, programable, para el procesado automtico de informacin.
Procesar informacin es extraer unos ciertos resultados o conclusiones a partir de unos ciertos datos de
entrada.
Procesamiento/Tratamiento de la informacin:
Almacenamiento de datos y programas.
Recuperacin de datos y tratamiento de los mismos a travs de los programas.
(Los programas son los procedimientos correctos para tratar adecuadamente la
informacin)
Grau en matemtiques
Ejemplo:
Resolucin de una ecuacin de segundo grado. 2 x 2 3 x + 1 = 0
Datos: 2 / -3 / 1
Procesamiento: x =
3 32 4 2 1 3 9 8 3 1
=
=
22
4
4
x1 = 1
1
x 2 = 2
Resultados:
Breve historia
Antecedentes
baco: Herramienta mecnica til para sumar, restar, multiplicar y dividir. El programa es la mente
humana.
Calculadoras mecnicas:
Blaise Pascal (1623-1662) desarroll en 1642 una mquina aritmtica con engranajes, ruedas y
ventanas que realizaba sumas y restas.
Gottfried Leibnitz (1646-1716) desarrolla en 1673 una mquina mecnica, llamada la rueda de
Leibnitz, que realizaba sumas, restas, multiplicaciones, divisiones y races cuadradas.
Tambin podemos considerar como antecedente de las actuales computadoras los telares mecnicos
desarrollados durante la revolucin industrial, que cambiaban los dibujos de las telas a partir de la
informacin extrada de tarjetas perforadas.
En 1833, Charles Babbage, desarrolla una mquina de propsito general (mquina analtica) que puede
ser considerada como la base de los computadores modernos. Tanto los programas como los datos se
guardaban en tarjetas perforadas, y los programas podan utilizar los datos de salida como nuevas
entradas.
Computadores electromecnicos:
Tras diferentes mquinas electromecnicas desarrolladas durante la dcada de los 30, a finales de los
30 se desarrolla el Harvard MARK I (la primera calculadora digital automtica, de propsito general, a
gran escala, electromecnica) concebida por Howard Aiken a finales de los 30 y construida por
Hamilton, Lake y Durfee de IBM. Esta mquina realizaba 1 operacin cada 3 segundos. Los
programas no se guardaban en la mquina sino que eran ledos e interpretados desde una cinta de
papel, mientras que los datos eran proporcionados en tarjetas perforadas.
Entre 1940 y 1944 un grupo de investigadores de Bletchley Park, entre Oxford y Cambridge,
incluyendo a Alan Turing desarrollaron una serie de mquinas que culminaron en el desarrollo y la
implementacin de Colossus en 1943. Estas mquinas fueron desarrolladas especialmente para la
interpretacin, codificacin y decodificacin de cdigos secretos.
Computadores electrnicos:
Primera generacin (1946-1958)
En 1946 se desarrolla el ENIAC (Electronic Numerical Integrator Analyzer and Computer).
Construido con vlvulas de vaco era mucho ms veloz que los ordenadores de su poca (unas 5000
operaciones por segundo). Tiene como caracterstica especial que los programas eran introducidos en
la mquina mediante el cambio de posicin de cables que cambiaban la forma en que se conectaban las
diferentes partes del ordenador. Este problema se soluciona en versiones posteriores de la mquina.
Grau en matemtiques
Para hacer la mquina ms impresionante a los ojos de los reporteros de la poca, un miembro del
equipo (posiblemente Eckert) puso unas esferas translucidas (medias pelotas de ping-pong) sobre las
luces. La oficina de patentes de Estados Unidos, ms tarde, reconoci esta como la primera
computadora.
Otros ordenadores de esta generacin fueron el UNIVAC (Universal Automatic Computer), el IBM
401, el MADAM (Manchester Automatic Digital Machine), el SEC (Simple Electronic Computer) o el
APEC (All-Purpose Electronic Computer).
Segunda generacin (1958-1964)
Aparecen los transistores como alternativa tecnolgica a las vlvulas de vaco. Estos elementos son
mucho ms pequeos y rpidos con lo que se gana espacio y velocidad.
El primer ordenador totalmente transistorizado fue el TRADIC (TRAnsistor DIgital Computero
TRansistorized Unirborne DIgital Computer), del Bell Laboratories. Tena 700 transistores y 10000
diodos de germanio. A lo largo de los dos aos de continuo uso solo se estropearon 17 de estos
dispositivos, un nmero muy inferior a las tasas de fallo de las mquinas basadas en vlvulas de vaco.
Realizaba 5 millones de operaciones por segundo (frente a las 5000 de la generacin anterior).
Otros ordenadores de esta generacin fueron el IBM TX-0, el PDP-1 o el MANIAC (Mathematical
Analyser Numerator Integrator and Computer) con la colaboracin de Von Nneuman para su diseo y
construccin.
Tercera generacin (1964-1981)
En 1958, Texas Instruments presenta los circuitos integrados, pequeas pastillas de semiconductores
que pueden incluir en un muy reducido espacio varios dispositivos electrnicos y sus interconexiones.
Mediante este avance, los ordenadores se hacen ms pequeos y rpidos y requieren menor cantidad de
electricidad para su funcionamiento.
El IBM 360 y el BURROUGHS B-3500 son ejemplos de ordenadores de esta generacin.
Cuarta generacin (1981-1990)
El nivel de integracin de elementos en los circuitos integrados aumenta entre 100 y 1000 veces,
pasando a los circuitos integrados VLSI (Very Large Scale Integration). Este avance reduce aun ms el
espacio y consumo de los ordenadores, as como los precios. Con estas caractersticas se vuelven ms
populares y asequibles para la sociedad.
Aparecen ordenadores como el Sinclair ZX81/ZX Spectrum, el Commodore 64, el MITS Altair 680 o
el Apple IIe, aunque el que se volvi ms popular e importante fue el IBM PC, designado como el
5150, con arquitectura abierta, que permitia que otros fabricantes pudieran producir y vender
componentes perifricos y software compatible sin la compra de licencias.
Como consecuencia, y en contra de la previsin de IBM, otros fabricantes copiaron la mquina
original y rpidamente se produjeron ordenadores 'clnicos'. Esto llev a poner esta tecnologa como
estndar 'de facto' abaratando como consecuencia los productos y hacindolos ms accesibles por el
pblico en general.
Quinta generacin (1982-1992)
la FGCS (de Fifth Generation Computer Systems) o quinta generacin fue una iniciativa surgida en
Japn y seguida por Estados Unidos para construir una nueva generacin de ordenadores basados en
inteligencia artificial y la programacin paralela especializada.
Tras diez aos de investigacin e inversiones se desestim la iniciativa debido a que los avances en
velocidad y paralelizacin en ordenadores de propsito general superaban los avances conseguidos
siguiendo la linea de la inteligencia artificial.
Tema 1: Concepto de computador
Grau en matemtiques
Mas informacin
Podis encontrar ms informacin en los siguientes enlaces:
http://www.hitmill.com/computers/computerhx1.html
http://www.computerhistory.org/timeline/
http://goldenink.com/computersandnetworks.shtml
Grau en matemtiques
Interpretar el cdigo y generar las seales de control que lo ejecutan.
Controlar la secuencia en que se ejecutan las operaciones.
Controlar el acceso a memoria.
Enviar y recibir seales de control relacionadas con las operaciones que se ejecutan
en la A.L.U.
Tipo
Tamao
Rapidez
Registro
10-60 Bytes
Cach
R.A.M.
Disco duro
80-300 Gb (2 Tb)
Una de las caractersticas de la mquina de Von Neumann es que tanto los datos como las
instrucciones se deben guardar dentro de la mquina (en la memoria), esto es en forma de sucesin de
unos y ceros que deben ser interpretados de una forma determinada.
Un programa es una sucesin de rdenes que la C.P.U. va leyendo de la memoria y ejecutando de
forma consecutiva.
El proceso bsico de ejecucin de un programa en la mquina de Von Neumann es el siguiente:
a.- Se lleva una instruccin desde la memoria a la U.C. (y se incrementa el contador del
programa)
b.- La unidad de control interpreta la instruccin y la ejecuta
Tema 1: Concepto de computador
Grau en matemtiques
i.- Buscar informacin de la memoria (si hace falta) y llevarla a los registros de la A.L.U.
ii.- Ejecutar la instruccin (sumas, restar, mirar entrada, escribir en salida,...)
iii.- Poner la informacin resultante en la memoria (si es necesario)
c.- Mientras no se llegue al final del programa volver al paso (a)
Los ordenadores actuales siguen principalmente las caractersticas enunciadas de la arquitectura de
Von Neumann, pero ampliada con ms dispositivos.
Buses y seales de control
La manera en que se intercambian informacin las distintas unidades funcionales de la mquina de
Von Neumann es mediante buses. Existen bsicamente dos buses: el bus de datos, por donde circula la
informacin entre la entrada, la salida, la memoria y el microprocesador (U.C.P.), y el bus de
direcciones (mediante el cual se fija la direccin de memoria donde se est trabajando
(guardando/leyendo informacin))
La manera de controlar el acceso a este bus, y dar el control a las diferentes unidades funcionales de la
mquina de Von Neumann es mediante las seales de control, generadas por la unidad de control.
Parmetros bsicos de un ordenador
Tiempo de ciclo o frecuencia de reloj: Determina en gran medida la velocidad con que funciona
un ordenador. Es la cantidad de instrucciones bsicas que se ejecutan por segundo en el ordenador.
Se mide en megahercios (MHz)
Longitud de la palabra: es la cantidad de bits que se mueven simultneamente por el bus de datos
del ordenador y determina en parte la precisin de los clculos del ordenador.
Tamao del bus de datos y del bus de direcciones: El tamao del bus de datos determina la
cantidad de bits que se mueven simultneamente entre las diferentes partes del ordenador, de
manera que ayudar a que la velocidad del ordenador sea mayor. El tamao del bus de direcciones
nos limitar la cantidad de direcciones de memoria a las que podemos referirnos, limitando el
tamao de la memoria con el que podemos trabajar (con un bus de direcciones de una sola lnea
slo podramos acceder a dos casillas distintas de la memoria. Con un bus de dos lneas podramos
acceder hasta a 4 casillas distintas. Con un bus de n lneas podramos acceder a 2n casillas
distintas.)
Definicin de ALGORITMO
Vista la manera en que procesan la informacin las mquinas basadas en la arquitectura de Von
Neumann, es correcto pensar que para realizar los programas que procesen la informacin habr que
plantearselos en forma de algoritmos.
Un algoritmo es un conjunto finito de pasos y acciones que especifican de forma clara y concisa (sin
ambigedades) la secuencia de operaciones a realizar para procesar adecuadamente unos datos con
un determinado objetivo.
Ejemplos:
1. Receta de cocina: Secuencia de pasos para realizar un determinado plato.
2. Algoritmo para obtener el resultado de dividir un nmero por otro.
3. Algoritmo del mono y el pltano.
Llamaremos programa a la plasmacin de un algoritmo de forma que pueda ser entendido por un
ordenador.
Tema 1: Concepto de computador
Grau en matemtiques
En principio el ordenador slo es capaz de entender lenguaje binario (lenguaje que slo contiene 2
posibles caracteres, habitualmente 0 y 1), pero para hacer ms fcil la escritura de programas existen
unos lenguajes de programacin a los que se asocian traductores.
Un lenguaje de programacin es un conjunto de palabras con una cierta sintaxis y una semntica
asociadas.
Las caractersticas son:
En el tema siguiente veremos con ms detalle la forma en que se desarrollan los problemas hasta
obtener algoritmos que los solucionen.
Lenguajes de programacin
Un programa es una sucesin de pasos que debe seguir el ordenador para llevar a trmino un trabajo o
proceso de informacin.
Un usuario que desee que un ordenador realice un cierto procesado de informacin deber escribir un
programa en un lenguaje que pueda entender el ordenador.
El nico lenguaje que realmente entienden los ordenadores es el lenguaje binario (que es el nico que
puede estar guardado en la memoria del ordenador.). El lenguaje binario tienen como caracterstica que
slo contiene dos smbolos (habitualmente el cero y el uno.)
Como es difcil escribir programas en ese lenguaje binario se han desarrollado otro tipo de lenguajes
que deben ser fcilmente traducibles al lenguaje binario:
Lenguajes de bajo nivel (ensamblador): Lenguajes en los que las instrucciones son directamente
traducibles, una por una, a lenguaje binario.
Lenguajes de alto nivel: Lenguajes ms elaborados, fciles de leer y entender por un humano, y
que deben de ser fcilmente traducibles a lenguaje mquina.
Para que un lenguaje sea fcilmente traducible a lenguaje mquina debe cumplir una serie de
caractersticas, que ya comentamos al comienzo del tema:
Grau en matemtiques
Evolucin histrica
El primer lenguaje de alto nivel
desarrollado fue el FORTRAN
(FORmula TRANslation) en
1957. Fue desarrollado por John
Backus en IBM. Es un lenguaje
de alto nivel especialmente
pensado en la resolucin de
problemas matemticos. Pero
tena como gran inconveniente la
dificultad de trabajo con ficheros
y la falta de recursividad
(posibilidad de definir un cierto
proceso refirindose a s
mismo.) Estos inconvenientes se
han ido mejorando a lo largo de
las
diferentes
versiones
(FORTRAN 66, FORTRAN 70,
FORTRAN 90 y FORTRAN
95).
Poco despus del FORTRAN
apareci el BASIC (Begginers
All-purpose Symbolic Instruction
Code), desarrollado por John
Kemeny y Thomas Kuntz
especialmente para ensear a
programar a usuarios poco
especializados.
El uso de grandes ordenadores a
aplicaciones empresariales llev
a
desarrollar
lenguajes
especficos como el COBOL (en
1959.)
Los
lenguajes
empresariales se caracterizan por
desarrollar fcilmente informes
elaborados, maneras precisas de describir y guardar nmeros decimales y caracteres y la habilidad para
especificar operaciones decimales.
En los 70, con la llamada crisis del software, aparecen los conceptos de programacin estructurada, y
Niklaus Wirth plasma estos conceptos en el lenguaje PASCAL (1971) desarrollado especialmente para
ensear programacin estructurada.
Tambin a principios de los 70 Kernighan y Ritchie desarrollan el lenguaje de programacin C (1972),
que admite los conceptos de programacin estructurada, tal como Pascal, pero que permite una mayor
libertad a la hora de realizar ciertas tareas que no pueden llegar a hacerse en la mayora de los
lenguajes de alto nivel. De hecho el C es un lenguaje de alto nivel, que es capaz de bajar de nivel y con
el que es posible programar incluso sistemas operativos, que ya comentaremos ms adelante.
A principios de los 80, se empiezan a desarrollar nuevos conceptos de programacin que terminaran
en la programacin orientada a objetos y lenguajes como C++, Eiffel o Smaltalk.
10
Grau en matemtiques
El primer paso es escribir el programa en un editor de textos. Una vez escrito tendremos el llamado
programa fuente (source) escrito en un lenguaje de alto nivel.
A continuacin, mediante el uso de un compilador pasaremos el programa fuente a un lenguaje
intermedio y obtenemos el programa objeto. En este paso se realiza el anlisis lxico (que slo se
hayan escrito smbolos y palabras correspondientes al lenguaje de alto nivel que estemos utilizando) y
sintctico (que los diferentes smbolos y palabras escritos estn en la sucesin correcta) del programa
fuente.
El programa fuente puede estar escrito en varios mdulos. La compilacin traduce cada uno de los
mdulos a un programa objeto. En los diferentes objetos puede haber referencias a elementos que estn
en otros objetos.
El ltimo paso de la traduccin es el linkado (del ingls link, enlazar) o montado de los diferentes
objetos en un solo programa ya escrito en lenguaje binario y que se suele denominar programa
ejecutable.
En general, todas estas fases suelen hacerse con un solo programa denominado 'Entorno de
programacin' que proporciona todos las herramientas necesarias (editor, compilador y linker) en un
solo programa.
Finalmente, hay que cargar el programa ejecutable en memoria y ejecutarlo para obtener los resultados
esperados. De esta fase se encarga el Sistema Operativo.
Aunque en principio los lenguajes de programacin son nicos, cada compilador especfico de cada
mquina puede incorporar ciertas caractersticas que no comparte con otros compiladores del mismo
lenguaje de alto nivel.
Para evitar en lo posible la dispersin de un mismo lenguaje la American National Standars Institute
(ANSI) establecen unos estndares para cada lenguaje de programacin. As podemos hablar de C en
general, que puede contener ciertas caractersticas especiales o podemos hablar del ANSI C, que
cumple estrictamente con los estndares establecidos permitiendo una mayor portabilidad de los
programas escritos (mayor facilidad para llevarlos de un ordenador a otro sin tener que modificarlos).
Elementos bsicos de un lenguaje de alto nivel
Palabras reservadas
Constantes y variables
Tema 1: Concepto de computador
11
Grau en matemtiques
Expresiones...
...aritmticas: + / - / * / ... devuelven valores aritmticos
...relacionales: > / < / = / ... devuelven valores booleanos (TRUE/FALSE)
...lgicas: AND / OR / ... devuelven valores booleanos (TRUE/FALSE)
Etiquetas
Comentarios
Asignaciones ( )
Entrada
Salida
Tipos de lenguajes de alto nivel
1 clasificacin: Por la forma en que se traducen.
Lenguajes para la gestin de bases de datos System Query Languages (SQL) Informix...
Lenguajes
Prolog
declarativos
(Programa
definicin
de
elementos
relaciones)
Lenguajes de gestin dinmica de memoria (se reserva la memoria en ejecucin, a medida que
van apareciendo variables) Basic, Prolog...
12
Grau en matemtiques
Tipos de computadores
Supercomputadores (supercomputacin): Existen varios procesadores haciendo clculos
(computando) al mismo tiempo (en paralelo) y accediendo a grandes cantidades de informacin
guardada en la memoria o en accesible en dispositivos de entrada.
Control de rbitas de satlites y naves espaciales.
Aceleradores de partculas.
Control y prediccin de procesos biolgicos y qumicos.
Predicciones termodinmicas (predicciones de tiempo atmosfrico.)
Macrocomputadores: Ordenadores compuestos por distintos procesadores que se encargan de la
gestin y el control de diferentes dispositivos (sera un ordenador distribuido.)
Control de robots en fbricas.
Bancos.
Lneas areas.
Minicomputadores: Son ordenadores con varios procesadores.
Control de procesos en laboratorios.
Estaciones de trabajo (WorkStations): Microprocesadores muy potentes y optimizados para la
realizacin de tareas concretas y diferentes procesos simultneos (pensados para atender a varios
usuarios simultneamente.)
Diseo asistido por ordenador (C.A.D.)
Microcomputadores: Pensados para el trabajo personal (Personal Computer (PC))
Apple
IBM/PC
Calculadoras de bolsillo.
Soporte lgico
Ordenador
Software de aplicacin:
Lo forman todos los programas que puede utilizar un usuario para realizar ciertas tareas especficas
con el ordenador (edicin de textos, contabilidad, diseo,...)
Software del sistema
13
Grau en matemtiques
Sistema operativo (S.O.): Es un conjunto de programas que relacionan al usuario con el hardware
especfico del ordenador, de manera que para el usuario no importa el tipo o marca del hardware,
slo el S.O. que este funcionando en el ordenador.
Adems se encarga de gestionar eficientemente los recursos de la mquina.
Utilidades generales.
Traductores (compiladores e intrpretes.)
Depuradores (debuggers.)
Gestores de ficheros.
Software de aplicacin.
Programas de edicin de textos.
Gestin de bases de datos (gestin de bibliotecas, de matriculados en la universidad, etc.)
Programas de administracin y contabilidad.
Herramientas de diseo y edicin grfica (CAD-CAM)
El sistema operativo
Son funciones del sistema operativo:
Hacer de interfaz entre el usuario y el hardware de la mquina.
Administrar y controlar los dispositivos hardware.
Mantener el sistema de archivos.
Apoyar la ejecucin de otros programas.
Para realizar estas funciones de forma correcta, debemos exigir a un sistema operativo las siguientes
caractersticas:
1. Eficiencia (rapidez en las tareas.)
2. Fiabilidad (sin fallos ni errores.)
3. Facilidad de mantenimiento.
4. Tamao reducido (aunque ltimamente esta caracterstica est siendo sustituida por facilidad
de manejo por parte de un usuario inexperto.)
Las principales partes del sistema operativo son: El Kernel o ncleo del sistema y el interfaz.
14
Grau en matemtiques
Interfaz: Es el elemento a travs del que el usuario se comunica con el hardware, y en general est
formado por unas instrucciones u rdenes (muchas veces mal llamadas comandos del ingls
command) que permiten al usuario realizar ciertas tareas especficas.
Ejemplos de sistemas operativos
MS-DOS:
Sistema operativo de las mquinas con P Intel (8088, 8086, 80286, 386, 486, Pentium,...)
Se centra en el control de los aspectos del PC enfatizando en la gestin de sistema de ficheros y
la transferencia de informacin hacia los perifricos.
Funciona mediante interrupciones.
Para mantener la compatibilidad con versiones anteriores mantiene ciertas caractersticas que
impiden aprovechar los ltimos avances de los PCs.
Monousuario y monoproceso.
UNIX/Linux:
Sistema operativo de propsito general, desarrollado para cualquier plataforma (en principio
cualquier P, intentando sacar el mximo partido del hardware aunque no se mantenga la
compatibilidad entre versiones.)
Esquema bsico: Ncleo pequeo + Extensiones propias.
Multiusuario y multiproceso.
Cualquier sistema de entrada/salida (I/O) se trata exactamente como si fuese un archivo.
Al ser multiusuario aade sistemas de proteccin y seguridad de informacin y de procesos.
15
Grau en matemtiques
16