Historia de los sistemas operativos Los Sistemas Operativos han sufrido una serie de cambios revolucionarios llamados generaciones. Hay cuatro generaciones: Generación Cero (década de 1940) • No había sistemas operativos. • Completo acceso al lenguaje de la maquina. Primera Generación (década de 1950) • comienzo de los sistemas de procesamiento por lotes: En una misma cinta o conjunto de tarjetas, se cargaban varios programas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición. • Introducción de tarjetas perforadas: Las cuales servían para introducir los programas de lenguajes de máquina. • Almacenamiento temporal: Disminuye el tiempo de carga de los programas, haciendo simultánea la carga del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y el spooling. Buffering: actividad de guardar una porción de data en memoria para luego ser procesado. Spooling: la computadora introduce trabajos en un buffer (un área especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté listo. Segunda Generación (a mitad de la década de 1960) 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. Tercera Generación (mitad de década 1960 a mitad década de 1970) Algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Cuarta Generación (mitad de década de 1970 en adelante) • Acceso a computadores alejados geográficamente a través de varios tipos de terminales. • Los sistemas de seguridad se ha incrementado. • Uso de maquinas virtuales: Una aplicación puede ser: Varios sistemas operativos distintos pueden coexistir sobre la misma computadora, en sólido aislamiento el uno del otro, por ejemplo para probar un sistema operativo nuevo sin necesidad de instalarlo directamente. Planificador o gestión de procesos Transición de los procesos Una vez que un programa se ha lanzado y se ha convertido en proceso, puede atravesar varias fases o cambios de estado (transiciones) hasta que finaliza o termina. Cuando un proceso se lanza, nunca se ejecuta directamente, sino que se coloca en la cola de procesos en un estado denominado preparado. Cuando la UCP (procesador) le asigna su tiempo, el proceso pasa de preparado a ejecución. Estos dos estados se alternarán en caso de que se esté ejecutando más de un proceso en el sistema. Transiciones o cambios de estado que pueden experimentar los procesos: • Transición A. Ocurre cuando el programa que está en ejecución necesita algún elemento, señal, dato, etc., para continuar ejecutándose. • Transición B. Ocurre cuando un programa o proceso ha utilizado el tiempo asignado por la UCP (procesador) para su ejecución y tiene que dejar paso al siguiente proceso. • Transición C. Ocurre cuando el proceso que está preparado pasa al proceso de ejecución, es decir, cuando al proceso le llega una nueva disposición de tiempo de la UCP para poder ejecutarse. • Transición D. Ocurre cuando el proceso pasa de estar bloqueado a estar preparado, es decir, cuando el proceso recibe una orden o señal que estaba esperando para pasar al estado de preparado y, posteriormente, tras la transición, a estado de ejecución. Los diferentes estados tienen prioridades, que son aquellas que el administrador del sistema, o el propio sistema, asignan a cada proceso. De ello dependera que un proceso se ejecute en más o menos tiempo. Se pueden establecer prioridades en función de la necesidad de ejecución de algunos programas. Los programas que más se ejecutan tendrán prioridad de ejecución sobre aquellos que se ejecutan muy de cuando en cuando.