UTFSM - Sistemas Operativos Ayudantía 1: Overview
Ayudantía Sistemas Operativos El sistema operativo Conceptos básicos: Proceso: Instancia de un programa, tiene uno o más threads. Thread Gestión de memoria Gestión de E/S Sistema de archivos Seguridad Ayudantía Sistemas Operativos http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Labor No hay algo específico, puede ir de: Manejar los recursos. Controlar ejecución de los programas. Seguridad Hasta: Facilitar desarrollo de aplicaciones. Ofrecer interfaz multimedia. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Componentes CPU, memoria, dispositivos I/O Trabajan de forma separada a través de un buffer e interrupciones. Se comunican por un Bus Pueden haber varios Buses Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Interrupciones Ocurre interrupción Se guarda dirección de instrucción Se desactivan interrupciones temporalmente Interrupción: Vectored o Polled Traps Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Proceso con interrupción de I/O sincrónica Proceso trabaja Se llama a I/O CPU idle I/O termina Se devuelve control al usuario Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Ejemplo: Proceso con interrupción de I/O sincrónica: Proceso va a I/O cada: 20s Duración I/O: 10s Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Proceso con interrupción de I/O asincrónica Proceso trabaja Llamada a sistema Sistema busca dispositivo Sistema registra trap El proceso no ha dejado de trabajar Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Ejemplo Proceso con interrupción de I/O asincrónica: Proceso va a I/O cada: 20s Duración I/O: 10s Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Conceptos avanzados Multiprogramación Eficiencia, usar CPU siempre Ciclar cuando hay interrupciones. Timesharing Compartir tiempo entre aplicaciones Swapping Si un proceso no cabe en la memoria Memoria virtual Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Para el sistema operativo Excepciones v/s traps Loops infinitos, procesos modificando otros Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Para el sistema operativo User mode v/s Kernel mode Mode bit Timer Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Procesos Debe haber, para cada proceso, un process descriptor: Estado (ejecución, preparado, bloqueado) Contador Puntero a stack Asignación de memoria Archivos abiertos etc etc.. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Estado de un proceso En ejecución (utilizando realmente la CPU en ese instante). Preparado (ejecutable; detenido temporalmente para permitir que otro proceso se ejecute). Bloqueado (incapaz de ejecutarse hasta que tenga lugar algún suceso externo). Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Rutina común para el SO El hardware apila el contador de programa. El hardware carga el nuevo contador de programa desde el vector de interrupción. Una rutina de lenguaje ensamblador salva los registros. Una rutina de lenguaje ensamblador establece una nueva pila. Se ejecuta la rutina de tratamiento de la interrupción escrita en C (normalmente lee y guarda en un búfer el dato de entrada). El planificador decide qué procedimiento ejecutar a continuación. Un procedimiento escrito en C retorna al código en ensamblador. Una rutina de lenguaje ensamblador (el dispatcher) pasa a ejecución el proceso seleccionado por el planificacor. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Manejo de memoria SO debe saber qué partes de la memoria se usan y por quién. Ejemplos de garbage collection Saber qué sacar y qué dejar en memoria. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Almacenamiento Sistemas de archivo: Control de acceso Primitivas de manipulación de archivos Analogía con lenguajes de programación Evitar errores Manejo de espacio libre Disk scheduling Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Ejemplo real Abren un MP3 con su reproductor de múica. Tienen parlantes 5.1 La música viene en stereo, no en 5.1, por lo que se bajan un plug-in para transformarla de stereo a 5.1. (Y así aprovecharlos!) El plug-in usa CUDA. Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Explicación de CUDA Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Hagamos el flujo del proceso… Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Qué tenemos entonces? A simple vista: Reproductor de música (.exe) Plug-in (*.dll) Drivers CUDA Drivers de sonido Application programming interfaces (API) Para cargar el plug-in (Win32 API) Para enviar audio a la tarjeta de sonido (Directsound o OpenAL) Para abrir los archivos (el .MP3) Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Nos falta algo? Dispositivo de almacenamiento Controlador de disco Sistema de archivos Permisos de usuario Otros procesos corriendo a la vez: Mouse, teclado, barra de inicio, etc Y se puede seguir desgranando muuucho más! Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Fin del overview Ayudantía Sistemas Operativos - http://villaseca.wordpress.com