11 de febrero de 2010 SISTEMAS OPERATIVOS Nivel 5 Nivel 4 Nivel de lenguaje orientado al problema Traducción (compilador) Nivel de lenguaje ensamblador Traducción ensamblador Nivel 3 Nivel 2 Nivel de de maquina del sistema operativo Nivel de maquina del sistema convencional Interpretación parcial (S.O) Interpretación microprogramación Nivel 1 Nivel de microprogramació n directamente por la máquina Nivel 0 Real Nivel de lógica digital Los microprogramas son ejecutados Maquina Sistemas Operativos Como maquina ampliada: es el software cuya función es presentar al usuario el equivalente de una maquina virtual (N3) que sea más fácil de programar que el hardware implícito. Como manejo de recursos: Es el administrador de los recursos ofrecidos por el hardware para lograr un eficiente rendimiento de los mismos. Es un programa o conjunto de programas que actúan como intermediarios entre usuarios y el hardware del computador. Clase de sistemas operativos 17 de febrero Ejecución de una orden: EDIT FUENTE.TXT • Entrada de orden • Interprete de comandos y ejecución del programa • Verifica presencia de Edit en memoria sino lo pasa a un subsistema de archivos( tamaño) • El gestor de memoria asigna memoria • El cargador lo carga • Se crea el BCP • El BCP se matricula en la lista de procesos listos • El planificador elije el programa para ejecución • EDIT solicita al SO la apertura de fuente .txt • Se registra fuente.txt en archivos activos • Dialogo Teclado-pantalla • Termina: guarda, cierre, libera memoria Área de memoria de intercambio –Bufer Objetivos buscados del sistema operativo • Eficiencia: hacer las cosas con la menor cantidad de recursos • Robustez: Capaz de responder a todas las exigencias de los usuarios,” Aguante el uso y el abuso” • Escalabilidad: Capaz de atender volúmenes pequeños y grandes de trabajo, crece dependiendo de las exigencias. • Extensibilidad: Que se le puedan agregar mas módulos, mas funciones • Portabilidad: Que se pueda ejecutar en diferentes plataformas (hardware) • Seguridad: el sistema debe dejar hacer a los usuarios lo que puede hacer, en el momento indicado. • Protección: el sistema no debe realizar actividades no permitidas • Interactividad: • Usabilidad: amigable con el usuario, fácil de entender y manejar • Auditabilidad: permite rastrear las aplicaciones, hacer seguimientos a las actividades, (Quien, cómo y cuándo) • Transparencia: Que de la información correcta en el momento oportuno • Estabilidad: Que el sistema no se salga de casillas por nada. Que no saque errores con frecuencia Ambientes de computación Computación tradicional: PCs, servidores, terminales de mini/maxi acceso remoto limitado Redes de computadores: LAN, WAN, MAN, PAN (personal Area Network, HAN (home area network) Computación cliente servidor Computación P2P (peer to peer) No se distingue cliente de servidor Ejemplo Napster Gnutella Computación basada en la web: Cliente servidor y servicios de web, acceso remoto adecuado, servidores sin ubicación. Computación embebida/empotrada Controladores de maquinas, microondas, etc, (se tienen dispositivos inteligentes dentro de equipos) Características limitadas en los sistemas operativos Poca o ninguna interacción con el usuario, acceso remoto Es la forma más extendida del uso de los computadores Grid computing (computación en red) Clound computing Computación en la nube) Utility computing 18 de febrero de 2010 La vitalización ha hecho posible el desarrollo de los sistemas y la información en la nube a la cual se pueden acceder remotamente por medio de un proveedor de servicios. Tipos de sistemas operativos Monoprogramación: Por lotes: PROGRAMA+DATOS+ORDENES No interacción (nomina análisis de tiempo, análisis estadístico, cálculos científicos, etc. Procesamiento FCFS, no gestión E/S, pobre gestión archivos. Interactiva Por lotes e interactiva Fortan Monitor System Memoria Monitor residente Drivers de dispositivos Secuenciador automático de trabajos Interprete de las tarjetas de control (JCL) Tipos de sistemas Operativos • Multiprogramación: Multitarea: Varios procesos Mono usuario: 1 solo usuario Multiusuario: varios usuarios interactivos Multiacceso: Un programador varios terminales Multiprocesador: Varios procesadores Tiempo compartido: Multiprog. Int+lote Tiempo real: Respuesta de acuerdo a entorno (responde de acuerdo al sistema que está controlando) Combinados: Mezcla varias modalidades SOR: Múltiples computadores, C/maquina ejecuta su SO Distribuidos: s/ autónomos capaces de comunicación y cooperación mediante interconexiones HW y SW ven el S/ como si fuera uniprocesador En multiprogramación monoprogramacion se utilizan más recursos, que en Sistemas de computación personal Computadores personales- computadores dedicados a un solo usuario. • Dispositivos I/O teclados, ratón, pantallas, pequeñas impresoras • Conveniencia y responsabilidad del usuario • Pueden adoptar la tecnología desarrollada para los grandes sistemas operativos. Con frecuencia los individuos usan en forma aislada el computador y no requieren de avanzada utilización de características de protección de la CPU. • Desktop, portatil, laptop, palmtop, wearable PC (computadores que se ponen- vestir), tablet PC, PDA, celulares 3ra generación, reproductores mp3/mp4, RFID 23 DE FEBRERO DE 2010 Wearable Pc: Tecnología en la cual se puede llevar el pc a todas partes, Dispositivos mucho más reducidos. ZYPAD: computador que se usa en la muñeca, MITHRIL, WPC Quantum3d Especializado para uso militar, equipo de infantería Smartbooks: Ipad Sistemas embebidos/ computación ubicada Los sistemas embebidos son sistemas computacionales con un alto acoplamiento en la integración de hardware y software, se diseña para ejecutar funciones dedicadas. • Presente en todas partes: empresa, hogar… automatización industrial, defensa, transporte, viajes espaciales, entretenimiento. • Ej path finder de NASA, misiles guiados, automóviles, juguetes, electrodomésticos, cámaras teléfonos celulares, PDAS, GPS, digital Settop box (DST), enrutadores. • Caracterizados por un pequeño conjunto de recursos especializados. • Los procesadores SoC (system-on a-chip) son muy atractivos para sistemas embebidos. • Admon eficiente de recursos: memoria limitada –procesadores lentos – pequeñas pantallas de visualización . • Ecos, embedded inux, Linux CE, FreeDOS, FreeRTOS, LynxOS, RTOS, NetBSD, Open BSD, Inferno, OSE, Os-9, QNX, VXWorks, Windows CE, Windows XP Embeddedm IOS • CE: HAvi (Home audio Video interoperability), jini RFID (Radio Frecuency Identification) identificación por radio frecuencia • Todos los sistemas RFDI aw compone de un interrogador o sistema de base que lee y escribe datos en los dispositivos y un “Transponder” o un transmisor que responde al interrogador. El interrogador genera un campo de radiofrecuencia, normalmente conmutando una bobina a alta frecuencia. Las frecuencias usuales van desde 125khz hasta la banda ISM de 2.4 GHZ incluso más. • El campo de radio frecuencia genera una corriente eléctrica sobre la bobina de recepción del dispositivo. Esta señal es rectificada y de esta manera se alimenta el circuito. • Cuando la alimentación llega a ser suficiente el circuito transmite sus datos. • El interrogador detecta los datos transmitidos por la tarjeta como una perturbación del propio nivel de la señal • Esta tecnología es usada para las tarjetas de transporte TIM • Seguimiento a personas • Identificador de mascotas • Seguimiento de paquetes enviados • Inventarios en las empresas • Pago en los supermercados etc. 25 de febrero de 2010 Participación en el mercado de los SO de teléfonos Móviles Video en youtube “the future of mobile” Sistemas de tiempo Real • Con frecuencia se utilizan como dispositivos de control en aplicaciones dedicadas tales como el control de experimentos científicos, sistemas de imágenes médicas, y algunos sistemas de presentación, Restricciones de tiempo 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 está soportado por los sistemas operativos de propósito general. • Sistemas de tiempo real de utilidad limitada en industrias de control o robótica. Útil en aplicaciones que requieren de avanzadas características del sistema operativo (multimedia, realidad virtual) La estructura de un sistema de tiempo real está conformada de un sistema controlador y al menos un sistema controlado Los sistemas de tiempo real deben producir resultados computacionales exactos. 2 de marzo de 2010 • Sistemas multiprocesador con más de una CPU en comunicación muy cercana. • Sistemas fuertemente acoplados – los procesadores comparten la memoria y el reloj; la comunicación por lo general se realiza a través de la memoria compartida. Ventajas de los sistemas paralelos: Incremento del rendimiento Económicos Incrementan confiabilidad • Degradación gradual • Sistemas de fallos controladores por software Multiprocesamiento: múltiples tareas Sistemas multiprocesador Multiprocesamiento simétrico (SMP) Cada procesador corre una copia idéntica del SO Muchos procesadores pueden correr a la vez sin deterioro del rendimiento. La mayoría de los SO modernos soportan SMP Multiprocesamiento antisimetrico Sistemas Distribuidos Distribuyen los cálculos entre procesadores Objetivo principal: compartir recursos y datos entre usuarios ofreciendo transparencia Sistemas devilmente acoplados – cada procesador tiene su propia memoria local; los procesadores se comunican entre si a través de varias líneas de comunicación Sistema Descripción Objetivo principal DOS SoS distribuidos SOS fuertemente acoplado para multiprocesadores y multicomputadores homogéneos Ocultar y administrar los recursos de hw NOS Sos red Sos débilmente acoplados para Ofrece servicios locales Middleware (virtualización) multiplicadores heterogéneos (LAN y WAN) a clientes remotos Capa adicional por encima de un NOS, que implementa servicios de propósito general Proporciona transparencia en la distribución Sistemas operativos Distribuidos ->DOS Proporcionan archivos compartidos Proveen esquemas de comunicación Corren independientemente de otros computadores en la red Accent, Bos/Net, Cocanet – Unix, CP/Net, cp/Nos, hetnos, Lahnos, Mp/Net, Mp/Nos, Netware, Newcastle- Connection, Nsw, pc/Nos, Rio/Cp, Rsexec, Trix, Unetix, Estructura general de un de un sistema operativo de red (NOS) Maquina A Maquina B Maquina C Aplicaciones distribuidas Servicios Middleware Servicios del SO Red Servicios del SO Red Servicios del SO Red Kernel Kernel Kernel RED En un sistema distribuido basado en middleware, los protocolos usados por cada capa middleware deben ser los mismos, así como las interfaces que ofrecen a las aplicaciones. 9 de marzo de 2010 ARQUITECTURA DEL SISTEMA CPU Controlad or de disco Controlado r unidad óptica Controlad or de impresora Bus del sistema Controlad or de memoria Memoria Los controladores son los que permiten que los dispositivos se conecten Arranque del computador El arranque/reset carga valores predefinidos en registro Dirección de arranque del cargador del ROM Se ejecuta el cargador ROM del sistema Test del sistema Trae a memoria el boot del SO Unidad unidad de memoria de memoria El cargador RoM carga el sector del boot del SO y le da control, sin multos> Programa gestor de arranque -El Boot del SO carga el SO residente y da el control al programa de arranque del SO, que: Comprueba el hardware Comprueba el sistema de ficheros Establece las tablas del SO Crea procesos (según el tipo de SO) Proceso INIT Proceso o tareas del sistema (demonios) Procesos de login (uno por terminal) Programa cargador (identificador) -Tras la autenticación, el proceso login se convierte en Shell -Toma control SO (inicio) -Espera de ocurrencia de suceso (interrupción hw/sw) -si interrupción Desactiva las otras interrupciones Guarda estado sistema Ejecuta rutina de vector de interrupciones/ escrutinio Reactiva variables de estado interrupción) (reactiva después de una Estructura del acceso directo a memoria (DMA) (M) Utilizado por dispositivos de E/S de alta velocidad capaces de transmitir información a una velocidad muy cercana a la de la memoria. -El controlador del dispositivo transfiere bloques de datos del buffer de almacenamiento directamente a la memoria principal sin interrupciones de la CPU Solo una interrupción es generada por bloque, más bien que una interrupción por byte. 1. El procesador envía una solicitud de I/O al controlador I/O, el cual envía una solicitud al disco. El procesador continúa ejecutando instrucciones. 2. El disco envía los datos al controlador del I/O; los datos se colocan en la dirección de memoria especificada por la orden DMA. 3. El disco envía una interrupción al procesador para indicar que la petición I/O se ha realizado. Jerarquía del almacenamiento • Los sistemas de almacenamiento se organizan por jerarquías. Velocidad Costo Volatilidad: Cuando una memoria no es capaz de almacenar los datos que registra cuando se corta la energía. • Caching- Es la copia de información en un sistema de almacenamiento más rápido; la memoria principal puede verse como el último cache para el almacenamiento secundario. Jerarquía de los dispositivos de almacenamiento L0: Registers L1: On-Chip L1 Cache (SRAM) L2: Main Memory (DRAM) L3:Local secondary storage Disco duro L4: Tiempo de acceso típico Capacidad Típica 10 ps 1K Registros 0.2 ns 16MB Cache 5-250ns GB Memoria principal 16 10 ms XXTB disco magnético 100 s XXTB Cinta Magnética Unidades de medida 10^3 milli - kilo 10^6 micro - Mega 10^9 nano - Giga 10^12 pico - Tera 10^15 femto- Peta 10^18 atto- exa 10^21 zepto – Zetta 10^24 yocto - yotta 11 de marzo de 2010 Protección de hardware • Operación del modo dual • Protección de E/S Protección de memoria Protección de CPU Operación 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 soporte al hardware para diferenciar entre al menos dos modos de operación. 1. Modo usuario: Ejecución de parte del usuario. 2. Modo monitor (también modo supervisor o modo del sistema) – Ejecución realizada por parte del sistema operativo. Operación modo dual • Se adiciona al hardware un bit de modo para indicar el modo actual: monitor (0) o usuario (1). • Cuando sucede una interrupción o fallo el hardware se cambia a modo monitor Interrupción/fallo monitor Protección de E/S Usuario • Todas las instrucciones de E/S son privilegiadas • Debe asegurarse que el programa del usuario no pueda tener el control del computador en el modo supervisor (ej: un programa de usuario que, como parte de su ejecución, almacena una nueva dirección en el vector de interrupciones) Protección de memoria • Debe proveer protección de memoria al menos para el vector de interrupciones y el vector de las rutinas de servicios de interrupciones. • Con el fin de tener la protección de memoria, se agregan dos registros que determinan el rango de las direcciones validas que un programa puede acceder: -Registro base- Contiene la dirección legal física más pequeña. -Registro limite- Contiene el tamaño del rango. -La memoria fuera del rango es protegida. El registró base y el límite define un espacio de direcciones lógico. Kernel Trabajo 1 Registro base Trabajo 2 Trabajo 3 Trabajo 4 Proteccion por hardware Registro limite • Cuando se está 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 Protección por CPU • Temporizador – Interrumpe al computador después de un periodo especifico para garantizar que el SO mantenga el control. -El temporizador se decrementa por cada pulsación del reloj. -Cuando el temporizador alcanza el valor de 0, ocurre una interrupción. • El temporizador se utiliza comúnmente para implementar tiempo compartido. • El temporizador también se utiliza para calcular el tiempo actual. • La carga de temporizador es una instrucción privilegiada. COMPONENETES COMUNES DEL SISTEMA • Administración de procesos Cuaderno Tipo de interrupción SVC Descripción Llamada al sistema operativo Observación I/O Cambio de estado de un canal o dispositivo Externa Evento externo al sistema Reset Reinicio del sistema Verificación de programa Verificación de hardware Llamadas al sistema Las llamadas al sistema proporcionan la interface entre un programa corriendo y el sistema operativo. En general están disponibles como instrucciones en ensamblador Se han definido lenguajes para reemplazar el lenguaje ensamblador en programación de sistemas que permita realizar en forma directa las llamadas al sistema (ej. C. Bliss, PL/360) • Tres métodos genéricos para pasar parámetros a las llamadas al sistema: -En registros -En una tabla de memoria, cuya dirección se pasa al SO en un registro. -Poner los parámetros en la pila del programa y deja que el SO los extraiga. • Cada SO proporciona sus propias llamadas al sistema: -Estándar POSIX (Portable Operating System Interface) en Unix y Linuz cuaderno Hardware software El controlador de dispositivo u otro sistema hardware genera una interrupción. El procesador termina la ejecución de la instrucción actual El procesador indica el reconocimiento de la interrupción El procesador apila PSW y el PC en la pila de control El procesador carga un nuevo valor en el pc basado en la interrupción Salva el resto de la información de estado del Procesa la interrupción Restaura la información de estado del proceso Restaura los antiguos PSW y PC Servicios del SO • Los servicios se programan mediante sentencias de un lenguaje • Estas sentencias son como llamadas a función • Se convierten, mediante Interfaz del programador Esta interfaz recupera la visión que como maquina extendida tiene 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 Estándar POSIX • Interfaz estándar de sistemas operativos de IEEE • Objetivo; Posibilidad de las aplicaciones entre diferentes plataformas y sistemas operativos Características de POSIX Las funciones normalmente devuelven 0 en caso de éxito o -1 en caso de error. Recursos gestionados por el sistema operativo se referencian mediante descriptores. Características de WIn32 Define los servicios ofrecidos por los sistemas Windows 95/98, Windows NT, Windows 2000, XP No es un estándar API totalmente distinto a POSIX Los recursos se referencia mediante manejadores Administración de procesos • Un proceso es un programa en ejecución. Un proceso para lograr sus objetivos requiere algunos recursos como tiempo de CPU, memoriam archivos, y dispositivos de entrada y salida. • El sistema operativo es responsable de las siguientes actividades relacionadas con la administración de procesos: -Creación y eliminación -Supervisión y reanudación -Proveer los mecanismos para: (sincronización de procesos, comunicación entre procesos) 16 de marzo de 2010 Administración de memoria • La memoria es un gran arreglo de palabras y bytes, cada uno con su propia dirección,. Es un repositorio de acceso rápido de datos compartidos por lo cual la CPU y los dispositivos E/S. • La memoria principal es un dispositivo de almacenamiento volátil. • El sistema operativo es responsable por las siguientes actividades relacionadas don la administración de memoria: -Llevar el rastro de las componentes de Administración de memoria secundaria • Dado que la memoria principal es volátil y muy pequeña para acomodar todos los datos y programas permanentes, el sistema de de computación debe proveer almacenamiento secundario para respaldar la memoria principal. • La mayoría de los computadores modernos utilizan discos como medio principal de almacenamiento en línea, tanto como para programas como para datos. • El sistema operativo es responsable por las siguientes tareas relacionadas con la administración secundaria. -Administración del espacio libre -Asignación de espacio -Planificación del disco Almacenamiento terciario Memoria auxiliar, diferente memoria principal puede estar en línea o fuera de línea a Administración de archivos • Un archivo es una colección de información relacionada definida por su creador, En general los archivos representan programas (tanto en formato fuente como objeto) y datos • El sistema operativo es responsable por las siguientes actividades en relación con la administración de archivos: -Creación y borrado de archivos -Creación y borrado de directorios. -Soporte de primitivas para manipular archivos y directorios. -Mapeo de archivos en almacenamiento secundario. -Respaldo de archivos en medios de almacenamientos estables (no volátiles) Interfaz del usuario: intermediación del sistema con los usuarios • Funciones: -Manipulación de archivos y directorios -Herramientas de desarrollo de aplicaciones -Comunicación con los otros sistemas -Información de estado -Configuración de la propia interfaz y entorno -Intercambio de datos y aplicaciones -Control de acceso -Sistema de ayuda interactivo • Tipos -Interfaces alfanuméricas (interpretes de mandatos) -Interfaces gráficas Sistema de interpretes de comandos • Muchos comandos se dan al sistema operativo por instrucciones de control que tiene que ver con: -Administración y creación de procesos -Manejo de E/S -Administración de memoria secundaria -Administración de memoria principal. Interprete de mandatos • Programa cuya función es obtener los mandatos del usuario y ordenador su ejecución del sistema operativo. • Hay dos tipos básicos: interpretes de mandatos internos, Interpretes de mandatos externos. • Casi todos los mandatos son sentencias de control para los gestores del SO descritos (procesos, E/S, ficheros, protección y comunicaciones) • Puede haber múltiples interpretes de mandatos sobre el mismo SO, la visión del mismo SO cambia según el usado. Interprete de mandatos internos Interprete de mandatos externos Interprete de comandos de Unix -> Shell Componente X window X server función Interacción con el usuario X Protocol Comunicaciones Cliente /servidor X library Interface del programador X clients Aplicaciones Estructura del sistema – Enfoque básico Monolítico: Un programa compuesto de rutinas entrelazadas -Programa central, procedimientos de servidores, Procedimientos de uso general 18 de marzo de 2010 Apolicatio ns System call interface Kernel MM PS IPC FS I/O NET MM: MANAGER MEMORY Estructura de niveles de Ms- DOS Ms- DOS fue escrito para proveer la mayor funcionalidad en el menor espacio. No se dividió en módulos No obstante MS-DOS tiene alguna estructura, sus interfaces y niveles de funcionalidad no están bien separados. 1995 DOS v7 Estructura del sistema- Enfoque básico 2 • Unix- Limitado por la funcionalidad de l hardware, el unix original tenían limitaciones en estructura. El sistema operativo UNIX consta de dos partes • Los programas del sistema • El Kernel • Conformado de todo lo que está por debajo de las llamadas al sistema y por encima del hardware. • Proporciona el sistema de archivos Estructura del sistema- Enfoque por niveles • Estratos/ jerárquica • El sistema operativo está dividido en un número de capas (niveles), cada uno construido en la parte superior del nivel inferior. El nivel de abajo, es el hardware; el nivel mas alto (capa n) es la interface del usuario final. • Con la modularidad, las capas se seleccionan de tal forma que cada una utiliza funciones (operaciones) y servicios solo del nivel inferior. • Precursor THE, capas jerárquicas (Rings Trap) Multics Módulos • La mayoría de los SOS modernos implementan modulos de kernel • -Utiliza el enfoque 00 -Cada componente del núcleo Núcleo UNIX moderno cuaderno Conmutad or de ejecución Entorno de memoria virtual Interfaz vnode/v fs Utilidad es comune s Entorno de planificaci ón flujo Estructura de Linux El kernel es una estructura monolítica Los módulos son unidades independientes de software que pueden ser diseñados e implementados después de instalar el SO y se pueden instalar dinámicamente. El administrador de módulos permite cargar los módulos en memoria y hablar con el resto del kernel. El registro de manejadores permite que los módulos le digan al resto del kernel que ya está disponible un nuevo manejador. Enfoque Modular de solaris Estructura por niveles de OS/2 Estructura de Mac OS X Application environments and common services BSD Mach Kernel environment Estructura de Mach (CMU) Estructura Cliente Servidor Proceso cliente Servidor de procesos Servidor de terminales Servidor de archivos ….. …… Servidor de memoria NUCLEO Estructura cliente servidor de Window NT Windows Architecture Concepto de spool. (Serial Peripherial operations on line) Programa interceptor de spool-> interceptor del periférico en línea, almacena la información a imprimir en el disco. Transcriptor de spool-> lleva la información almacenada en disco a la impresora Administrador de spool. 23 de marzo de 2010 Ejemplos de llamadas al sistema en Windows y unix Maquinas virtuales • Concepto inventado por IBM como un método de tiempo compartido para los mainframes (VM/370) • “Una máquina virtual es una copia completamente protegida y aislada del hw de la máquina subyacente” • Una maquina virtual aprovecha en forma lógica el enfoque de niveles. Considera el hardware y el kernel como si fueran los dos el hardware. • Una maquina virtual proporciona una interface idéntica al hardware desnudo subyacente. • El sistema operativo crea una ilusión a los múltiples procesos de cada uno esta ejecutándose sobre su propio procesador con su propia memoria (virtual) • “Cualquier problema en la ciencia computacional puede ser resuelto con otro nivel de indirección” David Wheeler. Agregarle niveles a las maquinas multi-nivel Arquitectura VMware Otros ejemplos: BOCHS. Un programa bajo licencia GPL programa c++ para simular o emular un ordenador donde instalar un sistema operativo y poder ejecutar aplicaciones en el QEMU: Programa que se ejecuta maquinas virtuales dentro de un sistema operativo, ya sea Linux, Windows, etc. Esta maquina virtual puede ser cualquier tipo de Microprocesador o arquitectura (X86, x8664, PowerPC, MIPS, SPARC, etc.) VirtualPC: Programa desarrollado por Connectix y comprado por Microsoft para crear ordenadores virtuales. Es decir, su función es emular un hardware sobre el que funcionen varios sistemas operativos, con esto se puede conseguir ejecutar varios sistemas operativos en la misma máquina a la vez y hacer que se comuniquen entre ellos. Para virtualización • Presenta al invitado un sistema similar, pero no idéntico al hardware • El invitado debe modificarse para correr eb el hw paravirtualizado • El invitado puede ser un sistema operativo o en el caso de solaris 10 aplicaciones corriendo en contenedores. Arquitectura de un computador Las capas claves de implementación se comunican verticalmente a través del conjunto de instrucciones de la arquitectura, la interface de aplicación binaria y la interfase de programas de aplicación El conjunto de instrucciones del procesador son ejecutadas dependiendo del tipo de procesador, es mayor la complejidad en el RIS que es el SIS ABI: interface de aplicación binaria API: interface de aplicación de programas ISA. Interface de sistemas de Monitores de Maquina Virtual : capa de software que permite encapsular u ocultar un hardware o software • Una componente clave de las VM son los monitores de maquina virtual (VMM) que proporcionan 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 está montado. Procesos y las VM, a) en un procesador de VM el software de virtualización traduce un conjunto de instrucciones del OS y del nivel de usuario convirtiendo una plataforma en otra. b) En un sistema de VM, el software de virtualización traduce la ISA (arquitectura de conjunto de instrucciones) utilizada por una plataforma de hardware en otra. Taxonomia de Maquinas virtuales (VM) Las VM pueden ser de procesos o de sistemas, con la misma o diferente arquitectura de conjunto de instrucciones CDVM: Transmeta (crusoe) Os400 Ventajas y desventajas de las maquinas virtuales • El concepto de máquina virtual proporciona completa protección de los recursos del sistema, ya que cada máquina virtual está aislada de las otras maquinas virtuales. El aislamiento no permite el compartir en forma directa los recursos. • Un sistema de máquinas virtuales es un perfecto vehículo para la investigación y desarrollo del sistema se hace sobre la máquina virtual. Ambiente de lenguajes de alto nivel a) Ambiente convencional donde se distribuyen el código objeto de la plataforma tradicional. b) Ambiente de VM donde VM dependiente de plataforma ejecuta código portable intermedio. Ambiente de desarrollo Java Sistemas operativos java El sistema operativo JX Plataforma: .NET Framework <grafico> ASP.NET Servicios web web Formularios Lenguajes de programación C# Jscript VB.NET VC++ Librería de clases (system, ADO, XML…) Common Language Runtime (CLR) Estructura interna del entorno de común ejecución para lenguajes Entorno común de Ejecución para lenguajes (CLR) Soporte da las librerías de clases Base Manejo de hilos Verificador de Tipos Interacción con COM controlador de CLR (common Languaje Runtime) Multiplataforma El modelo es abierto, luego es posible la creación de CLR para cualquier plataforma Multilenguaje Recolector de basura muy efectivo En C# no existen destructores Liberación determinista mediante el uso de la instrucción Using MSIl (Microsoft intermédiate Languaje) .Net 3.0 25 de marzo de 2010 Tipos de SOS de acuerdo al Kernel Macrokernel/Monokernel Microkernel Nano kernel Exokernel : No tienen sistema operativo Arquitectura Microkernel: • Arquitectura de sistemas oprativos microkernel • Proporciona solo un pequeño número de servicios • Intenta tener un kernel pequeño y escalable • Alto grado de modularidad • Extensible, portable y escalable • Se incrementa el nivel de comunicación entre modulos • Pueden degradar el rendimiento del sistema • Fiasco, AIX, AmigaOS, Amoeba, BeOS, Brainix, Chorus microkernel, coyotos, EROS, Haiku, K42, L4, Mach, NEXTSTEP, OPENSTEP, OSX, MERT, Minix, MorphOS, Phoenix-RTOS, QNX, LSE/OS (nanokernel), KeyKOS (nanokernel) Aplicaciones | Interface del llamado | | | S archivos Admon dispositivos Planificador de procesos Espacio usuario Espacio kernel Beneficios de una organización micronucleo Interfaces uniformes en las peticiones realizadas por un proceso Extensibilidad Portabilidad Fiabilidad Soporte de sistemas distribuidos Sistema operativo orientado a objetos Exokernel • Un SO se interpone entre las aplicaciones y el hw • Elimina el concepto de abstracción sobre la cual corren las aplicaciones • SE asegura de multiplexar el hw desnudo: a través de primitivas de hw, librerías a nivel de aplicación de servidores • Ej. XOK con Exos (librería sos tipo unix) de MIT, Aegis, Nemesis (Cambridge) • El servidor Cheetah se construye sobre XOK • Es esencialmente la extensión de la filosofía de la arquitectura RISC en CPU al nivel del sistema operativo Kernel Paginable Kernel no paginable Objetivos de diseño del sistema • Objetivos de los usuarios- que el sistema operativo sea adecuado para su uso, fácil de aprender, confiable, seguro, y rápido • Objetivos de sistema- El sistema operativo debe ser fácil de diseñar implementar y mantener, de la misma forma que sea flexible, confiable libre de errores y eficiente Jerarquia de diseño de SO (Brown/ Denning) Nivel Nombre objeto Ejemplo de operacion 13 Shell Ambiente de programación de usuarios Instrucciones en lenguaje de shell 12 Procesos de usuario Procesos de usuarios, espacio direcciones V Quit, kill, suspend, resume Directorios Directorio de usuarios Create, destroy, attach, detach, search, list 10 Dispositivos Dispositivos externos: impresoras, pantallas teclados Open, close, read, write 9 Sistemas de archivos archivos Create, destroy open close, read write Comunicaciones Tuberías Create, destroy open close, read write Memoria virtual Espacio direcciones lógicas, segmentos, páginas Read, Write, fetch Almacenamiento secundario local Bloques de dispositivos, canales de dispositivos 11 8 7 6 5 Procesos primitivos Procesos primitivos, semáforos, listas de listos 4 Programa de manejo de interrupciones Manejo de interrupciones, guardar contexto 3 Procedimientos Procedimientos, llamado a pila, presentación 2 Conjunto de instrucciones del procesador Evaluación de la pila 1 Electrónica de los circuitos Implementación de un sistema • Los sistemas operativos tradicionalmente se han escrito ensamblador, ahora puede ser escritos en lenguajes de alto nivel. • el código escrito en alto nivel: • Puede ser escrito más rápido • Es mas compacto • Es mas fácil de entender y depurar • Un sistema es más fácil de ser portable si esta escrito en un lenguaje de alto nivel. • Algunos lenguajes de alto nivel usados para escribir sistemas operativos: C(Unix, OS/2, Win NT), Fortran (Primos), Algol (MCP (manster Control Program) burrougs), Bliss (VMS DEC) PL/360, perl, PL1 (multics) Pascal Generación sistema (SYSGEN) en • Los sistemas operativos se diseñan para correr en cualquier clase de maquinas; el sistema debe configurarse para cada computador especifico. • El programa sysgen obtiene información relacionada con la configuración especifica del hardware del sistema • Booting- arrancar un computador al cargar su kernel • Bootstrap program Procesos Concepto de procesos • Un sistema operativo ejecuta una variedad de programas: Sistemas por lotes, trabajos. – Sistema de tiempo compartidoProgramas de usuarios o tareas • Definición: Un programa en ejecución con el entorno asociado/ unidad de procesamiento gestionada por el SO • Un proceso incluye: -Un contador de programa – Pila –Sección de datos, código • Programa: entre pasivo • Proceso: entre activo Sistema con memoria virtual • La información de traducción está en la tabla de páginas • Preasingnación de zona de intercambio. Todas las páginas están en disco, algunas están copiadas en marcos de páginas. Traza de los procesos Traza: Lista de la secuencia de instrucciones que se ejecutan para un proceso Modelo simplificado Un proceso puede estar en dos estados: - corriendo -No corriendo Dispatch Enter Not Runnin g Pause Runnin g a) State transition diagram Enter Exit Dispatch Process or 6 de abril de 2010 FALTÉ A CLASE 08 DE ABRIL DE 2010 La CPU cambia de proceso a proceso • Cuando la CPU cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso. • La conmutación del contexto es trabajo extra, el sistema no realiza trabajo útil mientras conmuta, depende en gran medida del apoyo del hardware Planificadores • El planificador de corto plazo o planificador de CPU seleciona que procesos deben ser ejecutado enseguida y se le asigna la CPU, bajo nivel, scheduler/desparchador es solicitado muy frecuentemente (milisegundos) -< (deben ser rápido) • Planificador de mediano plazo: intermedio • El planificador de largo plazo o planificador de trabajos : selecciona que proceso debe ser traído a la cola de listos, es solicitado con poca frecuencia (seg, minutos) -> (puede ser lento) • Planificador de largo plazo controla el grado de multiprogramación • Los procesos pueden ser descritos como: -Procesos limitados por E/S consume mas tiempo realizando operaciones de E/S que cálculos causan muchas ráfagas cortas a la CPU Procesos limitados por CPU- consumen mas tiempo realizando cálculos Representación de la planificación de procesos Grafico Adición de planificación de mediano plazo Grafico Creación de procesos • Los procesos padres crean procesos hijos, los cuales, a su otros procesos, conformando un árbol de procesos. • Recursos compartidos -Los procesos padres e hijos comparten los recursos. –Los hijos comparten un subconjunto de los recursos del padre. –El padre y el hijo no comparten los recursos • Ejecución: -El padre y el hijo vez crean Jerarquía de procesos • Grupo de procesos dependientes de cada Shell • Familia de procesos: -Proceso hijo hermano. –Proceso abuelo. • Vida de un proceso: -Crea • Ejecución del proceso: • Grupo de procesos - Proceso padre. –Proceso - ejecuta -Muere o termina -Batch -Iteractivo Arbol de procesos de un sistema UNIX típico y Solaris Procesos cooperativos Los procesos independientes no pueden afectar o ser afectados por la ejecución de otros procesos. Problemas de productores y consumidores El problema de productores y consumidores es un paradigma de los procesos cooperativos, los productores producen información que es consumida por los procesos consumidores. -Buffer ilimitado no establece un límite práctico para el tamaño del buffer -el buffer limitado asume que hay un tamaño fijo de buffer Hilos: capacidad que tiene un sistema de dividir en subprocesos permiten al usuario compartir los recursos a todos los hilos que hacen parte del proceso • Hilos de usuario y de nucleo • Modelos multihilos • Hilos solaris2 • Hilos java Multihilos La capacidad de un SO para soportar multiples trayectorias concurrentes de ejecución dentro de un mismo proceso Enfoques monohilados Ms- Dos utiliza un solo proceso con un solo hilo El ambiente de ejecución Java utiliza un solo proceso con multiples hilos Comportamiento de los hilos Proceso Bloqueado por comunicación Bloqueado por acceso a disco Activo Procesos ligeros En una tarea multihilo, mientras un hilo servidor está bloqueado y esperando, un segundo hilo en la misma tarea puede estar corriendo. -la cooperación de multiples hilos en el mismo trabajo le proporciona un alto rendimiento y mejora la eficiencia Las aplicaciones que requieren compartir el buffer común (por ejemplo, productor- consumidor) se benefician de la utilización de hilos • Los hilos proporcionan un mecanismo que permiten a los procesos secuenciales hacer llamadas al sistema bloqueadoras y al mismo tiempo lograr paralelismo. • El nucleo puede apoyar los hilos como e Mach y OS/2 • Los hilos a nivel de usuario; soportados arriba por el kernel, a tráves de una serie de llamadas de biblioteca en el nivel de usuario (como en el proyecto CMU de Andrew) • Un enfoque hibrido implementa tanto hilos a nivel de usuario como hilos apoyados por el kernel (como Solaris 2) Relaciónd e hilos y procesos Hilo: proceso DEDscripción Ejemplo 1:1 Cada hilo en un único Implementaciones proceso con su propio tradicionale de Unix espacio de direcciones y sus recursos M:1 Un proceso define un Windows NT, solaris, espacio de direcciones y OS/2, OS/390, MACH la propiedad sobre los recursos es dinámica. Dentro del mismo proceso se pueden crear y ejecutar multiples hilos 1:M Un hilo puede migrar Ra (clouds), Emerald desde un ambiente de proceso a otro. Esto permite que un hilo se pueda mover fácilmente entre sistemas distintos M:M Combina los atributos de Trix M:1 y 1:M 15 de abril de 2010 Explicación de programa productor y consumidor Hilos subprocesos Delegaciones: parámetros que se programación orientada a objetos. pasan de procesos a un método, Hilos en Windows 2000, estructura de un proceso en Windows 2000 Imjplementa mapeo uno a uno Cada hilo contiene - Una identificación de hilo - -Un conjunto de registros Objeto proceso de Windows Tipo proceso Proceso ID proceso Descriptor de seguridad Prioridad base Afinidad procesador por defecto Hilo ID hilo Contexto del hilo Prioridad dinámica Prioridad base Afinidad de procesador de hilo Tiempo de ejecución del hilo Estado de alerta Contador de suspensiones Testigo de personificación Puerta de finalización Estado de salida del hilo Crear hilo Abrir hilo Solicitar información del hilo Establecer información del hilo Hilo actual Terminar hilo Estados de un hilo de Windows stanb y ejecutan do listo transició n esperand o Modelo de procesos/hilos Linux finalizan do Grafico Estado de hilos en Solaris Grafico Hilos de Java • Los hilos de Java pueden ser creados por: - Estensión de la clase hilos, -Implementando una interface que los corra • Los hilos de java son administrados por la JM • Suspend () suspende la ejecución del hilo que se esta ejecutando • Sleep () coloca el hilo que actualmente está corriendo a dormir un determinado tiempo Implementando la interface Runnable Ejemplo hilos C# PLANEACIÓN DE LA CPU Es aquella parte del sistema que se encarga de determinar como es que se utiliza el procesador -concepto de planificación -Criterios de planificación -Algoritmos de planificación -Planificación multiprocesador -Planificación en tiempo real -Evaluación de algoritmos Conceptos básicos • La máxima utilización de la CPU se obtiene con multiprogramación • El ciclo de ráfaga de CPU-E/S el proceso de ejecucuión consiste en un ciclo de ejecución Planificador de CPU • Selecciona de los procesos en memoria aquellos que están listos para ejecutar, y le entrega la CPU a uno de ellos • Las decisiones de planificación de CPU tiene lugar cuando un proceso: 1. Conmuta a de un estado de corrida a un estado de espera 2. Conmuta de un estado de corrida a un estado de listo 3. Conmuta de esperando a listo 4. Termina 5. La planificación de 1 y 4 no es expropiativa, en los otros casos es expropiativa Despachador El modulo despachador le da el control de la CPU a proceso seleccionado por el Latencia de despacho: grafico Es el tiempo que se toma el despachador para parar un proceso e iniciar otro Criterios de planificación • Utilización de CPU- Mantener la cpu tan ocupado como sea posible • Rendimiento: Número de procesos que culminan su ejecución por unidad de tiempo • Tiempo de entrega/estancia/retorno (turnaround time) Tiempo transcurrido desde que se lanza un proceso hasta que finaliza. Incluye el tiempo de ejecución sumado con el tiempo de espera por los recursos, incluyendo el procesador. Es una medida apropiada para trabajar por lotes. • Tiempo de espera: Cantidad de tiempo • Tiempo de respuesta: …… Criterios de optimización • Máxima utilización de CPU Algoritmos de planificación FCFs/PEPs: Costos sufren, justa, predecible SJf/SPN, el siguiente proceso es el mas corto SRTN el< Tiempo restante , compensan cortos Round- Robin RR, asignación cíclica/turno. Equilibra FCFS/SRTN, usa cola circular con FCFS/ prioridades con slice/ quantum para c/ proceso. Por prioridad:: Siempre se elige el de mayor prioridad, compensada X prioridad envejecimiento. HRN, Tasa de respuesta mas alta, es costosa Prioridad = (w+S)/s MLQ, colas multinivel: Combinar, proceoss del sistema (X Prioridad), interactivos (RR), lotes (FCFS/SRTN) MLQ con retroalimentación: Los procesos se pueden reubicar en diferentes colas de acuerdo a comportamiento, Los procesos limitados por procesador se envían a la cola de < prioridad, los interactivos se ubican con mayor prioridad. Fss (Fair Share Schedule), Porción justa, o reparto equitativo, los grupos sde p Algoritmo Planificación –FCFS Ejemplo proceso Tiempo de ráfaga P1 3 Suponga que los procesos Planificación el tiempo mas corto primero (SJF) Asocia con cada proceso la longitud de su próxima ráfaga de cpu. Usa estas longitudes para planificar el procesos con el menor tiempo Ejemplo de SJF/SPN no expropiativo proceso Tiempo de llegada Tiempo de rafaga P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 Tiempo promedio de espera: Ejemplo de SJF expropiativo (SRTN) proceso Tiempo de llegada Tiempo de rafaga P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (expropiativo) Tiempo promedio de espera = (9+1+0+2)/4=3 Planificación por prioridad -Se asocia un número (entero) a cada proceso -La CPU es asignada al proceso con mayor prioridad (por ejemplo el numero mas pequeño significa mayor prioridad en Unix o prioridad ascendente como Windows a mayor # mayor prioridad) -Expropiativo _no expropiativo -SJF es un esquema del planificación por prioridad, donde la prioridad es el tiempo de ráfaga de cpu que se cálcula Turno Circular (runing ro RR) Cada proceso toma una pequeña unidad de tiempo de CPu (quantum) de tiempo, por lo general 10-100 ms, Despues de transcurrido este lapso de tiempo, el proceso es expropiado y ubicado en la cola de listos. Si hay n procesos en la cola de listos Proceso Rafaga de tiempo P1 53 P2 17 P3 68 P4 24 El diagrama de Gantt es Tipicamente, tiene mayor tiempo de retorno que SJF, Primero el mayor tasa de respuesta [highest Response Ratio Next (HRRN)] Elige el proceso de mayor tasa: Prioridad= (w+s)/s Formula: Tiempo invertido esperando por el procesador + tiempo de servicio esperado/ Tiempo de servicio aceptable Algoritmo de Fair Share Scheduling –Porción justa LOteria Se da a cada proceso un tiquete para varios recursos del sistema, tal como la cpu. Cuando se requiere planificar se selecciona al azar u tiquete, y el proceso que lo tiene obtiene el recurso. Si queremos que un proceso tenga mas oportunidades se le entregan mas tiquetes. Los procesos cooperativos pueden intercambiar sus tiquetes Un ejempl Colas Multinivel Grafico…. Colas multinivel con retroalimentación 22 de abril de 2010 parcial 2 Planificación en solaris 2 (grafico) A los procesos de tiempo real le da mayor prioridad y los atiende primero que los demás, divide los procesos en clases en tiempo real, de tiempo compartido, la prioridad determina el tamaño de quantum de tiempo Tabla de funcionamiento de solaris Planificación en POSIX Cada política de planeación lleva asociado un rango con al menos 32 niveles de prioridad. El planificador elegirá el poceso o proceso ligero…. Planificación de procesos en Linux Dos algoritmos: tiempo compartido y tiempo real Tiempo compartido Prioridad basada en créditos- el proceso con mas créditos se despacha Se restan los créditos cuando suceden interrupciones de temporizador Cuando el crédito 0…. Planificación en Windows Grafico La prioridad de Windows se organizan en dos bandas o clases -Tiempo real -Variable Planificador expropiativo basado en prioridades Windows vs NT kernel priorities (tabla) Relacion entre prioridades en windows (grafico) Planificación multiples procesadores La planificación es mas compleja cuando se tiene varios procesadores El escenario: asignación de procesos a procesadores, usi de la multiprogramación en cada procesador individual, activación del proceso, propiamente dicho La carga se comparte (una cola por procesador?) Una cola para todos los procesadores… Asignación de procesos a procesadores • Trata cada procesador como un recurso colectivo y asigna procesos a procesadores por demanda • Un proceso se vincula permanentemente a un procesador -Estrategia conocida como planificación de grupo o pandilla (gang) -Dedica una cola a corto plazo por cada procesador -menos sobrecarga El procesdor puede estar ocioso mientras otro procesador tiene trabajo acumulado • Cola global -Procesos planificados sobre cualquier procesador disponible • Arquitectura maestro/ esclavo -las funciones claves…. Escenario de planificación de procesos en tiempo real (grafico) c. planificador expropiación expropiativo dirigido por prioridad en puntos de d. planificador expropiativo inmediato PLANEACIÓN EN TIEMPO REAL Planeacion de tiempo real estatica No se ajustan las prioridades con el tiempo real, poca recarga en el sistema, para procesos deonde las condiciones eventualmente cambian • Estatica dirigida por tabla (plan): determina , el tiempo de ejecución cuando debe comenzara ejecutarse cada tarea. Se aplica a tareas periodicas • Estatica con expropiación dirigida por prioridad (sin plan): se utiliza un planificador expropiativo tradicional basado en prioridades. Usado en los sistemas multiprogramados que no son en tiempo real. En tiempo real la prioridad se ajusta con base a las restricciones de tiempo de la tarea, ej. Planificación monótona en frecuencia (RMS) Planeación d etiempo real dinámica Ajusta las prioridades en respuesta a condiciones cambiantes, pueden tener una significativa sobrecarga, pero debe asegurar que ella no genere incumplimiento en los tiempos • Dinamica basada en un plan: La factibilidad se determina en tiempo de ejecución. • Dinamica basada en el mejor esfuerzo: no se realiza análisis de factibilidad. Planificación por plazos Las aplicaciones de tiempo real no se preocupan tanto de la velocidad de ejecución como de completar sus tareas El proceso debe complementarse en un tiempo especifico • Se utiliza cuando los resultados serían inútiles si no se realiza el proceso a tiempo. • Dificil de implementar -debe prever un plan de requerimientos de recursos -Genera significativa sobrecarga -El servicio proporcionado a los otros procesos se puede degradar Información utilizada: tiempo de activación, plazo de inicio, plazo de conclusión, tiempo de proceso, recursos requeridos, prioridad, estructura de subtareas Las prioridades en general se basada en los tiempos limites de los procesos. El tiempo limite mas temprano primero (EDF Earliest- deadline-fist) Mínima laxitud primero -Similar a EDF, pero la prioridad se basa en la laxitud, la cual se basa en el tiempo límite de los procesos y su tiempo restante para completar su objetivo. Ejemplo: Perfil de ejecución de dos tareas periodicas con plazos de terminación Considere un sistema que recoge y procesa datos de 2 sensores, A y B, el plazo para tomar los datos del sensor de A debe ser de 20ms y el B cada 50 ms. Se tarda 10 ms incluyendo la sobrecarga del SO, para procesar cada muestra de datos de A y 25 ms para B. El sistema es capaz de tomar una decisión de planificación c/10ms Proceso Tiempo llegada de Tiempo ejecución de Plazo conclusión A(1) 0 10 20 A(2) 20 10 40 A(3) 40 10 60 A(4) 60 10 80 A(5) 80 10 100 . . . . de . . . . . . . . B(1) 0 25 50 B(2) 50 25 100 . . . . . . . . Planificación de tareas periodicas de tiempo real con plazos de conclusión (grafico) solución diagramas de tiempos Solución: Planificación de plazo más cercano usando plazos de conclusión En este caso pueden cumplirse todos los requisitos del sistema por medio de planificación que da prioridad, en los instantes de expropiación, a la tarea que tenga el plazo mas cercano. Dado que las tareas son periódicas y predecibles, se usa un método de planificación con tablas estáticas Ejemplo2: Perfil de ejecución de cinco tareas aperiódicas: Sean 5 tareas con tiempo de ejecución de 20 ms proceso Tiempo llegada de Tiempo ejecución de Plazo de inicio A 10 20 110 B 20 20 20 C 40 20 50 D 50 20 90 E 60 20 70 Planificación de tareas aperiodicas de tiempo real con plazos de inicio Grafico (solución Seguir el sentido de las flechas de entrada y de salida) 27 de abril de 2010-04-27 Administración de memoria Los programas deben ser llevados a la memoria y convertirse en procesos para ser ejecutados Cola de entrada: colección de programas en disco que esperan para ser llevados a la memoria para la ejecución Requerimientos de memoria Ms Windows (tabla) Vinculación de las instrucciones y los datos a la memoria Puede realizarse en tres estadios: Tiempo de compilación: Si se conoce previamente la ubicación de memoria, puede generarse código absoluto, el código debe ser recopilado si la dirección de inicio cambia. Tiempo de carga: Si se conocen las direcciones en tiempo de compilación, debe generarse código reubicable. Tiempo de ejecución: La vinculación se retarda hasta el tiempo de corrida si los procesos pueden ser movidos durante su ejecución de una posición de memoria a otra (grafico) Overlays (Superposiciones) -Mantiene en memoria solo aquellas instrucciones y datos que se requieren en un momento determinado. -Se utilizaba cuando el proceso era mayor que la cantidad de memoria destinada para el. Se implementaba por el usuario, no se requería un soporte especial del sistema operativo, su programación era compleja. (grafico) Asignación Contigua • Generalmente la memoria principal tiene dos particiones. -Para el sistema operativo ….. Asignación Contigua 2 • Asignación con multiples particiones -Hueco: Bloque de memoria disponible…. Asignación de multiples particiones fijas ( grafico) Particiones configuradas por usuarios predeterminadas, se uso en OS/360/MTF (Multiprogramación con un # fijo de tareas) Recolocación: El enlazador debe determinar que direcciones recolocarse, vs carga absoluta x part. Protección: Bloques de 2k con clave, o registro de base y limite. FRAGMENTACION Explicación de programa en pascal de simulación de asignación de particiones fijas, en las particiones ejecuta programas específicos, muestra las particiones, los procesos y cola de trabajos Asignación de memoria con particionamiento fijo (grafico) Ejemplo de particionamiento Asignación con particiones variables (grafico) Asignación dinámica de las particiones, Compresión (garbage collection): Ciber CDC 40mb/ seg micro 1 mb/seg Fragmentación: Huecos después de ejecución Condensación: Fusión de 2 huecos contiguos Explicación de un programa de simulación de asignación con particiones variables, memoria Particion variable (grafico) Compresión/ compactación de memoria (grafico) Problema de la asignación dinámica de memoria Como satisfacer la solicitud de un tamaño n a partir de huecos libres Estrategia de colocación: -Mejor ajuste: hueco que mejor quepa y menos desperdicio. Busque en toda la lista (puede estar ordenada) -Primer ajuste: El primer hueco que le sirva. Búsqueda al principio o a partir de este punto -Peor ajuste: Hueco… Primer ajuste (grafico) Mejor ajuste (grafico) Peor ajuste (grafico) Sistema Buddy (grafico) El espacio completo disponible se trata como un único bloque de tamaño 2 a la U Si se realiza una petición de tamaño s, tal que 2 a la u-1 <s <=2 a la u…. Almacenamiento virtual -Capacidad de obtener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario del sistema -SO … Intercambio/ Swap -Un proceso puede intercambiarse temporalmente de memoria a un almacenamiento de respaldo y luego puede ser retornadi hacia la memoria para continuar su ejecución…. Vista esquemática del intercambio (grafico) Fundamentos de la memoria virtual (grafico) -El procesador utiliza y genera direcciones virtuales -Parte del mapa de memoria (virtual) está en disco (swap) y parte en memoria principal -La MMu (memory Management Unit) traduce las direcciones no está en memoria principal…. Almacenamiento virtual (grafico) Espacio de direcciones virtuales… Evolución de las organizaciones de memoria (grafico importante!) Distribución de almacenamiento por procesos (gráfico) Paginación -el espacio de direcciones lógicas de un proceso no necesariamente es contiguo; los procesos se ubican en memoria física donde luego quedan disponibles -Se divide la memoria física en bloques de tamaño fijo llamados marcos (los tamaños son potencias de 2, entre 512 bytes y 8192 bytes) -Se divide la memoria lógica en bloques del mismo tamaño llamados páginas. -Se mantiene el rastro de todos los marcos -Para correr un programa de tamaño n páginas, se requiere encontrar n marcos libres y cargar el programa. -Se debe poner a punto una tabla para traducir las direcciones físicas a las lógicas -Se puede presentar fragmentación interna División de páginas de los espacios de memoria (grafico) El espacio virtual se divide en páginas Algunas páginas están en memoria principal -El SO se encarga de que estén en memoria principal las páginas necesarias -Para ello trata los fallos de página producidos por la MMU 29 de abril de 2010 Esquema de traducción de direcciones Las direcciones generadas por la CPU se dividen en: -Numero de página (P)- utilizado en la tabla de páginas que contiene las direcciones base de cada página en la memoria física. -El desplazamiento de página (d) combinado con la dirección base definen la dirección de memoria física que es enviada a la unidad de memoria. Traducción: proceso referencia (p, d), se busca en la tabla de correspondencia de páginas para ver la p’ (p real). La dirección real es p’+d. Por agilidad tabla de correspondencia en caché. Si no hay residencia de la página en memoria principal, sucede una falta de página. R (grafico) Traducción de direcciones en paginación (grafico) Ejemplo de paginación (grafico) Elemento de la tabla de páginas (grafico) Otras informaciones: Copia de escritura, Edad, No página (fija en memoria física), Rellenar a ceros. El kernel del sistema operativo no es paginable. Ejemplo de traducción con tablas de páginas (grafico) Buffer de traducción anticipada (TLB) La tabla de página se mantiene en memoria principal El registro base de la tabla de páginas (PTBR) señala la tabla de páginas El registro de longitud de tabla de páginas }(PRLR) indica el tamaño de la tabla de páginas Toda memoria virtual puede causar dos accesos a memoria física - Uno para buscar en la tabla de páginas apropiada - Uno para buscar los datos solicitados Para solventar este problema, la mayoría de esquemas de memoria virtual utilizan una cache especial de alta velocidad para las entradas de la tabla de página -Se le denomina buffer de traducción anticipada [Translation Lookaside Buffer (TLB)], también llamado registros asociativos. Contiene aquellas entradas de la tabla de páginas que han sido usadas de forma más reciente… Operación de paginación y TLB (grafico) Registros asociativos/ tiempo de acceso efectivo sin intercambio ἐ= Tiempo de búsqueda asociativa t= Tiempo deacceso de memoria… α= Tasa…. EAT: Tiempo de acceso efectivo EAT= (t+ἐ)α+ (2t+ἐ)(1-α) Esquema de tabla de páginas de dos niveles (grafico) Ventajas de tablas multinivel Si un proceso usa una parte pequeña de su espacio lógico: Ahorro en espacio para almacenar TPs Sea un procesador con dir lógica de 32b de 2 niveles (10b c/nivel), TP de 4KB, entrada a TP es 4B Si el proceso usa 12MB superiores y 4MB inferiores: Tenemos cada página N2 direcciona 4MB Tamaño tablas de páginas: 1 TP N1 +4TPN2 =5*4KB= 20KB (frente a 4MB si utilizará todas las páginas) Ejemplo de paginación de dos niveles Una dirección lógica (en una máquina de 32 bits con tamaño de página Paginación multinivel y rendimiento (sin intercambio) Establecer el EAT para un procesador con 4 niveles de paginación, con el tiempo de acceso a memoria de 100ms, tiempo de búsqueda es 20ms y una tasa de aciertos en cache de 98% Para 4 niveles de paginación Rendimiento en paginación por demanda de intercambio Tasa de fallo de página 0<=p<=1.0 -si p = 0 no hay fallo de página -Si p = 1 cada referencia es un fallo de página Tiempo de acceso efectivo con intercambio = EATS = (1-p)* acceso a memoria +p*(sobrecarga de fallo de pagina) +[descarga] +carga +Reinicio) Si asumimos un valor global para el tiempo requerido en fallo de página (f) tendremos: EATS= (1-p)*t+p*f Donde T: …. Ejemplo Rendimiento en paginación por demanda con intercambio EATS= (1-p)*t+p*f si suponemos un t= 100 ns y un disco con latencia = 8ms, t búsqueda= 15 ms y t. transferencia= 1ms, tendríamos un tiempo promedio de fallo f= …. Tamaños de páginas (tabla) -Si < tamaño pagina, mayor tablas de páginas, fragmentación por tablas,> transferencia disco – memoria, aprovecha la localidad. -si> tamaño pagina, carga el código no usado, fragmentación interna. SEGMENTACIÓN Esquema de administración de memoria que soporta la visión del usuario de la memoria. Un programa es una colección de segmentos. Un segmento es una unidad lógica como por ejemplo: -Programa principal -Procedimietos -funciones -Variables locales, variables globales -bloques comunes Pila -tabla de simbolos Esquema de traducción usando segmentación (grafica) Vista lógica de la segmentación (grafica) Tabla de correspondencia de segmentos Dirección virtual = (s,d), los segmentos se intercambian como unidades Programa: nucleo principal, rutinas, datos (tablas, pilas etc) R=0 si segmento no está en real…. Arquitectura de la segmentación Las direcciones lógicas …. Segmentos compartidos (grafica) 4 de mayo de 2010 Segmentos compartidos Segmentación con paginación La segmentación con paginación interna juntar lo mejor de los dos esquemas anteriores La segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y el …. Traduccion dinámica de direcciones en sistema segmentado/ páginado con TBL (grafico) Segmentación con paginación: Pentium El Pentium soporta hasta 16k segmentos, cada uno hasta 232 bytes de direccionamiento virtual. Puede determinarse por S.O usar solo segmentación, solo paginación o ambos (Grafico) Mapeo de una dirección lineal en una dirección física Tamaño de paginación de desplazamiento 212 Politica de recuperación Politica de recuperaciónDetermina cuando una página se debería traer a la memoria principal… Algoritmo de reemplazo de páginas Las faltas de página forzan el cambio -Que página debe ser removida -Establecer espacio para la página que entra Las páginas modificadas deben ser guardadas las otras pueden sobrescribirse -Es aconsejable no reemplazar una página usada con frecuencia, seguramente la necesitaremos Algoritmo optimo de reemplazamiento de página Reemplaza la página que se requiera en el punto más lejano -Optimo pero no lograble La estimación se basa en el registro de uso de las corridas anteriores de los procesos Sigue siendo poco práctico. Algoritmo de página no recientemente usada (NRU) Cada página tiene un bit de referencia, un bit de modificación -Las paginas se clasifican 1. No referenciadas, no modificadas 2. No referenciada, modificadas 3. Referenciadas, no modificadas 4. Referenciadas, modificadas . NRU remueve las páginas aleatoriamente desde el numero más bajo en clases no vacías. FIFO (First –In, First-Out) Conserva una lista encadenada de todas las páginas …. Fifo y anomalía de Belady M (grafico) Algoritmo de Reloj, segunda oportunidad Las páginas se colocan en una cola circular donde son elegidas por el apuntador LRU (least Recently Used) Asume que las páginas recientemente usadas serán usadas de nuevo, elimina las páginas que no han sido usadas por mucho tiempo….. LRU (grafico) Algoritmo del conjunto de trabajo (Grafico) El conjunto de trabajo se refiere al conjunto de páginas usadas por las k referencias de memoria más recientes. W(k,t) es el tamaño del conjunto de trabajo en el tiempo t. Algoritmo del conjunto de trabajo (grafico) Reloj mejorado Se toma el algoritmo del reloj pero con los 2 bit, el de referencia y el de modificación: 0.0No referenciadas…. Otros algoritmos de reemplazo de paginas M Aleatorio (Random): Reemplaza las paginas de forma aleatoria, se trabaja en el OS/360 cuando se degenera el LRU , también se utilizó en extinto i860 de intel (risc) No frecuentemente usada (NFU) : c/ páginas tiene un contador, en cada intervalo de reloj se incrementa en 1 el contador de las páginas referenciadas, asi cuando se requiere intercambio. Windows xp Utiliza paginaciónpor demanda con clustering. El agrupamiento trae las páginas alrededor de la página fallada. A los procesos se les asigna un working set mínimum y un working set maximun El conjunto de trabajo mínimo es el numero de paginas que se le garantiza a un proceso tener en memoria A un proceso se le pueden asignar tantas paginas hasta alcanzar su conjunto de trabajo máximo Cuando la cantidad de memoria en el sistema cae por debajo de un umbral, se realiza un recorte automatico del conjunto de trabajo para recuperar memoria disponible Este recorte remueve las páginas de exceso de los procesos que están sobre su conjunto de trabajo minimo Espacio de direcciones de 32 Bits Windows Solaris Mantiene una lista de páginas libres para asignarle a los proceos con falta de página Lostfree : Parametros umbral (cantidad de memoria) para empezar a páginar Desfree – Parametro umbral para empezar el intercambio ….. Buscador de paginas de solaris 2 (grafico) Reemplazo de paginas de Linux Linux utiliza una variante de algoritmo de reloj para aproximarse a la estrategia de reemplazo de paginas LRU El administrador de memoria utiliza dos listas enlazadas -La lista actica ….. ALMACENAMIENTO SECUNDARIO Velocidad de transferencia en dispositivos Características de los discos duros sobre distintos dispositivos Parámetros Ejemplos de discos duros Planificación del disco El sistema operativo es responsable por el uso eficiente del hw- para los discos duros, esto significa tener un tiempo de acceso más rápido y un mayor ancho de banda para el disco. El tiempo de acceso tiene dos componentes principales -el tiempo de búsqueda es el tiempo en el que el disco debe mover las cabezas hasta el cilindro que contiene el sector deseado. -Latencia rotacional es el tiempo adicional de espera para que el disco rote sus cabezas hasta el sector deseado. Minimizado el tiempo de búsqueda El ancho de banda del disco es el número total de bytes transferidos, dividido por el tiempo total entre la primera solicitud del servicio y el completado de la transferencia Existen diversos algoritmos para planificar el servicio de las solicitudes de entrada y salida de disco. La ilustraremos con una cola de solicitudes (0-199) 98, 138, 37, 122, 14, 124, 65, 67 Puntero de la cabeza 53 FCFS (First come first serve) Cola de solicitudes = 98, 183, 37, 122,14, 124 65, 67 La cabeza inicia en 53 La ilustración muestra el movimiento total de la cabeza de 640 SSTF (Shortest seek time first) Cola de solicitudes = 98, 183, 37, 122,14, 124 65, 67 La cabeza inicia en 53 Elige la solicitud con el mínimo tiempo de búsqueda desde la actual posición de la cabeza La planificación SSTF es una forma de la planificación SJF; puede causar inanición de algunas solicitudes. La ilustración muestra el movimiento total de la cabeza de 236 cilindros SCAN Cola de solicitudes = 98, 183, 37, 122,14, 124 65, 67 La cabeza inicia en 53 El brazo del disco empieza en uno de los extremos del disco, y se mueve hacia el otro extremo, sirviendo las solicitudes hasta que llega al otro extremo, donde le movimiento se invierte y el servicio continua. Algunas veces es llamado el algoritmo del elevador. La ilustración muestra un total de 208 movimientos de la cabeza SCAN DE N PASOS El brazo del disco empieza en uno de los extremos del disco, y se mueve hacia el otro extremo, sirviendo las solicitudes que ya estaban esperando hasta que llega el otro C-SCAN Proporciona un tiempo de espera mas uniforme que el SCAN. La cabeza se mueve desde un extremo al otro. Sirviendo solicitudes camino. Cuando en su C-look Versión de C-Scan El brazo solo va tan lejos como esté la ultima solicitud en cada dirección, entonces se devuelve sin ir al extremo Comparativo de rendimiento de algoritmos de planificación de disco (grafico) Selección de algoritmo de planificación de disco (grafico) ELEMENTOS DE LA ADMINISTRACIÓN DE ARCHIVOS (GRAFICO) Arquitectura software de un sistema de archivos (Grafico) Organización: archivos apilado, Directo/aleatorio, Particionado pila, secuencial, secuencial indexado, Método de acceso: Pila, secuencial, secuencial indexado, Directo/aleatorio Atributos de los archivos Nombre simbolico – información en forma leible por los humanos Tipo: Diferencia los archivos dentro de un sistema Ubicación: señalador de ubicación del archivo en un dispositivo Tamaño Protección: Controla quien puede leer, escribir o ejecutar Hora, fecha e identificación de usuario. Datos para protección, seguridad y monitoreo de uso. Organización Tipo de dispositivo Tipo (archivo de datos, prog objeto, cola, etc) Tratamiento (temporal o permanente) Conteo de actividad La información acerca de los archivos se guarda en la estructura del directorio, que se guarda en disco Estructura de Directorio Una colección de nodos que contienen información acerca de todos los archivos Elemento de información de un directorio Fecha de creación Directorio de nivel simple Problemas de denominación Problemas de agrupamiento Directorio en dos niveles Directorio estructurado de un árbol Busqueda eficiente Capacidad de agrupamiento Directorio actual (directorio de trabajo) Trayectoria absoluta o relativa La creación de un nuevo archivo se hace en el directorio actual Borrado de archivos: rm <Archivo> Se recorre desde la raíz La creación de un nuevo Directorio en grafos acíclicos Tiene subdirectorios y archivos compartidos Este concepto no existe en Windows Dos nombres diferentes (alias) Directorio de grafo general Como podemos evitar los ciclos? 18 de mayo de 2010 Asignación de espacio para archivos Contigua, Enlazada, Indexada Contigua • Cada archivo ocupa un conjunto de bloques contiguos en el disco • Se asigna un único conjunto contiguo de bloques en tiempo de creación • Simple-Solo se requiere la ubicación inicial (nro de bloque) y la longitud (nro de bloques) • Existirá fragmentación externa • Desperdicio de espacio (problema con la asignación dinámica del espacio Asignación enlazada / encadenada • Cada archivo es una lista enlazada de bloques de disco: los bloques pueden estar dispersos en cualquier parte del disco. • En lo que respecta a la administración del espacio libre Asignación indexada • Tiene todos los punteros juntos en el bloque de índices • Vista lógica Ubicación indexada • Requiere de tabla índice • Acceso aleatorio • Acceso dinámico sin fragmentación externa, pero hay sobre costo en el bloque de índice Que tan grande debe ser el bloque índice • Lo suficiente para contener los distintos índices: -Esquema enlazado. Dentro del bloque las últimas direcciones indican otros bloques de dirección -Indice multinivel. Bloque índice de primer nivel y de segundo nivel, el tercero es el de datos. Con 4096 de tamaño de bloque se tiene 1024 punteros de 4 bytes que apuntarían a 1.048.576 bloques de datos o 4 GB de datos. -Esquema combinado. Ej 17 punteros de bloque en el bloque índice o Inodo. Los primeros 12 son directos, 3 a bloques indirectos, luego un indirecto doble, e indirecto triple. Información de un Nodo Disposición de un archivo UNIX en un disco (4k por bloque) grafico Almacenamiento = almacenamiento directo+ indirecto simple+ indirecto doble+ indirecto triple+… + numero de índices * tamaño de bloque+ Numero de índices indirectos * (tamaño bloque/Dirección de bytes + (numero de índices =Indirecto simple * tamaño de bloque+ indirecto doble*( Tamaño de bloque/Dirección de bytes)2 Es decir Descripción física en unix Tamaño max de archivo = D*TB+IS*(Tb/db)*Tb+ID*(tb/db)2 * tb+ IT*(Tb/db)3 *Tb… Tb: el tamaño del bloque D: punteros directos IS: Indirecto simple ID: Indirectos dobles IT: Indirectos triples db: Tamaño de direcciones a dobles Administración del espacio libre El mapa de bits requiere de espacio extra, ej: tamaño de bloque = 212 bytes Tamaño del disco = 230 bytes (1 GB) n= 230/212= 218 bits (o 32k) Respaldo y recuperación • Chequeo de consistencia – compara los datos en la estructura del directorio con los bloques de datos en disco, y trata de arreglar inconsistencias. • Uso de programas del sistema para sacar backup de los datos de disco a otro dispositivo de almacenamiento (disquete, cinta, etc) • Recuperación de archivos perdidos o disco al recuperar datos desde el backup • Respaldo total vs respaldo incremental Esquema abuelo – padre – hijo • D1…D4 • S1….S3 • M1…M5 • S1 • A1 Otros esquemas de respaldo y recuperación • Protección a nivel de disco. Multiples copias de FAT; arreglo en caliente para detección y corrección de bloques malos • Duplexión • Disco de espejo • Sistema RAID. Redundant array of inexpensive/independient disks: conjunto de drives que aparecen como un solo. El nivel de redundancia depende del nivel RAID RAID 0 RAID 0. Data Stripping without parity (DSA) Datos copiados en distintos discos sin redundar RAID 1 Espejo Los datos son copiados en un arreglo RAID 2 (Redundancia por código Hamming) Datos copiados a nivel de bit en todos los drives. No usado Este nivel cuenta con varios discos para bloques de redundancia y corrección de errores. La división es a nivel debits RAID 3 (Bit de paridad intercalado) Datos copiados a nivel de bits o bytes en todos los dryvers RAID 4 (Paridad a nivel de bloques) Independient Disk array (IDA) Similar al anterior pero a nivel de sectores, mejora el rendimiento. En este nivel los bloques de datos pueden se distribuidos a RAID 5 (Paridad distribuida a nivel de bloques) Datos escritos a nivel de sectores, Se incluyen códigos de corrección de error en todos los drives. Los datos y la paridad son guardados en los mismos discos por lo que conseguimos aumentar la velocidad de demanda…. RAID 6 (Redundancia Dual) RAID de nivel superior Raid 10 Raid 30 Raid 50 Sistemas de archives de algunos sistemas operativos FAT NTFS Clase de sistemas operativos 20 de mayo de 2010 Tendencias en sistemas operativos Las principales abstracciones de hoy en día: procesos, hilos, sockets, y archivos no manejan adecuadamente los problemas de administración de la localidad, disponibilidad y tolerancia a fallos. Los sistemas operativos distribuidos pueden resolver estos problemas. Cualquier fragmento de código debe poder correr en cualquier parte. El sistema debe manejar localidad, replicación y migración de datos y operaciones. Los sistemas operativos del futuro deben estar listos para internet, comercio electrónico, intranets/ extranets, operaciones basadas en internet, servidores de correo electrónico, web, servicios web etc. El sistema debe ser: Autoconfigurable Autoajustable Automonitoreable Escalable Confiable Seguro Robusto Escalable (a nivel mundial) Tolerante a fallos Persistente Preparado para la red (webos, webfs) Favorable a la movilidad Extensible Orientado a objetos Orientado a GUI Mayores longitudes de palabra (64, 128 bits) Ambiente multitier Reconocimiento automático de componentes Autodiagnostico Risc Multiples ambientes operativos Multiples idiomas Kernel paginable Interoperatividad Procesamiento paralelo (simétrico) Dispositivos ópticos multiescritura Gestion de comunicaciones y bases de datos en kernel Configuración en caliente (dinámica) Registro y seguimiento de operaciones (auditoria), log, Journal Abstracción agresiva (independencia completa del sistema) Irrelevancia en almacenamiento (no jerarquía) Irrelevancia de ubicación Vinculación justo a tiempo (evitar vinculaciones que afecten la distribución y tolerancia a fallos) Introspección (monitorearse así mismo, reflexión, autoexamen) Gran semántica de máquina virtual Arquitecturas descentralizadas: mejora relación precio beneficio PC-Redes Estándares Sistemas operativos multiprocesadores Los computadores paralelos procesamiento paralelo son aquellos sistemas que favorecen el Clasificación Flynn arquitecturas de multiprocesadores SISD: Simple flujo de instrucciones – simple flujo de datos. Un solo procesador ejecuta una única instrucción que opera sobre datos almacenados en una sola memoria. Computadores serie IBM 370, DEC VAX, Macintosh, PC, etc SIMD: Simple flujo de instrucciones – Multiple flujo de datos Cada instrucción se ejecuta en un conjunto de datos diferente a través de los diferentes procesadores. Procesadores matriciales, una unidad de control que orquesta varios procesadores que operan sobre varios bloques de datos. Illiac IV, Conection Machine. MISD: Multiple flujo de instrucciones – Simple flujo de datos. NO SE USA MIMD: Multiple flujo de instrucciones – Multiple flujo de datos Un conjunto de procesadores ejecuta simultáneamente diferentes secuencias de instrucciones en diferentes conjunto de datos. Cray X/Mp, Cedar, Butterfly