Historia de los S. O. Evolución de los Sistemas Operativos Mario Medina mariomedina@udec.cl Liga a la historia de los computadores 1ra. generación de computadores digitales No tenían sistemas operativos! Tubos de vacío 1941: Conrad Zuse s Z3 1941: ABC Atanasoff-Berry Computer 1943: Colossus 1944 ENIAC 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ástarde, aparecen programas utilitarios Ensambladores Compiladores Bibliotecas Enlazadores Cargadores 2da. Generación (transistores) Computadores mainframes Transistores, cintas y discos magnéticos, tarjetas perforadas, impresoras, etc. Costos del HW bajan Utilización de CPU es factor importante Sistemas batch Agrupar trabajos para mantener la CPU ocupada Sistemas batch 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 Reduce demora debido al operador 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 ATLAS (1950-60) Universidad de Manchester 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) Ejecución sobre IBM 7090 Sistema de tiempo compartido 32 usuarios simultáneos Memoriafísicade 32 KWords Palabras de 36 bits S.O. ocupaba 5 KWords Usuarios compartían 27 KWords Algoritmos MLFQ XDS-940 (1965) Universidad de California at Berkeley Sistema de tiempo compartido Paginación 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) MIT, GE, Bell Labs Computador GE 645 Segmentación y paginación Páginas de 1 KWord Direcciones: 18 bits segmento, 16 bits offset en página Antecesor de UNIX 3ra. Generación (C. Integrados) Hardware es aún más rápido y más barato 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 (C) 2008 Mario Medina 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 Cada proceso se ejecuta por un quantum y luego cede la CPU al siguiente Sistemas Time-Sharing Spooling Particiones de memoria Trabajo 3 Trabajo 2 Trabajo 1 Sistema Operativo Memoriaes compartida entre todos los trabajos a ejecutar y el sistema operativo Ejemplo de sistema multitarea Histogramas de uso Tarea 1 Tarea 2 Tarea 3 Tipo Análisis de Edición de Impresión Procesamiento Alto Cómputo Alto en E/S Alto en E/S Duración 5 minutos 15 minutos 10 minutos Uso de CPU 80% 10% 10% Uso de Memoria 50 MB 100 MB 80MB Usa disco? No No Sí Usa terminal? No SÍ No Usa impresora? No No Sí (C) 2008 Mario Medina 3
Estadísticas de sistema multitarea Monoprogramación Multiprogramación Uso de CPU 22% 43% Uso de memoria 30% 67% Uso de disco 33% 67% Uso de impresora 33% 67% Tiempo de ejecución 30 min. 15 min. Tasa de trabajos 6 por hora 12 por hora Tiempo de respuesta 18 min. 10 min. Spooling Á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 Interactividad via terminales Compartir computador entre varios usuarios IBM OS/360 UNIX Antecesor de Linux, BSD, Solaris, Mac OS X 4ta. Generación (PCs) Costos del hardware bajan y bajan Posible tener un computador por usuario Sistemas operativos monousuario multitarea MS-DOS, CP-M, Windows Ambientes gráficos (WIMP) Windows, X11, MacOS, GNOME, KDE S. O. de Microsoft 1982: MS-DOS 1.0 1994: MS-DOS 6.22 1985: Windows 1.0 1993: Windows 3.11 1995: Windows 95 1996: Windows NT 4 1998: Windows 98 2000: Windows 2000 2001: Windows XP 2007: Windows Vista S.O. de Microsoft MS-DOS 1.0: S.O. original del IBM- PC Windows 3.1: Primer WIMP que funciona Windows 2000: Primer WIMP estable Windows 7: 2009? 2010? WinFS, nuevo kernel (C) 2008 Mario Medina 4
S.O. 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 Filosofía UNIX Sistema de archivos jerárquico Comunicación entre procesos (IPC) Herederos de UNIX BSD (Berkeley Software Distribution) SunOS, NetBSD, FreeBSD, OpenBSD ATT UNIX System V Solaris, UNIXWare MINIX Linux MacOS X (C) 2008 Mario Medina 5