CURSO : Sistemas Operativos SIGLA : IIC2332 CRÉDITOS : 10 REQUISITOS : IIC1222 Programacion Avanzada; Se recomienda IIC2342 Arquitectura de Computadores SEMESTRE : I 1. OBJETIVOS Un sistema operativo es un componente esencial de un computador: es un programa que actua de intermediario entre el usuario y el hardware del computador. El rol de un sistema operativo es proveer un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente y eficiente. El objetivo del curso es entregar al alumno conceptos basicos del dise?o e implementacion de sistemas operativos. Al finalizar el curso, el alumno entendera los problemas que un sistema operativo debe abordar, y conocera diversos mecanismos para resolverlos. Asimismo, estara capacitado para dise?ar e implementar cualquiera de los subsistemas que forman parte de un sistema operativo. 2. CONTENIDO - Introduccion. Que es un sistema operativo, que estructura tiene, y como han evolucionado historicamente. Apoyo requerido del hardware: proteccion, interrupciones. - Procesos. El concepto de proceso y de hebra: implementacion, asignacion de recursos y politicas de planificacion o scheduling. Sincronizacion y comunicacion interprocesos: semaforos, monitores, mensajes. Seccion critica y otros problemas clasicos de sincronizacion. Bloqueos mutuos e inanicion. - Administracion de memoria. Multiprogramacion, intercambio (swapping), paginacion y segmentacion. Fragmentacion interna y externa. Memoria virtual: conceptos e implementacion. Algoritmos de asignacion y reemplazo de memoria. Hiperpaginacion o thrashing. - Sistemas de archivos. Archivos y directorios. Implementacion de sistemas de archivos. Administracion de espacio, caches. Manejadores de dispositivos en general, y de disco en particular. Planificacion del movimiento del brazo. Arreglos redundantes de discos (RAIDs). - Proteccion y seguridad. Problemas, amenazas y principios basicos para la seguridad. Listas de control de acceso versus capacidades. Cifrado y autentificacion. - Sistemas operativos distribuidos. Redes de computadores. Sistemas operativos de red versus sistemas operativos distribuidos. Sistemas de archivos distribuidos. - Estudio de casos. Estructura de un sistema operativo. Como se aplican los conceptos estudiados a casos reales, tales como UNIX y Windows NT. 3. BIBLIOGRAFIA Minima: SILBERSCHATZ, Abraham and GALVIN, Peter B. Operating systems concepts. Reading, Mass., Addison Wesley, 1998. Complementaria: STEVENS, Richard. Advanced programming in the UNIX environment. Reading, Mass., Addison Wesley 1993. TANENBAUM, Andrew. Distributing operating systems. Englewood Cliffs,N.J., Prentice Hall, 1995. TANENBAUM, Andrew and WOODFULL, A.S. Operating systems: design and implementation. Upper Sadle River, Prentice Hall, 1997.