Arquitectura de Computadores Arquitectura de Computadores Departament p d’Informàtica de Sistemes i Computadors E.P.S.Alcoi Arquitectura de Computadores y Sistemas Operativos 1 Bloque Temático I: Sistemas Operativos ÖTema 1: Introducción a los Sistemas Operativos ÖTema 2: Introducción al S.O. UNIX Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 2 1 Arquitectura de Computadores Objetivos 1.- Presentar el concepto de sistema operativo. 2.- Dar una visión general de la evolución histórica de los sistemas operativos que ayudará a entender qué servicios proporciona el sistema y cómo los proporciona. 3.- Describir las funciones que debe llevar a cabo cualquier sistema operativo actual. 4.- Presentar el concepto de llamada al sistema como mecanismo necesario para obtener los servicios de éste. 5.- Presentar el intérprete de órdenes como ejemplo más importante de programa del sistema. Arquitectura de Computadores y Sistemas Operativos 3 Bibliografía Ö A. Silberschatz, P. B. Galvin. “Sistemas Operativos”. 5ª ed. Ö W. Stallings. “Operating Systems”, 3ª ed. Ö J. Carretero, P. de Miguel “Sistemas Operativos. Una versión aplicada” Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 4 2 Arquitectura de Computadores Índice 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos 3.- Funciones del sistema operativo 4.- Modelo básico de un sistema informático 5.- Llamadas al sistema 6.- Programas del sistema 7.- Conceptos de planificación 8.- Criterios de planificación 9.- Algoritmos de planificación 10.- Evaluación de Algoritmos Arquitectura de Computadores y Sistemas Operativos 5 1.- Concepto de sistema operativo ÖSistema operativo Programa que actúa como interfaz entre los usuarios y el hardware del computador. U s u a rio 2 U s u a rio 1 U s u a rio n co mp ilad or ed itor sistem a de ba ses de dat os P r o g ra m a s d e l s is te m a y ap lic a c io n e s S is te m a O p er a tiv o H a r d w a re Abstracción de los componentes de un sistema informático Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 6 3 Arquitectura de Computadores 1.- Concepto de sistema operativo ÖObjetivos principales de los sistemas operativos: • Comodidad Facilitar el uso de la máquina a los usuarios, proporcionando un entorno cómodo para el desarrollo y ejecución de programas y para el acceso a los recursos de la máquina • Eficiencia El s.o. debe administrar los recursos (hardware y software) de la máquina de forma que se aprovechen de la manera más conveniente. Arquitectura de Computadores y Sistemas Operativos 7 1.- Concepto de sistema operativo ÖConceptos de sistema operativo: 1.- Máquina extendida Los recursos hw son difíciles de manejar y programar (especialmente la E/S). El s.o. debe ocultar la complejidad del hw y proporcionar una interfaz sencilla de utilizar. 2.- Gestor de recursos En un computador los programas en ejecución deben compartir los recursos disponibles que son limitados (CPU, memoria, dispositivos de E/S, etc.). El s.o. establece la política que determina a quién, cuándo, cuánto tiempo y la cantidad de recurso que asigna. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 8 4 Arquitectura de Computadores Contenidos 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos p • Primeros sistemas • Sistemas por lotes (batch) • Sistemas multiprogramados • Sistemas de tiempo compartido • Sistemas Unix • Sistemas para PC • Tendencias actuales 3.- Funciones del sistema operativo 4.- Modelo básico de un sistema informático 5.- Llamadas al sistema 6.- Programas del sistema Arquitectura de Computadores y Sistemas Operativos 9 2.- Evolución de los sistemas operativos Primeros sistemas Sistemas por lotes • simples • multiprogramados Sistemas de tiempo compartido 1950 1960 CTSS OS/360 TSO 1970 Primeros sistemas Unix Sistemas operativos para PC PC’s s Sistemas FORTRAN y COBOL MULTICS UNIX VMS CP/M 1980 MS-DOS MS DOS 1990 Mac OS OS/2 Windows Windows NT 2000 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 10 5 Arquitectura de Computadores 2.- Evolución de los sistemas operativos ÖPrimeros sistemas • Tipos de sistema ¾Máquinas voluminosas operadas desde una consola ¾Teletipos, tarjetas y cintas perforadas ¾Sin sistema operativo • Modo de operación ¾“Hands on”: el usuario hace las veces de operador delante de la consola y tiene el control total sobre la máquina. Arquitectura de Computadores y Sistemas Operativos 11 2.- Evolución de los sistemas operativos ÖPrimeros sistemas (ii) • Software del sistema No existe un sistema operativo como tal. El software disponible es: ¾Cargadores ¾Compiladores / ensambladores ¾Bibliotecas con “manejadores de dispositivos” • Problemática P bl áti ¾Mala utilización de recursos caros (CPU, E/S) debido al elevado tiempo de desarrollo y preparación delante de la consola. ¾Interfaz muy rudimentaria con el usuario. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 12 6 Arquitectura de Computadores 2.- Evolución de los Sistemas Operativos $END $RUN $LOAD $FTN $JOB ÖSistemas por lotes (batch) p simples • Modo de operación ¾Contratación de un operador profesional. ¾Ausencia de interacción directa usuariomáquina. ¾Agrupación por lotes de trabajos similares. ¾Secuenciación automática de trabajos con tarjetas de control. Manejadores de dispositivos Carga y secuenciación de trabajos Intérprete del lenguaje de control • Funciones del s.o. Aparece el primer esbozo de sistema operativo: el monitor residente. Monitor ZONA DEL PROGRAMA DE USUARIO Arquitectura de Computadores y Sistemas Operativos 13 2.- Evolución de los sistemas operativos Ö Sistemas por lotes simples (ii): Problemática Baja utilización de la CPU debido a los elevados tiempos de E/S • Tipo de carga: trabajos con secuencia de ráfagas de CPU y E/S, donde la diferencia de velocidad entre la CPU y la E/S es de tres órdenes de magnitud o más • Utilización de la CPU = tiempo_CPU_ocupada / tiempo_total CPU E/S CPU E/S CPU Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos E/S CPU E/S CPU 14 7 Arquitectura de Computadores 2.- Evolución de los sistemas operativos Ö Sistemas por lotes simples (iii): Soluciones A) Operación fuera de línea: reducir los tiempos de E/S utilizando computadores satélite para ejecutar las operaciones de E/S sobre dispositivos lentos. B) Spooling: reducir los tiempos de E/S utilizando el disco como un buffer para compensar la diferencia de velocidades entre la E/S y los periféricos lentos lentos. C) Multiprogramación: Aprovechar las ráfagas de espera (de la E/S) de un trabajo para ejecutar las ráfagas de CPU de otros trabajos. Arquitectura de Computadores y Sistemas Operativos 15 2.- Evolución de los sistemas operativos A) Operación fuera de línea (off-line) • La CPU trabaja con periféricos de E/S “rápidos” (cintas) • Sistemas satélites se encargan de efectuar la E/S sobre periféricos lentos (tarjetas, impresoras) y de transvasar los datos entre periféricos lentos y rápidos. cinta cinta CPU satélite li satélite cinta SAT Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos cinta SAT 16 8 Arquitectura de Computadores 3.- Evolución de los sistemas operativos B) Spooling (Simultaneous Peripheral Operation On Line) • El disco actúa como un buffer de E/S: ¾Mientras el periférico “lento” está ocupado la CPU vuelca a disco. ¾Cuando el periférico está listo, se realiza la transferencia del disco al periférico “lento”. DISCO Impresora Lectora Tarjetas CPU Arquitectura de Computadores y Sistemas Operativos 17 2.- Evolución de los sistemas operativos C) Multiprogramación • Ejecución concurrente: ejecución paralela de varios trabajos. ¾Con un solo procesador se lleva a cabo alternando la CPU entre procesos: las ráfagas de espera (de E/S) de un trabajo se aprovechan para ejecutar las ráfagas de CPU de otros trabajos ¾Implica mantener varios trabajos en memoria simultáneamente. • Objetivo: aumentar la utilización de la CPU Trabajo 1 Trabajo 2 Trabajo 3 E/S E/S CPU E/S CPU E/S E/S CPU CPU CPU E/S E/S E/S CPU E/S Utilización CPU Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 18 9 Arquitectura de Computadores 2.- Evolución de los sistemas operativos ÖSistemas por lotes multiprogramados Son sistemas por lotes en los que se introduce la multiprogramación lti ió • El sistema operativo crece considerablemente en tamaño y aparecen nuevas funciones: ¾Gestión de procesos: planificación de procesos, cambios de contexto, etc. ¾Gestión de memoria: reparto y protección de la memoria memoria, etc etc. • Problemática ¾La ausencia de interacción usuario-máquina hace difícil la elaboración y depuración de programas Arquitectura de Computadores y Sistemas Operativos 19 2.- Evolución de los sistemas operativos Ö Sistemas de tiempo compartido • Tipos de sistema ¾Mainframes con muchas terminales que distribuyen potencia de cálculo como una especie de “central eléctrica”. ¾Sistemas multiusuario que combinan la multiprogramación y la interacción usuario-máquina a través de terminales • Objetivos ¾Tiempos de respuesta aceptables ¾Mejora de la interfaz usuario-máquina ¾Multitarea: un usuario puede ejecutar varios procesos concurrentemente. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 20 10 Arquitectura de Computadores 2.- Evolución de los sistemas operativos Ö Sistemas de tiempo compartido (ii) • Funciones del sistema operativo ¾Gestión de procesos: Madura el concepto de proceso y la planificación. ¾Gestión de memoria: Nacen y se desarrollan las técnicas de memoria virtual. ¾Gestión de ficheros: Nace la necesidad de sistemas de ficheros “en línea” y comienzan a desarrollarse los precedentes de los sistemas de ficheros actuales. ¾Necesidad de protección entre los diferentes usuarios y procesos existentes. • Crisis del software La envergadura que alcanza el sistema operativo pone en tela de juicio las metodologías existentes para desarrollar software Arquitectura de Computadores y Sistemas Operativos 21 2.- Evolución de los sistemas operativos Ö Los primeros sistemas Unix • Tipo de sistema ¾Minicomputadores: máquinas de arquitectura más sencilla que los mainframes pero con mayor potencia de cálculo y menos usuarios ¾Ejemplos: PDP-1 ... PDP-7 ... PDP-11 • Objetivos ¾Adaptar los objetivos de los sistemas de tiempo compartido (MULTICS) a arquitecturas minicomputador ¾Utilización de lenguajes de alto nivel para el diseño del sistema operativo Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 22 11 Arquitectura de Computadores 2.- Evolución de los sistemas operativos Ö Los primeros sistemas Unix (ii) • Aportaciones de Unix ¾Diseño sencillo y potente. Dos únicas abstracciones: proceso y fichero. ¾Introduce el modelo de sistema de ficheros actual. ¾Introduce un potente intérprete de órdenes. ¾Entorno de programación muy completo completo. ¾Base para el desarrollo de la primera red de computadores y TCP/IP. ¾Introduce el concepto de sistema abierto. Arquitectura de Computadores y Sistemas Operativos 23 2.- Evolución de los sistemas operativos Ö Sistemas operativos para PCs • Tipo Ti de d sistema i t ¾Máquinas basadas en microprocesadores. Inicialmente de arquitectura muy sencilla y limitada, pero con una continua evolución en potencia. ¾Interfaces usuario-máquina muy sofisticadas: ratones, pantallas gráficas, etc. ¾Pensadas para un solo usuario. • Objetivos ¾Sencillez y comodidad del usuario: contrasta con los primeros sistemas, donde los altos precios imponían la optimización en la utilización de recursos. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 24 12 Arquitectura de Computadores 2.- Evolución de los sistemas operativos Ö Sistemas operativos para PCs (ii) • Características C t í ti primeros i sistemas i t (MS DOS CP/M, (MS-DOS, CP/M ...)) ¾Poco más que un sistema de ficheros y un cargador. • Características sistemas actuales (Windows, Linux, MacOS, OS/2, ...) ¾Interfaz basada en sistema de ventanas y ratón (introducida por Macintosh) ¾Si t ¾Sistemas de d ficheros fi h tipo ti árbol á b l (introducidos (i t d id por U Unix) i ) ¾Capacidad multitarea ¾Acceso a la red ¾Progresiva introducción de mecanismos de protección (al estilo UNIX) Arquitectura de Computadores y Sistemas Operativos 25 2.- Evolución de los sistemas operativos ÖTendencias actuales • Sistemas operativos en red Permiten el acceso a recursos remotos. Proporcionan p p protocolos de comunicación y gran variedad de aplicaciones para acceso a la red • Sistemas distribuidos Permiten el acceso a recursos remotos de manera transparente (obviando el hecho de la distribución). Proporcionan entornos de programación distribuida y acceso transparente a bases de datos remotas remotas. • Sistemas multimedia Sistemas que incorporan interfaces audiovisuales. ¾Desarrollo de nuevas interfaces usuario-máquina. ¾Desarrollo de protocolos de transmisión en tiempo real. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 26 13 Arquitectura de Computadores 2.- Evolución de los sistemas operativos ÖTendencias de diseño actuales • Tecnología orientada a objetos • Modelo cliente-servidor para aplicaciones distribuidas • Micronúcleos Núcleos úc eos de ssistema ste a ope operativo at o co con u una a funcionalidad u c o a dad mínima a sobre los que desarrollar el resto del sistema como una aplicación de usuario. Arquitectura de Computadores y Sistemas Operativos 27 Contenidos 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos 3.- Funciones del sistema operativo • Gestión de procesos • Gestión de la memoria • Gestión de ficheros • Gestión de la red • Protección 4.- Modelo básico de un sistema 4 informático 5.- Llamadas al sistema 6.- Programas del sistema Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 28 14 Arquitectura de Computadores 3.- Funciones del sistema operativo ÖFunciones del sistema operativo: Clasificación • Gestión de procesos. • Gestión de memoria. • Gestión del sistema de ficheros. • Gestión de dispositivos de E/S. • Gestión de la red. • Protección. ÖCada una de las funciones viene caracterizada por una serie de abstracciones que se han desarrollado para resolver su problemática concreta. Arquitectura de Computadores y Sistemas Operativos 29 3.- Funciones del sistema operativo Ö Gestión de procesos Es importante diferenciar entre proceso y programa: • Programa: Lista de instrucciones instrucciones. Ente pasivo pasivo. Se almacena en ficheros. • Proceso: Ejecución de un programa. Ente activo. Requiere que el programa se cargue previamente en memoria. programa fuente Compilación programa objeto Enlace programa ejecutable proceso Biblioteca de módulos objeto Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos programa ejecutable 30 15 Arquitectura de Computadores 3.- Funciones del sistema operativo Ö Gestión de procesos (ii) • Problemática: ¾Ejecución concurrente: Simular la ejecución paralela de varios programas sobre un único procesador (repartiendo para ello el tiempo del procesador entre los procesos). ¾Planificación de procesos: Determinar a qué proceso se le asigna el procesador en cada instante. • Funciones: ¾Creación y eliminación de procesos. ¾Comunicación y sincronización de procesos. Arquitectura de Computadores y Sistemas Operativos 31 3.- Funciones del sistema operativo Ö Gestión de la memoria • Está asociada a la gestión de procesos: ¾ Para ejecutar un proceso es necesario asignarle memoria y cargarlo en ella ¾ Cuando finaliza su ejecución, la memoria debe ser liberada. • Problemática ¾ Aislamiento del proceso: Cada proceso debe tener una zona de memoria independiente. ¾ Asignación de la memoria: Hay que llevar el control de las zonas de memoria libres y ocupadas y la zona de memoria asignada a cada proceso. ¾ Memoria virtual: Técnica que permite direccionar la memoria desde un punto d vista de i t ló lógico, i sin i d depender d d dell ttamaño ñ o lla ubicación bi ió d de lla zona d de memoria i que finalmente se asigne al proceso. • Funciones: La gestión de memoria es transparente al programador: la asignación y la liberación se hacen automáticamente con la creación y eliminación de procesos. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 32 16 Arquitectura de Computadores 3.- Funciones del sistema operativo Ö Gestión de ficheros • Fichero: Ab t Abstracción ió para definir d fi i una colección l ió de d iinformación f ió no volátil. látil S Su objetivo es proporcionar un modelo de trabajo sencillo con los discos. • Problemática: ¾Organización del sistema de ficheros: directorios ¾Asignación de espacio en disco a la información (de manera no necesariamente contigua). ¾G tió d ¾Gestión dell espacio i lib libre y ocupado d en di disco. ¾Protección. • Funciones para la gestión de ficheros: ¾Creación y eliminación de ficheros y directorios. ¾Manipulación de ficheros y directorios (lectura, escritura, copia, ...). Arquitectura de Computadores y Sistemas Operativos 33 3.- Funciones del sistema operativo Ö Gestión de dispositivos de E/S • Objetivo Proporcionar una interfaz de alto nivel de los dispositivos de E/S sencilla de utilizar. En algunos sistemas esta interfaz es semejante a la de los ficheros. • Problemática ¾Manejadores de dispositivos (drivers): Componentes del sistema operativo que ocultan la complejidad y las peculiaridades del hardware de E/S y ofrecen una interfaz independiente del dispositivo. El manejador (software) se encarga de realizar la programación de los controladores de dispositivos (hardware). ¾Planificar el uso de los dispositivos: Proporcionar acceso exclusivo, spooling, etc. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 34 17 Arquitectura de Computadores 3.- Funciones del sistema operativo Ö Gestión de la red Comprende varios niveles: ¾Manejadores (drivers) de tarjetas de red. ¾Protocolos de comunicación (TCP/IP, NetBIOS, etc.): Resuelven el acceso a la red y proporcionan una interfaz para comunicación entre procesos remotos. ¾Aplicaciones para uso de la red (WWW, (WWW FTP FTP, etc etc.). ) Son programas de aplicación, construidos sobre la interfaz de comunicación, que facilitan el acceso a recursos remotos (ficheros, información,...) Arquitectura de Computadores y Sistemas Operativos 35 3.- Funciones del sistema operativo Ö Protección y seguridad Mecanismo para permitir o denegar el acceso de un proceso de p de un usuario determinado a un recurso ((ficheros,, dispositivos E/S). • Problemática: ¾Diseño de un modelo y una política de protección para definir qué accesos son legales y cuáles son ilegales. ¾Implementación de un mecanismo ejecutivo que vigile el cumplimiento de las reglas de protección definidas. ¾Seguridad: Mecanismo para garantizar la privacidad de la información frente a ataques intencionados por parte de intrusos. Muchos de ellos se basan en técnicas para autenticar usuarios y codificación criptográfica. • Funciones: ¾Funciones para definir “propietarios” de recursos o niveles de protección. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 36 18 Arquitectura de Computadores Contenidos 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos 3.- Funciones del sistema operativo 4.- Modelo básico de un sistema informático • Funcionamiento de un sistema informático • Protección Hardware • Arquitectura q g general del sistema 5.- Llamadas al sistema 6.- Programas del sistema Arquitectura de Computadores y Sistemas Operativos 37 4.- Modelo básico de un sistema informático ÖSistema Informático: Arquitectura Hardware disco disco Controlador de disco impresora p Cintas magnéticas Controlador de impresora Controlador de cinta bus del sistema Controlador de memoria Memoria Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 38 19 Arquitectura de Computadores 4.- Modelo básico de un sistema informático ÖSistema Informático: Arquitectura Hardware (ii) • Los dispositivos de E/S y la CPU pueden trabajar simultáneamente. • Cada controlador de dispositivo se encarga de un tipo de dispositivo. ¾Cada controlador de dispositivo tiene un buffer local y un conjunto de registros de propósito especial. • Programación del dispositivo ¾La CPU copia datos desde la memoria principal al buffer local del manejador y viceversa ¾El controlador del dispositivo informa a la CPU de que ha finalizado la operación generando una interrupción. Arquitectura de Computadores y Sistemas Operativos 39 4.- Modelo básico de un sistema informático ÖSistema Informático: Interrupciones • Cuando ocurre una interrupción, el hardware transfiere el control al sistema operativo automáticamente. • En concreto, ¾se transfiere el control al vector de interrupción que almacena las direcciones de todos los manejadores de interrupción, y desde allí... ¾...se salta al manejador (o rutina de servicio de interrupción) concreto correspondiente al tipo de interrupción ocurrida. • El hardware debe salvar la dirección de la instrucción interrumpida, para poder continuar con su ejecución una vez finalizado el proceso de la interrupción. • Normalmente, mientras se está procesando una interrupción, el sistema operativo mantiene inhabilitadas el resto de interrupciones. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 40 20 Arquitectura de Computadores 4.- Modelo básico de un sistema informático ÖProtección Hardware: Necesidad • La ejecución simultánea de distintos procesos conlleva la compartición de los recursos hardware del computador entre dichos procesos. • Esta compartición obliga al sistema operativo a conseguir que un programa incorrecto (o malicioso) no provoque la ejecución incorrecta de otros programas. • Para conseguir este objetivo, el sistema operativo utiliza los modos de ejecución del procesador Arquitectura de Computadores y Sistemas Operativos 41 4.- Modelo básico de un sistema informático ÖProtección Hardware: Modos de ejecución • Los procesadores modernos proporcionan la posibilidad de f funcionar i en distintos di ti t modos, d d d en cada donde d modo d se d define fi un subconjunto válido de instrucciones que se permiten ejecutar. • Para conseguir la protección hardware necesaria por el sistema operativo, el procesador debe proporcionar al menos dos modos de ejecución: ¾Modo usuario: En este modo se ejecutan las instrucciones de los procesos de usuario Sólo un subconjunto restringido de instrucciones están usuario. disponibles ¾Modo supervisor (privilegiado, kernel, monitor o sistema): En este modo se ejecutan las instrucciones del sistema operativo. El conjunto completo de las instrucciones del procesador está disponible (no hay restricciones) Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 42 21 Arquitectura de Computadores 4.- Modelo básico de un sistema informático ÖProtección Hardware: Modos de ejecución (ii) • Normalmente, en el procesador existe un bit que indica en qué modo se encuentra actualmente: supervisor (0) / usuario (1) • ¿Cómo se conmuta de un modo a otro? ¾De modo usuario a supervisor: lo realiza el hardware cuando se recibe una interrupción. Así, el sistema operativo se ejecuta en modo supervisor. ¾De modo supervisor a usuario: lo realiza el hardware, justo antes de volver del tratamiento de la interrupción al proceso interrumpido. Así, el proceso de usuario sigue su ejecución en modo usuario. Interrupción supervisor usuario Activar modo usuario Arquitectura de Computadores y Sistemas Operativos 43 4.- Modelo básico de un sistema informático ÖProtección Hardware: Modos de ejecución (iii) • Las instrucciones disponibles en modo supervisor y que no lo están en modo usuario se denominan instrucciones privilegiadas. • Estas instrucciones están asociadas principalmente a tres tipos de protección: A) Protección de la Entrada/Salida B) Protección de la memoria C) Protección del procesador Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 44 22 Arquitectura de Computadores 4.- Modelo básico de un sistema informático A) Protección de E/S • Todas las instrucciones de E/S son privilegiadas. • Se debe asegurar que un programa de usuario nunca pueda obtener el control del computador en modo supervisor: ¾Por ejemplo, se debe impedir que un programa pueda cambiar durante su ejecución una dirección en el vector de interrupciones. • Esto implica que: ¾Se debe proporcionar protección de memoria para al menos el vector de interrupciones y los manejadores de interrupción ¾En general, se requiere proteger la memoria del sistema operativo del acceso por parte de los programas de usuario, y proteger la memoria de cada proceso del acceso de los demás programas de usuario. Arquitectura de Computadores y Sistemas Operativos 45 4.- Modelo básico de un sistema informático B) Protección de memoria • Existen dos registros que determinan el rango de direcciones válidas a las que se permite acceder a un proceso: ¾ registro base mantiene la menor dirección física de memoria permitida. ¾ registro límite: contiene el tamaño del rango. El rango válido va desde la dirección lógica cero a la “límite -1”. • El sistema operativo mantiene el valor de ambos registros para cada proceso • Para cada proceso, la memoria ubicada fuera de su rango está protegido mediante el siguiente mecanismo Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 0 Sistema operativo 256000 Proceso de usuario 1 300040 300040 Proceso de usuario 2 registro base 120900 420940 Proceso de usuario i 3 registro límite 880000 Proceso de usuario 4 1024000 46 23 Arquitectura de Computadores 4.- Modelo básico de un sistema informático B) Protección de memoria (ii): Mecanismo • Cada acceso de memoria generado en modo usuario: trap al sistema operativo (error de direccionamiento) MEMORIA No < dirección Sí + 120900 300040 Registro límite Registro base • Sin embargo, en modo supervisor, el sistema operativo tiene acceso sin restricciones tanto a la memoria de usuario como a la de sistema. • Las instrucciones de carga de los registros base y límite son privilegiadas. Arquitectura de Computadores y Sistemas Operativos 47 4.- Modelo básico de un sistema informático C) Protección de la CPU • Hay que evitar que un proceso de usuario se apropie de la CPU (si nunca hace E/S, puede no dejar ejecutarse a nadie más durante mucho tiempo). • Para ello, el sistema operativo se sirve de un temporizador (timer) hardware. • Cuando transcurre el tiempo que ha especificado el sistema operativo, el temporizador interrumpe a la CPU, dando al sistema la oportunidad d ejecutarse. de j t A Asíí se asegura que ell sistema i t mantiene ti ell control. t l • Además, los temporizadores son utilizados por el sistema para ¾Implementar los sistemas de tiempo compartido. ¾Registrar la hora en curso • La carga de un temporizador es una instrucción privilegiada. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 48 24 Arquitectura de Computadores 4.- Modelo básico de un sistema informático ÖArquitectura general del sistema Dado que las instrucciones de E/S son privilegiadas, ¿cómo realizan li llos procesos de d usuario i operaciones i de d E/S ? Llamadas al sistema Arquitectura de Computadores y Sistemas Operativos 49 Contenidos 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos 3.- Funciones del sistema operativo 4.- Modelo básico de un sistema informático 5.- Llamadas al sistema 6.- Programas del sistema Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 50 25 Arquitectura de Computadores 5.- Llamadas al sistema ÖConcepto • Es el método utilizado por un proceso de usuario para solicitar servicios al sistema operativo • Por tanto, el conjunto de llamadas al sistema define: ¾El conjunto de servicios básicos que proporciona el sistema operativo ¾La interfaz entre un proceso y el sistema operativo. ÖImplementación • Habitualmente toma la forma de una excepción (trap) a una posición específica del vector de interrupciones (interrupción software) • Normalmente se proporciona una interfaz como funciones de biblioteca de lenguajes de programación que ocultan el trap y dan la apariencia de llamadas a procedimientos o funciones predefinidas. Arquitectura de Computadores y Sistemas Operativos 51 5.- Llamadas al sistema ÖSecuencia de acciones asociadas a una llamada al sistema ....... Memoria principal M Programa de usuario 2 Llamada al sistema ° Trap o int. software Programa de usuario 1 ³ ° Programas de usuario Modo Usuario ³ Retorno del control ² Procedimiento ± Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos ± Determinación del servicio ² Llamada al p.servidor Sistema Operativo Modo supervisor o kernel Servidor 52 26 Arquitectura de Computadores 5.- Llamadas al sistema ÖEjemplo: llamadas al sistema de Unix Gestión de procesos pid = fork ( ) s = waitpid (pid, status, opts) s = execve(name, argv, envp) exit(status) Descripción Crear un proceso hijo Esperar finalización de un hijo Cambiar imagen de memoria Invocar finalización y devolver estado Gestión de señales s = sigaction (sig, act, oact) s = kill (pid, (pid sig) residual = alarm (seconds) s=pause () Descripción Especificar una acción para una señal Enviar una señal a un proceso Planificar una señal SIGALRM al cabo de un tiempo Suspender el que invoca hasta que llegue una señal Gestión de memoria size = brk (addr) Descripción Modificar tamaño seg. de datos (no POSIX) Arquitectura de Computadores y Sistemas Operativos 53 5.- Llamadas al sistema ÖEjemplo: llamadas al sistema de Unix (ii) Gestión de ficheros/directorios fd = creat(name, creat(name mode) fd = open(file, how) s = close(fd) n = read (fd, buffer, nbytes) n = write (fd, buffer nbytes) pos = lseek (fd, offset, whence) s = stat (name,buf), s = mkdir(name, mode) s = rmdir(name) s = link (name1, name2) s = unlink(name) s = chdir(dirname) s = chmod(name, mode) Descripción Crear un fichero Abrir un fichero para lectura y/o escritura Cerrar un fichero abierto Leer de un desc. de fichero sobre un buffer Escribir de un buffer sobre un desc. de fichero Posicionar el puntero de posición Obtener atributos de un fichero de su nodo-i Crear un directorio Borrar un directorio vacío Crear una entrada de directorio para un fichero existente Borrar una entrada de directorio Cambiar el directorio de trabajo Cambiar bits de protección de un fichero Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 54 27 Arquitectura de Computadores 5.- Llamadas al sistema ÖEn resumen, los sistemas operativos modernos son programas p g dirigidos g p por eventos • Si no hay procesos que ejecutar, ni dispositivos de E/S que atender, ni usuarios a los que responder, el sistema operativo permanecerá parado a la espera de que ocurra algún evento. • Los eventos se señalan mediante interrupciones (hardware o software). Arquitectura de Computadores y Sistemas Operativos 55 Contenidos 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos 3 Funciones 3.F i d l sistema del i t operativo ti 4.- Modelo básico de un sistema informático 5.- Llamadas al sistema 6.- Programas del sistema • Concepto • Clasificación • Intérprete de órdenes ¾Órdenes externas ¾Órdenes internas Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 56 28 Arquitectura de Computadores 6.- Programas del sistema ÖConcepto • Utilidades del sistema operativo que se ejecutan como procesos de usuario y proporcionan un entorno más cómodo cómodo. • Son programas escritos en un lenguaje de programación (como C) que realizan llamadas al sistema. ÖClasificación • Intérpretes de órdenes: sh, ksh, bash • Tratamiento de ficheros y directorios: mkdir,, cp, p, mv,, ls,, etc. • Filtros: grep, sort, head, tail, etc. • Desarrollo de programas: editores, compiladores, ensambladores, etc. • Sistemas de ventanas: X11 • Comunicaciones: mail, ftp, rlogin, etc. Arquitectura de Computadores y Sistemas Operativos 57 6.- Programas del sistema ÖIntérprete de órdenes • Es la interfaz p primaria entre el usuario y el sistema operativo. • Es un programa que lee de su entrada estándar una orden introducida por un usuario, la analiza y la ejecuta. • En la mayoría de sistemas operativos, el intérprete de órdenes es un programa que se ejecuta como un proceso de usuario usuario. • Ejemplos: el Shell de Unix y el COMMAND.COM de MSDOS • Ofrecen dos tipos de órdenes: externas e internas Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 58 29 Arquitectura de Computadores 6.- Programas del sistema ÖÓrdenes externas • El intérprete p de órdenes crea un p proceso p para ejecutar j la orden. De esta forma, la orden es en realidad cualquier fichero ejecutable. • Ejemplo: cp f1 f2 ÖÓrdenes internas • El intérprete de órdenes ejecuta él mismo la orden. Es decir el código que ejecuta la orden forma parte del propio intérprete. • Ejemplo: cd /home Arquitectura de Computadores y Sistemas Operativos 59 Contenidos 1.- Concepto de sistema operativo 2.- Evolución de los sistemas operativos 3.- Funciones del sistema operativo 4.- Modelo básico de un sistema informático 5.- Llamadas al sistema 6.- Programas del sistema Resumen de conceptos básicos Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 60 30 Arquitectura de Computadores Resumen conceptos básicos ÖSistema operativo Programa que actúa como interfaz entre los usuarios y el h d hardware d dell computador. t d ÖObjetivos: • Comodidad: Facilitar el uso de la máquina a los usuarios, proporcionando un entorno cómodo para el desarrollo y ejecución de programas y para el acceso a los recursos de la máquina. • Eficiencia: f El sistema operativo debe administrar los recursos (hardware y sofware) de la máquina de forma que se aprovechen de la manera más conveniente. Arquitectura de Computadores y Sistemas Operativos 61 Resumen conceptos básicos Procesos de usuario shell compilador Llamadas al sistema Núcleo del s.o. Hardware copy • Núcleo del s.o.: Parte residente del s.o., que se carga al arrancar la máquina y se mantiene siempre en memoria. • Procesos P de d usuario: i Aplicaciones A li i h hechas h por programadores que se ejecutan sobre el s.o. Piden los servicios del s.o. invocando “llamadas al sistema”. • Llamadas al sistema: Interfaz formada por un conjunto de servicios que el s.o. ofrece a los procesos de usuario. • Programas P d dell sistema: i t Utilid d d Utilidades dell s.o. que se ejecutan como procesos de usuario (fuera del núcleo). Ejemplos: ¾ Editores, compiladores, montadores, ... ¾ Programas o ventanas para manipulación de ficheros y directorios (copy, mkdir, ...) ¾ Programas de acceso a la red Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 62 31 Arquitectura de Computadores Resumen conceptos básicos ÖModos de ejecución • La mayor parte de los procesadores actuales tienen como mínimo dos modos de funcionamiento o de ejecución: ¾S ¾Supervisor i o privilegiado: i il i d Es E posible ibl acceder d a ttodas d llas iinstrucciones t i del procesador. Con ello se pueden utilizar todos los recursos, y realizar acciones tales como programar los controladores de dispositivo, atender interrupciones, programar la unidad de gestión de memoria (MMU), etc. ¾Usuario: En este modo no se pueden utilizar las instrucciones del procesador relacionadas con la E/S, la gestión del modo de ejecución, la gestión de la memoria y otras. Estas instrucciones se catalogan como privilegiadas. • En modo supervisor únicamente se ejecuta el sistema operativo. Por tanto es el único programa que tiene control y acceso a todos los recursos. • En modo usuario se ejecutan los demás programas. Para utilizar los recursos no accesibles en modo usuario (aquellos que requieran instrucciones privilegiadas), se tienen que realizar llamadas al sistema. Arquitectura de Computadores y Sistemas Operativos 63 7.- Concepto de proceso 5.- Llamadas al sistema 6.- Programas del sistema 7.- Concepto de proceso 8.- Conceptos de planificación. 9.- Criterios de planificación. 10 - Algoritmos de planificación. 10. planificación 11.- Evaluación de Algoritmos. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 64 32 Arquitectura de Computadores 7.- Concepto de proceso ÖConcepto de proceso: Existen diferentes visiones complementarias del concepto de proceso: • Programa en ejecución. • Unidad de asignación de recursos. • Proceso como procesador virtual. Arquitectura de Computadores y Sistemas Operativos 65 7.- Concepto de proceso ÖProceso como programa en ejecución: • Programa: Lista de instrucciones. Ente pasivo. • Proceso: Programa en ejecución. Ente activo. Compilación programa fuente Enlace programa objeto Biblioteca de módulos objeto Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos programa ejecutable Proceso programa ejecutable 66 33 Arquitectura de Computadores 7.- Concepto de proceso ÖProceso como unidad de asignación de recursos: • Para ejecutar un programa se necesita un entorno formado por una serie i d de recursos: memoria, i d descriptores i t d de ficheros y otros atributos del proceso. • Un proceso se puede considerar como la unidad de propiedad de todos esos recursos. Tiempo de CPU P1 Memoria Tabla de descriptores ficheros Otros atributos Arquitectura de Computadores y Sistemas Operativos 67 7.- Concepto de proceso ÖProceso como procesador virtual: • Proceso: cada una de las actividades paralelas que se ejecutan en la máquina. máquina • El sistema operativo simula la existencia de n procesadores virtuales (procesos) a partir de una CPU o procesador físico. Proceso 1 Proceso 2 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos Proceso n 68 34 Arquitectura de Computadores 7.- Concepto de proceso ÖEjecución secuencial y ejecución concurrente. • Ejecución secuencial: La ejecución de un proceso se dice que es secuencial porque sus operaciones son ejecutadas por la CPU una tras otra, en el orden que dicte el programa. • Ejecución concurrente: La ejecución de dos procesos se dice que es concurrente porque estos se pueden ejecutar en paralelo. ¾Concurrencia real: Si cada proceso se ejecuta sobre una CPU. ¾Concurrencia virtual: La CPU reparte su tiempo entre los procesos para simular su ejecución paralela. Arquitectura de Computadores y Sistemas Operativos 69 7.- Concepto de proceso ÖEstructura de un proceso Proceso P0 CPU E/S CPU E/S CPU Multiprogramación: Se intercalan ráfagas de CPU con ráfagas de E/S Proceso P0 CPU E/S CPU E/S CPU Proceso P1 CPU E/S CPU Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos E/S CPU 70 35 Arquitectura de Computadores 7.- Concepto de proceso ÖEstados de un proceso Al ejecutar un proceso éste va cambiando de estado. El estado de un proceso se define f como el comportamiento que presenta en un instante dado: • Activo: El proceso se puede ejecutar. No hay impedimentos en asignarle alguna CPU. ¾Ejecución: El proceso tiene asignada una CPU, las instrucciones se están ejecutando. ¾Preparado: El proceso puede ser ejecutado pero está esperando que se le asigne una CPU libre libre. Puede haber varios procesos en este estado. • Suspendido: No puede ser ejecutado porque el proceso se encuentra esperando un evento como: ¾ la finalización de una operación de E/S (una lectura de teclado) ¾ la comunicación con otro proceso, etc. Arquitectura de Computadores y Sistemas Operativos 71 Diagrama de estados y transiciones Proceso terminado por otro proceso ACTIVO Admitido Terminación Elegido Planificador NUEVO TERMINADO EN EJECUCIÓN PREPARADO Expulsión Esperar E/S o evento Fin E/S o llegada evento SUSPENDIDO Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos Proceso terminado por otro proceso 72 36 Arquitectura de Computadores 7.- Concepto de proceso ÖOperaciones sobre procesos (1) • Creación: Supone asignar todos los recursos que el proceso para su ejecución, j , como p p.e. memoria. necesita p ¾Ejemplo en UNIX: fork(). La utiliza el proceso init para crear un proceso que gestione cada terminal y el shell cada vez que recibe una nueva orden del usuario (si ésta es externa). • Terminación: Supone liberar los recursos previamente asignados al proceso. Esta terminación puede ser: ¾Terminación normal: El proceso invoca su propia terminación. Ejemplo en UNIX: exit() ¾Terminación anormal: El proceso termina por iniciativa del sistema operativo al detectar alguna condición de error (violación de límites, errores aritméticos) o por iniciativa de algún otro proceso. Ejemplo en UNIX: kill() y señales. Arquitectura de Computadores y Sistemas Operativos 73 7.- Concepto de proceso ÖOperaciones sobre procesos (2): • Suspensión: Supone pasar un proceso al estado suspendido para que espere un evento o E/S E/S. ¾Ejemplo en UNIX: read() sobre un tubo vacío. • Activación: Pasar un proceso al estado activo cuando se produce el evento que esperaba. ¾Ejemplo en UNIX: un proceso efectúa un write() sobre un tubo en el que había un lector esperando. El lector se reactiva. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 74 37 Arquitectura de Computadores 8.- Concepto de planificación 5.- Llamadas al sistema 6.- Programas del sistema 7.- Concepto de proceso 8.- Concepto de planificación. 9.- Criterios de planificación. 10 - Algoritmos de planificación. 10. planificación 11.- Evaluación de Algoritmos. Arquitectura de Computadores y Sistemas Operativos 75 8.- Concepto de planificación ÖRecursos reutilizables en serie • Escasez de recursos: el número de recursos es inferior al número de procesos que compiten por ellos. • Recursos reutilizables en serie: aquellos que sólo pueden estar asignados a un proceso en un instante de tiempo dado. Ejemplos: Impresoras, CPU. • Planificación de recursos: Con recursos reutilizables en serie el s.o. tiene que aplicar una política para asignar recursos a los procesos. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 76 38 Arquitectura de Computadores 8.- Concepto de planificación ÖPlanificador Elemento del sistema operativo que determina a qué proceso se le asigna un determinado recurso (p. e. CPU) en cada instante de tiempo, de acuerdo con alguna política. En el caso de que el recurso a asignar sea la CPU se distinguen entre tres planificadores: • Planificador a largo plazo. • Planificador a medio plazo • Planificador a corto plazo. Arquitectura de Computadores y Sistemas Operativos 77 Diagrama de colas del sistema Proceso nuevo Planificador a largo plazo Expulsión Planificador a corto plazo Cola de procesos esperando ejecución Cola de procesos preparados Planificador a medio plazo Proceso terminado CPU Cola de procesos parcialmente ejecutados E/S Recursos Cola de procesos esperando E/S … Colas Suceso Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos Cola de procesos esperando suceso 78 39 Arquitectura de Computadores 8.- Concepto de planificación ÖPlanificador a largo plazo • En un sistema de procesos por lotes, los procesos recién incorporados permanecen detenidos en una cola de procesamiento por lotes, en el disco. El planificador a largo plazo creará procesos a partir de la cola cuando sea posible (carga en memoria los procesos de nueva creación) • Dos son las decisiones que toma el planificador a largo plazo: ¾ Cuando crear un nuevo proceso: controla el grado de multiprogramación. ¾ Cuál va a ser el siguiente proceso a admitir: algoritmo FCFS (first-come firstserved), prioridades, tiempos de ejecución esperados, exigencias E/S. • Controla C t l ell grado d d de multiprogramación: lti ió conjunto j t d de procesos que residen simultáneamente en memoria y se ejecutan concurrentemente. • Selecciona procesos de la cola de procesos que están esperando ser ejecutados y los carga en memoria. • Se ejecuta con poca frecuencia, ya que pueden transcurrir minutos entre la creación de nuevos procesos en el sistema. Arquitectura de Computadores y Sistemas Operativos 79 8.- Concepto de planificación ÖProcesos orientados a CPU u orientados a E/S • Un proceso orientado a CPU es aquel que invierte la mayor parte de su tiempo en efectuar cálculos y genera solicitudes de E/S con poca frecuencia. Proceso orientado a CPU CPU E/S CPU E/S CPU • Un proceso orientado a E/S es aquel que emplea más tiempo en realizar E/S que en efectuar cálculos. Proceso orientado a E/S CPU E/S CPU E/S CPU El planificador a largo plazo debe seleccionar una mezcla adecuada de procesos orientados a CPU y orientados a E/S. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 80 40 Arquitectura de Computadores 8.- Concepto de planificación ÖPlanificador a medio plazo (gestiona el espacio de intercambio) • Cuando un usuario se conecta al sistema, se genera una solicitud de crear un proceso proceso, los usuarios de tiempo compartido no pueden ser puestos en una cola y esperar a que el sistema pueda aceptarlos (no planificador a largo). • En ocasiones es interesante sacar procesos de memoria para reducir el grado de multiprogramación o para mejorar la mezcla de procesos (orientados a CPU o E/S). • Se encarga de controlar qué procesos, de entre todos los iniciados deben estar en memoria (preparados) y qué otros deben estar en el espacio de intercambio. • El planificador a medio plazo se encarga de sacar el proceso y volverlo a introducir más tarde. El proceso continuará su ejecución a partir del punto donde se había quedado. • A este esquema comúnmente se le denomina “swapping”. Arquitectura de Computadores y Sistemas Operativos 81 8.- Concepto de planificación ÖPlanificador a corto plazo • Selecciona un proceso de la cola de procesos preparados para ejecución j ió y lle asigna i lla CPU CPU. • Se ejecuta con mucha frecuencia. El proceso seleccionado quizás se ejecute únicamente durante unos milisegundos antes de iniciar una solicitud de E/S. • Se ejecuta cuando ocurre un evento que conduce a la interrupción del proceso actual, expulsando el proceso a favor de otro. otro Ejemplos de eventos: ¾Interrupciones de reloj. ¾Interrupciones de E/S. ¾Llamadas al sistema operativo. ¾Señales. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 82 41 Arquitectura de Computadores 9.- Criterios de planificación 8 Conceptos de planificación 8.planificación. 9.- Criterios de planificación. 10.- Algoritmos de planificación. 11.- Evaluación de Algoritmos. Arquitectura de Computadores y Sistemas Operativos 83 9.- Criterios de planificación ÖCriterios de planificación Algunos de los criterios y características que un planificador debe conseguir son: • Utilización: Los recursos se han de mantener tan ocupados como sea posible. ¾Tiempo_recurso_ocupado / Tiempo_total • Rendimiento: Maximizar el número de tareas procesadas por unidad de tiempo. ¾Número_de_trabajos_terminados / Tiempo_total • Tiempo de retorno: Tiempo que tarda en ejecutarse un proceso. ¾Tiempo de salida - Tiempo de entrada = ∑ TCPU + ∑ TE/S + ∑ TColas Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 84 42 Arquitectura de Computadores 9.- Criterios de planificación ÖCriterios de planificación (2): • Tiempo de espera: ¾Tiempo que un proceso está en la cola de procesos preparados. • Tiempo de respuesta: ¾Tiempo que transcurre desde que se presenta una solicitud hasta que el sistema comienza a contestar (en procesos interactivos). • Equidad: qu dad ¾Garantizar que cada proceso obtiene la proporción justa de CPU. Es decir, que los procesos sean tratados de manera igualitaria. El extremo opuesto a equidad sería inanición. Arquitectura de Computadores y Sistemas Operativos 85 9.- Criterios de planificación ÖOptimización de los criterios de planificación. No se pueden optimizar todos los criterios a la vez porque algunos g de ellos son contrapuestos. p Cada tipo p de sistema tiene sus prioridades: • Sistema por lotes: Maximizar utilización y rendimiento y minimizar el tiempo de retorno y de espera. • Sistemas interactivos: Proporcionar equidad y hacer el tiempo de respuesta razonable y predecible. ÖLa multiprogramación en sí misma supone una mejora de muchos de los criterios anteriores respecto a la ejecución secuencial. ÖLos algoritmos de planificación también tienen como objetivo mejorar algunos de los criterios mencionados. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 86 43 Arquitectura de Computadores 9.- Criterios de planificación Utilización CPU = 6/10 = 60 Productividad = 2 trabajos/10 = 0.2 Tiempo de retorno = (5+10)/2 = 7.5 SIN MULTIPROGRAMACIÓN Proceso P0 CPU Proceso P1 E/S CPU E/S CPU CPU E/S CPU E/S CPU CON MULTIPROGRAMACIÓN Utilización CPU = 100% Productividad = 2 trabajos /6 =0 0.33 33 Tiempo de retorno = (5 + 6)/2 = 5.5 Este representa un caso Proceso P1 extremo. En el caso de TCPU << TE/S la utilización de la CPU sería < 100% CPU Se intercalan ráfagas de CPU con ráfagas de E/S Proceso P0 CPU E/S CPU E/S CPU CPU E/S CPU E/S Arquitectura de Computadores y Sistemas Operativos 87 10.- Algoritmos de planificación 8.-- Conceptos de planificación 8 planificación. 9.- Criterios de planificación. 10.- Algoritmos de planificación. 11.- Evaluación de Algoritmos. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 88 44 Arquitectura de Computadores 10.- Algoritmos de planificación ÖObjetivo Decidir a cuál de los procesos que están en la cola de procesos listos se le asignará la CPU. ÖClasificación de algoritmos de planificación: • Por orden de llegada (FCFS). • Circular (RR, round-robin) • Por prioridades ¾Sin expulsión p ((“Non p preemptive”) p ) / Con expulsión p (“Preemptive”) ¾Estáticos / Dinámicos • Combinación de algoritmos: Clases de prioridades. Arquitectura de Computadores y Sistemas Operativos 89 10.- Algoritmos de planificación ÖServicio por orden de llegada (FCFS : “first-come, first-served”) La CPU es asignada a todos los procesos en el mismo orden que lo solicitan. Proceso T llegada T. T CPU T. P1 P2 P3 0 0 0 24 3 3 Caso 1) Orden de llegada P1, P2, P3 T. de espera medio: (0 + 24 + 27) / 3 = 17 P1 24 0 Caso 2) Orden de llegada P2, P3, P1 T. de espera medio: (6 + 0 + 3) / 3 = 3 P2 P2 0 P3 3 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos P3 27 30 P1 6 30 90 45 Arquitectura de Computadores 10.- Algoritmos de planificación ÖServicio por orden de llegada (FCFS : “first-come, first-served”) ÖPropiedades •Sin Sin expulsión: Cuando un proceso tiene asignada la CPU, CPU la conserva hasta que desee liberarla, bien sea porque finaliza o por solicitud de una E/S. ÖVentajas •Fácil de implementar ÖInconvenientes •No optimiza el tiempo de espera: es muy variable en función del orden de llegada de los procesos y la duración de los intervalos de CPU. •Efecto convoy: Los trabajos largos retrasan a los cortos (por ejemplo: piense en un sistema con un único trabajo con largas ráfagas de CPU y muchos trabajos con ráfagas cortas de CPU). •No es adecuado para sistemas interactivos: Por ser sin expulsión un trabajo con una ráfaga de CPU larga puede provocar una espera larga a otros usuarios. Arquitectura de Computadores y Sistemas Operativos 91 10.- Algoritmos de planificación ÖPrioridad al trabajo más breve ( SJF: shortest-jobfirst ) • Se asocia a cada trabajo (proceso) la duración del siguiente intervalo de CPU que van a necesitar (NO es como una FIFO). • Se asigna la CPU al trabajo con menor tiempo asociado. • Sin expulsión: cuando un proceso tiene asignada la CPU, la conserva hasta que desee liberarla. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 92 46 Arquitectura de Computadores 10.- Algoritmos de planificación ÖEjemplo: Prioridad al trabajo más breve (SJF). SJF (sin expulsión) Procesos P1 P2 P3 P4 Instante de llegada 0 2 4 5 Duración 7 4 1 4 •Media del tiempo de espera: (0 + 6 + 3 + 7) / 4 = 4 P3 P2 P4 P1 7 0 8 12 16 Tiempo de espera medio: (0 + 3 + 6 + 7) / 4 = 4 Arquitectura de Computadores y Sistemas Operativos 93 10.- Algoritmos de planificación ÖVariante con expulsión del SJF ( SRTF: Shortest Remaining Time First ) Prioridad al que le resta menos tiempo (para finalizar) • La CPU es asignada al proceso que le queda menos tiempo para acabar la ráfaga de CPU en curso. • Variante con expulsión de SJF: Si llega un proceso con un intervalo de CPU inferior al tiempo que le falta al proceso en ejecución para abandonar la CPU, entonces el nuevo proceso se hace con la CPU CPU. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 94 47 Arquitectura de Computadores 10.- Algoritmos de planificación P ro ceso s P1 P2 P3 P4 ÖEjemplo del SRTF. Diagrama de Gantt P2 P1 0 2 P2 P3 4 5 T . L le g a d a 0 2 4 5 P4 7 D u r a c ió n 7 4 1 4 P1 11 16 Cronograma por procesos P1 P2 P3 P4 Media del tiempo de espera: (9 + 1 + 0 + 2 ) / 4 = 3 Arquitectura de Computadores y Sistemas Operativos 95 10.- Algoritmos de planificación Ö SRTF: Shortest Remaining Time First ÖVentajas • SRTF optimiza la media de tiempo de espera. ÖInconvenientes • El tiempo del siguiente intervalo de CPU es difícil de predecir porque no sabemos a priori si nos va a interrumpir la entrada de un nuevo proceso con intervalo de CPU menor. Esto lo hace difícil de implementar para un planificador l ifi d a corto t plazo.(En l (E llos sistemas i t por llotes t ell usuario puede aportar información). • Posibilidad de inanición: los trabajos largos no se ejecutarán mientras haya trabajos cortos. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 96 48 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación SJF/SRTF Aunque no se conoce la longitud de la siguiente ráfaga se puede predecir su valor esperando p p que q sea de longitud g similar a las anteriores. ÖEstimación del siguiente intervalo de CPU Se utiliza la media exponencial: T n+1 = α tn + (1 - α) Tn • • • • tn: tamaño real del n-ésimo intervalo de CPU Tn: Tamaño estimado del n-ésimo intervalo de CPU. α : coeficiente exponencial 0 < α < 1 Caso α = 1, los datos históricos son irrelevantes y sólo tiene importancia la ráfaga más reciente de CPU. T n+1 = tn • Caso α = 0, la historia reciente no tienen efecto, se supone que las condiciones actuales son transitorias. T n+1 = Tn • Es habitual que α = 1/2, por lo que la historia reciente y antigua se ponderan de igual manera. Arquitectura de Computadores y Sistemas Operativos 97 10.- Algoritmos de planificación ÖPlanificación SJF/SRTF ÖEstimación del siguiente intervalo de CPU Desarrollando la fórmula y sustituyendo T n+1 por tn llegamos a: T n+1 = α tn + (1 - α) α tn-1 + … + (1 - α)j α tn-j + … + (1 - α)n+1 T0 Ejemplo de promedio exponencial para α = 1/2, y T0= 10 12 10 longitud de ráfaga Puesto que tanto (1 - α) como α son menores o iguales que 1 cada término sucesivo tiene menos peso que el anterior. 8 6 4 2 tiempo Ráfaga de CPU: Predicción: Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 6 10 4 8 6 6 4 6 13 5 13 9 13 11 98 49 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación por prioridades • Se asocia a cada proceso un número (entero), llamado prioridad i id d d de acuerdo d con algún l ú criterio. it i • Se asigna la CPU al trabajo con mayor prioridad (normalmente, menor número). • Ejemplo: ¾SJF es un caso particular de prioridades en el que la prioridad es 1/T. Arquitectura de Computadores y Sistemas Operativos 99 10.- Algoritmos de planificación ÖEjemplo: ÖPlanificación prioridades Procesos T. Llegada Duración Prioridad P1 0 7 15 P2 2 4 10 P3 4 1 5 P4 5 4 10 P2 P4 Diagrama de Gantt P1 0 P3 P2 2 4 5 7 P1 11 16 Cronograma por procesos P1 P2 P3 P4 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 100 50 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación por Prioridades: Variantes • Algoritmos con expulsión/sin expulsión. • Prioridades estáticas/dinámicas estáticas/dinámicas. ¾Prioridades estáticas: La prioridad se asigna antes de la ejecución y no cambia. ¾Prioridades dinámicas: La prioridad cambia con el tiempo. Arquitectura de Computadores y Sistemas Operativos 101 10.- Algoritmos de planificación ÖPlanificación por prioridades ÖProblema de inanición Un algoritmo de prioridades es inherentemente poco equitativo. equitativo El problema extremo es: • Inanición: Los procesos con baja prioridad no se ejecutan nunca. ÖSolución: • Actualización de prioridades: Esquema de prioridades dinámicas, donde la prioridad de un proceso aumenta con el tiempo de espera. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 102 51 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación circular ( RR: Round Robin ) • A cada proceso se le asigna una pequeña cantidad de ti tiempo d de CPU CPU, llamada ll d ““quantum” t ” de d ti tiempo, normalmente l t 10-100 mseg. Si el proceso tiene un intervalo de CPU mayor que el “quantum”, entonces es expulsado de la CPU y añadido a la cola de procesos listos. • Si hay n procesos, cada uno obtiene 1/n del tiempo de la CPU en intervalos de q unidades, unidades como máximo (en un ciclo) Arquitectura de Computadores y Sistemas Operativos 103 10.- Algoritmos de planificación ÖEjemplo: ÖPlanificación circular P ro ceso s P1 P2 P3 Quantum q=4 T . L leg ad a 0 0 0 D u ració n 16 3 11 Diagrama de Gantt P2 P1 0 4 P3 7 P1 11 P3 15 P1 19 P3 23 P1 26 30 Cronograma por procesos P1 P2 P3 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 104 52 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación circular ÖValor del “quantum” de tiempo • Para q grandes: el algoritmo degenera en un algoritmo FCFS. • Para q pequeños: sobrecarga del sistema -> q ha de ser grande respecto al tiempo necesario para el cambio de contexto, sino la sobrecarga introducida es muy alta. Regla práctica: El 80% de los intervalos de CPU han de ser inferiores al “quantum” quantum de tiempo tiempo. Arquitectura de Computadores y Sistemas Operativos 105 10.- Algoritmos de planificación ÖPlanificación circular ÖPropiedades: • Equitativo. • El tiempo de espera máximo está limitado por (n -1) q, antes de recibir su siguiente cuanto de tiempo (en un ciclo) • El tiempo de retorno medio varía con el cuanto de tiempo. • En general es peor que el del algoritmo SRTF. Mejora si un porcentaje alto de trabajos acaban antes de que acabe el cuanto de tiempo (de ( ahí la regla práctica anterior)) Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 106 53 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación con múltiples colas Los procesos se pueden clasificar fácilmente en distintos grupos (interactivos, por lotes, etc.). La cola de procesos preparados consiste en realidad en diversas colas • Cada cola ha de tener su propio algoritmo de planificación. • Ha de haber un algoritmo de planificación entre colas. Arquitectura de Computadores y Sistemas Operativos 107 10.- Algoritmos de planificación ÖEjemplos de algoritmos de planificación entre colas: • Prioridades estáticas: á Los procesos en cola con menor prioridad no se ejecutan mientras haya procesos en cola con mayor prioridad. Posibilidad de inanición. • Cuotas de tiempo: Cada cola l está tá asignada i d a un porcentaje del tiempo de CPU. Ejemplo: el 80% a trabajos interactivos y el 20% a trabajos por lotes. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos Procesos Sistema FCFS (prio. 10) Usuarios privilegiados PRIO (prio. 8) Procesos Interactivos RR (prio. 6) Procesos Por Lotes SJF (prio (prio. 4) Colas de procesos preparados 108 54 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación con múltiples colas realimentadas. • Existen diferentes colas de procesos preparados. • Cada cola posee: ¾Política de planificación. ¾Una prioridad asignada. • Un proceso puede cambiar de cola de acuerdo con un esquema de actualización de prioridades: ¾Los procesos con un tiempo de espera acumulado elevado son promocionados i d a una cola l con prioridad i id d superior. i ¾Los procesos con un tiempo de utilización de la CPU elevado son degradados a una cola con prioridad inferior. Arquitectura de Computadores y Sistemas Operativos 109 10.- Algoritmos de planificación ÖPlanificación con múltiples colas realimentadas. ÖEjemplo RR [q=8] (prio. 10) RR [q=16] (prio. 8) FCFS (prio. 6) Colas de procesos preparados Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 110 55 Arquitectura de Computadores 10.- Algoritmos de planificación ÖMúltiples colas realimentadas ÖParámetros de las colas realimentadas: • Número de colas. • Prioridad de cada cola. • Método de promoción de un proceso. • Método de degradación de un proceso. • Método para determinar la cola de entrada de un proceso. Arquitectura de Computadores y Sistemas Operativos 111 10.- Algoritmos de planificación ÖUn ejemplo: Planificación de hilos • Round Robin (RR) cuanto = 2 I/O t10 ÖAlgoritmo del sistema operativo P1 t11 t12 0 ÖAlgoritmo biblioteca threads • Turno de llegada (FCFS) P2 Tema 1: Introducción a los Sistemas Operativos 2 3 t20 0 Arquitectura de Computadores y Sistemas Operativos 1 5 112 56 Arquitectura de Computadores 10.- Algoritmos de planificación t10 t11 t12 ÖUn ejemplo: Planificación de hilos t20 P1 t10 t11 t12 P2 P1 t20 t10 t11 t12 P2 t20 P1 P2 Núcleo _ Núcleo tn1 tn2 tn3 _ tn4 Núcleo _ tn1 Threads a nivel tn2 tn1 tn3 Threads de usuario de núcleo tn2 Threads híbridos Arquitectura de Computadores y Sistemas Operativos 113 10.- Algoritmos de planificación ÖPlanificación de hilos a nivel de núcleo (se trata cada thread como si fuera un usuario diferente) t10 t11 t12 t20 t10 t11 t20 Usuario 0 1 3 4 6 7 8 11 Núcleo tn1 tn2 tn3 tn4 tn1 tn2 tn4 t10 I/O t10 P1 t11 t12 P1 t20 P2 t11 t12 P2 0 1 2 3 Núcleo t20 _ 0 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 5 tn1 tn2 tn3 tn4 114 57 Arquitectura de Computadores 10.- Algoritmos de planificación ÖPlanificación de hilos a nivel de usuario (los threads de un mismo usuario van a la misma cola) Usuario t10 0 t20 1 t11 3 t20 5 t11 t12 t20 t10 7 8 9 10 11 Núcleo tn1 tn2 tn1 tn2 tn1 tn2 tn1 t10 t11 t12 I/O t10 t20 P1 P1 P2 t11 t12 P2 0 1 2 t20 3 Núcleo _ 0 5 tn1 tn2 Arquitectura de Computadores y Sistemas Operativos 115 10.- Algoritmos de planificación ÖPlanificación de hilos en la aproximación híbrida t10 t20 t11 t12 t10 t20 t11 t20 Usuario 0 1 3 5 7 8 9 10 11 Núcleo tn1 tn3 tn1 tn2 tn3 tn2 t10 t11 t12 I/O t10 P1 tn2 P1 t20 P2 t11 t12 P2 0 1 2 Núcleo t20 3 _ 0 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 5 tn1 tn3 tn2 116 58 Arquitectura de Computadores 11.- Evaluación de algoritmos 8.- Conceptos de planificación. 9 Criterios 9.C it i de d planificación. l ifi ió 10.- Algoritmos de planificación. 11.- Evaluación de Algoritmos. Arquitectura de Computadores y Sistemas Operativos 117 11.- Evaluación de algoritmos Es necesario evaluar para cada sistema cual es el algoritmo de planificación más adecuado. ÖProcesos en la selección de un algoritmo: • (1) Selección de criterios (utilización CPU, t. respuesta, etc.). • (2) Estudiar la adaptación de cada algoritmo a esos criterios. Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 118 59 Arquitectura de Computadores 11.- Evaluación de algoritmos ÖExisten diferentes métodos para llevar a cabo dicha evaluación: • Evaluación analítica: Dada la carga de trabajos producir una fórmula matemática del rendimiento para cada algoritmo de planificación. ¾Modelo determinista: Evaluar el rendimiento para cada caso particular de carga. ¾Modelos de colas: Caracterizar la carga con una distribución estadística (distribución exponencial). – Caracterizar la tasa de llegada de trabajos. – Caracterizar el tiempo de servicio de un recurso. – Hacer análisis estadístico de las redes de colas. Ejemplo: Fórmula de Little n = λ * E n: tamaño medio de la cola, λ tasa media de llegada, E: tiempo medio de espera en la cola. • Simulaciones: Hacer un modelo, programarlo y ejecutarlo. Arquitectura de Computadores y Sistemas Operativos 119 Resumen ÖEl S.O. Puede verse como un programa que atiende y sirve los eventos producidos por los procesos y los dispositi os dispositivos. ÖCuando se da alguno de estos eventos cambia el estado de alguno de los procesos existentes en el sistema o el propio estado del sistema operativo. Ö¿ Qué podemos considerar un evento de este tipo ? • Una llamada al sistema. • Una interrupción de un dispositivo de E/S. • Una interrupción de reloj. • Una excepción provocada por el código de un proceso (Instrucciones ilegales, acceso a memoria no asignada, divisiones por cero, ...). Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 120 60 Arquitectura de Computadores Flujo de Control del S.O. Interrupción de periférico Reloj Excepción del Procesador Llamada al Sistema Activación del Sistema Operativo Guardar el contexto del proceso en ejecución en su PCB Anotar el avance del tiempo Si tiempo límite excedido: Proceso en ejecución a preparado Pasar a preparado al proceso que esperaba el fin de la E/S Finalizar el proceso en ejecución Pasar a suspendido al proceso en ejecución Crear hijo. Hijo a preparado Resolver la llamada al sistema Planificador: selección del próximo proceso Restaurar el contexto del proceso seleccionado Arquitectura de Computadores y Sistemas Operativos 121 Anexo I: Interrupción Hw ÖEjemplo de Interrupción Hw programada por el puerto paralelo //******************************************************************************** // //** EJEMPLO DE INTERRUPCIONES HW POR PUERTO PARALELO //******************************************************************************** #include <stdio.h> #include <dos.h> #define DATA 0x0378 #define STATUS DATA+1 #define CONTROL DATA+2 #define PIC1 0x21 #define TRUE 1 #define FALSE 0 void open_intserv(void); void close_intserv(void); void interrupt far intserv(void); int intlev=0x0f; void interrupt far (*oldfunc)(); int int_occurred=FALSE; //irq 7 Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 122 61 Arquitectura de Computadores Anexo I: Interrupción Hw void main(void) { clrscr(); outportb(DATA,0xff); p _intserv(); (); open printf("\n CONFIGURACIÓ HARDWARE"); printf("\n ====================="); printf("\n Control Paralel= %x",inportb(CONTROL)); printf("\n Estat Paralel= %x",inportb(STATUS)); printf("\n Estat PIC1= %x",inportb(PIC1)); getch(); clrscr(); printf("\n Iniciem programa Interrupcions port paralel:"); while(!kbhit()) { if(int_occurred) { printf("\n INTERRUPCIà generada"); int_occurred=FALSE; } } close_intserv(); } Arquitectura de Computadores y Sistemas Operativos 123 Anexo I: Interrupción Hw void interrupt far intserv(void) { disable(); int_occurred=TRUE; p ( , 0x20); ); outportb(0x20, enable(); } void open_intserv(void) { disable(); oldfunc=getvect(intlev); setvect(intlev, intserv); outportb(PIC1,(inportb(0x21) & ~0x80)); outportb(CONTROL, inportb(CONTROL) | 0x10); //Envía EOI al PIC1 //Habilito la IRQ7 en el PIC1 //Habilita IRQ a trav‚s de ACK // Cuando ~ACK, se genera IRQ enable(); } void close_intserv(void) { disable(); setvect(intlev, oldfunc); outportb(PIC1, (inportb(PIC1) | 0x80)); outportb(CONTROL, inportb(CONTROL) & ~0x10); enable(); } Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos //Inhabilito la IRQ7 //inabilita IRQ a través de ACK 124 62 Arquitectura de Computadores Anexo I: Interrupción Hw Arquitectura de Computadores y Sistemas Operativos 125 Anexo II: Mac OS X Ö Ejemplo del SO de Mac: Mac OS X Snow Leopard Arquitectura de Computadores y Sistemas Operativos Tema 1: Introducción a los Sistemas Operativos 126 63 Mac OS X Apple Inc. lunes 28 de septiembre de 2009 Historia • En 1971 Steve Wozniak y Steve Jobs fundan Apple • En 1976 crean el primer ordenador personal que combina un teclado con un microprocesador y una conexión a un monitor. El Apple I. lunes 28 de septiembre de 2009 Apple I • Se vendía por $666,66 se fabricaron 200 unidades • CPU: MOS Technology 6502 a aproximadamente 1 MHz • RAM: 4KB standard. Extensible hasta 8KB • ROM: 256 Bytes • Gráficos: 40x24 caracteres lunes 28 de septiembre de 2009 Apple I: Placa base lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 Apple II • Primer modelo en producción masiva entre finales de los 70 y mediados de los 80 • CPU: 6502 de MOS Technology a 1 MHz • 4 Kilobytes de RAM • 12 KB de ROM • Interfaz de grabadores de cassettes lunes 28 de septiembre de 2009 Apple II lunes 28 de septiembre de 2009 Apple III • Se pone a la venta en mayo de 1980 • CPU: !P de 8 bits Synertek 6502A a 2MHz • 128 Kilobytes de RAM • Disquetera interna para discos de 5,25 • 4 ranuras internas de ampliación y dos puertos serie en la parte posterior lunes 28 de septiembre de 2009 Apple III lunes 28 de septiembre de 2009 Apple Lisa • Introducido en enero de 1983 es el primer ordenador con interfaz gráfica y con ratón. • Se vendió a $9,995 • CPU Motorola 68000 a 5Mhz • 1MB de memoria RAM • 2 unidades de disquete de 5,25 lunes 28 de septiembre de 2009 Apple Lisa lunes 28 de septiembre de 2009 • Apple Lisa resultó un fracaso comercial, aunque la historia lo considera como el primer ordenador personal. • Al mismo tiempo que se desarrollaba el Apple Lisa se trabajó en un nuevo modelo, el Apple Macintosh. lunes 28 de septiembre de 2009 Apple Macintosh • Se empezó a vender en 1984 • Fue el primer ordenador personal comercializado exitosamente que usaba interfaz gráfica de usuario (GUI) • A partir de este modelo se empezó a desarrollar el Sistema Operativo tal y como lo conocemos en la actualidad lunes 28 de septiembre de 2009 Apple Macintosh lunes 28 de septiembre de 2009 Apple System • Se desarrollaron hasta 7 versiones distintas del Apple System para las máquinas Apple • Todos tenían GUI (interfaz gráfica de usuario) lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 Tiempos de crisis • Después de la comercialización del Apple Macintosh y del Apple Lisa, Apple Inc. tuvo muchos problemas económicos • Steve Jobs (fundador) fue despedido de su propia empresa • Steve Wozniak (co-fundador) abandonó la empresa después de salir ileso de un accidente de avión lunes 28 de septiembre de 2009 • Después de su salida de Apple, Steve Jobs fundó NeXT Computer Inc. • NeXT se convirtió en una empresa muy conocida por sus avanzados ordenadores y por sus plataformas de desarrollo orientadas a objetos • A principios de 1997 Steve Jobs vuelve a Apple absorbiendo a NeXT • De esta unión nace el que hoy conocemos como Mac OS lunes 28 de septiembre de 2009 Mac OS 8 • Liberado el 26 de julio de 1997 • Se mejora enormemente la calidad gráfica, se introduce el color • Se implementa el multi-hilo que lo convierte en un sistema multitarea • Se introduce un nuevo sistema de ficheros, HFS Plus (Hierachical File System) lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 Mac OS 9 • Liberado el 23 de octubre de 1999 • Se implementan mejoras en el plano de red, incluyendo soporte para redes wi-fi • Se introduce el concepto de soporte multiusuario (aún no era un sistema propiamente multi-usuario) • Se mejora el motor de búsqueda interno lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 lunes 28 de septiembre de 2009 Mac OS X • Lanzado el 24 de mayo de 2001 • Es un sistema operativo completamente reescrito • Se busca mucha más estabilidad y crear un sistema robusto (seguro) lunes 28 de septiembre de 2009 Mac OS X • SO basado en UNIX que se construye con la tecnología desarrollada en NeXT • Sistema multi-tarea y multi-usuario • Combina la potencia del núcleo UNIX y un entorno gráfico cuidado y atractivo lunes 28 de septiembre de 2009 Mac OS X • Todas las API de Mac OS Classic fueron portadas a librerías UNIX. Esto permitió portar aplicaciones sin tener que reescribir el código entero. • Escrito para arquitectura PowerPC (chips IBM). En 2005 empiezan a migrar todos los equipos a Intel (x86) lunes 28 de septiembre de 2009 Mac OS X: Benchmarks lunes 28 de septiembre de 2009 Mac OS X Snow Leopard Tecnología de 64 bits Grand Central Dispatch OpenCL (Open Computing Languge) lunes 28 de septiembre de 2009 Tecnología de 64 bits • • • • Más rápido Grand Central Dispatch • Optimiza la utilización de todos los núcleos asignando tareas independientes • Proporciona potentes APIs de programación multinúccleo Más seguro Compatible con 32 bits Ampliación de memoria hasta 16.000 millones de gigabytes OpenCL (Open Computing Languge) • Se adapta automáticamente a la potencia de procesamiento disponible en cada uno de los procesadores gráficos • Lenguaje abierto y familiar para los programadores lunes 28 de septiembre de 2009 Mac OS X Snow Leopard Office en el Mac Copias de seguridad automatizadas Compatible con todos los estándares de la industria Posibilidad de ejecutar Windows de forma nativa lunes 28 de septiembre de 2009