Introducci´
on a los Computadores (CNM-130)
Estructura del computador
Alejandro Piedrahita H.
Instituto de Matem´
aticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft«2012. Reproducci´on permitida bajo los t´erminos de la licencia de documentaci´on libre GNU
.
Contenido
1
Introducci´
on
2
Arquitectura y funcionamiento
3
Software y lenguajes de programaci´
on
Software de sistema
Software de programaci´
on
Software de aplicaci´
on
Terminolog´ıa b´
asica
Historia de los computadores
´
Abaco chino (500 adC)
Realiza operaciones aritm´eticas Primera calculadora mec´anica
Pascalina (1642)
Calculadora mec´anica inventada por Blaise Pascal Suma y resta n´umeros de hasta 7 cifras por medio de un mecanismo de ruedas y engranajes
En 1673 Gottfried von Leibniz modifica la pascalina y crea la primera calculadora de prop´osito general
La tarjeta perforada (1801)
Joseph Marie Jacquard utiliza tarjetas perforadas para manejar agujas de tejer en telares mec´anicos Posteriormente Hernan Hollenith utiliz´o las tarjetas perforadas para almacenar datos en un computador.
Suanpan, ´abaco chino
Pascalina
Historia de los computadores
M´
aquina diferencial (1822)
Calculadora mec´anica introducida por Charles Babbage para tabular funciones polin´omicas
En 1833 Babbage propone el dise˜no de un computador moderno de uso general (la m´aquina anal´ıtica) Ada Augusta Lovelace propone utilizar tarjetas perforadas para la m´aquina de Babbage
Primeras computadoras modernas
Mark I(1944)
Construida por Howard H. Aiken en la Universidad de Harvard
Empleaba se˜nales electromagn´eticas para mover las partes mec´anicas
ENIAC(1946)
Construida por John Presper Eckert y John William Mauchly en la Universidad de Pennsylvania Utilizaba tubos de vac´ıo
R´eplica de la m´aquina diferencial
Mark I
Historia de los computadores
Primera generaci´
on (1951–1958)
Tubos de vac´ıoIngreso de datos por medio de tarjetas perforadas Alto consumo de energ´ıa y necesidades de ventilaci´on
Uso de tambores giratorios para el almacenamiento primario
Univac I (universalautomaticcomputer I): Primera computadora producida en forma comercial
Utilizada por el departamento de censos norteamericano (1951)
Crece industria de procesamiento de datos SurgenFORTRANyALGOL
IBM comienza a construir computadoras
Consola de Univac I
Tarjeta perforada (FORTRAN)
Historia de los computadores
Segunda generaci´
on (1959–1964)
TransistoresAumento de velocidad, reducci´on de espacio Menor consumo de energ´ıa, reducci´on de costos Memoria de n´ucleos magn´eticos
Almacenan informaci´on por medio de las propiedades magn´eticas de sus componentes Memoria no vol´atil
Escribir un programa no requiere comprensi´on plena del hardware
IBM vende su primer sistema de disco magn´etico Surgen terminales remotas: unidades que transmiten datos a la m´aquina a distancia
Transistores
Memoria de n´ucleos magn´eticos
Historia de los computadores
Tercera generaci´
on (1964–1971)
Circuitos integradosAumento de velocidad, reducci´on de tama˜no Menor consumo de energ´ıa, reducci´on de costos Flexibilidad de los programas y estandarizaci´on de modelos
Surgimiento de sistemas operativos y lenguajes estructurados:AdayPascal
Utilizaci´on de memorias RAM y ROM IBM lanza al mercado laserie 360
Aparecen las primeras calculadoras de bolsillo
Circuito integrado Intel 8742
Historia de los computadores
Cuarta generaci´
on (1971 a la fecha)
Microprocesadores (circuito integrado independiente) Reemplazo de memorias con n´ucleos magn´eticos por memorias electr´onicas (chips de silicio)
IBM introduce los discos duros Winchester (est´andar de la industria)
Surgen las microcomputadoras o Computadores Personales (PC´s)
En 1975 William Henry Gates y Paul Allen fundan Microsoft Corporation
En 1976 Steven Wozniak y Steven Jobs crean Apple Computer
Ken Thompson, Dennis Ritchie y Douglas Mcllroy desarrollan el sistema operativo UNIX
Intel 4004
Disco IBM 3340
Video recomendado
Conceptos b´
asicos
Computador: m´
aquina que manipula datos de acuerdo a un conjunto
de instrucciones
Los computadores pueden ser programados
El conjunto de instrucciones (programa) puede ser almacenado El programa puede ser ejecutado posteriormente
Hardware y Software
Hardware: componentes f´ısicos de una computadora
Unidad central de procesoMemoria Buses
Perif´erico o dispositivos de entrada/salida (E/S)
Software: conjunto de programas que controlan el funcionamiento de
una computadora
Software de sistema: sistema operativo, compiladores, programas de comunicaciones, bibliotecas est´andares
Software de aplicaciones: bases de datos, navegadores, hojas de c´alculo, procesadores de texto, etc.
Vista computador personal
1
Monitor
2Placa base
3Procesador
4Puertos ATA
5
Memoria principal (RAM)
6Placas de expansi´
on
7Fuente el´
ectrica
8
Unidad de almacenamiento ´
optico
9Disco duro
10
Teclado
11Rat´
on
Arquitectura Eckert-Mauchly
Unidad L´
ogica Aritm´
etica
(ULA): realiza operaciones aritm´
eticas y
l´
ogicas
Unidad de control: interpreta instrucciones y emite ´
ordenes para los
dem´
as componentes
Memoria central: dispositivos y medios de grabaci´
on que retienen
datos inform´
aticos durante alg´
un intervalo de tiempo
Dispositivos de entrada y salida
(E/S): dispositivos de
comunicaci´
on con el exterior
Memorias
Memoria primaria
(memorias de acceso aleatorio)
Registros del procesador: memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matem´aticas.
Memoria principal: contiene los programas en ejecuci´on y los datos con que operan. La unidad aritm´etico-l´ogica (ALU) puede transferir informaci´on muy r´apidamente entre un registro del procesador y localizaciones del almacenamiento principal (direcciones de memoria). Memoria cach´e: tipo especial de memoria de acceso r´apido. Parte de la informaci´on de la memoria principal se duplica en la memoria cach´e. Cuando se accede por primera vez a un dato, se hace una copia en el cach´e; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.
Memoria secundaria
(dispositivos de almacenamiento masivo)
Conjunto de dispositivos perif´ericos para el almacenamiento masivo de datos (disquetes, disco duro, unidades pticas, unidades de memoria flash y discos Zip).Memorias
Memoria
RAM
(
R
andom
A
ccess
M
emory)
Memoria en la que se puede tanto leer como escribir informaci´on
Los datos almacenados pueden ser accesados en cualquier orden (random)
Los datos son retornados independiente de su ubicaci´on f´ısica y de los datos previamente almacenados
Memoria donde el procesador recibe las instrucciones y guarda los resultados.
Memoriavol´atil: su informaci´on se pierde al interrumpirse el flujo de corriente el´ectrica
Memoria
ROM
(
R
ead
O
nly
M
emory)
Destinada s´olo a ser le´ıda (no escribible) Almacena programas necesarios para iniciar el computador y de diagn´osticoMemoriano vol´atil: su informaci´on se conserva al interrumpirse el flujo de corriente el´ectrica
M´odulos formato SIMM
Dispositivos auxiliares y perif´
ericos
Disco duro: sistema de grabaci´
on magn´
etica digital
que almacena los datos del usuario y en la mayor´ıa de
los casos el sistema operativo de la computadora.
Monitor: dispositivo de salida que muestra, mediante
una interfaz, los resultados del procesamiento de una
computadora.
Teclado: perif´
erico, f´ısico o virtual utilizado para la
introducci´
on de ´
ordenes y datos.
Rat´
on: perif´
erico utilizado para la entrada y el control
de datos.
Impresora: produce copias permanente en papel de
textos o gr´
aficos de documentos almacenados en
formato electr´
onico.
Clasificaci´
on del software
Software de sistema: permite que el hardware funcione.
Sistemas operativos: conjunto de programas destinados a permitir una administraci´on eficaz de los recursos del computador.
Controladores de dispositivo: programas inform´aticos que permiten al sistema operativo interactuar con los perif´ericos.
Herramientas de diagn´ostico: monitorea y controla la funcionalidad del hardware.
Servidores: programas que realiza algunas tareas en beneficio de otras aplicaciones llamadas “clientes”.
Clasificaci´
on del software
Software de programaci´
on: Es el conjunto de herramientas que
permiten al programador desarrollar programas inform´
aticos.
Editores de texto: programas que permiten crear y modificar archivos digitales compuestos ´unicamente por texto y sin formato.
Compiladores: programas que traducen un programa escrito en un lenguaje de programaci´on a otro lenguaje que la m´aquina ser´a capaz de interpretar.
Int´erpretes: programas escritos en lenguajes de alto nivel capaces analizar y ejecutar otros programas. A diferencia de los compiladores, los int´erpretes traducen el programa a medida que lo ejecutan. Enlazadores: programas que toman los archivos de c´odigo objeto generados durante el proceso de compilaci´on y los enlaza con bibliot´ecas para generar un archivo ejecutable.
Depuradores: programas que limpian los errores de otros programas inform´aticos.
Entornos de Desarrollo Integrados (IDE): agrupan a las anteriores herramientas, usualmente en un entorno visual, de forma que el programador no necesite introducir m´ultiples comandos para compilar, interpretar, depurar, etc.
Clasificaci´
on del software
Software de aplicaci´
on: permite a los usuarios llevar a cabo una o
varias tareas espec´ıficas, en cualquier campo de actividad susceptible
de ser automatizado o asistido.
Aplicaciones ofim´aticas: conjunto de programas para el uso en oficinas y entornos profesionales. Incluyen procesadores de texto, hojas de c´alculo, programas de presentaci´on, sistemas de gesti`on de bases de datos, etc. Software educativo: software destinado a la ense˜nanza y el auto aprendizaje.
Software m´edico: software utilizado para fines m´edicos.
Software de c´alculo num´erico: programas que simulan procesos matem´aticos complejos que describen fen´omenos reales.
Software de dise˜no asistido (CAD): herramientas computacionales que asisten a ingenieros, arquitectos y a otros profesionales del dise˜no en sus respectivas actividades.
Software de Control Num´erico (CAM): programas destinados a controlar las fases de manufactura de un producto, incluyendo la planeaci´on del proceso y la producci´on, maquinado, calendarizaci´on, administraci´on y control de calidad.
Terminolog´ıa b´
asica
Programa: conjunto de instrucciones escritas en forma codificada que
el computador puede traducir a su propio lenguaje. Estas instrucciones
le dicen al computador qu´
e operaciones ejecutar y en qu´
e orden.
C´
odigo fuente: tipo de programa escrito por un programador en
alg´
un
lenguaje de programaci´
on, pero que no es directamente
ejecutable por el computador, sino que debe ser traducido a otro
lenguaje (el
lenguaje de m´
aquina
o
c´
odigo objeto) que pueda ser
ejecutado por el hardware del computador.
Programa Objeto: programa que resulta de la traducci´
on del
lenguaje fuente (c´
odigo fuente
) a un
lenguaje de m´
aquina, es decir a
aquel que es inteligible por el computador.
Int´
erpretes: programas que traducen las instrucciones de un
programa escrito en alg´
un
lenguaje de programaci´
on, en una secuencia
de instrucciones de m´
aquina (lenguaje de m´
aquina). El int´
erprete
traduce las instrucciones del
programa fuente
una por una y las ejecuta
inmediatamente.
Terminolog´ıa b´
asica
Compilador: al igual que los
int´
erpretes, los compiladores traducen un
programa escrito en alg´
un
lenguaje de programaci´
on
en una secuencia
de instrucciones de m´
aquina (lenguaje de m´
aquina) que se pueden
ejecutar. A diferencia de los
int´
erpretes, el compilador s´
olo traduce:
Un programa que ha sido compilado puede correr por si solo, pues en el proceso de compilaci´on se lo transforma en otro lenguaje (lenguaje m´aquina).
Un int´erprete traduce el programa cuando lo lee, convirtiendo el c´odigo del programa directamente en acciones.
La ventaja del int´erprete es que dado cualquier programa es posible interpretarlo en cualquier plataforma (sistema operativo), en cambio el archivo generado por el compilador s´olo funciona en la plataforma que fue creado.
Un archivo compilado puede ser distribuido f´acilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el int´erprete.
La velocidad de ejecuci´on de un archivo compilado es de 10 a 20 veces superior a la de un archivo interpretado.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Lenguajes M´aquinaLenguajes de bajo nivel Lenguajes de medio nivel Lenguajes de alto nivel
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Lenguajes M´aquina
Lenguajes de bajo nivel Lenguajes de medio nivel Lenguajes de alto nivel
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Lenguajes M´
aquina
Conjunto de instrucciones que
puede ejecutar el computador
(CPU).
Est´
a compuesto por un
conjunto de instrucciones
binarias (0 y 1) ejecutadas en
secuencia.
Representan acciones (“on”,
“off”) que la m´
aquina podr´ıa
realizar.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Lenguajes M´aquina Lenguajes de bajo nivel Lenguajes de medio nivel Lenguajes de alto nivelSeg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Lenguajes de bajo nivel
Proporciona poca o ninguna
abstracci´
on del
microprocesador del
computador.
Es “bajo” por ofrecer una
reducida
abstracci´
on entre el
lenguaje y el hardware
M´
axima velocidad con m´ınimo
uso de memoria.
Requiere conocer en detalle la
arquitectura de la m´
aquina.
Ejemplo: el lenguaje
ensamblador.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Lenguajes M´aquina Lenguajes de bajo nivel Lenguajes de medio nivel Lenguajes de alto nivelSeg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Lenguajes de medio nivel
Presenta caracter´ısticas que
los acercan a los lenguajes de
bajo nivel.
Posee cualidades que lo hacen
un lenguaje m´
as cercano al
humano y, por tanto, de alto
nivel.
Expertos consideran al
lenguaje C, un lenguaje de
medio nivel.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Lenguajes M´aquina Lenguajes de bajo nivel Lenguajes de medio nivel Lenguajes de alto nivelSeg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Lenguajes de alto nivel
De f´
acil comprensi´
on por estar
formado por elementos de
lenguajes naturales como el
ingl´
es.
Dise˜
nado m´
as para la
capacidad cognitiva humana,
en lugar de la capacidad
ejecutora de las m´
aquinas.
Ejemplos: Basic, Fortran,
COBOL.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Lenguajes compilados Lenguajes interpretados
Seg´
un el paradigma
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Lenguajes compilados Lenguajes interpretados
Seg´
un el paradigma
Lenguajes compilados
Son traducidos partir de su
c´
odigo fuente por medio de un
compilador.
El archivo generado es
ejecutable para una
determinada plataforma.
Ejemplos: Fortran, Pascal, la
familia de lenguajes de C,
incluyendo C++ y Objective
C pero no Java.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Lenguajes compilados Lenguajes interpretados
Seg´
un el paradigma
Lenguajes interpretados
Son ejecutado por medio de
un int´
erprete.
Las instrucciones se traducen
o interpretan una a una
siendo tpicamente unas 10
veces m´
as lentos que los
programas compilados.
Ejemplos: Lisp, Bash, Basic.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Paradigma imperativo o por procedimientos
Paradigma funcional Paradigma l´ogico
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Paradigma imperativo o por procedimientos
Paradigma funcional Paradigma l´ogico
Paradigma orientado a objetos
Paradigma imperativo
Conjunto de instrucciones que
el computador debe ejecutar.
Enfoque que describe la
programaci´
on en t´
erminos del
estado del programa y
sentencias que cambian dicho
estado.
Los programas imperativos le
indican al computador
c´
omo
realizar una tarea.
La implementaci´
on de
hardware de la mayor´ıa de
computadores es imperativa.
Ejemplos: BASIC, C, C++,
Fortran, Pascal, Java, Perl,
PHP.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Paradigma imperativo o por procedimientos
Paradigma funcional Paradigma l´ogico
Paradigma orientado a objetos
Paradigma funcional
Enfoque de programaci´
on
declarativo basado en la
utilizaci´
on de funciones
matem´
aticas.
Hace ´
enfasis en la aplicaci´
on
de funciones, en contraste con
el concepto de
estado del
c´
omputo
(paradigma
imperativo)
No es necesario bajar al nivel
de la m´
aquina para describir
el proceso llevado a cabo por
el programa.
Ejemplos: La familia de
lenguajes LISP (en particular
Scheme), ML o Haskell, R.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Paradigma imperativo o por procedimientos
Paradigma funcional
Paradigma l´ogico
Paradigma orientado a objetos
Paradigma l´
ogico
Forma parte de los
paradigmas declarativos en los
que se especfica
qu´
e
deber´ıa
hacer el computador y no
c´
omo.
Tiene como caracterstica
principal la aplicaci´
on de las
reglas de la l´
ogica para inferir
conclusiones a partir de datos.
El PROLOG es el lenguaje
emblem´
atico del paradigma.
Clasificaci´
on de los lenguajes . . .
Seg´
un su nivel de abstracci´
on
Seg´
un la forma de ejecuci´
on
Seg´
un el paradigma
Paradigma imperativo o por procedimientos
Paradigma funcional Paradigma l´ogico
Paradigma orientado a objetos
Paradigma orientado a objetos
Estilo de programaci´
on que
utiliza objetos como bloque
fundamental de construcci´
on.
Los bloques son un conjunto
complejo de datos (atributos)
y funciones (m´
etodos) que
poseen una determinada
estructura y forman parte de
una organizaci´
on.
Los atributos definen el estado
del objeto; los m´
etodos, su
comportamiento.
Ejemplos: Visual Basic, C++,
PHP.
Bits y Bytes
Bit: d´ıgito binario que toma como posible valor 0 ´
o 1.
El bit es la unidad m´ınima de almacenamiento empleada en
inform´
atica.
Un bit representa dos posibles estados: “encendido” (1) o “apagado”
(0), “verdadero” o “falso”, “abierto” o “cerrado”, “presencia” o
“ausencia” de energ´ıa, etc.
Con un bit s´
olo es posible representar dos valores. Para representar o
codificar
m´
as informaci´
on en un dispositivo digital, es neceario usar
una mayor cantidad de bits. Con
2
bits por ejemplo:
22= 4 posibilidades: 0 0: “apagado”–“apagado”. 0 1: “apagado”–“encendido”. 1 0: “encendido”–“apagado”. 1 1: “encendido”–“encendido”.
Bits y Bytes
Con tres bits tendremos 2
3= 8 combinaciones posibles:
000
,
001
,
010
,
011
,
100
,
101
,
110
,
111
A trav´
es de secuencias de bits, se puede codificar cualquier valor
discreto como n´
umeros, palabras, e im´
agenes.
Cuatro bits forman un
nibble, y pueden representar hasta 2
4= 16
valores diferentes.
Ocho bits forman un
octeto, y se pueden representar hasta 2
8= 256
valores diferentes.
En general, con
n
bits se pueden representar hasta 2
nvalores
diferentes.
En la mayor´ıa de los computadores ocho bits forman un
byte
(siendo
equivalente al octeto) pero hay excepciones.
Terminolog´ıa b´
asica
Direcci´
on de memoria
N´umero que identifica la posici´on en la memoria asignada a un dispositivo.
La direcci´on es utilizada para la comunicaci´on entre el software y el dispositivo.
La direcci´on de memoria le permite a un programa o a un dispostivo de hardware recuperar la informaci´on que ha almacenado con antelaci´on.
Palabra
Cadena finita de bits que es tratada por los circuitos como una sola entidad, por launidad de control como una instrucci´on y por launidad aritm´etica-l´ogica como una cantidad.
Se les asigna una direcci´on de memoria.
Eltama˜node una palabra hace referencia al n´umero de bits contenidos en ella.
Los computadores modernos normalmente tienen un tama˜no de palabra de 16, 32 64 bits.
Terminolog´ıa b´
asica
Caracteres: est´
an formados por
D´ıgitos decimales: 0,1,2, . . . ,9 Letras: A, B, . . . , Z y a, b, . . . , z.S´ımbolos especiales:$, @, %, &, *, (, ), -, +, ?, /, etc.
Campos:
Grupo decaractereso bytes que transmiten alg´un significado.
Las instrucciones de los lenguajes est´an constituidas por varios campos. Un campo puede estar constituido por una o m´as palabras.
Un campo que consiste de letras puede utilizarse para representar el nombre de una persona.
Terminolog´ıa b´
asica
Registro
Grupo decamposrelacionados.
En un sistema de n´omina, el registro de un empleado en particular podr´ıa estar compuesto por los siguientes campos:
N´umero de seguro social (campo alfanum´erico). Nombre (campo alfabtico).
Direcci´on (campo alfanum´erico). Sueldo por hora (campo num´erico). Deducciones (campo num´erico).
Percepciones de un a˜no a la fecha (campo num´erico). Monto por concepto de impuestos (campo num´erico).
Terminolog´ıa b´
asica
Archivos
Grupo deregistrosrelacionados.
Se utilizan para almacenar informaci´on en forma masiva, relacionada con una entidad, persona o cosas.
El archivo de n´omina de una empresa contiene un registro para cada empleado.
Bases de datos
Grupo dearchivosrelacionados.
Al conjunto de programas dise˜nados para crear y administrar bases de datos se les denominasistema de administraci´on de bases de datos (DBMS).