<< >> Título

Temario detallado

Este es el temario teórico de la asignatura, con un mayor nivel de detalle en sus contenidos.

1. Conceptos generales

1.1. Introducción a los sistemas operativos

1.1.1. Sistema informático y sistema operativo

Componentes de un sistema informático: sistema lógico, sistema físico y sistema humano. Aplicaciones y programas del sistema. Concepto de sistema operativo.

1.1.2. Objetivos de los sistemas operativos

El sistema operativo como administrador de recursos, máquina extendida, programa de control y entorno de operación y programación. Objetivos funcionales y criterios.

1.1.3. Recorrido histórico. Tipos de sistemas informáticos

Sistemas primitivos. Monitor residente. Procesamiento por lotes. La multiprogramación. Sistemas interactivos: tiempo compartido. Sistemas de tiempo real. Informática personal. Sistemas paralelos. Sistemas distribuidos.

1.2. Estructura de computadoras y sistema operativo

1.2.1. El sistema de entrada/salida. Eventos

Sistema de interrupciones. Interrupciones vectorizadas. Acceso directo a memoria (DMA). Excepciones e interrupciones software.

1.2.2. Jerarquía de memorias

Concepto y ejemplos de jerarquía de memorias. Principio de caché. Consistencia y coherencia.

1.2.3. Elementos de protección

Necesidad de protección en el sistema operativo. Instrucciones privilegiadas. Modo dual de operación. Implementación en hardware.

1.3. Estructura y funciones de los sistemas operativos

1.3.1. Componentes funcionales de un sistema operativo

Gestión de procesos. Gestión de la memoria. Gestión de la entrada/salida. Sistemas de ficheros. Interfaces de usuario y de programación. Programas del sistema.

1.3.2. El núcleo del sistema operativo

1.3.3. Interfaz con los servicios del sistema

El sistema operativo como programa guiado por eventos. Las llamadas al sistema. Implementación.

1.3.4. Diseño de sistemas operativos

Principios fundamentales: Principio de abstracción. Principio de caché. Políticas y mecanismos.

Modelos de diseño:Sistemas monolíticos. Sistemas jerárquicos. Modelo de máquina virtual. El modelo cliente/servidor. Micronúcleos.

2. Procesos

2.1. Fundamentos de procesos y concurrencia

2.1.1. Concepto de proceso

Estados de actividad de un proceso. Primitivas de gestión de procesos. Jerarquías de procesos.

2.1.2. Sistemas concurrentes

Propósito y objetivos de la concurrencia. Cooperación y competencia entre procesos. Especificación de la concurrencia.

2.2. Planificación de procesos

2.2.1. Estructuras y niveles de planificación

El bloque de control de proceso. Colas de gestión de procesos. Niveles de planificación. Hilos.

2.2.2. Objetivos de la planificación de procesos

Modelo de comportamiento de un proceso. Criterios de evaluación de las políticas.

2.2.3. Políticas de planificación

FCFS. SJF. Métodos expulsivos (preemptive). Round-Robin. Métodos basados en prioridades. Métodos multicolas.

2.3. Sincronización y comunicación entre procesos

2.3.1. Sincronización entre procesos

Concepto y necesidad. Postergación indefinida e interbloqueo. El problema de la sección crítica. Soluciones algorítmicas y hardware.

2.3.2. Herramientas de programación concurrente

Semáforos. Regiones críticas. Monitores. Problemas clásicos de sincronización entre procesos.

2.3.3. Comunicación entre procesos

Primitivas de comunicación. Mensajes. Taxonomía de los mecanismos de paso de mensajes.

3. Entrada/salida

3.1. Principios de funcionamiento del hardware de E/S

3.1.1. Dispositivos de entrada/salida

3.1.2. Controladores de dispositivo

3.1.3. Acceso directo a memoria (DMA)

3.2. Estructura del subsistema de entrada/salida

3.2.1. Elementos

Gestores de interrupciones. Manejadores de dispositivo. Llamadas al sistema para entrada/salida. Ejemplos de UNIX y Windows NT

3.2.2. Técnicas fundamentales

Buffering. Spooling.

3.3. Planificación de peticiones a discos

4. Sistemas de Ficheros

4.1. Funciones del sistema de ficheros

4.1.1. Concepto de fichero.

El fichero como tipo abstracto de datos: operaciones. Tipos de ficheros. Bloques lógicos.

4.1.2. Operaciones sobre ficheros

Métodos de acceso: directo, secuencial, indexado. Protocolos de uso de ficheros. Semánticas de consistencia.

4.2. Organización del sistema de ficheros

4.2.1. Directorios

Concepto. Nominación de ficheros: rutas. Organización en dos niveles. Organizaciones jerárquicas en árbol. Organizaciones no arbóreas: enlaces, alias. Implementación.

4.3. Protección

Listas de control de acceso. Tipos de operaciones. Propietarios. Permisos.

4.4. Implementación del sistema de ficheros

4.4.1. Arquitecturas típicas

4.4.2. Estructura interna del sistema

Estructuras para directorios y ficheros. Nodos-i. Soporte de múltiples discos.

4.4.3. Gestión del espacio

Almacenamientos contiguo, encadenado e indexado. FAT. Gestión del espacio libre: mapas de bits, listas, grupos. Comparación

4.5. Otros conceptos

Tolerancia a fallos. Semánticas de consistencia. Transacciones.

5. Gestión de la memoria

5.1. Conceptos fundamentales

5.1.1. Organización de la memoria

Nivel físico de memoria: espacio de direcciones lineal. Jerarquía de memorias y caché. El espacio de direcciones en el lenguaje de alto nivel. Elementos y fases en la traducción de direcciones: compilación, enlace, carga del programa, traducción dinámica.

5.1.2. Elementos y objetivos de la gestión de memoria

Transparencia. Concepto de espacio virtual. Reubicación estática y dinámica.Hardware de traducción de direcciones

5.2. Gestión de la memoria principal

5.2.1. Gestión del espacio contiguo

Políticas de gestión de huecos libres. Particiones fijas (MFT) y variables (MVT). Estructuras de control. El problema de la fragmentación. Compactación.

5.2.2. Intercambio (swapping)

Descripción. Relación con la planificación de procesos.

5.2.3. Paginación

Arquitectura de un sistema paginado. Circuitería de traducción y estructuras de control. Protección.

5.2.4. Segmentación

Arquitectura de un sistema segmentado. Circuitería de traducción y estructuras de control. Protección de segmentos. Reubicación y compartición de áreas de memoria. Combinación de la segmentación con la paginación.

5.3. Memoria virtual

5.3.1. Generalidades

Principios y objetivos de la memoria virtual. El almacenamiento secundario. Memoria virtual única y múltiple.

5.3.2. Paginación bajo demanda

Descripción. Fallos de página. Políticas de reemplazo: LRU, LFU, NRU, etc.

5.3.3. Otras técnicas de paginación

El modelo del conjunto de trabajo. Hiperpaginación. Políticas de frecuencia de fallos de página

6. Protección y seguridad

6.1. Seguridad informática

6.1.1. Conceptos sobre seguridad y protección

Distinción entre seguridad y protección. Ámbitos de la seguridad. Amenazas al sistema.

6.1.2. Diseño del sistema de seguridad

Objetivos y principios de diseño. Auditoría y registro. Sistemas de validación: contraseñas, artefactos, sistemas biométricos. Criptografía.

6.2. Protección

6.2.1. Hardware de protección

6.2.2. Modelos formales de protección

Dominios de protección. Matriz de control de acceso.

6.2.3. Mecanismos de protección

Reglas implícitas. Jerarquías de acceso. Listas de acceso. Capacidades. Llaves y cerraduras.

7. Interbloqueo

7.1. Definición del problema

Caracterización del interbloqueo. Modelos formales

7.2. Tratamiento del interbloqueo

7.2.1. Prevención y evitación del interbloqueo

Negación de condiciones del interbloqueo. Ordenación lineal de recursos. Algoritmo del banquero

7.2.2. Detección y recuperación del interbloqueo

Algoritmos de detección. Criterios para la recuperación del interbloqueo

8. Casos de estudio

8.1. Sistema operativo Unix

8.1.1. Generalidades

Historia del Unix. Principios de diseño. Arquitectura general. Organización del sistema de ficheros.

8.1.2. Interfaz de usuario

Programas del sistema. Los shells. Flujos o streams.

8.1.3. Interfaz de programación

Llamadas al sistema. Ficheros. Gestión de procesos. Comunicación y sincronización entre procesos. Entrada/salida.

8.1.4. Arquitectura del sistema

El núcleo y sus módulos. Gestión de procesos y de memoria. Implementación del sistema de ficheros: nodos-i, ubicación de bloques de datos, montaje de sistemas de ficheros. Entrada/salida y manejadores de dispositivos.

8.2. Sistema operativo Windows NT

8.2.1. Generalidades

Historia de MS-DOS y Windows NT. Principios de diseño.

8.2.2. Arquitectura del sistema

El modelo cliente/servidor. Objetos del Windows NT. Multiprocesamiento simétrico. Subsistemas protegidos. El ejecutor.

8.2.3. Elementos del sistema

Los objetos en Windows NT. Tipos de objetos. Administración y protección de objetos. Gestión de procesos e hilos. Memoria virtual. Entrada/salida: manejadores estratificados. El núcleo. Ejemplos de subsistemas protegidos.


<< >> Título