Nombre de la Asignatura |
Sistemas Operativos |
Créditos |
12 créditos |
Objetivo de la Asignatura |
Introducir los conceptos básicos de los Sistemas Operativos y de Programación Concurrente
|
Metodología de enseñanza |
Se dictarán 5 horas semanales de exposiciones teóricas y 2 horas semanales de
clases prácticas.
|
Temario |
-
Introducción: Conceptos generales de los Sistemas Operativos.
-
Estructura de los sistemas operativos: Servicios. Llamados a sistemas. Diseño e implementación. Máquinas virtuales. Inicio del sistema.
-
Procesos: Concepto de Proceso, estructuras y operaciones sobre procesos. Comunicación entre procesos. Hilos. Planificación.
-
Programación Concurrente: Introducción. Interferencia, cooperación y sincronización entre tareas. Problema de las secciones críticas. Semáforos. Monitores.
Declaración de tareas concurrentes. Primitivas de sincronización basada en intercambio de mensajes.
-
Bloqueos Mutuos: Modelo del sistema y caracterización de bloqueos mutuos. Manejo de bloqueos mutuos: prevención, detección y recuperación.
-
Administración de la Memoria: Evolución histórica. Conceptos básicos. Paginación. Segmentación. Memoria Virtual. Paginación bajo demanda. Copy-on-Write.
Algoritmos de reemplazo. Asignación de memoria. Hiperpaginación. Mapeo de memoria. Asignación de memoria a nivel del sistema.
-
Subsistema de Entrada/Salida: Conceptos básicos. Entrada/Salida a nivel hardware, aplicación y sistema. Performance.
-
Almacenamiento Secundario: Discos y Sistema de Archivos. Conceptos: atributos, operaciones, tipos, estructura. Organización y métodos de acceso.
Estructura de directorios. Organización de volúmenes. Administración del espacio. Sistema de archivos distribuidos.
-
Protección y Seguridad: Principios del diseño. Métodos básicos de autenticación y Control de acceso.
-
Sistema de propósito especial: Sistemas de tiempo real. Sistemas multimedia.
-
Tecnologías: Multiprocesadores, Virtualización Sistemas distribuidos.
|
Bibliografía |
Sistemas operativos
-
Operating System Concepts, Silberchatz, Galvin. Ed. John Wiley & Sons. 8th edition ISBN 978-0-470-12872-5 (2008)
-
Operating Systems: Internals and Design Principles, William Stallings. Ed. Prentice Hall. 6th edition ISBN: 0136006329 (2009)
-
Modern Operating Systems, Andrew S. Tanenbaum. Ed. Prentice Hall. 2nd edition ISBN: 0130313580 (2001)
-
Distributed Operating Systems, Andrew S. Tanenbaum. Ed. Prentice Hall. 1st edition ISBN: 0132199084 (1994)
-
The Logical Design of Operatin Systems, L. Bic, A. Shaw. Ed. Prentice Hall, 2nd edition. ISBN: 0135401127 (1988)
Programación concurrente
-
Foundations of Multithreaded, Parallell, and Distributed Programming, G. R. Andrews Ed. Addison-Wesley ISBN: 0201357526 (2000).
-
Concurrent Programming: Principles and Practice, Gregory R. Andrews, Sally Elliott. Ed. Addison-Wesley ISBN: 0805300864 (1991).
-
Principles of concurrent and distributed programming, M Ben-Ari. Ed. Prentice Hall International - Series in Computer Science ISBN: 013711821X (1990).
-
Concurrent Programming: The Java Programming Language, Stephen J. Hartley. Ed. Oxford Univ. Press ISBN: 0195113152 (1998).
-
Concurrency in Ada, Alan Burns, Andy Wellings, Andrew J. Wellings, John Barnes. Cambridge Univ. Press ISBN: 052162911X (1998).
|
Conocimientos previos recomendados |
Sólidos conocimientos de arquitectura de computadoras y de programación.
|