martes, 20 de marzo de 2012

Evolución de los sistemas operativos y sistemas computacionales

A través de las décadas ha evolucionado la arquitectura de las computadoras y de los sistemas operativos, de tal manera que se puede evidenciar una clara división o distintas generaciones y sus principales características, debido a una estrecha relación a lo largo de su evolución.

Todo da un inicio cuando un matemático llamado Charles Babbage trata de construir una máquina analítica, sin embargo, se da cuenta que necesita algún programa que lo administre (un sistema operativo), a raíz de esto contrata a una joven llamada Ada Lovelace para que programe tal sistema. A pesar de ello, no sería hasta unas décadas después cuando se da un gran avance en las computadoras, a partir de aquí comienza una generación en la década de los 40.

Entre las generaciones se identifican cuatro, las cuales son:

1. La primera generación (1940 a 1955) :tubos de vacío.
2. La segunda generación (1955 a 1965): transistores y sistemas de procesamiento de datos.
3. Tercera generación (1965 a 1980): circuitos integrados y multiprogramación.
4. La cuarta generación (1980 a la actualidad): las PC o computadoras personales.


Tubos de vacío
En esta generación se destaca el surgimiento de diversas investigaciones a nivel mundial respecto a las computadoras, se caracterizaban por requerir un espacio físico muy amplio debido a sus grandes tamaños y se manejaba el lenguaje máquina.



Las computadoras que se destacaron fueron la Z3, ABC (1939), Collosus (1941) la Mark I (1944), la ENIAC (1946), EDVAC (1949) y UNIVAC (1951). Algunos eran binarios, utilizaban bulbos, eran programables, utilizaban núcleos magnéticos para la memoria y consumían mucha electricidad pero todas eran muy primitivas.

ENIAC
Generalmente para cada máquina existía un grupo de profesionales ingenieros que diseñaban, construían, programaban, operaban y daban mantenimiento a estas grandes máquinas, por lo que era muy costoso económicamente mantenerlas, además toda la programación se realizaba en lenguaje binario o mediante conexiones de cables a tableros de conexiones o plugboards para controlar las funciones básicas de la máquina. Los lenguajes de programación o incluso el lenguaje ensamblador era desconocido.







Crace Hooper
Usualmente, el proceso de programar era muy tedioso porque el programador tenía que insertar un tablero de conexiones y esperar durante horas para realizar cálculos sencillos, hasta después de un tiempo aparecieron las tarjetas perforadas donde se escribían los programas de manera un poco más práctica.



Es importante destacar el gran avance del almirante Grace Hooper en la informática quien creó el primer compilador llamado A-0 (math matic) en 1951 y en 1957 realizo el primer compilador deprocesamiento de datos B-0 o (Flow-matic), con el cual desarrollo muchas aplicaciones contables. Finalmente en 1960 su primera versión del lenguaje COBOL (Common Business – Oriented language).





Transistor (izquierda)
En esta época se introduce el transistor a las computadoras, lo que las hizo un poco más accesibles y ágiles ( en la actualidad se les conoce como mainframe). A diferencia de la primera generación que se perdía mucho tiempo en terminar algún trabajo para seguir con el siguiente, esta generación evoluciono en gran sentido esa desventaja.

Los sistemas operativos  fueron diseñados para hacer más fluida la transmisión entre trabajos. Es aquí donde dan comienzo los sistemas de procesamiento por lotes donde  los trabajos se reúnen en grupos o lotes.
En 1957, IBM desarrolla el lenguaje Fortran, el objetivo era crear una alternativa práctica del lenguaje ensamblador para programar el computador IBM 704, los programadores de Fortran utilizaban tarjetas perforadas con 80 columnas.
Sistema de procesamiento de datos por lotes y sistema offline
Las tarjetas de control, aparecen en este tiempo, siendo estas las precursoras de los shells e intérpretes de comandos modernos, lo cual mejoro el uso de tarjetas perforadas, las computadoras se usaban principalmente para cálculos de ingeniería y científicos que se programaron en su mayoría en FORTRAN y lenguaje ensamblador.
Los sistemas operativos que se utilizaban eran
  • GM-NAA I/0 (Input and Output system o sistema de entrada/salida)Fue creado en 1956 por General Motors y la aviación de USA, estaba basado en sistema de procesamiento en lotes y su principal función era que ejecutaba automáticamente un nuevo programa una vez que había terminado la ejecución del anterior.
  • El SOS (Share Operating System o Sistema operativo compartido) Creado en 1959, el primer sistema de usuario compartido, fue una mejora de GM-NAAI/O, proporciono nuevos métodos de manejo del buffer y la entrada/salida de dispositivos.
  • El FMS (Fortran Monitor System o sistema de monitoreo Fortran) Un sistema operativo de IBM para compilar  programas en FORTRAN.
  • IBSYS    Creado por IBM, basado en el FMS y SOS, fue era el sistema operativo de IBM 7090/94.


 

IBM system 360
En esta generación se destaca que a comienzos de la década de los 60 las computadoras erar incompatibles entre sí, por lo que resultaba ser una gran desventaja, ya que las compañías que las compraban debían gastar un suma económica bastante elevada para su mantenimiento.
Para tratar de remendar lo anterior, IMB introduce la System/360 una serie de máquinas con software compatible, ya que presentaban una arquitectura similar para poder correr estos programas.



La línea de IBM fue muy importante de computadoras que utilizaban los circuitos integrados, así ofrecían una ventaja respecto al precio y el rendimiento que las de la segunda generación. Esta idea fue tan innovadora que los demás fabricantes la adoptaron. Sin embargo la gran debilidad era crear software compatible con máquinas de pocos y extensos recursos ya que tenía que funcionar y presentar igual eficiencia en todos los equipos.

Multiprogramación
La multiprogramación en esta generación se hizo una técnica popular para crear los sistemas operativos, es básicamente particionar la memoria, cada una con distintos trabajos, lo que redujo en gran medida la brecha del tiempo ejecución y terminación  de un trabajo con el siguiente.
Otra técnica fue el Spooling u operación simultánea de periféricos en línea, permitía al sistema operativo ejecutar trabajos conforme era necesario, cada que terminaba una ejecución de un programa, el sistema operativo cargaba el siguiente en la partición que había quedado vacía y posteriormente lo ejecutaba, con esta técnica desapareció en gran medida el uso del transporte de cintas.

A pesar de grandes avances, el tiempo de presentación de un trabajo y terminación de la misma seguía siendo de unas horas. Una respuesta a lo anterior, se opto por una variante de la multiprogramación llamada el tiempo compartido o el CTSS (sistema serio de tiempo compartido) en la que cada usuario tiene una terminal en línea y varios procesos podían ejecutarse en el CPU.
Ante la popularidad de las técnicas, varios fabricantes emprendieron el desarrollo de un servicio de computadora, es decir, una máquina que diera apoyo a los usuarios de
tiempo compartido simultáneos. El modelo desarrollado era el sistema de distribución de electricidad (si usted necesita electricidad, enchufe y obtenga tanto como necesite), posteriormente llamado MULTICS o servicio de información de computación multiplexada que ofrecía dar servicio a muchos usuarios, sin embargo esta idea se desvaneció al decaer los precios de las computadoras. MULTICS tuvo influencia sobre los sistemas.

DEP PDP-1
Otro avance, fue el uso de las microcomputadoras como la DEC PDP-1 en 1961 , tenía 4K de palabras de 18 bits y se vendieron rápidamente, posteriormente aparecieron otras versiones de las PDP pero todas eran incompatibles, llego hasta la versión 11.
La aparición de las PDP tuvo gran influencia en el desarrollo del sistema operativo UNIX, donde un programador escribió en una PDP-7 una versión reducida de MULTICS para un usuario. UNIX se dio a conocer principalmente en el mundo académico, el código fuente se podía obtener fácilmente y  muchos desarrollaron sus versiones incompatibles entre sí. A razón de esto IEEE creo un estándar para UNIX llamado POSIX que define una interfaz de llamadas al sistema que todas las versiones de UNIX deben reconocer.

viernes, 2 de marzo de 2012

Motivo del blog

El motivo de este blog es compartir mis experiencias educativas de mi formación universitaria a lo largo de mi carrera de Ing. de Sistemas con todos aquellos que necesiten ayuda y yo con gusto les pueda ayudar con base a mis conocimientos y por supuesto espero aprender de ustedes ingenieros.