Logo Studenta

Introducción a las Computadoras Digitales

¡Este material tiene más páginas!

Vista previa del material en texto

Ing. Martín Vernengo, 2018 ~ 2021.
mvernengo@gmail.com
Martin.Vernengo@unahur.edu.ar
Capítulo 1
Introducción a las Computadoras Digitales 
� Digital viene de “digitos” un número fijo de valores posibles contra el analógico donde la cantidad de valores 
posibles entre dos extremos mínimo y máximo es virtualmente infinita;
� Los sistemas digitales preven sólo un número finito de valores (por ejemplo si son 2, el 1 y el 0 son BINARIAS 
además de digitales) y permiten regenerar las señales (= información), eliminando el ruido que las afecta;
Por qué digital y no analógico?
Canal de 
Comunicaciones
ó
Circuito Electrónico
RUIDO
Señal ANALÓGICASeñal ANALÓGICA
Canal de 
Comunicaciones
ó
Circuito Electrónico
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Señal DIGITAL Y BINARIASeñal DIGITAL Y BINARIA
1
bits:
0 1 1 0 1
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
� Por ejemplo en la figura superior vemos una señal digital de 4 niveles y nos damos cuenta que no es tan fácil 
regenerar la señal original cuando aparece el ruido, ya que esos 4 niveles “están demasiado juntos”;
� En cambio, la señal que además de digital es BINARIA, esos dos valores están “bien separados” y salvo que el ruido 
sea realmente muy grande, siempre es posible recomponer la señal original. Pero en compensación, con una señal 
de 4 niveles se puede enviar el DOBLE de bits en el mismo intervalo de tiempo (“velocidad de datos” doble);
Canal de 
Comunicaciones
ó
Circuito Electrónico
RUIDO
Señal DIGITAL NO BINARIA (4 NIVELES)Señal DIGITAL NO BINARIA (4 NIVELES)
Canal de 
Comunicaciones
ó
Circuito Electrónico
Señal DIGITAL Y BINARIASeñal DIGITAL Y BINARIA
Por qué digital binario y no “multinivel”?
1,00 V
0,33 V
0,66 V
0,00 V
0,33 V
1,00 V01
10
11
00
10
01
bits:
bits:
bits:
bits:
bits:
bits:
1
bits:
0 1 1 0 1
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Voltaje versus TiempoVoltaje versus Tiempo
Niveles lógicos: el “1” y el “0”
� Si ahora nos concentramos en un sistema electrónico como lo es una computadora, vemos que 
deben definirse rangos de voltajes para lo que se considera un 0 ó un 1 lógico;
� Entonces, el rango de reconocimiento como 1 ó 0 debe ser mayor a la entrada del sistema
electrónico que lo que se envía a la salida, para acomodar las variaciones debido al ruido.
Rango de VoltajesRango de Voltajes
“1 LÓGICO”
“0 LÓGICO”
CIRCUITO 
ELECTRÓNICO
“1 LÓGICO”
“0 LÓGICO”
Tiempo
Tiempo
RUIDO
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
La Computadora Digital
� CPU = “Central Processing Unit” o Unidad Central de Procesamiento:
� Es el núcleo de toda Computadora Digital y está compuesto por la Unidad Aritmetico Lógica (ALU – Arithmetic Logic Unit), la 
Unidad de Control y un banco de registros (memoria interna);
� Los dispositivos de entrada/salida (input/output) permiten ingresar datos a ser procesados y obtener los datos-
resultado (teclado, mouse, pantalla, discos magnéticos, impresoras, dispositivos de comunicaciones);
� La memoria externa puede ser volátil (normalmente denominada RAM) o permanente (denominada genéricamente
ROM) contiene variables de datos usadas en los programas y las propias instrucciones de programa;
� La Unidad de Control es la parte clave que permite el funcionamiento de la CPU al coordinar las tareas de 
procesamiento realizadas mediante la ALU sobre los datos e instrucciones de programa intercambiados con la 
memoria externa y guardados temporalmente en los registros internos.
Unidad 
Aritmético 
Lógica (ALU)
Unidad de 
Control
Dispositivos 
de Entrada
Dispositivos 
de Salida
Memoria 
Externa 
(RAM/ROM)
Señales de Control
Datos Digitales 
(Información)
Datos de
Entrada
(a procesar)
Datos de
Salida
(procesados)
CPU
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Banco de Registros
(Memoria Interna)
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Qué es un “sistema embebido”
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� Por ejemplo, hoy en día un Aire Acondicionado es un “sistema embebido”, es decir tiene adentro una
computadora para fines específicos que permite medir y controlar parámetros sistemas reales.
� De modo que en el mundo actual las computadoras dejaron de ser “dispositivos especiales” 
utilizados excusivamente para procesar información digital sino que están presentes en casi el 100% 
de los dispositivos tecnológicos utilizados todos los días:
� Electrodomésticos (Lavarropas, Aireacondicionados, Microondas, TV’s y dispositivos de audio/video), 
dispositivos de comunicaciones (switches para redes de computadores, routers wi-fi) , aparatología utilizada
en medicina, sistemas de control de procesos industriales (PLC), etc. etc. etc….
µC /µP
Micro Controlador
ó Micro Procesador
(CPU)
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Diagrama en bloques de un sistema embebido
Sensores
Analógicos
de Entrada
(termómetro)
Sensores
Digitales
de Entrada
(botonera AA)
Conversor
A/D
Microcomputador
ó
Microcontrolador
ó
Procesador Digital
de Señales (DSP)
Conversor
D/A
Actuadores
Analógicos
de Salida
(compresor/ 
motor del AA)
Actuadores
Digitales
de Salida
(indicador de 
temperatura)
Memoria
(Programa de 
Control del AA)
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� Los sistemas embebidos reciben ese nombre por el hecho de tratarse de equipamiento que en forma 
externa no hay forma de determinar si son controlados a través de una computadora, por lo que 
puede afirmarse que hay un “software embebido” almacenado en un “microcontrolador” interno.
� El diagrama en bloques no es muy diferente al de una computadora digital de uso general, salvo por
el hecho de la existencia de:
� Conversores A/D (Analógico-Digitales) a la entrada, para convertir las señales analógicas del mundo exterior a 
formato binario para que pueda ser procesado por la CPU y
� Conversores D/A (Digital-Analógicos) a la salida, para que las señales de control creadas en formato binario
por el programa embebido sean transformadas en actuadores eléctricos (por ejemplo el motor de un 
compresor en una heladera o un aire acondicionado o el de un lavarropas);
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Sensores
Analógicos
de Entrada
(termómetro)
Sensores
Digitales
de Entrada
(botonera AA)
Conversor
A/D
Microcomputador
ó
Microcontrolador
ó
Procesador Digital
de Señales (DSP)
Conversor
D/A
Actuadores
Analógicos
de Salida
(compresor/ 
motor del AA)
Actuadores
Digitales
de Salida
(indicador de 
temperatura)
Memoria
(Programa de 
Control del AA)
Diferenciasentre Computadoras y Sistemas Embebidos
Temperatura Analógica
Tiempo (minutos) Tiempo (minutos)
Temperatura Digitalizada
� En esencia hay dos aspectos que diferencian a una computadora general de los sistema embebidos:
� Como ya dicho, los sistemas embebidos siempre requieren conversores A/D y D/A; 
� Las computadoras son mucho más flexibles en cuanto a los programas con que funcionan (software): deben
serlo ya que tienen un propósito general y no específico.
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Valntino Chiappanni
Resaltado
Capas de Abstracción en una Computadora
� Por “capas de abstracción” entendemos el análisis que puede hacerse de una computadora digital a
distintos niveles de complejidad denominados “capas”:
� A efectos de describir el funcionamiento del sistema, en cada una de esas capas podemos
“abstraernos” de los detalles de la capa inmediatamente inferior;
� Esto tiene la ventaja de poder realizar un análisis del problema a resolver de una manera
primero más general o de “alto nivel”, luego pasando paulatinamente a describir la solución a
niveles cada vez más específicos o de “bajo nivel” a medida que vamos hacia capas inferiores.
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
“Alto” y “Bajo” Nivel
� Las capas superiores brindan una visión más general o “de alto nivel”:
� Esconden las complejidades de la estructura circuital electrónica (“hardware”);
� Permiten comandar la CPU a través de un “listado de directivas” ( “programas” ó “software”);
� Se las denomina de “alto nivel” pues especifican el funcionamiento con mayor generalidad;
� Las capaz inferiores o de “bajo nivel” requieren mayor especificidad cuanto a la forma en la que se 
desea que la computadora opere:
� De modo que cuanto más abajo se encuentra una capa, más cerca se está de describir el funcionamiento de 
los circuitos electrónicos o “hardware”;
+ So
ftw
are
+ A
lto
 N
ivel
+ H
ard
w
are
+ B
ajo
 N
ivel
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Algoritmos
� Son una lista de pasos o instrucciones que deben ser ejecutados
secuencialmente por una computadora digital para obtener un
modelo de solución para un problema planteado.
� Para realizar un programa es conveniente entonces el 
diseño previo del algoritmo. 
� Un lenguaje de programación es sólo un medio para expresar un 
algoritmo, de modo que los algoritmos son independientes de los 
lenguajes de programación.
� Es decir: en cada problema el algoritmo puede escribirse y luego 
implementarse y ejecutarse con un lenguaje diferente de 
programación.
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Algoritmo “Arreglar Lámpara”
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Lenguajes de Programación
� Los lenguajes de “Alto Nivel” como C++, Pascal, Java , etc. contienen las sentencias específicas que 
permiten implementar un algoritmo pero que no pueden en general ser ejecutados directamente 
por la computadora digital que utiliza “código de máquina” constituido por 1’s y 0’s;
� Existe un tipo particular de programa llamado “compilador” que traduce el código de los lenguajes de alto 
nivel al código de máquina que puede ejecutar la computadora;
� Los lenguajes de “Bajo Nivel” (denominados generalmente “assembler” o ensambladores) 
contienen instrucciones muy granulares que están directamente relacionadas con una instrucción 
como realmente las ejecuta la computadora con los códigos de máquina, pero tiene una sintaxis 
entendible para los seres humanos;
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Valntino Chiappanni
Resaltado
Lenguajes de Programación: ejemplo alto nivel
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Algoritmo “Arreglar Lámpara” Lenguaje Alto Nivel
PROGRAMADOR (humano)
input estado_lamp
If estado_lamp == no_enchufada /* = 0
estado_lamp = enchufada /* = 1
return /* FIN PROGRAMA
input estado_foco
if estado_foco == fallado /* = 0
prox_accion = reemp_foco /* = 1
return /* FIN PROGRAMA
prox_accion = compra_lampara /* = 2
return /* FIN PROGRAMA
Lenguajes de Programación: ejemplo bajo nivel
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Código “Assembler” Equivalente Lenguaje Alto Nivel
Código de Máquina (Binario)
011101010011101010010110101011
011101010010010100101010100101
010101110111010101011001010101
101010110001011111010101010000
110010010101001010101001010010
100101010100101001010010100101
101010101010101001010101010111
101010101001010100101010101111
010101010101010100101010100101
010101010111110100000101001110
101010110001011111010101010000
110010010101001010101001010010
100101010100101001010010100101
101010101010101001010101010111
101010101001010100101010101111
010101010101010100101010100101
010101010111110100000101001110
COMPILADOR 
LENGUAJE
ALTO NIVEL
(software)
Correspondencia
directa línea a línea
input estado_lamp
If estado_lamp == no_enchufada /* = 0
estado_lamp = enchufada /* = 1
return /* FIN PROGRAMA
input estado_foco
if estado_foco == fallado /* = 0
prox_accion = reemp_foco /* = 1
return /* FIN PROGRAMA
prox_accion = compra_lampara /* = 2
return /* FIN PROGRAMA
10 instrucciones
de alto nivel
17 instrucciones
de bajo nivel
Registro A (Reg_A)
Registro B (Reg_B)
estado_lamp
estado_foco
prox_accion
17 instrucciones
de bajo nivel
LOAD Reg_A, MEM_estado_lamp
LOAD Reg_B, VALOR_no_enchufada
SUBTRACT Reg_A, Reg_B
JMP_NONZERO SALTO1
LOAD Reg_A, VALOR_enchufada
STORE Reg_A, MEM_estado_lamp
JMP FIN_PROG
SALTO1: LOAD Reg_A, MEM_estado_FOCO
LOAD Reg_B, VALOR_fallado
SUBTRACT Reg_A, Reg_B
JMP_NONZERO SALTO2
LOAD Reg_A, VALOR_reemp_foco
STORE Reg_A, MEM__prox_accion,
JMP FIN_PROG
SALTO2: LOAD Reg_A, VALOR_comprar_foco
STORE MEM__prox_accion, Reg_A
FIN_PROG: RETURN
Sistemas Operativos
� Luego se inventaron los “sistemas batch” 
(procesamiento por lotes) que permitían acelerar el 
proceso y utilizar cintas magnéticas para el ingreso y 
salida de datos (aunque finalmente se imprimía).
� En los primeros días de la computación, no había 
teclados ni pantallas: los usuarios imprimían “tarjetas 
perforadas” que contenían los programas, que se leían 
por un “lector de tarjetas” y los resultados luego de 
“correr el programa” se obtenían en una impresora;
� Todas estas tareas para distintos usuarios que traían sus “tarjetas perforadas” eran realizadas por los 
“operadores” de los centros de cómputos:y el programa que luego se implementó para leer la cinta magnética y 
mandar ejecutar las rutinas una por una sería el “abuelo” de los actuales “sistemas operativos”;
� Los sistemas operativos hoy en día son programas que permiten al igual que en los antiguos sistemas batch que 
varios “usuarios”, que ahora son diferentes programas o procesos de un mismo o varios usuarios, compartan 
recursos tales como el procesador y los dispositivos de entrada/salida, actuando como interfaz con el hardware. 
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Microarquitectura
� Antes ya explicamos lo que era el “código de máquina”: instrucciones codificadas en forma digital binaria 
que sólo pueden ser “entendidas” fácilmente por la CPU y que no tiene sentido que usen los humanos;
� En particular, el área de la CPU encargada de interpretar el 
código de máquina es la Unidad de Control;
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� “Microarquitectura”: es el proceso por el 
cual el código de máquina se transforma 
órdenes (señales de control) dirigidas al 
resto de las partes de la CPU (registros o 
memoria interna a del procesador, 
memoria externa, Unidad Aritmética-
Lógica o ALU en inglés);
� Utiliza un tipo de “programación “ de muy muy bajo nivel, sólo utilizado 
por los diseñadores de microprocesadores, que se llama 
“microprogramación”.
señales de 
control
Transferencias de Registros
� Una instrucción de alto nivel (por ejemplo en 
Lenguaje C++ o Java) puede constar de 
decenas de instrucciones de código de 
máquina;
� Y cada instrucción de máquina a su vez puede 
implicar una secuencia de varias señales de 
control, algo de lo cuál el programador no 
necesita saber nada (por suerte).
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� Cuando la Unidad de Control por ejemplo da la orden a través de señales de control para transferir 
datos de la memoria externa a la memoria interna (mejor conocida como “registros internos” de la 
CPU) o hacia la ALU a la que a su vez le ordena realizar una suma, estamos en el domino de la capa 
que hemos denominado “Transferencia de Registros”;
� Compuerta AND (“Y” en inglés): la salida sólo es un “1” binario si la entrada 1 Y la entrada 2 Y la entrada 3 
… Y TODAS las entradas son 1 (o lo que es lo mismo: es “0” si una o más de sus entradas es “0”);
� Compuerta NOT (“NO en inglés): invierte la salida (de “0” a “1” y viceversa);
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Compuertas Lógicas
� Este tema será estudiado en detalle más adelante pero por ahora veamos un ejemplo simple de 
dos compuertas lógicas con las cuales en rigor podría construirse toda una computadora digital:
1
1
…
1
1
1
0
…
1
0
1 0
0 1
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Algoritmos
Lenguajes de Programación
Sistemas Operativos
Microarquitectura
Transferencias de Registros
Compuertas Lógicas
Circuitos de Transitores
Circuitos de Transistores
� En las CPU modernas hay miles de millones de transistores con los que se construyen las 
compuertas lógicas (ejemplo de una NOT abajo) que son la base de su funcionamiento.
Señal de Control:
S = +5 Volts (*) = “1”: Llave Cerrada.
S = 0 Volts = “0”: Llave Abierta.
(*) 5 volts es un ejemplo.
= R +5V
−
1 0
0 1=
Entrada NOT:
5 Volt = “1”
0 Volt = “0”
Salida NOT:
0 Volt = “0”
5 Volt = “1”
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Principio de Equivalencia Hardware-Software
� Está implícito en el modelo de “capas de abstracción” y nos dice que:
“Todo aquello que puede realizarse a través de software (programas), también
puede realizarse con hardware (circuitos electrónicos/compuertas lógicas)”.
� Ejemplo:
SoftwareSoftware
if A = 1 AND B = 1 then
C = 1
else
C = 0
endif
HardwareHardware
=
� Antes de la invención de las computadoras y sobretodo los microprocesadores, las 
aplicaciones simples de control de equipos que actualmente se realizan con los sistemas
embebidos, se hacían directamente con hardware que “programaba” su funcionamiento:
� Ejemplo: “encender el microondas (C=1) sólo si el usuario presionó el botón de calentar (A=1) Y 
ADEMÁS (AND) la puerta del microondas se encuentra CERRADA (B=1)”.
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
if A = 1 AND B = 1 AND D = 1 then
C = 1
else
C = 0
endif
D
Modificación !
Los FPGA’s y la posibilidad de “programar hardware”
� En los últimos 20 a 30 años han surgidos dispositivos que gradualmente han ido
permitiendo a los ingenieros desarrollar hardware de microelectrónica programable hasta 
llegar con los FPGA a la posibilidad de “crear su propia CPU”;
� Con los FPGA (“Field Programmable Gate Array”, “Arreglo de Compuertas [Lógicas] 
Programable en Campo”) es posible directamente crear un microprocesador de manera
flexible, es decir todo aquello que normalmente “viene fijo” en un procesador de Intel o 
AMD, aunque el objetivo NO ES competir con ellos (y sería casi imposible…);
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� La utilidad de los FPGA está en
desarrollar CPUs o circuitos
inteligentes que cumplan un 
objetivo específico: por
ejemplo procesamiento de 
señales, cálculos en paralelo
(mayor rapidez) con un 
algoritmo específico;
� Hasta existe un lenguaje que 
permite programarlos (son 
“HDLs” o “Hardware 
Description Languages”)y 
“escribir un chip” a través de 
una herramienta electrónica: 
por ejemplo VHDL es uno y 
Verilog es otro. 
Historia de las Computadoras: las tarjetas perforadas
Herman HollerithLa tarjeta de Hollerith card tal como mostrada en la la
Railroad Gazette, en 1895, con 12 filas y 24 columnas
� El sistema de tarjetas perforadas se ideó inicialmente para “programar” máquinas
textiles para tejer patrones fue perfeccionado en 1801 por J.M.Jacquard, en base a
diseños originales con papel perforado que databan de tan tempranamente como
1725 también en Francia (Bouchon, Falcon y Vaucanson);
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Joseph Marie JacquardPerforadora de Tarjetas de Jacquard
� Las máquinas de Jacquard no
utilizaban un sistema eléctrico
para sensar con las tarjetas
perforadas pero eso fue lo que sí
realizó Herman Hollerith para
obtener más rápidamente los
resultados del censo de 1890 en
los EUA;
� Hollerith fundó la compañía que
más adelante se llamaría IBM y
que por muchos años fue el líder
absoluto de la industria de la
computación.
Diseños de 1840 y 1842 realizados con un “Telar de Jacquard”
� En algún sentido, podría decirse que fue el primer sistema de
producción automatizado por métodos “informáticos”;
Historia de las Computadoras: los comienzos
� La primera computadora no electrónica (electromecánica) fue ideada Charles Babbage en el año 1833 y era lo que
podríamos hoy día llamar una “calculadora programable” y la llamó “Máquina Analítica”;
Charles Babbage
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Ada Byron 
Condesa de Lovelace
� Babbage sólo pudo construir una versión previa llamada “Máquina Diferencial”
concebida sólo para cálculos muy específicos con polinomios y sólo
parcialmente pudo construir la siguiente versión, la “Máquina Analítica” que
era lo que hoy denominaríamos una computadora de uso general;
� Aunque no pudo hacerla funcionar completamente, sí pudo realizar un diseño integral
en el papel;
� Ya contenía la idea de una “Unidad Aritmético Lógica”, de una “Memoria” y hasta de
un “Programa” donde incluso se preveía la posibildad de saltos condicionales (el “if”);
� Estabaprevisto que los programas se introdujeran con tarjetas perforadas,
inspirándose en los telares de Jacquard y lo que sería el método que un siglo después
utilizaron las computadoras digitales (como veremos);
� El diseño de la “máquina analítica” de Babbage, incluso preveía la primera impresora
automática como sistema de salida, algo que también utilizaron las primeras
computadoras construidas un siglo después;
� Ada Byron (hija del famoso escritor británico y luego casada
con el Conde de Lovelace, por eso también conocida como
Ada Lovelace), fue una de las primeras matemáticas mujeres
eminentes de la historia;
� Es considerada “la primera programadora de la historia” ya
que además de ayudar a Babbage a promover y buscar
financiación para su proyecto, generó algunos programas
para la computadora (eran diseños teóricos ya que como
dijimos Babbage no logró implementar su “máquina
analítica” completamente);
� En su honor, en 1977 se creó un Lenguaje llamado “Ada”;
Historia de las Computadoras: George Boole
� Nacido en 1815, fue profesor de matemáticas en el
Queen’s College (una Universidad) de Cork, Irlanda;
� Como inventor del álgebra que hoy en día se conoce como
“Álgebra de Boole” en su honor, que marca los
fundamentos de la aritmética computacional moderna,
Boole es considerado como uno de los fundadores del
campo de las Ciencias de la Computación;
� En 1854 publicó “An Investigation of the Laws of Thought
on Which are Founded the Mathematical Theories of Logic
and Probabilities”; George Boole
� Se podría decir que es el padre de los operadores lógicos simbólicos y que gracias a su
álgebra hoy en día es posible operar simbólicamente para realizar operaciones lógicas;
� Como veremos más adelante, el diseño de los circuitos internos de las computadoras
digitales modernas (la capa que anteriormente denominamos “Compuertas Lógicas”)
utiliza el Álgebra de Boole.
� Allí desarrolló un sistema de reglas que le permitían expresar, manipular y simplificar
problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o
falso, ó 1 y 0) por procedimientos matemáticos;
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� La Segunda Guerra Mundial fue una de principales motores para acelerar el 
desarrollo de computadoras digitales y de la computación como ciencia;
� Nacido en Londres, Alan Turing (1912-1954) es considerado uno de los padres de 
la ciencia de la computación y precursor de la informática moderna. 
� Proporcionó una influyente formalización matemática de los conceptos de algoritmo y 
computación: la máquina de Turing;
� Fue el primero en definir, en 1937 qué es y qué limitaciones tiene una computadora, a 
la que definió en términos puramente matemáticos como un “Autómata Finito”.
La 2da Guerra Mundial y las primeras computadoras electrónicas
Alan Turing
� Turing fue el que decifró los códigos secretos de la Alemania Nazi de la 
“Máquina Enigma” y luego los códigos FISH:
� Para poner en práctica los algoritmos de desencriptación de mensajes de 
Turing, el gobierno británico construyó una de las primeras computadoras
digitales de propósitos específicos , la COLOSSUS MARK I;
� La primera COLOSSUS funcionaba con 1500 válvulas y entró en servicio en
Junio de 1944, siendo las ideas de Turing esenciales para su desarrollo;
� Los datos (de los mensajes secretos) se leían con una cinta perforada;
� No se la puede considerar la primera computadora ya que no era de “fines 
generales” o sea, no permitía resolver cualquier problema planteado;
� Konrad Zuse en Alemania desarrolló una computadora, la Z1, que si bien utilzaba relays 
(electromecánica) su intención fue utilzar válvulas y sólo no lo pudo hacer por falta de esos
suministros debido a la guerra (el gobierno nazi no financió su proyecto, por suerte);
� John Atanasoff (1904–1995) fue un norteamericano que diseñó y construyó la primera
computadora digital binaria con válvulas en 1939 pero tampoco era de “propósitos generales”;
� Servía para resolver un problema matemático particular (ecuaciones lineales);
� Sin embargo, el trabajo de Atanasoff fue el inspirador para los inventores de la primera computadora
digital de propósitos generales, la ENIAC.
Teoría de Autómatas
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
La “Primera Generación”: la ENIAC 
Folleto del ejército estadounidense ofreciendo 
trabajo en la ENIAC, 1946.
� Se considera como primera computadora electrónica
digital (binaria) de propósitos generales la que se 
desarrolló y construyó durante la Segunda Guerra 
Mundial financiada por el ejército de EUA, la ENIAC ó 
“Electronic Numerical Integrator and Computer”;
� La ENIAC fue inventada por J. Mauchly y J. P. Eckert 
(profesor y alumno), quienes estaban en una universidad
cerca de Philadelphia, donde el primero era profesor de 
Física y deseaba acelerar los cálculos meteorológicos. 
� Mauchly estaba al tanto del trabajo de Atanassof.
� No pudiendo recibir fondos de la universidad, y sabiendo
Mauchly que el ejército de EUA necesitaba acelerar los
cálculos de tablas de trayectorias balísticas, propuso y 
obtuvo financiación para el proyecto;
� Sin embargo la computadora no pudo ser utilizada durante
la guerra, ya que se puso en servicio recién en el año 1946.
=
� Utilizaba 17.468 válvulas, ocupaba
un espacio de casi 170 m2, pesaba 30 
toneladas y consumía una potencia
de 170 Kilowatts, pero su memoria
de datos era lo equivalente a menos
de 128 bytes! (1000 bits) y se 
ingresaban por tarjetas perforadas;
� Si bien funcionaba en base a lógica
circuital binaria, la Unidad Aritmético
Lógica (ALU) era decimal;
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Cómo se “programaba” la ENIAC
� Esto hacía muy engorroso “programar” la 
computadora (en esa época se hacía directamente en
código de máquina, ni siquiera era “assembler”);
CPU
REGISTRO A
ALU
UNIDAD DE 
CONTROL
MEMORIA
EXTERNA
DISPOSITIVOS
DE ENTRADA / SALIDA
� La ENIAC se programaba conectando cables: el “código
de máquina” no eran estrictamente hablando 1s y 0s 
sino “cable conectado” =1 ó “cable no conectado” = 0;
Sólo 
Datos
6000 cables e 
interruptores
Folleto del ejército estadounidense ofreciendo 
trabajo en la ENIAC, 1946.
REGISTRO B
REGISTRO C REGISTRO D
MEMORIA INTERNA 
(REGISTROS)
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
cable conectado = 1, 
cable desconectado = 0
= código de máquina= “Programa” 
Arquitectura de Von Neuman
� Debido a la gran lentitud que implicaba la “programación con cables”, para la próxima computadora, 
la EDVAC, surgió la idea de almacenar los 1s y 0s del código de máquina en la misma memoria;
� La idea fue aportada por el famoso matemático húngaro (y genio) nacionalizado estadounidense, John Von 
Neuman, quien era uno de los colaboradores para ENIAC y estaba en la Universidad de Princenton;
� Nota: en algunos libros se menciona esta idea como original de los propios Mauchly y Eckert, quienes no 
pudieron publicarla al ser el de la ENIAC un proyecto clasificado secreto;
� Pero un aporte indiscutido de Von Neuman fue dejar de lado la aritmética decimal y utilizar la binaria;
� Las primeras computadora construidas en base 
al paradigma de Von Neuman, es decir
“Computadoras Digitales por Programa
Almacenado” y enteramente binarias fueron la 
EDVAC (construida por Mauchly y Eckert para 
el ejército de EUA) y la EDSAC en la Universidad 
de Cambridge, Reino Unido y ambas entraron
en servicio en el año 1949;
Programas
010110101… 
� Hubo que agregar un registro interno adicional, 
el INSTRUCTION POINTER (IP), también
llamado habitualmente PROGRAM COUNTER 
(PC) para almacenar la dirección de la memoria
donde está guardado el código de máquina de 
la próxima instrucción a realizar;
� El PC se va incrementando para ejecutar
secuencialmente las instrucciones:
� Salvo cuando hay un salto de programa (un “if”) 
en que la ALU se utiliza para incrementar o 
decrementar el PC.
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
CPU
REGISTRO A
ALU
UNIDAD DE 
CONTROL
MEMORIA
EXTERNADISPOSITIVOS
DE ENTRADA / SALIDA
REGISTRO B
REGISTRO C REGISTRO D
MEMORIA INTERNA
(REGISTROS)
PROGRAM 
COUNTER (PC)
DATOS 
(VARIABLES)
CÓDIGO DE 
MÁQUINA
+ Datos
dirección del dato 
(variable o código de máquina)
“Computadora Electromecánica”
(digital, mas no electrónica).
El problema de la primera generación de computadoras
� Las primeras computadoras digitales, aunque no electrónicas (ejemplo la Z1 de K. Zuse) fueron
construidas con relés, que servían para generar un “1” con llave abierta y un “0” con llave cerrada;
R +
5V
−
1 0
0 1=
Salida NOT:
0 Volt = “0”
5 Volt = “1”
Entrada NOT:
5 Volt = “1”
0 Volt = “0”
“Compuerta NOT a relé”
Utiliza un electroimán y un 
resorte para atraer o repeler 
la pieza móvil de la llave
PROBLEMAS:
- Tamaño grande;
- Bajísima velocidad;
- Ultra baja confiabilidad 
(contactos defectuosos).
� Las válvulas de vacío, inventadas a comienzos del siglo XX mejoraban mucho la velocidad, pero no el 
del tamaño y la confiabilidad era aún baja (se quemaban como las lamparitas de luz eléctrica),
- - -
+
5V
−
Entrada NOT:
5 Volt = “1”
0 Volt = “0”
“Computadora Electrónica”... 
… pero a Válvulas.
Los electrones son atraidos
por la tensión positiva y el 
vacío elimina el aire que 
impediría su movimiento.
Salida NOT:
0 Volt = “0”
5 Volt = “1”
+ + + + 
La reja de mando puede impedir que los electrones 
pasen (abre la llave) si se le aplica una tensión 
negativa respecto del cátodo.Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� La mayoría de las personas centralmente involucradas en el desarrollo de las primeras computadoras
como la ENIAC terminaron fundando compañías propias para fabricar computadoras;
� Mauchly y Eckert fundaron EMCC y a la Oficina del Censo de los Estados Unidos para que encargasen 
una computadora que se transformaría en la antecesora de la famosa Sperry UNIVAC (UNIVAC = 
Universal Automatic Computer), consiguiendo en 1948 un contrato para elaborar el censo de 1950, 
aunque no llegaron a tiempo para cumplir el diseño.
Los comienzos de la industria de computadoras/IT
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� La empresa lanzó 
un ambicioso 
programa para 
diseñar y fabricar 
computadoras a 
gran escala, sin 
embargo sólo el 
gobierno, 
universidades y 
megacorporacion
es tenían dinero 
para comprar una 
computadora;
� Uno de los 
grandes logros 
fue el uso de la 
cinta magnética 
para 
almacenamiento 
a gran velocidad; 
� Crearon un departamento de software con el que desarrollaron aplicaciones, comenzando por el primer 
compilador de Lenguaje "Shortcode" del mundo;
� Años después la empresa fue comprada y de ella deriva la empresa UNISYS, que sigue en el mercado de IT.
Los comienzos de la industria de computadoras/IT
� Ya habíamos visto que Hollerith, el pionero que utilizó 
tarjetas perforadas para el censo de EUA en 1890 fue 
quien fundó la compañía que años después se llamó IBM;
� Pero IBM no estuvo interesada en el negocio de 
computadoras hasta 1953, cuando lanzó la IBM 701;
� Tenía una memoria (RAM) de hasta 4096 palabras de 36 bits 
(lo equivalente a 18 Kilobytes!) ;
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� IBM fue durante largos años hasta la década del 1980 “la 
Coca Cola de la informática”, hablar de esta empresa en 
la década del 70 e incluso de los 80 era como desde 1990 
en adelante hablar de Microsoft;
� IBM esperaba mantener su posición en el mercado al tener los 
derechos de licencia del BIOS, y manteniéndose delante de la 
competencia. Desafortunadamente para IBM, otros fabricantes 
rápidamente hicieron ingeniería inversa del BIOS y produjeron 
sus propias versiones sin pagar derechos de uso a IBM.
� Pero al crear la “IBM-PC” en 1981 y licenciar la utilización del firmware BIOS 
para la fabricación de PC’s por terceros, terminó perdiendo el control sobre
este mercado de hardware que hoy domina la industria informática a manos
de Intel y Microsoft, los fabricantes del entonces procesador 8088 y el sistema
operativo DOS;
� Sin embargo, hoy en día IBM sigue siendo una empresa muy 
importante en el mercado de la informática, que factura del 
orden de 80 mil millones de dólares anuales (el 20% del PBI 
Argentino) no obstante muy diversificada hacia el software y 
la consultoría informática con sólo alrededor de 10% de su 
facturación proveniente de hardware tal como servidores de 
alta performance.
� Aunque hubo algunas versiones anteriores de transistores (de “efecto de campo”) en la década de 
1920 que se pantentaron, no llegaron a ser utilizados;
La “Segunda Generación”: transistores discretos
John Bardeen, William Shockley y 
Walter Brattain (Bell Labs, 1948 ).
=+VC−
� �
��
�
� � �����
+
V
B
−
� �
��
�
� � �����
+
V
C
−
� La aplicación como “trans-resistor” de la figura superior se dio en la 
electrónica analógica (en la época: para disminuir el tamaño de radios 
y TV’s que funcionaban con válvulas), pero en la electrónica digital 
(computadoras) el funcionamiento del transistor también se hizo
“digital” (binario):
� Resistencia CERO: llave cerrada;
� Resistencia INFINITA: llave abierta.
=
Modo Digital
� El nombre “transistor” significa en realidad “trans-resistor”, lo que permitía en general es cambiar la 
resistencia eléctrica entre dos puntos (“C” y “E” en la figura, Colector y Emisor) a través (de ahí
“trans”) del voltaje aplicado a un tercer punto (“B” en la figura, Base);
� La primera versión de transistor que tuvo un 
impacto directo en la tecnología (los
“transistores bipolares”) y cuyo
funcionamiento pudieron explicar sus
inventores, ganando por ello el premio Nobel 
de Física de 1956, surgió en el año 1948;
� Utilizaban semiconductores (Germanio, Silicio) que al 
ser “contaminados” con impurezas generaban dos tipos
de portadores carga, los electrones (semiconductor 
tipo “N”) y las “lagunas” (semiconductor tipo “P”);
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Las primeras computadoras con transistores
� La primera computadora a transistores fue construida en el MIT (Massachusetts Institute of 
Technology) y se llamó TX-0 (computadora Transistorizada eXperimental) en 1956;
� Uno de los ingenieros que trabajaba en el laboratorio, Kenneth Olsen, fundó en 1957 la que luego fue la 
famosa DEC (Digital Equipment Corporation) que fabricaba los también famosos computadores PDP.
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� La reacción de IBM fue construir
la primera computadora a 
transistores, la IBM 7090 en 
1958, luego la IBM 7094, 
convirtiéndose en el gran 
protagonista de la computación
científica en esos años;
PDP-1 (US$ 120.000 de 1961)� La primera computadora, la 
PDP-1, de 1961, costaba en el 
orden de decenas de miles de 
dólares en lugar de millones
(US$ 120.000 que a precios
actuales equivale a cerca de 
un millón de USD);
� Las computadoras a transistores fueron el comienzo de la 
industria de los “MINICOMPUTADORES”, habiendo dos tipos
de computadoas, las “científicas” (para universidades y 
gobierno) y las “comerciales” (empresas).
IBM-7090 (US$ 3 millones de 1958) IBM-1401 (US$ 370 mil de 1959)
� En 1954 , para competir con DEC en el mercado de las minicomputadoras, IBM lanzó el modelo
1401 (US$ 370.000), aunque se podía alquilar a US$ 2500/mes (estos valores hay que 
multiplicarlos por 8 para compararlos con precios del año 2021);
� Jack Kilby (en Texas Instruments) primero y Robert Noyce (co-fundador
de Fairchild Semiconductor) 6 meses después, inventaron en 1958 el 
“circuito integrado”;
� También comunmente llamado “chip” (con referencia a la pastilla
cuadrada de silicio donde se implantaban decenas de transistores);
� Kilby recibió el premio Nobel de Física en el año 2000 por este logro ;
� El de Noyce fue más importante, pues se hizo en Silicio y no Germanio (Kilby);
La “Tercera Generación”: circuitos integrados
Robert Noyce
� La idea fue colocar más de un transistor en un chip de silicio mediante el uso
de una máscara fotográfica con la que junto con la utilización de luz 
Ultravioleta (UV) se podíacontrolar en qué zonas se aplicaban contaminantes
de un tipo u otro, para generar zonas de “semiconductor P” y “N” en
espacios cada vez más pequeños y allí donde se quisiera;
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Proceso de fabricación de Circuitos Integrados
Resina fotosensible que 
aún es resistente al 
“ataque ácido”
Luz UV (UltraVioleta) Resina resistente al ácido
Resina NO resistente al ácido
ácido
Óxido de Silicio (aislante eléctrico)
Silicio “tipo N” 
(semiconductor)
O2
MÁSCARA 
(proceso litográfico
Creación de una “isla de Silicio Tipo 
P” por medio de implantación de 
impurezas de Boro
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Los Circuitos Integrados por dentro
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� Lo que se ve en la figura grande es el resultado de la aplicación de las máscaras sucesivas y de distintas “islas” de 
semiconductores “N”, “P”, óxido de silicio y metalizaciones para interconectar los transistores entre sí.
Conexiones de oro (alta confiabilidad) del “chip” (circuito integrado) al circuito externo
Encapsulado 
protector de 
resina epoxy
(polímero)
Primeras Computadoras con Circuitos Integrados
� Las IBM 7094 y el modelo 1401 (el primero compacto de IBM), 
ambos basados en transistores individuales, tenían softwares
completamente incompatibles entre sí;
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� DEC lanzó en 1965 el PDP-8, también con circuitos integrados
híbridos que fue su primer gran éxito comercial y una de las 
computadoras más baratas hasta entonces: 
� US$ 18.500 ( x 8 a valores actuales…!!!) y en 1970 lanzó el PDP-11, 
que siguió utilizándose hasta 1997;
� DEC al igual que IBM fue impactada por el aparecimiento de los
clones de la IBM PC, aunque intentó competir con sus modelos “no 
compatibles” en la década de 1980;
� La empresa fue vendiendo progresivamente sus unidades de 
negocios durante los 1990, por ejemplo a Oracle y Compaq (1998), y 
dejó de existir (Compaq fue luego comprada por Hewlett-Packard);
� En 1964, IBM lanzó la primera computadora con circuitos
integrados “híbridos”, el System/360 ó simplemente S/360, que 
fue un ícono de toda una época y un gran éxito comercial (se 
comercializó hasta 1977 y luego se continuó con los S/370 en 
1970 y S/390 hasta los años 1990);
� Pero una innovación casi tan importante como los circuitos
integrados fue la “compatibilidad hacia atrás”: 
� Los S/360 eran sistemas que podían venir en varios tamaños y todo el 
software corría sin problemas en las versiones anteriores;
� Esta compatibilidad hacia atrás se debió a que IBM introdujo la “microprogramación” (ya mencionada en la 
introducción), que permitía “programar” las señales de control de la Unidad de Control en forma similar a 
software y de esa forma facilitar el diseño de CPUs compatibles con otras);
� La microprogramación permitía a la S/360 incluso emular las primeras computadoras de IBM, la 701 y la 
7090/4 y de esta forma surgía la novedad que hoy en día es habitual de poder utilizarse el software 
previamente aplicado a otras plataformas.
� En abril de 1965, uno de los ejecutivos
de Fairchild Semiconductor, Gordon 
Moore observó que la cantidad de 
transistores que se podían colocar
dentro de una pastilla o chip de silicio se 
duplicaba cada 18 meses a dos años, 
afirmación que hasta aproximadamente
el 2012 se viene cumpliendo;
La “Cuarta Generación”: las PC y los Servidores (VLSI)
� En 1968 el inventor de los circuitos integrados en 
Silicio y co-fundador de Fairchild, Robert Noyce dejó
la compañía junto con G. Moore para fundar INTEL. 
� Como era previsible por la “Ley de Moore” (como se popularizó la predicción), en 1970 
se lanzaron al mercado las primeras CPU’s enteramente contenidas en una pastilla de 
Silicio, aunque eran versiones que manejaban palabras de “½ byte” (4 bits);
� El primero fue un desarrollo para los aviones F14 de la marina en 1970, el MP944;
� Intel lanzó en 1971 el 4004 (de 4 bits), el tátarabuelo de los Pentium y sucesores;
� Utilizaban (y se siguen utilizando) un tipo de transistor distinto del transistor “bipolar” 
descubierto en 1948, el transistor MOS (Metal Óxido Semiconductor) que permite un mucho 
mayor nivel de integración;
� En 1974 Intel lanza el 8080 (8 bits) y en 1976 el primer microprocesador de 16 bits, el 8086, pero IBM 
decide utilizar la versión posterior de 8 bits, el 8088 (1979) para desarrollar la IBM PC;
� Como IBM (equivocadamente) utilizó chips de mercado y publicó integralmente la ingeniería de la IBM PC, 
además de usar el MS-DOS de la naciente Microsoft como sistema operativo, esto significó el aparecimiento de 
los “clones de IBM” y en definitiva de la era actual de computación personal pervasiva.
El Intel 4004
� En 1972 Intel lanza el 8008, el primer microprocesador de 8 bits y sucesivamente varias compañías
introducen decenas de microprocesadores similares de 8 bits durante la década de 1970:
� Ejemplos: Motorola 6800 (1974), Motorola 6809 (1976), Zilog Z-80 (1976);
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
� Actualmente nos encontramos de lleno en la “era del paradigma Cliente-Servidor” en la 
arquitectura de los sistemas informáticos; 
� Es un modelo de diseño de interconexión de hardware e implementación de “software distribuido”, donde 
las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los 
demandantes, llamados clientes, que por lo tanto son “inteligentes”, ya que tienen su propia CPU, al igual 
que el servidor. 
� Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta;
� El objetivo de esta arquitectura es que muchos usuarios puedan acceder simultáneamente a 
servicios compartidos de procesamiento y almacenamiento de datos y programas.
Paradigma Cliente – Servidor versus…
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
Clientes
(“inteligentes”)
Servidor
Switch/Hub
Wireless Router
(Access Point)
Internet
(WAN con protocolo IP)Router IP
Router IP
Red de Área Local
(LAN)
Interacción
permanente
LAN = “Local Area Network”;
WAN = “Wide Area Network”;
CPU
CPU
CPU
CPU
CPU
CPU
� Sin embargo este paradigma no fue el inicial con el que arrancó la historia de la computación y 
está en constante evolución (como veremos en las próximas láminas);
� En los primeros días de la computación (años 1950) no había recursos que compartir, había siempre un 
solo usuario que tenía a su disposición una “gran computadora personal”;
� Luego, en los años 1960, cuando bajó el precio de las computadoras de millones de dólares a centenas y 
decenas de miles de dólares, creció el número de usuarios y se inventaron los sistemas “batch” ya vistos:
Paradigma Cliente – Servidor versus… los “mainframes”
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
…
Fila (“queue”) de usuarios
� A medida que la cantidad de usuarios creció
todavía más y la tecnología evolucionó, fue
posible crear los sistemas de “time sharing” 
(“tiempo compartido” pero nada que ver con turismo):
� Con el uso de “terminales bobos” (“dumb terminals” en 
inglés) permitía que un usuario por vez accediera a una
porción de “tiempo de procesador”, teniendo la ilusión de 
tener una “CPU dedicada”;
� No se lo considera en general como un sistema “cliente-
servidor” (aunque podríamos decir que sí lo era, pero con 
clientes “no inteligentes” que no tenían ninguna capacidad 
de procesamiento propia) y sólo pedían ejecutar programas 
y recibir los resultados en forma remota.
� Este tipo de sistemas aparecieron progresivamente durante 
la década de los 60 y se generalizaron en los 70.
Fila de Procesos
(“process queue”)
“Time Sharing”
(“Tiempo Compartido”)
“Batch Processing”
(“Procesamiento por Lotes”)
CPU
(sin CPU)
(sin CPU)
(sin CPU)
CPU
Nota: los primeros terminales ni tenían
pantalla, eran teletipos: se imprimía en papel y 
simultáneamente se envíaba al mainframe.
� Durante los 70 fue justamente el período de tiempo en que se desarrollaron las primeras 
“computadoras personales”,ya que estaban en pleno desarrollo los microprocesadores, que 
abarataron la computación hasta dejarla en el orden de las centenas de dólares;
� Inicialmente, esto sólo significó que las compañías seguían teniendo los mismo mainframes que 
antes, y las personas pasaron a poder también tener computadoras en sus casas – pero como 
internet todavía no llegaba al hogar, esto sólo era una versión más barata de la computación que 
había existido en la década de 1950;
Los 1970 – 1980: transición hacia el “cliente-servidor”
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com
(sin CPU)
� Sin embargo, las compañías como ya tenían redes propias (no internet aún), comenzaron a utilizar 
algunas PC como “terminales bobos”, mediante un software que emulaba a estos últimos:
� Esto tenía la ventaja de que los usuarios corporativos podían usar la PC para programas simples como 
procesadores de texto y utilizaban la PC como “terminal bobo” para acceder a los sistemas administrativos 
del mainframe;
(sin CPU)
(CPU)
CPU 1
(mainframe)
CPU 2
(mainframe)
IBM
DEC
� Incluso una PC tenía la ventaja de que si 
había dos mainframes diferentes (para 
aplicaciones distintas), con “terminales 
bobos” diferentes, con una misma PC 
podía emularse cualquiera de ellos.
� A nadie se le ocurría en 
esa época quitar los 
mainframes y sustituirlos 
por aplicaciones cliente en 
las PC’s, mudando datos y 
aplicaciones a servidores;
� Pues la inversión en 
mainframes era alta y no 
había internet extendido 
(los protocolos de 
comunicaciones como el 
IBM-SNA eran propietarios 
de los mainframes).
� En los últimos 10 años viene desarrollándose este 
paradigma, que comenzó con aplicaciones sólo de 
almacenamiento en Data Centers lo que luego dio lugar a 
una serie de servicios adicionales:
� Saas = “Software as a Service”: esencialmente qué es 
esto? Ni más ni menos que la “vuelta a los mainframes”, 
que ahora son los servidores de un “data center”, pero en 
la era de internet. 
� El software reside en un servidor del data center y una PC 
“boba” sólo solicita que se ejecute y recibe datos en forma 
remota… las PC vuelven a ser en cierta medida “dummy
terminals” y toda la inteligencia está en los servidores;
� Una sola instalación de software es compartida por diferentes 
compañías, no se pagan costosas licencias sino un “alquile#, 
no se consumen recursos del lado del cliente ni hay que gastar 
en la realización de costos upgrades, entre otras ventajas;
� Cloud Computing: más amplio que Saas, incluyéndolo pero 
adicionando muchos otros recursos computacionales como 
servidores donde se alojan los datos, pudiendo 
gestionarlos y hacer back-ups en la nube como propios;
� Virtualización: implica simular casi cualquier cosa “en la 
nube”, Sistemas Operativos que corren remotamente en 
una máquina cliente, distintos tipos de hardware como por 
ejemplo servidores que en realidad son uno solo dentro 
del Data Center.
“Cloud Computing” y SaaS, surge un nuevo paradigma?
“The Data Center is the
new Mainframe”
www.brightworkresearch.com
Ing. Martín Vernengo, 2021.
mvernengo@gmail.com

Otros materiales