clase 2

ARQUITECTURA DE COMPUTADORES
Descripción y Objetivo


La materia está orientada a que el alumno obtenga una visión técnica de la organización y arquitectura de los computadores modernos mediante el análisis, diseño y evaluación de los niveles de abstracción en la cual están organizados los sistemas computacionales modernos.
Metodología
  •      Autoaprendizaje - Lecturas
  •      Clases Expositivas – Trabajos grupales
  •         Proyecto invididual y grupal Hardware Libre
  •         Hardware y configuración arduino
  •         Trabajo Grupal de Investigación
  •     Página WEB: http://www.actiweb.es/renerivera

¿Qué es un computador?

DEFINICIÓN DE LA RAE:
Máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de información, capaz de resolver problemas matemáticos y lógicos mediante la utilización automática de programas informáticos.
Se acepta computador o computadora.

DEFINICIÓN DE Stallings:
Máquina digital electrónica programable para el tratamiento automático de la información, capaz de recibirla, operar sobre ella mediante procesos determinados y suministrar los resultados de tales operaciones.

Introducción

Distinguir entre Arquitectura y organización”
l  Arquitectura se refiere a los atributos físicos y organización la estructura interna de funcionamiento.
l  La organización de Computadores se refiere a las unidades funcionales y sus interconexiones que dan lugar a especificaciones arquitectónicas.
l  Detalles Hardware transparentes al programador tales como señales de control, interfaces entre el computador y los periféricos y la tecnología de Memoria usada.








 



 La generación 0 (hasta 1945)
          Ábacos
          Calculadoras mecánicas.
Tu





  

     Difference Engine (1822)

Primera Computadora Digital (mecánica)
Usada para calcular tablas numéricas, calculaba cualquier función algebraica y almacenaba números. Se programaba con tarjetas.

Charles Babbage y Ada Lovelace.








Harvard Mark I (1930)

Usada para computar tablas matemáticas y de navegación.









La primera generación (1940-1955)


Luego se utilizan tubos al vacío
Eran enormes (20.000 tubos) y lentas (un ciclo » 1 seg.)
Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina.
Toda la programación se hacía en lenguaje máquina (alambrando tableros por ejemplo).
No existían los sistemas operativos.
En 1950 se introducen las tarjetas perforadas.


              Colossus (1945)








                                     ENIAC (1946)           



UNIVAC (1946)









           



 Manchester Mark I (1948)
Primera máquina que funcionó con un programa almacenado.
John von Neumann, Princeton





La segunda generación (1955-1965)
Se introducen los transistores.
Distinción entre diseñadores, constructores, programadores, operadores y personal de mantenimiento.
Mainframes en salas acondicionadas.
Se escribían los programas en papel, luego se perforaban las tarjetas, cuarto de entrada, café, esperar la salida.
Los operadores toman las tarjetas del programa y colocan también los del compilador.
Se crea el proceso por lotes que agrupa trabajos.





JOHNNIAC   (1954)









Tarjeta sin perforar








Tarjeta perforada









Transistores y sistemas por lote


La introducción del transistor a mediados de la década de 1950 alteró el panorama radicalmente. Las computadoras  se  hicieron  lo  bastante  confiables  como  para  poderse  fabricar  y  vender  a  clientes comerciales con la expectativa de que seguirían funcionando el tiempo suficiente para realizar algo de trabajo útil. Por primera vez, había una separación clara entre diseñadores, constructores, operadores, programadores y personal de mantenimiento.
Estas máquinas se encerraban en cuartos de computadora con acondicionamiento de aire especial, con equipos de operadores profesionales para operarias. Sólo las grandes empresas, o las principales dependencias del gobierno o universidades, podían solventar el costo de muchos millones de dólares. Para ejecutar un trabajo (es decir, un programa o serie de programas), un programador escribía primero el programa en papel (en FORTRAN o ensamblador) y luego lo perforaba en tarjetas. Después, llevaba el grupo de tarjetas al cuarto de entrada y lo entregaba a  uno de los operadores.
Cuando la computadora terminaba el trabajo que estaba ejecutando en ese momento, un operador acudía  a la  impresora,  separaba  la  salida  impresa  y  la  llevaba  al  cuarto  de  salida  donde  el programador podía recogerla después. Luego, el   operador tomaba  uno  de  los  grupos de  tarjetas traídos del cuarto de entrada y lo introducía en el lector. Si se requería el compilador de FORTRAN, el operador  tenía  que  traerlo  de  un  archivero  e  introducirlo  en  el  lector.  Gran  parte  del  tiempo  de computadora se desperdiciaba mientras los operadores iban de un lugar a otro, en el cuarto de la máquina.
Dado el alto costo del equipo, no es sorprendente que la gente pronto buscara formas de reducir el desperdicio de tiempo. La solución que se adoptó generalmente fue el sistema por lotes. El principio de este modo de operación consistía en juntar una serie de trabajos en el cuarto de entrada, leerlos y grabarlos en una cinta magnética usando una computadora pequeña y (relativamente) económica, como una IBM 1401, que era muy buena para leer tarjetas, copiar cintas e imprimir salidas, pero no para realizar cálculos numéricos. Otras máquinas, mucho más costosas, como la IBM 7094, se usaban para la computación propiamente dicha, ver Figura 2.





Figura 2. Uno de los primeros sistemas por lote.

Secuencia:
(a)   Los programadores traen tarjetas a la 1401
(b)   La 1401 lee lotes de trabajos y los graba en cinta
(c)   El operador lleva la cinta de entrada a la 7094
(d)   La 7094 realiza la computación
(e)   El operador lleva la cinta de salida a la 1401
(f)    La 1401 imprime la salida
En resumen las computadoras grandes de la segunda generación se usaban primordialmente para cálculos científicos y de ingeniería, como la resolución de ecuaciones diferenciales parciales. Estas máquinas generalmente se programaban en FORTRAN y lenguaje ensamblador. Los sistemas operativos típicos eran FMS (el Fortran Monitor System) e IBSYS, el sistema operativo de IBM para la 7094.



Tercera generación (1965-1980)
Circuitos integrados y multiprogramación

A principios de la década de 1960, la mayoría de los fabricantes de computadoras tenían dos líneas de producto distintas y totalmente incompatibles. Por un lado estaban las computadoras científicas a gran escala, orientadas hacia las palabras, como la 7094, que se usaban para cálculos numéricos en ciencias e ingeniería. Por el otro, estaban las computadoras comerciales orientadas hacia los caracteres, como la 1401, que los bancos y las compañías de seguros utilizaban amplia- mente para ordenar e imprimir desde cinta.
La creación y mantenimiento de dos líneas de producto totalmente distintas era una situación costosa para los fabricantes. Además, muchos clientes de computadoras nuevas necesitaban inicialmente una máquina pequeña que más adelante les resultaba insuficiente, de modo que querían una máquina más grande que ejecutara todos sus viejos programas, pero más rápidamente.
IBM trató de resolver simultáneamente ambos problemas introduciendo la System/360. La 360 era una serie de máquinas de software compatible que iban desde tamaños comparables a la 1401 hasta computadoras mucho más potentes que la 7094. Las máquinas diferían sólo en el precio y el rendimiento (memoria máxima, velocidad del procesador, número de dispositivos de E/S permitidos, etc.). Puesto que todas las máquinas tenían la misma arquitectura y conjunto de instrucciones, los programas escritos para una máquina podían ejecutarse en todas las demás, al menos en teoría. Además, la 360 estaba diseñada para manejar computación tanto científica como comercial. Así, una sola familia de máquinas podía satisfacer las necesidades de todos los clientes. En años subsecuentes IBM produjo sucesoras comparables a la línea 360, usando tecnología más moderna, conocidas como series 370, 4300, 3080 y 3090.
A pesar de su enorme tamaño y de sus problemas, OS/360 y los sistemas operativos de tercera generación parecidos a él producidos por otros fabricantes de computadoras lograron satisfacer a sus clientes en un grado razonable, y también popularizaron varias técnicas clave que no existían en los  sistemas  operativos de la segunda generación. Tal vez la más importante de ellas haya sido la  multiprogramación.  En la 7094,  cuando  el  trabajo  actual  hacía  una  pausa  para  esperar  que se  completara  una  operación de cinta  u  otra  operación  de  E/S,  la  CPU  simplemente  permanecía ociosa  hasta que la E/S terminaba. En los cálculos científicos, con  gran  uso  de  CPU,  la  E/S  es poco frecuente, así que el tiempo  desperdiciado  no es significativo. En el procesamiento de datos comerciales, el tiempo de espera por E/S puede ser el 80090% del tiempo total, de modo que algo debía hacerse para evitar que la CPU estuviera ociosa tanto tiempo.
La solución a la que se llegó fue dividir la memoria en varias secciones, con un trabajo distinto en cada partición, como se muestra en la Figura 3. Mientras un trabajo estaba esperando  que terminara su E/S, otro podía estar usando el CPU. Si se podían tener en la memoria principal suficientes trabajos a la vez, el CPU podía mantenerse ocupada casi todo el tiempo. Tener múltiples trabajos en la memoria a la vez requiere hardware especial para proteger cada trabajo contra espionaje por parte de los demás, pero la 360 y otros sistemas de tercera generación estaban equipados con este hardware.
g
Sistema de multiprogramación con tres trabajos en la memoria.

Otro avance importante durante la tercera generación fue el crecimiento fenomenal de las minicomputadoras, comenzando con la DEC PDP- 1 en 1961. La PDP- 1 sólo tenía 4K de palabras de 18 bits, pero a $120 000 por máquina (menos del 5% del precio de una 7094), se vendieron  como pan caliente. Para ciertos tipos de trabajos no numéricos, la PDP-1 era casi tan rápida como  la 7094, e hizo nacer una industria totalmente nueva. A esta máquina pronto siguió una serie de Otras PDP (todas incompatibles, a diferencia de la familia IBM), culminando en la PDP- 11.


Cuarta generación (a partir de 1980)
Computadoras personales


Con la invención de los circuitos integrados a gran escala (LSI), chips que contienen miles de transistores en un cm2 de silicio, nació la era de la  computadora personal. En términos de arquitectura,  las computadoras personales no eran muy diferentes de las minicomputadoras de la clase  PDP- 11, pero en términos de precio sí que eran diferentes. Si bien la minicomputadora hacía posible que un departamento de una compañía o universidad tuviera su propia computadora, el   chip microprocesador permitía que un solo  individuo  tuviera  su  propia  computadora personal.  Las  computadoras personales  más  potentes empleadas  por  empresas,  universidades  e  instalaciones  del  gobierno  suelen  llamarse estaciones de trabajo, pero en realidad sólo son computadoras personales grandes. Por lo regular estas máquinas están interconectadas mediante una red.
La amplia disponibilidad de la potencia de cómputo, sobre todo la potencia de cómputo alta- mente interactiva casi siempre acompañada por excelentes gráficos, dio pie al crecimiento de una importante industria productora de software para computadoras personales. Una buena parte de este software era amistoso con el usuario, lo que significa que estaba dirigido a usuarios que no  sólo no sabían nada de computación, sino que además no tenían la mínima intención de aprender. Sin duda, esto representaba un cambio drástico respecto al OS/360, cuyo lenguaje de control de trabajos, JCL, era tan arcano que llegaron a escribirse libros enteros sobre él (por ejemplo, Cadow, 1970).
Dos sistemas operativos dominaron inicialmente el campo de las computadoras personales y las estaciones de trabajo: MS-DOS de Microsoft y UNIX. MS-DOS se usaba ampliamente en la IBM PC y otras máquinas basadas en la CPU Intel 8088 y sus sucesoras, la 80286, 80386 y 80486 (que en adelante llamaremos la 286, 386 y 486, respectivamente) y más tarde la Pentium y Pentium Pro. Aunque la versión inicial de MS-DOS era relativamente  primitiva,  versiones  subsecuentes   han   incluido características más avanzadas, muchas de ellas tomadas de UNIX. El sucesor de Microsoft para MS-DOS, WINDOWS, originalmente se ejecutaba encima de MS-DOS (es decir, era más un shell que un verdadero sistema  operativo),  pero  a  partir  de  1995  se  produjo  una  versión  autosuficiente  de  WINDOWS, WINDOWS 95®, de modo que ya no se necesita MS-DOS para apoyarlo. Otro sistema operativo de Microsoft es WINDOWS NT, que es compatible con WINDOWS 95 en cierto nivel, pero internamente se reescribió desde cero.
El otro competidor importante es UNIX, que domina en las estaciones de trabajo y otras computadoras del extremo alto, como los servidores de red. UNIX es popular sobre todo en máquinas basadas en chips RISC de alto rendimiento. Estas máquinas por lo regular tienen la potencia de cómputo de una minicomputadora, a pesar de estar dedicadas a un solo usuario, por lo que resulta lógico que estén equipadas con un sistema operativo diseñado originalmente para minicomputadoras, a saber, UNIX.
Una tendencia interesante que apareció a mediados de la década de 1980 fue el crecimiento de redes de computadoras personales en las que se ejecutan sistemas operativos de red o sistemas operativos distribuidos (Tanenbaum, 1995). En un sistema operativo de red los usuarios  están conscientes de la existencia de múltiples computadoras y pueden ingresar en máquinas remotas y copiar archivos de una máquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario o usuarios locales.
Los  sistemas  operativos  de  red  no  son  fundamentalmente  distintos  de  aquellos  para  un  solo procesador. Obviamente, estos sistemas necesitan un controlador de la interfaz con la red y software de bajo nivel para operarlo, así como programas para realizar inicios de sesión remotos y acceso a archivos remotos, pero estas adiciones no alteran la estructura esencial del sistema operativo.
Un sistema operativo distribuido, en cambio, presenta el mismo aspecto a los usuarios que un sistema tradicional de un solo procesador, aunque en realidad se compone de múltiples procesadores. Los usuarios no deben enterarse de en dónde se están ejecutando sus programas o almacenando sus archivos; de todo eso debe encargarse el sistema operativo automática y eficientemente.
Los verdaderos sistemas operativos distribuidos requieren más que la adición de un poco más de código a un sistema operativo uniprocesador, porque los sistemas distribuidos y centralizados difieren en aspectos  cruciales.  Los  sistemas  distribuidos,  por  ejemplo,  a  menudo  permiten  a  las  aplicaciones ejecutarse en varios procesadores al mismo tiempo, por lo que requieren algoritmos de planificación de más complejos a fin de optimizar el grado de paralelismo.
En muchos casos, los retardos de comunicación dentro de la  red implican que estos (y  otros) algoritmos deban ejecutarse con información incompleta, caduca o incluso incorrecta. Esta situación difiere radicalmente un sistema de un solo procesador en el que el sistema operativo tiene toda la información sobré el estado del sistema.

Comentarios

Entradas populares