Historia de los S. O. Evolución de los Sistemas Operativos Mario Medina [email protected] 1ra. Generación (tubos) • Inicialmente, el usuario hacía todo Escribía el programa (en binario!) Cargaba el programa en memoria Controlaba y depuraba la ejecución • Más tarde, aparecen programas utilitarios Ensambladores Compiladores Bibliotecas Enlazadores Cargadores Sistemas batch • Liga a la historia de los computadores 1ra. generación de computadores digitales hNo tenían sistemas operativos! de vacío h1941: Conrad Zuse’s Z3 h1941: ABC Atanasoff-Berry Computer h1943: Colossus h1944 ENIAC hTubos 2da. Generación (transistores) • Computadores mainframes Transistores, cintas y discos magnéticos, tarjetas perforadas, impresoras, etc. • Costos del HW bajan Utilización Sistemas de CPU es factor importante batch hAgrupar ocupada trabajos para mantener la CPU Ejemplo de programa batch • Operador ingresa trabajo a la cola • Se ejecuta toda la cola de entrada • Se transfieren los resultados a la cola de salida (C) 2008 Mario Medina 1 Sistemas batch ATLAS (1950-60) • Reduce demora debido al operador • Universidad de Manchester FORSYS, SCOPE, OS/MFT • Tiempos de respuesta largos No hay interactividad • Qué pasa si el programa necesita leer datos de la cinta? CPU ociosa mientras se leen los datos Sistema operativo batch con spooling Palabras de 48 bits, direcciona 1 MWord • Administración de memoria Tambor magnético (98 KWords) y memoria magnética (16 KWords) Paginación y caching Algoritmos de reemplazo de páginas CTSS (1962) XDS-940 (1965) • Ejecución sobre IBM 7090 • Universidad de California at Berkeley • Sistema de tiempo compartido • Paginación Sistema de tiempo compartido 32 usuarios simultáneos Memoria física de 32 KWords Palabras de 36 bits S.O. ocupaba 5 KWords Usuarios compartían 27 KWords Algoritmos MLFQ Memoria física de 64 KWords Memoria por usuario de 16 KWords Páginas de 2 KWords Tabla de páginas en registros MULTICS (1965) 3ra. Generación (C. Integrados) • MIT, GE, Bell Labs • Computador GE 645 • Hardware es aún más rápido y más barato Segmentación y paginación Páginas de 1 KWord Direcciones: 18 bits segmento, 16 bits offset en página • Antecesor de UNIX (C) 2008 Mario Medina Minicomputadores (DEC, UNISYS, etc.) Terminales, comunicaciones, redes • Sistemas multiprogramados Compartir la CPU entre varios usuarios Aprovechar el tiempo de E/S de la aplicación 2 Monoprogramación Multiprogramación • Programas oscilan entre CPU y E/S CPU ociosa durante períodos de entrada/salida CPU mucho más rápida que los dispositivos de entrada/salida Multiprogramación Multiprogramación y memoria • Presenta al usuario la ilusión de un computador dedicado sólo a él • CPU se alterna entre los procesos del S.O. y los procesos de los usuarios proceso se ejecuta por un quantum y luego cede la CPU al siguiente Sistemas Time-Sharing Cada Trabajo 3 Trabajo 2 Particiones de memoria Trabajo 1 • Memoria es compartida entre todos los trabajos a ejecutar y el sistema operativo Sistema Operativo Spooling Ejemplo de sistema multitarea Tarea 1 Tarea 2 Análisis de Edición de Tipo imágenes imágenes Procesamiento Alto Cómputo Alto en E/S Duración 5 minutos 15 minutos Uso de CPU 80% 10% Uso de Memoria 50 MB 100 MB Usa disco? No No Usa terminal? No SÍ Usa impresora? No No (C) 2008 Mario Medina Histogramas de uso Tarea 3 Impresión imágenes Alto en E/S 10 minutos 10% 80MB Sí No Sí 3 Estadísticas de sistema multitarea Uso de CPU Uso de memoria Uso de disco Uso de impresora Tiempo de ejecución Tasa de trabajos Tiempo de respuesta Spooling Monoprogramación Multiprogramación 22% 43% 30% 67% 33% 67% 33% 67% 30 min. 15 min. 6 por hora 12 por hora 18 min. 10 min. Área de spooling Trabajos Área de spooling Sistema Operativo • Utiliza la memoria RAM como almacenamiento de datos para periféricos • Hardware de DMA transfiere datos directamente a los periféricos S. O. Multitarea 4ta. Generación (PCs) • Interactividad via terminales • Costos del hardware bajan y bajan Compartir usuarios computador entre varios • IBM OS/360 • UNIX Antecesor OS X de Linux, BSD, Solaris, Mac 1994: 1985: 1993: 1995: 1996: 1998: 2000: 2001: 2007: tener un computador por usuario • Sistemas operativos monousuario multitarea MS-DOS, MS-DOS 1.0 MS-DOS 6.22 Windows 1.0 Windows 3.11 Windows 95 Windows NT 4 Windows 98 Windows 2000 Windows XP Windows Vista (C) 2008 Mario Medina CP-M, Windows • Ambientes gráficos (WIMP) Windows, S. O. de Microsoft 1982: Posible X11, MacOS, GNOME, KDE S.O. de Microsoft • MS-DOS 1.0: S.O. original del IBMPC • Windows 3.1: Primer WIMP que funciona • Windows 2000: Primer WIMP estable • Windows 7: 2009? 2010? WinFS, nuevo kernel 4 S.O. Unix Herederos de UNIX • Desarrollado en AT&T Bell Labs por Ritchie, Thompson y McIllroy (1969) Escrito en C Multitarea Multiusuario Acceso a código fuente! Portable Simple h “Filosofía UNIX” (C) 2008 Mario Medina Sistema de archivos jerárquico Comunicación entre procesos (IPC) • BSD (Berkeley Software Distribution) SunOS, NetBSD, FreeBSD, OpenBSD • ATT UNIX System V Solaris, UNIXWare • MINIX • Linux • MacOS X 5