Clase numero 5 SISTEMAS DE TIEMPO REAL Con frecuencia se utilizan como dispositivosde control en aplicaciones delicadas tales como el control de experimenros cientificos, sistemas de imagenes medicas, y algunos sistemas de presentacion. Restricciones de timepo fijo bien definidas. Sistemas de tiempo real duros. La memoria secundaria es muy limitada o ausente, los datos son almacenados en memoria de corto plazo (memoria de solo lectura (ROM)o similar). Tiene conflictos con los sistemas de tiempo compartido, no esta soportado por los sistemas operativos de proposito general. Sistemas de tiempo real blandos de utilidad limitada en industrias de control o robótica.Util en aplicaciones que requieren de avanzadas caracteristicas del sistema operativo (multimedia, realidad virtual). La estructura de un sistema de tiempo real esta conformado de un sistema controlador y al menos un sistema controlado. Los sistemas de tiempo real deben producir resultados computacionales exactos, llamados exactitud funcional o logica, y estos calculos deben terminar en un periodo de tiempo predefinido, llamada exactitud temporal. Los sistemas de tiempo real se definen como aquellos sistemas en los cuales la exactitud total del sistema depende de la exactitud funcional y de la exactitud temporal. SISTEMAS MULTIPROCESADOR Sistemas multiprocesador con mas de una CPU en comunicacion muy cercana. Sistemas fuertemente acoplados-los procesadores comparten la memoria y el reloj; la comunicacion por lo general se realiza a traves de la memoria compartida. Ventajas de los sistemas paralelos: Incremento del rendimiento. Economicos. Encrementan confiabilidad.(degradacion gradual, Sistemas de fallos controlados por software). SISTEMAS OPERATIVOS DISTRIBUIDOS DOS Menos autonomia entre computadores. Da la impresion que solo hay un sistema operativo controlando la red. Aegis, Amoeba, Arachne, Charlotte, Chice, Clouds, Cmds, Condor, Cronus, Demos/Mp, Distos, Distrix, Dunix, Eden, Galaxy, Locus, Mdx, Micros-Mos, Mosix, Newark, Nsmos, Plam9, Repos, Rig, Roscoe, Saguaro, Soda, Sods/Os, Spring, Uniflex, V. ESTRUCTURA GENERAL SISTEMA OPERATIVO DE RED (NOS) Proporciona archivos compartidos. Proveen esquemas de comunicacion. Corren independientemente de otros computadores en la red. Accent, Bos/Net, Cocanet-Unix, Cp/Net, Cp/Nos, Hetnos, Lahnos, Mp/Net, Mp/Nos, Netware-connection, Nsw, Pc/Nos, Rio/Cp, Rsexec, Trix, Unetix. ESTRUCTURA GENERAL DE UN SISTEMA DISTRIBUIDO BASADO EN MIDDLEWARE Es un sistema distribuido basado en middleware, los protocolos usados por cada capa middleware deben ser los mismos, asi como las interfaces que ofrecen a las aplñiaciones. ARQUITECTURA DEL SISTEMA ARRANQUE DEL COMPUTADOR El arranque/Reset carga valores predefinidos en registros. Direccion de arranque del cargador ROM. Se ejecuta el cargador ROM del sistema. Test del sistema. Trae a memoria el boot del SO. En el del PC la ROM contiene, ademas, SW de E/S (BIOS). ARRANQUE DEL SITEMA OPERATIVO El cargador ROM carga el sector de boot del SO y le da control, si multos >Programa gestor de arranque. El boot del SO carga el SO rsidente y da control al programa de arranque del SO, que: Comprueba el hardware. Comprueba el sistema de ficheros. Establece las tablas del SO. Crea procesos ((segun el tipo de SO) Procesos INIT Procesos o tareas del sistema (demonios). Procesos de login (uno por terminal). Tras la autentuicacion, el proceso login se convierte en shell. Toma control SO (inicio). Espera de ocurrencia de suceso (interrupcion Hw/Sw). Si enterrupcion Desactiva las otras interrupciones. Guarda estado sistema. Ejecuta rutina de vector de interrupciones/escrutinio. Reactiva variables de estado. ACCESO DIRECTO A MEMORIA (DMA) 1. El procesador envia una solicitud de I/O, el cual envia una solicitud al disco.El procesador continua ejecutando instrucciones. 2. El disco envia los datos al controlador de I/O; los datos se colocan en la direccion de memoria especificada por la orden DMA. 3. El disco envia una interrupcion al pecesador para indicar que la peticion I/O se ha realizado. JERARQUIA DEL ALMACENAMIENTO Los sistemas de almacenamiento se organizan por jerarquias. Velocidad. Costo. Volatilidad. Caching- es la copia de informacion en un sistema de almacenamiento mas rapido; la memoria principal puede verse como el ultimo cache para el almacenamiento secundario. JERARQUIA DE LOS DISPOSITIVOS DE ALMACENAMIENTO clase numero 6 ESPECIFICACIONES SUPERCOMPUTADOR SILLICON GRAPHICS Silicon graphics 1024 procesadores Intel Itanium2 dual-core 1.6 Ghz con 6MB cache L3 cada uno y 4 terabytes de memoria, corriendo servidor Suse Linux Enterprise 10. Tiene una tasa de transferencias sostenida de 4.5 terabytes por seg vs 1089 MB/s de pentium 4 3.2 Ghz. UNIDADES DE MEDIDA PROTECCION DE HARDWARE Operacion en modo dual. Proteccion de E/S Proteccion de memoria Proteccion de CPU. OPERACION EN MODO DUAL El compartir los recursos del sistema requiere que el SO se asegure que un programa incorrecto no pueda propiciar que otros programas se ejecuten de forma incorrecta. Proporciona so`porte al hardware para diferenciar entre al menos dos modos de operacion. 1. Modo de usuario- Ejecucion de parte del usuario. 2. Modo Monitor (tambien modo supervisor o modo del sistema)- Ejecucion realizada por parte del sistema operativo. (1). OPERACION EN MODO DUAL (2) Se adiciona al hardware un bit de modo para indicar el modo actual: monitor (0) o usuario Cuando sucede una interrupcion o fallo el hardware se cambia a modo monitor. Interrupcion/fallo Las instrucciones privilegiadas solo pueden ser ejecutadas en el modo supervisor. PROTECCION DE MEMORIA Debe proveer proteccion de memoria al menos para el vector de interrupciones y el vector de las rutinas de sevicios de interrupcion. Con el fin de tener la proteccion de memoria, se agregan dos registros que determinan el rango de las direcciones validas que un programa puede acceder: -Registros base- contiene la direccion legal fisica mas pequeña. -Registro limite- contiene el tamaño del rango. -La memoria fuera del rango es protegida. EL REGISTRO BASE Y EL LIMITE DEFINEN UN ESPACIO DE DIRECCIONES LOGICO PROTECCION POR HARDWARE Cuando se esta ejecutando en modo supervisor, el SO tiene acceso irrestricto tanto a la memoria del usuario como la del supervisor. Las instrucciones de carga para el registro base y el limite son privilegiadas. PROTECCION POR CPU Temporizador: Interrumpe al computador despues de un periodo especifico para garantizar que el SO mantenga el control. - El temporizador se decrementa por cada pulsacion del reloj. -Cuando el temporizador alcanza el valor de 0, ocurre una interrupcion. El temporizador se utiliza comunmente para implementar tiempo compartido. El temporizador tambien se utiliza para calcular el tiempo actual. La carga del temporizador es una instruccion privilegiada. ESTRUCTURA DEL SISTEMA COMPONENTES DEL SO LLAMADAS AL SISTEMA Las llamadas al sistema proporcionan la interface entre un programa corriendo y el sistema operativo. En general estan disponibles como instrucciones en ensamblador. Se han definido lenguajes para reemplazar el lenguaje ensamblador en programacion de sistemas que permitan realizar en forma directa las llamadas al sistema. Tres metodos genericos para pasar parametros a las llamadas al sistema: -En registros. -En una tabla de memoria, cuya dirrecion se pasa al SO en un registro. -Poner los parametros en la pila del programa y dejar que el SO los extraiga. Cada SO proporciona sus propias llamadas al sitema: -Estandar POSIX (Portable Operating System Interface) en UNIX y LINUX. -Win 32 en Windows NT. -Java API para JVM. PROCESAMIENTO SIMPLE DE INTERRUPCIONES INTERFAZ DEL PROGRAMADOR Esta interfaz recupera la vision que como maquina extendida riene el usuario del sistema operativo: -Portable Operating System Interface: POSIX (Interfaz de sistemas operativos portables de IEEE basado en Unix)1003>>ISO/IEC 9945. -Win32 ESTANDAR POSIX Interfaz estandar de sistemas operativos de IEEE. Objetivo: portabilidad de las aplicaciones entre diferentes plataformas y sistemas operativos. NO es una implementacion, solo efine una interfaz. Diferentes estandares -1003.1 Servicios basicos del SO. -1003.1a Extensiones a los servicios basicos. -1003.1b Extensiones de tiempo real. -1003.1c Extensiones de procesos ligeros. -1003.2 Shell y utilidades. -1003.2b Utilidades adicionales. CARACTERISTICAS DE WIN32 Define los servicios ofrecidos por los sistemas Windows 95/98, Windows NT, Windows 2000, XP. No es un estandar. API totalmente distinto a POSIX. Los recursos se referencian mediante manejadores. Nombres de funciones largos y descriptivos: -GetFileAtributes. -CreateNamedPipe Dispone de tipos de datos predefinidos. -Bool -Dword -Tchar. Las funciones devuelven en general True en caso de éxito y False en caso de error. SISTEMA INTERPRETE DE COMANDOS Muchos comandos se dan al sistema operativo por instrucciones de control que tienen que ver con: -Administracion y creacion de procesos -Manejo de E/S. -Administracion de memoria secundaria. -Administracion de memoria principal. -Acceso al sistema de archivos. -Proteccion. -Redes. El programa que lee e interpreta las instrucciones de control tiene diferentes nombres: -Interprete de tarjetas de control. -Interptrete de lineas de comando. -Shell. Su funcion es obtener y ejecutar la proxima instruccion de comandos clase numero 7 ARQUITECTURA DE UN COMPUTADOR Las capas claves de implementacion se comunican verticalmente a traves del conjunto de instrucciones de la arquitectura, la interface de aplicacion binaria y la interface de programas de aplicacion. MONITORES DE MAQUINA VIRTUAL Una componente clave de las VM son los monitores de maquina (VMM) que peoporcionan una capa entre los ambientes de software y el hardware, que es programable, transparente al software que tiene encima y hace eficiente el hardware sobre el que esata mantado. Procesos y las VM a. En un proceso de VM, el software de virtualizacion traduce un conjunto de instrucciones del SO y de nivel de usuario convirtiendo una plataforma en otra. b. En un sistema VM el software de virtualizacion traduce la ISA (Arquitectura del conjunto de instrucciones) utilizada por una plataforma de hardware en otra. TAXONOMIA DE VM Las VM pueden ser de procesos o de sistemas, con la misma o diferente arquitectura de conjunto de instrucciones. VENTAJAS Y DESVENTAJAS DE LAS MAQUINAS VIRTUALES El concepto de maquina virtual proporciona completa proteccion de los recursos del sistema, ya que cada maquina virtual esta aislada de las otras maquinas virtuales. El aislamiento, no permite el compartir en forma directa los recursos. Un sistema de maquina virtual es una perfecto vehiculo para la investigacion y el desarrollo de los sistemas operativos, el desarrollo del sistema se hace sobre la maquina virtual, a cambio de realizarlo sobre la maquina fisica de tal forma que no afecta la operacion normal del sistema. El concepto de maquina virtual es dificil de implementar debido al esfuerzo requerido para proporcionar un duplicado exacto de la maquina subyacente. AMBIENTES DE LENGUAJES DE ALTO NIVEL a) Ambiente convencional donde se distribuye el codigo objeto de la plataforma tradicional. b) Ambiente de VM donde una VM dependiente de plataforma ejecuta codigo portable intermedio. PLATAFORMA JAVA PLATAFORMA .NET FRAMEWORK ESTRUCTUIRA INTERNA DEL ENTRONO DE COMUN DE EJECUCION PARA LENGUAJES CLR (COMMON LANGUAGE RUNTIME) Multiplataforma El modelo es abierto, luego es posible la creacion de CLR para cualquier plataforma. Multilenguaje Existen traductores para C#, J#, Visul C++, Visual Basic, Pascal, Cobol, Java, Eiffel, Python, Perl, APL, Delphi, Mondrian, Fortrian, RPG, Smalltalk, Haskell... Recolector de basura muy efectivo En C# no existen destructores. Liberacion determinista mediante el uso de la instruccion Using Los paquetes se tienen en memoria solo cuando se usan. TIPOS SOS DE ACUERDO AL KERNEL Macrokernel/Monokernel Microkernel Nano Kernel Exokernel ARQUITECTURA MICROKERNEL Arquitectura de sistemas operativos microkernel Proporciona solo un pequeño numero de servicios;Intenta tener un kernel pequeño y escalable. Alto grado de modularidad; Extensible, portable y escalable. Se incrementa el nivel de comunicacion entre modulos; Puede degradar el rendimento del sistema. BENEFICIOS DE UNA ORGANIZACION MICROKERNEL Interfaces uniformes en las peticiones realizadas por un proceso. - Los procesos no necesitan diferenciar entre servicios a nivel de nucleo y a nivel de usuario. - Todos los servicios se proporcionan a traves de paso de mensajes. Estensibilidad - Permite agragar nuevos servicios. Flexibilidad - Se pueden añadir nuevas caracteristicas al sistema operativo. - Se pueden eliminar las caracteristicas existentes. Portabilidad - Los cambios necesarios para transferir el sistema a un nuevo procesador se cambian en el micronucleo, no en otros servicios. Fiabilidad. - Diseño modular. - Un micronucleo pequeño se puede verificar de forma rigurosa. Sporte de sistemas distribuidos. - Los mensajes se mandan sin saber en que maquina reside el servicio pedido. Sistema operativo orientado a objetos. - Los componentes son objetos con enietrfaces claramente definidad que puedenser interconectadas para la realizacion del software. EXOKERNEL Un SO se interpone entre las aplicaciones y el Hw. Elimina el concepto de abstraccion sobre el cual corren las aplicaciones. Se asegura de multiplexar el Hw desnudo: a traves de primitivas de Hw, librerias a nivel de aplicacion y servidores. Ej. XOK con Exos (libreria sos tipo unix) de MIT, Aegis, Nemesis (Cambridge). El servidor Cheetah se construye sobre XOK. Es escencialmente la extension de la filosofia de la arquitectura Risc en CPU al nivel del sistema operativo. OBJETIVOS DE DISEÑO DEL SISTEMA Objetivos de los usuario- que el sistema operativo sea adecuado para su uso, facil de aprender, confiable, seguro y rapido. Objetivos del sistema- El sistema operativo debe ser facil de diseñar, implementar, y mantener, de la misma forma que sea flexible, confiable, libre de errores y eficiente. IMPLEMENTACION DEL SISTEMA Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora pueden ser escritos en lenguajes de alto nivel. El codigo escrito en alto nivel: - Puede ser mas rapido. - Es mas compacto. - Es mas facil de entender y depurar. Un sistema es mas facil de ser portable si esta escrito en lenguaje de lato nivel. Clase numero 8 PROCESOS Concepto de procesos. Operaciones sobre procesos. Procesos cooperativos. Hilos. Planeacion de procesos. CONCEPTO DE PROCESOS Un sistema operativo ejecuta una variedad de programas: - Sistemas por lotes-Trabajos. - Sistemas de tiempo compartido- Programas de usuario o tareas. Definicion: Un programa en ejecucion con el entorno asociado/Unidad de procesamiento gestionada por el SO. Un proceso incluye: - Un controlador de programa. - Pila. - Seccion de dator, codigo. Programa: ente pasivo. Proceso: ente activo. SISTEMA CON MEMORIA VIRTUAL La informacion de traduccon esta en la tabla de paginas. Preasignacion de zona de intercambio: Todas las paginas estan en disco, algunas estan copiadas en marcos de pagina. MODELO SIMPLIFICADO Un proceso puede estar en dos estados: - Corriendo - No corriendo. ESTADO DE LOS PROCESOS En la medida que se ejecuta un proceso su estado se modifica. Nuevo: El proceso se esta creando. Corriendo: Las instrucciones estan ejecutandose. Esperando/Bloqueado: El proceso esta a la espera de la ocurrencia de algun evento. Listo: El proceso esta esperando a ser asignado al proceador. Terminado: El proceso ha terminado su ejecucion. DIAGRAMA DE TRANSICION DE ESTADO DE LOS PROCESOS. Clase numero 9 OPERACIONES SOBRE LOS PROCESOS CREAR: nombre, BCP, tabla, recursos, prioridad, jerarquico/No jerarquico. DESTRUIR: Eliminarlo del sistema. SUSPENDER:Paraliza (fallo. pausa, congestion). Retardar Abortar Leer atributos REANUDAR CAMBIAR PRIORIDAD BLQUEAR: E/S DESPERTAR: Desbloqueo. DESPACHAR TEMPORIZAR: Ejecucion programada ESTRUCTURA GENERAL DE LAS TABLAS DE CONTROL DEL SO Tablas del sistema operativo BLOQUE DE CONTROL PROCESOS (PCB) Descriptor del proceso para SO en tabla de procesos, informacion asociada con cada proceso. Identificacion del proceso (PID) Identificacion del procesador, Afinidad. Estado del proceso (flags) Identificacion de usuario, grupo Contador de programa Apuntador a proceso padre Apuntadores a procesos hijos Registros visibles de la CPU Informacion de planificacion de la CPU Informacion de administracion de la memoria (datos, instrucciones) Informacion contable Informacion de estado E/S Localiza, Identificador, estado padre, hijos, prioridad, memoria, estadisticas, recursos en uso, privilegios, hora inicio, ... LA CPU CAMBIA DE PROCESOS A PROCESO Cuando la cpu cambia a otro procesos, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso. La conmutacion de contexto es trabajo extra, el sistema no realiza trabajo util mientras cunmuta, depende en gran medida del apoyo del hardware. Cuando un proceso esta ejecutando su estado reside en los registros del computador. Cuando un proceso no se esta ejecutando, su estado reside en el BCP. PLANIFICADORES El planificador de corto plazo o planificador de cpu selecciona que proceso debe ser ejecutado enseguida y se le aigna la cpu, bajo nivel, Scheduler/ despachador es solicitado muy frecuentemente (milisegundos) -(debe ser rapido). Planificador de mediano plazo: intermedio. El planificador de largo plazo o planificador de trabajos: selecciona que proceso debe ser traido a la cola de listos, es solicitado con poca frecuencia ( segs, minutos)- (puede ser lento) El planificador de largo plazo controla el grado de multiprogramacion. Los proceos pueden ser descritos como: - Procesos limitados por E/S- consumen mas tiempo realizando operaciones de E/S que calculos, causan mucgas rafagas cortas a la cpu. - Procesos limitados por cpu- consumen mas tiempo realizando calculos, emplean pocas rafagas fuertes a la cpu. ADICION DE PLANIFICACION DE MEDIANO PLAZO CREACION DE PROCESOS Los procesos padres crean proceos hijos, los cuales, a su vez crean otros proceos, conformando un arbolde procesos. Recursos compartidos. - Los procesos padres e hijos comparten los recursos. - Los hijos comparten un subconjunto de los recursos del padre. - El padre y e hijo no comparten recursos. Ejecucion. - El padre y el hijo se ejecutan concurrentemente. - El padre espera a que termine el hijo. Espacio de direcciones. - El hijo deplica el del padre - Se carga un programa en el proceso hijo. Ejemplos Unix. - La llamada al sistema fork crea nuevos procesos. - La llamada al sistema execve es utilizda despues de fork para reemplazar el espacio de memoria del proceso con un nuevo programa. JERARQUIA DE PROCESOS Grupos de procesos dependientes de cada shell. Familia de procesos. - Proceso hijo - Proceso padre - Proceso hermano -Proceso abuelo Vida de un proceso - Crea - Ejecuta - Muere o termina Ejecucion del proceso - Batch - Interactivo Grupo de procesos. PROCESOS COOPERATIVOS Los proceos independientes no pueden afectar o ser afectados por la ejecucion de otros procesos. Los procesos cooperativos pueden afectar o ser afectados por la ejecucion de otros procesos. Ventajas de cooperacion entre procesos - Se comparte informacion - Agiliza los calculos. -Convivencia. PROBLEMA DE LOS PRODUCTORES Y CONSUMIDORES. El problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen informacion que es consumida por los procesos consumidores. Buffer ilimitado no establece un limite practico para el tamaño del buffer. El buffer limitado asume que hay un tamaño fijo de buffer. HILOS Beneficios Hilos de usuario y de nucleo Modelos multihilados Hilos solaris 2 Hilos Java Ms-dos usa un solo hilo por proceso. Unix V soporta multiples procesos por usuario pero solo un hilo por proceso. Un hilo (o proceso ligero/liviano) es una unidad basica de utilizacion de la cpu; consiste de: - Contador del programa - Conjunto de registros. - Espacio de pila. Un hilo comparte con sus hilos pares su: - Seccion de codigo -Seccion de datos -Los recursos del sistema operativo. Colectivamente conocido como una tarea. Um proceso tradicional o pesado es igual a una tarea con un solo hilo.