jueves, 22 de septiembre de 2011

Evolución Histórica de los Sistemas Operativos

La informática tal y como se le conoce hoy día, surgió a raíz de la II Guerra Mundial, en la década de los 40. En esos años no existía siquiera el concepto de "Sistema Operativo" y los programadores interactuaban directamente con el hardware de las computadoras trabajando en lenguaje máquina (esto es, en binario, programando únicamente con 0s y 1s).

El concepto de Sistema Operativo surge en la década de los 50. El primer Sistema Operativo de la historia fue creado en 1956 para un ordenador IBM 704, y básicamente lo único que hacía era comenzar la ejecución de un programa cuando el anterior terminaba.

En los años 60 se produce una revolución en el campo de los Sistemas Operativos. Aparecen conceptos como sistema multitarea, sistema multiusuario, sistema multiprocesadores y sistema en tiempo real.

Es en esta década cuando aparece UNIX, la base de la gran mayoría de los Sistemas Operativos que existen hoy en día.


En los años 70 se produce un boom en cuestión de ordenadores personales, acercando estos al público general de manera impensable hasta entonces. Esto hace que se multiplique el desarrollo, creándose el lenguaje de programación C (diseñado específicamente para reescribir por completo el código UNIX). 

Como consecuencia de este crecimiento exponencial de usuarios, la gran mayoría de ellos sin ningún conocimiento sobre lenguajes de bajo o alto nivel, hizo que en los años 80, la prioridad a la hora de diseñar un sistema operativo fuese la facilidad de uso, surgiendo así las primeras interfaces de usuario. En los 80 nacieron sistemas como MacOS, MS-DOS, Windows.


En la década de los 90 hace su aparición Linux, publicándose la primera versión del núcleo en septiembre de 1991, que posteriormente se uniría al proyecto GNU, un sistema operativo completamente libre, similar a UNIX, al que le faltaba para funcionar un núcleo funcional. Hoy en día la mayoría de la gente conoce por Linux al Sistema Operativo que realmente se llama GNU/Linux.



Clasificación de los Sistemas Operativos


Los sistemas operativos pueden ser clasificados de la siguiente forma:
  • Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.
  • Multiprocesador: soporta el abrir un mismo programa en más de una CPU.
  • Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
  • Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
  • Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.

Definición de Sistema Operativo

El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.

Características Deseables de un Sistema Operativo

                  Eficiencia
Se juzgará la eficiencia de un Sistema Operativo mediante los siguientes criterios:
a)            Tiempo transcurrido entre tareas.
b)           Tiempo no empleado del procesador central.
c)            Tiempo de ejecución empleado en las tareas batch.
d)           Tiempo de respuesta (en los sistemas de acceso múltiple).
e)           Utilización de recursos.
f)            Rendimiento (tareas ejecutadas por hora).

                Fiabilidad
Estar libre de errores y ser capaz de resolver satisfactoriamente todas las contingencias que se pudieran presentar.

                Mantenibilidad
Ser posible corregir un Sistema Operativo (mejorándolo, o bien subsanando errores) sin tener graves problemas. Estar bien documentado.
                Tamaño reducido
El espacio ocupado por el Sistema Operativo no está disponible para su utilización productiva, por lo que debe ocupar lo menos posible. Para ello es preciso que el sistema operativo sea modular en su construcción. Disponer de interfaces claramente definidas en módulos y estar bien documentado.

Características del Sistema Operativo

Características de un Sistema Operativo             

1.            Concurrencia.
                Consiste en la existencia de varias actividades simultáneas o paralelas. Ejemplo de ello lo son la superposición de las operaciones de I/O con el proceso de computación, así como la coexistencia en memoria de varios programas. La concurrencia lleva asociado el problema de conmutar de una tarea a otra, así como proteger una determinada actividad de los efectos de las otras, así como la sincronización de tareas que sean mutuamente dependientes.
2.            Utilización conjunta de recursos. Compartición.
                Las razones para la compartición son las siguientes:
a)            El coste: es absurdo disponer de suficientes recursos para cada usuario por separado.
b)           Aprovechamiento de los trabajos de otros. La utilidad es poder utilizar rutinas y programas desarrollados por otras personas.
c)            Posibilidad de compartir datos: Utilización de una misma base de datos para varios programas distintos, asociados posiblemente a distintos usuarios.
d)           Eliminación de redundancias: poder disponer de una sola copia de un programa (por ejemplo un compilador) y compartirlo con otros.

3.            Permite que el usuario guarde sus datos o programas en el propio ordenador, y no tener que usar medios externos (portables). Los problemas que se plantean son de protección de la información frente a terceros y protegerlos frente a fallos del sistema.
4.            Un Sistema Operativo debe ser determinista en el sentido de que el mismo programa ejecutado con los mismos datos, en momentos diferentes, debe producir los mismos resultados. En cambio será indeterminista porque en caso de variabilidad de las situaciones puede responder de un modo impredecible. Deben tomarse las medidas oportunas. Estas situaciones pueden ser debidas a petición de recursos, errores de ejecución en programas o bien interrupción de periféricos.