El documento proporciona una introducción a los sistemas operativos, describiendo sus funciones principales y las diferentes generaciones de sistemas operativos desde la generación cero hasta la quinta generación actual. Explica que un sistema operativo gestiona los recursos de hardware y provee servicios a los programas de aplicación. Luego resume brevemente cada generación histórica, describiendo las características clave y avances tecnológicos de cada una.
3. Introducción
Un sistema operativo (SO) es un programa o conjunto de programas que en un
sistema informático gestiona los recursos de hardware y provee servicios a los
programas de aplicación, ejecutándose en modo privilegiado respecto de los
restantes.1
Nótese que es un error común muy extendido denominar al conjunto completo de
herramientas sistema operativo, es decir, la inclusión en el mismo término de
programas como el explorador de ficheros, el navegador web y todo tipo de
herramientas que permiten la interacción con el sistema operativo, también
llamado núcleo o kernel. Esta identidad entre kernel y sistema operativo es solo
cierta si el núcleo es monolítico. Otro ejemplo para comprender esta diferencia se
encuentra en la plataforma Amiga, donde el entorno gráfico de usuario se
distribuía por separado, de modo que, también podía reemplazarse por otro,
como era el caso de directory Opus o incluso manejarlo arrancando con una línea
de comandos y el sistema gráfico. De este modo, al arrancar un Amiga, comenzaba
a funcionar con el propio sistema operativo que llevaba incluido en una ROM, por
lo que era cuestión del usuario decidir si necesitaba un entorno gráfico para
manejar el sistema operativo o simplemente otra aplicación.
4. Que son los sistemas Operativos
Un Sistema Operativo es el software encargado de ejercer el control
y coordinar el uso del hardware entre diferentes programas de
aplicación y los diferentes usuarios. Es un administrador de los
recursos de hardware del sistema.
En una definición informal es un sistema que consiste en ofrecer
una distribución ordenada y controlada de los procesadores,
memorias y dispositivos de E/S entre los diversos programas que
compiten por ellos.
A pesar de que todos nosotros usamos sistemas operativos casi a
diario, es difícil definir qué es un sistema operativo. En parte, esto
se debe a que los sistemas operativos realizan dos funciones
diferentes.
Proveer una máquina virtual, es decir, un ambiente en el cual el
usuario pueda ejecutar programas de manera conveniente,
protegiéndolo de los detalles y complejidades del hardware.
Administrar eficientemente los recursos del computador.
6. Cero Generación y Primera Generación
Generación Cero
(década de 1940)
Los primeros sistemas computacionales no poseían sistemas
operativos. Para los usuarios eran complejos por que
trabajaban con lenguaje máquina. Todas las instrucciones
eran codificadas manualmente.
Primera Generación
(década de 1950)
Los sistemas operativos de los años cincuenta fueron diseñados
para que sean mas ágiles. Antes de que los sistemas fueran
diseñados, se perdía un tiempo considerable entre la terminación
de un trabajo y el inicio del siguiente. Este fue el comienzo de los
sistemas de procesamiento por lotes, donde los trabajos se
reunían por grupos o lotes. Cuando el trabajo estaba en
ejecución, este tenia control total de la maquina. Al terminar
cada trabajo, el control era devuelto al sistema operativo, el cual
limpiaba y leía e iniciaba el trabajo siguiente.
7. Segunda Generación
Segunda Generación
(a mitad de la década de 1960)
La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos
con multiprogramación, y los principios del multiprocesamiento. En los sistemas de
multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el
almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En
los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema
computacional, con la finalidad de incrementar el poder de procesamiento de la maquina.
La independencia de dispositivos aparece después. Un usuario que desea escribir datos en
una cinta en sistemas de la primera generación tenia que hacer referencia especifica a una
unidad de cinta particular. En la segunda generación, el programa del usuario especificaba
tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto numero de pistas
y cierta densidad.
Se desarrollo sistemas compartidos, en la que los usuarios podían acoplarse directamente
con el computador a través de terminales. Surgieron sistemas de tiempo real, en que los
computadores fueron utilizados en el control de procesos industriales. Los sistemas de
tiempo real se caracterizan por proveer una respuesta inmediata.
8. Tercera Generación
(Mitad de década 1960 a mitad década de 1970)
Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de
IBM. Los computadores de esta generación fueron diseñados como sistemas para
usos generales. Casi siempre eran sistemas grandes, voluminosos, con el propósito
de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos
soportaban simultáneamente procesos por lotes, tiempo compartido,
procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos,
nunca antes se había construido algo similar, y muchos de los esfuerzos de
desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que
el planificador marcaba como fecha de terminación.
Estos sistemas introdujeron mayor complejidad a los ambientes computacionales;
una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.
9. Cuarta Generación
(Mitad de década de 1970 en adelante)
Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos
diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas
operativos de la tercera generación.
Los sistemas de seguridad se ha mejorado mucho ahora que la información pasa a través de varios
tipos vulnerables de líneas de comunicación. La clave de cifrado esta recibiendo mucha atención;
han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos
son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.
Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad
orientada hacia la información, y el trabajo de las bases de datos es hacer que esta información
sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.
Los sistemas operativos conocidos en la época actual son los considerados sistemas de cuarta
generación. Con la ampliación del uso de redes de computadoras y del procesamiento en línea es
posible obtener acceso a computadoras alejadas geográficamente a través de varios tipos de
terminales. Con estos sistemas operativos aparece el concepto de máquinas virtuales, en el cual el
usuario no se involucra con el hardware de la computadora con la que se quiere conectar y en su
lugar el usuario observa una interfaz gráfica creada por el sistema operativo.
10. Quinta generación
Quinta generación (1996- ): ordenadores superescalares.
Los sistemas operativos de quinta generación en la que nos encontramos
tienen y tendrán que ser capaces de utilizar las nuevas herramientas
software, como por ejemplo la POO y ser capaces de controlar los nuevos
componentes hardware que van apareciendo. Deben satisfacer las
necesidades tanto de programadores como de usuarios.
La primera arquitectura superescalar apareció en 1965 de donde surgió el
concepto de las microcomputadoras, en la década de los 80 y principios de
los 90 había diseños muy complejos que podrían consideranse
superescalares debido a que los procesos de fabricación mejoraron
considerablemente. Pero es a partir de 1998 donde la inmensa mayoría de
CPUs desarrolladas son superescalares.
Superescalar: es el término utilizado para designar un tipo de
microarquitectura de procesador capaz de ejecutar más de una instrucción
por ciclo de reloj, en oposición a la microarquitectura escalar que sólo es
capaz de ejecutar una instrucción por ciclo de reloj.