Sistemas Operativos

Tercer Curso, Licenciado en Física

Facultad de Ciencias, Universidad de Cantabria

1. Profesores
2. Programa
3. Apuntes
4. Ejercicios
5. Prácticas
6. Exámenes

1. Profesor

2. Programa

Bloque I: Principios de Sistemas Operativos

Tema 1. Principios básicos de los sistemas operativos

Concepto de sistema operativo. Evolución de los sistemas operativos. Estructura de los sistemas operativos. Concepto de programa y proceso. Concurrencia: gestión de procesos y threads. Ficheros y el sistema de ficheros. Gestión de memoria. Entrada/salida. Sistemas multiusuario y protección.

Tema 2. Concurrencia

Introducción a la programación concurrente. Creación e identificación de procesos. Ejecución de programas. Terminación de procesos y espera a la terminación. Threads: conceptos básicos. Creación e identificación de threads y manipulación de sus atributos. Terminación de threads.

Tema 3. Ficheros

Conceptos básicos. Gestión de ficheros. Lectura y escritura. Entrada/salida asíncrona. Entrada/salida sincronizada. Acceso al estado y características de ficheros. Funciones de gestión de directorios. Tuberías y ficheros especiales FIFO.

Tema 4. Sincronización y programación dirigida por eventos

Necesidad de la sincronización y principales métodos. Sincronización de acceso mutuamente exclusivo. Sincronización de espera mediante semáforos. Sincronización de espera mediante variables condicionales. Interbloqueos (deadlocks). Generación, bloqueo y aceptación de señales.

Tema 5. Planificación y despacho

Conceptos. Políticas de planificación. Interfaz para planificación de procesos. Esquemas de planificación mixta entre procesos y threads. Planificación en sistemas multiprocesadores. Interfaz para planificación de threads.

Tema 6. Sistemas de tiempo real y sistemas empotrados

Concepto de sistema de tiempo real. Concepto y características de sistemas empotrados. Políticas de planificación para tiempo real. Protocolos de sincronización de tiempo real. Análisis de sistemas de tiempo real. Relojes y temporizadores POSIX.

Tema 7. Gestión de memoria

Mecanismos de gestión de la memoria. Mecanismos de memoria virtual. Esquemas de gestión de memoria en aplicaciones de tiempo real. Mecanismos de memoria compartida.

Tema 8. Gestión de dispositivos de entrada-salida

Características de los dispositivos de entrada/salida. Entrada/salida por consulta. Entrada/salida por interrupciones. Entrada/salida por acceso directo a memoria. Organización de manejadores de dispositivos (drivers) de entrada/salida. Programación de manejadores de dispositivos de entrada/salida. Implementación de manejadores de dispositivos.

Bloque II. Programación orientada al sistema

Tema 9. Programación en Lenguaje C

Introducción al lenguaje C. Estructura de un programa . Tipos de datos y declaraciones de datos. Operadores y expresiones. Entrada/ salida simple. Instrucciones de control. Funciones y paso de parámetros. Modularidad. Tratamiento de errores.

Tema 10. Programación del intérpretes de órdenes

Introducción. Repaso de las principales órdenes del intérprete. Redirección de entrada y salida. Creación y ejecución de scripts. Paso de parámetros a un script. Instrucciones condicionales. Listas de instrucciones. Instrucciones de lazo.  Instrucción de lectura.

3. Apuntes

Para ver los apuntes en formato pdf pinchar sobre el enlace correspondiente:
Programa

Bloque I

Tema 1. Principios básicos de los sistemas operativos
Tema 2. Concurrencia
Tema 3. Ficheros
Tema 4. Sincronización y programación dirigida por eventos
Tema 5. Planificación y despacho
Tema 6. Sistemas de tiempo real y sistemas empotrados
Tema 7. Gestión de memoria
Tema 8. Gestión de dispositivos de entrada/salida

Bloque II

Tema 9.   Programación en Lenguaje C
Tema 10.
Programación del intérpretes de órdenes

4. Ejercicios

Ejercicios de Programación en Lenguaje C

Soluciones a los ejercicios (fichero comprimido zip)

5. Prácticas

Enunciados de las prácticas
Seminario de introducción al UNIX

6. Exámenes

2010
2009
2008
2007
2006