Sistemas Operativos Otoño 2010 Profesor: Dra. Ruth M. Aguilar Ponce Salón: Horario del Curso: Horas de oficina: Oficina: Teléfono: e-mail: Web page: Pagina del Curso: Lunes a Viernes Martes y Jueves 10:30-13:00 hrs. Edificio 2, Oficina 14 826-2486 ext. 2950 rmariela@fciencias.uaslp.mx http://galia.fc.uaslp.mx/~rmariela http://galia.fc.uaslp.mx/~rmariela/OS A. DESCRIPCIÓN El sistema operativo es un programa que administra el hardware de la computadora y provee las bases para las aplicaciones. El SO es el intermediario entre el usuario final del sistema de cómputo y el hardware del sistema. Existe una gran variedad de sistemas operativos cada uno diseñado con un fin específico. Algunos sistemas están diseñados para ser eficientes, otros para ser convenientes y algunos más para proveer una mezcla de ambos sabores. Los sistemas conocidos como Sistemas Operativos en Tiempo-Real (RTOS) son diseñados para ser administrar en forma muy eficiente los recursos del sistema y son muy ligeros. Mientras que los Sistemas Operativos para Computo Personal son convenientes para todo tipo de aplicaciones desde juegos hasta aplicaciones de negocios. El curso cubrirá las bases de diseño de los sistemas operativos, se discutirán las bases de administración de recursos, así como el diseño de las partes que componen al sistema. B. ORGANIZACIÓN Este es un curso teórico-práctico cuyos temas serán presentados por el instructor en base a acetatos y ejercicios resueltos en el pizarrón. Se asignarán tareas para reafirmar los conocimientos adquiridos en el salón de clases. Las tareas consistirán en ejercicios y programas en C. Se aplicarán exámenes rápidos durante el curso, por lo que la asistencia es importante. Para los proyectos en C se utilizará el sistema operativo NACHOS que nos permite introducir el diseño de algunos de los componentes básicos del sistema operativo, desde el administrador de memoria, hasta el administrador de acceso. C. OBJETIVOS DEL CURSO 1. Discutir los servicios que el sistema operativo provee a los diferentes actores de un sistema de cómputo, así como su estructura general. 2. Introducir el concepto de proceso y la administración de procesos que se lleva a cabo en los sistemas operativos concurrentes. 3. Discutir el concepto de memoria virtual así como su administración y soporte en hardware 4. Discutir detalles de implementación del administrador de archivos y tópicos relacionados 5. Introducir los sistemas operativos en tiempo-real D. TOPICOS DEL CURSO UNIDAD 1: Introducción 1.1 Que es un sistema operativo 1.2 Operaciones del sistema operativo 1.3 Servicios del sistema operativo 1.4 Estructura del sistema operativo UNIDAD 2: Administración de Procesos 2.1 Definición de Procesos 2.2 Operaciones sobre procesos 2.3 Modelo Multi-hilos 2.4 Algoritmos de Scheduling 2.5 Sincronización de Procesos 2.5.1 Semáforos 2.5.2 Monitores 2.6 Deadlocks UNIDAD 3: Administración de Memoria 3.1 Swapping 3.2 Asignación de Memoria Contigua. 3.3 Paginación 3.4 Segmentación 3.5 Memoria Virtual 3.6 Algoritmos de Remplazo de Pagina UNIDAD 4: Administración de Archivos 4.1 Definición de archivo 4.2 Método de Acceso 4.3 Estructura de Directorio 4.4 Estructura del sistema de archivos 4.5 Implementación del sistema de archivos 4.6 Métodos de asignación UNIDAD 5: 5.1 5.2 5.3 5.4 Protección y Seguridad Principios de Protección Matriz de Acceso Revocación de derechos de acceso El problema de seguridad UNIDAD 6: Sistemas Operativos en Tiempo Real 6.1 Introducción 6.2 Características del Sistema 6.3 Características del Núcleo en Tiempo Real 6.4 Implementación de los sistemas en tiempo real E. LIBROS DE REFERENCIA 1. Avi Silberschatz, Peter Baer Galvin, Greg Gagne, “Operating System Concepts.” 8a edición, John Willey & sons, 2008 2. A.S. Tanenbaum, “Modern Operating Systems.” 3a Edición , Prentice Hall, 2007 3. W. Stalling, “Operating Systems: Internals and Design Principles.” 6a Edición. Prentice Hall, 2008 F. CALIFICACIÓN El curso se calificará en base a tareas, exámenes rápidos y un proyecto final. Las tareas deberán ser entregadas en las fechas señaladas. Ninguna tarea será aceptada después de la fecha de entrega y el alumno recibirá una calificación igual a cero por tarea no entregada. El porcentaje asignado es el siguiente: 1. Exámenes Parciales 2. Tareas y Quizzes 3. Proyecto Final 40 % 30 % 30 % Se aplicaran dos exámenes parciales, el primero al termino de la primeras tres unidades y el segundo al termino de las segunda tres unidades. Las tareas serán publicadas en la página del curso así como la fecha de entrega. Las fechas de entrega son inamovibles. G. POLITICAS DEL CURSO 1. No se permite el uso de teléfonos celulares en el salón de clases 2. No se debe introducir bebidas ni alimentos al salón de clases 3. Los anuncios del curso serán publicados en la página del curso, los alumnos son responsables de revisar continuamente la página. 4. Las tareas deben ser entregadas el día que se indique, de lo contrario no se les dará otra oportunidad para entregarlas y su calificación para esa tarea será cero. 5. El trabajo en el curso debe ser realizado en forma individual por cada alumno. No se tolerara la falta de honestidad, tales como copiar tareas o respuestas en exámenes. La discusión en equipo de los problemas es alentada pero la solución de los problemas debe ser individual.