2.2.1 - Sistemas Operativos
Segundo Año
Característica del Área Curricular | |||
---|---|---|---|
Plan | 2015 | ||
Cuatrimestre | Segundo | ||
Hs. Cat. | 80 | ||
Res. C.S. | 291/2015 | ||
Presentación
La asignatura se ubica en el segundo semestre del segundo año de la carrera. Esta actividad curricular forma al alumno en los conceptos, administración y prácticas de programación en los entornos de los sistemas UNIX
Objetivos
Este curso se centrará en los temas fundamentales de un sistema operativos: los procesos y la memoria del ordenador, los sistemas de archivos, la multitarea, las comunicaciones interprocesos (regiones criticas, memoria compartida, ocurrencia de deadlocks), etc. para dotar al alumno del entendimiento necesario para hacer un buen uso de los recursos de los sistemas.
Contenido Temático
Unidad 1: Introducción a los sistemas operativos.
¿Qué es un sistema operativo? Historia de los sistemas operativos. Conceptos generales. Componentes y servicios. Diseño de sistemas operativos. Intérpretes de comandos. Llamadas al sistema. Programación en Shell scripts.
Unidad 2: Procesos.
Concepto de proceso. Planificación de procesos. Operaciones con procesos. Procesos en UNIX. Primitivas de administración de procesos en UNIX. Sincornización. Señales. Threads
Unidad 3: Comunicación y sincronización entre procesos. (IPC)
Pipes y FIFOs. Shared memory. El problema de la sección crítica. Soluciones hardware. Semáforos y monitores. Problemas clásicos de programación concurrente. Construcciones lingüísticas. Sincronización en POSIX. Comunicación por mensajes.
Unidad 4: Bloqueos.
Conceptos generales y condiciones necesarias para su existencia. Problemas y algoritmos clásicos. Prevención y detección. Recuperación. Algoritmo del banquero.
Unidad 5: Administración de memoria.
Administración sin paginación. Memoria virtual. Paginación. Algoritmos de reemplazo de páginas. Segmentación. Implementación. Segmentación con paginación.
Unidad 6: Sistemas de archivos.
Estructuras y tipos de archivos. Directorios. I-nodos. Archivos compartidos. Sistemas de archivo remotos. NFS. Administración de disco. Confiabilidad y desempeño. Implementación con dispositivos removibles. Seguridad y mecanismos de protección. ACLs.
Bibliografía
Operating Systems: Design and Implementation - A. Tanenbaum, - Prentice Hall.
Operating Systems Concepts - A. Silberschatz, P. Galvin, - Addison Wesley.
Pthreads Programing - Bradford, D. Buttlar y J. Farrell, - O’Reilly.