Sistema computacional Hardware “todo lo que se puede morder” (H. Rautenberg) Sistemas Computacionales z Programas que usan el hardware para resolver problemas Sistema operativo Sistemas Computacionales Mario Medina C. [email protected] z Capas de un sistema computacional Usuarios Software Coordina el uso del hardware entre las aplicaciones Usuarios Programadores Aplicaciones Utilitarios del S.O. Sistema Operativo Hardware Aplicaciones (C) Mario Medina C. Sistemas operativos 1 Hardware Un poco de historia Primeros dispositivos z z Utilizan engranajes y razones entre radios para realizar cálculos Blas Pascal (1642): Pascalina Calculador con sistema numérico decimal Suma y (vía complemento) resta z Pascalina (1642) Gottfried von Leibniz (1672): Staffelwalze Calculadora asada en máquina de Pascal Suma, resta, multiplicación y división Raíz cuadrada (algoritmo) Un poco de historia Un poco de historia Tarjetas perforadas Primeros dispositivos z Staffelwalze (1672) Charles Xavier Thomas (1820): Arithmometer Primer calculador de producción masiva Utiliza el mismo cilindro diseñado por von Leibniz En producción por 90 años. Sus sucesores se mantuvieron en producción hasta alrededor de 1970 Antecesor de la regla de cálculo z z Automatización de ingreso de datos Joseph-Marie Jacquard (1801) Máquina tejedora Patrones de tejido “programados” vía tarjetas perforadas Idea fue copiada por Charles Babbage y Herman Hollerith Tarjetas perforadas en uso común hasta los años 19701980 Máquina tejedora controlada por tarjetas perforadas Arithmometer (1820) Un poco de historia z Computadores análogos Charles Babbage (1833) Extensión de concepto a programación de computadores Tarjetas perforadas, energía a vapor Máquina diferencial: cálculo de polinomios Máquina analítica: programable, incluye instrucciones, lazos iterativos, saltos Ada Lovelace (1815-1852) creó un programa para calcular secuencia de números de Bernouilli (C) Mario Medina C. Un poco de historia z Reproducción de máquina diferencial de Babbage Utilizan analogías (típicamente con procesos eléctricos) para modelar y resolver problemas matemáticos Nivel de agua en un estanque Æ voltaje en un condensador Amplificadores operacionales, potenciómetros y otros componentes eléctricos con conexiones programables por el usuario Computador análogo 2 Un poco de historia Tubos de Vacío (1945 - 1955) Computadores análogos z z Un poco de historia Mark I: utilizado para calcular trayectoria de proyectiles durante la segunda guerra mundial Analizador diferencial: resuelve ecuaciones diferenciales por integración (mecánico) z ENIAC (1946): 18000 tubos 1500 relés 30 toneladas 140 KWatts z UNIVAC (1951) Primer computador comercial Analizador diferencial z IAS: originó la arquitectura de von Neumann. Programa representado digitalmente, almacenado en memoria junto a datos Un poco de historia Transistores (1955 - 1965) z DEC PDP-1 (1961) z IBM 7090, 7094 Un poco de historia Circuitos integrados (1965 - 1980) 4 KB memoria, 18 bits, 5 ms. z Familia de modelos compatibles (ISA diferente de implementación) Memoria de 250ns a 1ms, límite de 16 MB Multiprogramación 32K memoria, 36 bits, 2 ms. z IBM 1401 z CDC 6600 (1964) Aplic. Comerciales z Paralelismo interno en CPU z IBM/360 DEC PDP-11 Minicomputador para producción masiva Asequible para pequeñas empresas y universidades Burroughs B5000 Diseñada para facilitar tarea al compilador Almacenamiento Memoria de núcleo magnético (1972). 65.536 núcleos de menos de 0.5mm de diámetro (64Kbit) . Tiempo de acceso 0.6us Un poco de historia Circuitos VLSI (1980 - ????) z z z z z z Stack de 6 discos magnéticos removible. Capacidad total 2.68MB Tasa de transferencia de 69KB/s. Tiempo de acceso promedio 150ms z PCs Estaciones de trabajo Mainframes Supercomputadores Redes de computadores Sistemas portables Sistemas en un chip IBM PC Supercomputador Cray PDA Estación de trabajo Tablet PC (C) Mario Medina C. 3 Futuro del hardware ¿Qué se está haciendo ahora? z Paralelismo dentro y fuera del chip z Procesadores de propósito específico Múltiples instrucciones en paralelo Múltiples CPU en un chip Procesadores de redes Procesadores de señales y medios z Computadores 1ra. Generación (tubos de vacío) No tenían S. O. Inicialmente, el usuario hacía todo Dispositivos portables z Computación reconfigurable z Alto desempeño, bajo consumo de energía y costo Dispositivos implantables z Y el software? Nuevos modelos computacionales z z z Computación cuántica DNA Computación neuromórfica z Escribía el programa (en binario!) Cargaba el programa en memoria Controlaba y depuraba la ejecución Más tarde, aparecen programas utilitarios z z z z z Ensambladores Compiladores Bibliotecas Enlazadores Cargadores 2da. Generación (transistores) Computadores mainframes z Transistores, cintas y discos magnéticos, tarjetas perforadas, impresoras, etc. Costos del HW bajan z z Sistemas batch Operador ingresa trabajo a la cola Se ejecuta toda la cola de entrada Se transfieren los resultados a la cola de salida Utilización de CPU es factor importante Sistemas batch Agrupar trabajos para mantener la CPU ocupada Ejemplo de programa batch Sistemas batch Reduce demora debido al operador z FORSYS, SCOPE, OS/MFT Tiempos de respuesta largos z No hay interactividad Qué pasa si el programa necesita leer datos de la cinta? z (C) Mario Medina C. CPU ociosa mientras se leen los datos 4 ATLAS (1950-60) Universidad de Manchester z z Sistema operativo batch con spooling Palabras de 48 bits, direcciona 1 MWord Administración de memoria z z z 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 z z z z z z z 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 XDS-940 (1965) Universidad de California at Berkeley Sistema de tiempo compartido Paginación z z z z 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 z z z 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 z z Minicomputadores (DEC, UNISYS, etc.) Terminales, comunicaciones, redes Sistemas multiprogramados z z z z Compartir la CPU entre varios usuarios Aprovechar el tiempo de E/S de la aplicación para atender tareas de otros usuarios Mejora utilización de los recursos Complica administración de los recursos (C) Mario Medina C. S. O. Multitarea Interactividad via terminales z z Compartir computador entre varios usuarios Atención interactiva a usuarios IBM OS/360 z z Sistema operativo muy popular Comercial código cerrado UNIX z Antecesor de Linux, BSD, Solaris, Mac OS X 5 4ta. Generación (PCs) Costos del hardware bajan y bajan z Posible tener un computador por usuario Ejemplo: Windows 7 S.O. para arquitectura Intel x86 z z MS-DOS, CP-M, Windows z Ambientes gráficos (WIMP) z z z Última generación de S.O. Windows Aparición: 22 de octubre de 2009 Windows 1.0:1985! Sistemas operativos monousuario multitarea z Windows, Icons, Mouse, Pull-down menus Metáfora del escritorio Windows, X11, MacOS, GNOME, KDE Multitarea, multihebra, multicore Interfaz WIMP Software comercial, código cerrado Windows 7 Starter: $33.000 Windows 7 Home Basic: $60.000 Windows 7 Pro: $108.000 Windos 7 Ultimate: $145.000 S. O. de Microsoft z z z z z z z z z z z S.O. Unix Desarrollado en AT&T Bell Labs por Ritchie, Thompson y McIllroy (1969) 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 2009: Windows 7 z z z z z z BSD (Berkeley Software Distribution) z z SunOS, NetBSD, FreeBSD, OpenBSD Solaris, UNIXWare MINIX Linux MacOS X (C) Mario Medina C. z z Sistema de archivos jerárquico Comunicación entre procesos (IPC) “Filosofía UNIX” Herederos de UNIX ATT UNIX System V Escrito en C Multitarea Multiusuario Acceso a código fuente! Portable Simple Ejemplo: Linux S.O. para procesadores Intel x86, PowerPC, SPARC, y muchos otros z z z z z z Kernel creado por Linux Torvalds en 1991 Utilidades y arquitectura basada en UNIX Multitarea, multihebra, multicore Interfaz WIMP y línea de comando Libre de costo Código fuente disponible 6