Tema 1: Introducción. Definiciones y conceptos Tema 2: Gestión de procesos Tema 3: Comunicación y sincronización de procesos. Interbloqueos Tema 4: Gestión de memoria Tema 5: Sistema de archivos Tema 6: Gestión de Entrada/Salida Desarrollo del Tema 1: Introducción. Definiciones y Conceptos Contenidos de teoría: 1.1. Concepto y funciones del sistema operativo 1.2. Evolución histórica de los sistemas operativos 1.2.1. Evolución histórica 1.2.2. Sistemas operativos actuales 1.3. Estructura de los sistemas operativos 1.4. Principios de diseño de sistemas operativos 1.4.1. Metodologías 1.4.2. Modelos Contenidos de práctica: 1.1. Introducción 1.2. Conexión y desconexión del sistema 1.3. Edición, compilación y ejecución de programas 1.4. Órdenes básicas de UNIX Desarrollo del Tema 2: Gestión de procesos Contenidos de teoría: 2.1. Conceptos de procesos 2.1.1. Modelo de procesos 2.1.2. Multiprogramación 2.1.3. Estados de un proceso 2.1.4. Operaciones sobre procesos 2.1.5. Implementación de procesos 2.2. El núcleo del sistema operativo 2.2.1. Cambio de contexto 2.2.2. Manejador de interrupciones, despachador y planificador 2.3. Hilos de ejecución 2.3.1. Concepto de hilo de ejecución 2.3.2. Implementación de hilos de ejecución 2.4. Planificación de procesos 2.4.1. Planificación de procesos 2.4.2. Algoritmos de planificación 2.4.3. Evaluación de algoritmos de planificación 2.5. Diseño de estructuras 2.5.1. Bloque de control de proceso 2.5.2. Tabla de procesos Contenidos de práctica: 2.1. Introducción 2.2. Descripción. Algoritmos de planificación 2.3. Restricciones y consideraciones 2.4. Implementación Desarrollo del Tema 3: Comunicación y sincronización de procesos. Interbloqueos Contenidos de teoría: 3.1. Especificación de la concurrencia 3.1.1. Necesidad de coordinación y cooperación entre procesos 3.1.2. Condiciones de carrera 3.1.3. El problema de la sección crítica 3.2. Primitivas de coordinación y sincronización 3.2.1. Sincronización mediante hardware 3.2.2. Sincronización mediante software. Semáforos. Monitores. Mensajes 3.3. Problemas clásicos y ejemplos de resolución 3.4. Interbloqueo. Especificación del problema 3.4.1. Ejemplos de interbloqueos 3.5. Tipos de recursos y caracterización de interbloqueos 3.5.1. Grafos de recursos reutilizables y consumibles 3.5.2. Sistemas con recursos reutilizables y consumibles 3.6. Prevención y evitación 3.7. Detección de interbloqueos y recuperación del sistema Contenidos de práctica: 3.1. Introducción 3.2. Descripción. El problema del productor/consumidor 3.3. El problema de lectores/escritores FIFO 3.4. Restricciones y consideraciones 3.5. Implementación 3.6. Interbloqueo. El problema de la comida de filósofos 3.7. El algoritmo del banquero 3.8. Implementación Desarrollo del Tema 4: Gestión de memoria Contenidos de teoría: 4.1. Conceptos de gestión de memoria 4.2.1. Requisitos 4.2.2. Organización 4.2.3. Memoria real y virtual 4.2.4. Intercambio 4.2. Memoria real. Asignación contigua 4.2.1. Particiones fijas 4.2.2. Particiones dinámicas 4.3. Memoria real. Asignación dispersa 4.2.1. Paginación 4.2.2. Segmentación 4.2.3. Técnicas combinadas 4.4. Memoria virtual 4.2.1. Paginación por demanda 4.2.2. Segmentación por demanda 4.2.3. Sistemas combinados 4.2.4. Otras consideraciones 4.5. Casos de estudio: Unix/Linux Contenidos de práctica: 4.1. Simulación de un gestor de memoria de particiones dinámicas 4.1.1. Identificación de la fragmentación externa 4.1.2. Compactación 4.1.3. Comparar los algoritmos de asignación de huecos (primer hueco, mejor hueco, pero hueco y siguiente hueco) 4.2. Simulación de un gestor de memoria virtual 4.2.1. Comparar los algoritmos de sustitución de páginas Desarrollo del Tema 5: Sistema de archivos Contenidos de teoría: 5.1. Archivos y directorios 5.1.1. Tipos 5.1.2. Métodos de acceso 5.1.3. Operaciones 5.1.4. Estructuras 5.2. Implantación del sistema de archivos 5.2.1. Gestión del almacenamiento secundario 5.2.2. Gestión del espacio libre 5.3. Casos de estudio: unix/linux Contenidos de práctica: 5.1. Sistema de archivos de Linux basado en estructuras de nodos-i 5.2. Llamadas al sistema de Linux para la gestión de archivos (stat, fstat, mknod, etc.) Desarrollo del Tema 6: Gestión de Entrada/Salida Contenidos de teoría: 6.1. Introducción. El problema de E/S 6.2. Dispositivos de E/S 6.2.1. Dispositivos de bloques 6.2.2. Dispositivos de caracteres 6.3. Software de E/S 6.4. Dispositivos de bloques. Discos 6.5. Dispositivos de caracteres. Terminales 6.6. Otros dispositivos. Relojes 6.7. Casos de estudio: Unix/Linux Contenidos de práctica: 6.1. Manejadores de dispositivos 6.2. Conocer el funcionamiento de la entrada/salida en Linux, así como la filosofía de funcionamiento de los manejadores de dispositivos 6.3. Relacionar el dispositivo de E/S y el manejador para constituir el periférico |