Sistemas Operativos II

Programa

PARTE I

TEMA 1.- El Núcleo

1.1. Introducción

1.2. Requisitos Hardware

1.2.1. Mecanismo de Interrupciones

1.2.2. Protección de Memoria

1.2.3. Repertorio de Instrucciones Reservadas

1.2.4. Reloj de Tiempo Real

1.3. Núcleos Monolíticos y Micronúcleos (Microkernels)

1.4. Procesos

1.4.1. Representación de los Procesos

1.4.2. Estados de un Proceso

1.4.3. Planificación de Procesos

1.4.4. Procesos y Hebras

1.5. Comunicación y Sincronización entre procesos

1.5.1. Memoria compartida y Memoria distribuida

1.5.2. Semáforos

1.5.3. Paso de mensajes

1.6. Caso de Estudio: El Micronúcleo del Sistema Operativo Mach

TEMA 2.- El Interbloqueo

2.1. Introducción

2.2. Recursos

2.3. Condiciones para que se produzca Interbloqueo

2.4. Modelado del Interbloqueo

2.5. Métodos para el tratamiento del interbloqueo

2.6. Prevención del interbloqueo

2.6.1. Exclusión mutua

2.6.2. Retención y espera

2.6.3. No expropiación

2.6.4. Espera circular

2.7. Evitación del interbloqueo

2.7.1. Trayectorias de recursos

2.7.2. Estados seguros e inseguros

2.7.3. Algoritmo del banquero

2.7.4. Resumen

2.8. Detección del interbloqueo

2.8.1. Algoritmo de detección

2.8.2. Utilización de los algoritmos de detección

2.9. Recuperación del interbloqueo

2.9.1. Terminación de procesos

2.9.2. Expropiación de recursos

2.9.3. Resumen

2.10. Estrategia combinada para el manejo de interbloqueos

TEMA 3.- Sistemas de Ficheros

3.1. Introducción

3.2. Ficheros

3.2.1. Denominación de Ficheros

3.2.2. Estructura de un Fichero

3.2.3. Tipos de Ficheros

3.2.4. Métodos de Acceso

3.2.5. Atributos

3.2.6. Operaciones sobre Ficheros

3.3. Directorios

3.3.1. Sistemas con Directorios Jerárquicos

3.3.2. Ficheros Compartidos

3.3.3. Operaciones sobre Directorios

3.4. Implementación de Sistemas de Ficheros

3.4.1. Organización de un Sistema de Ficheros

3.4.2. Implementación de Ficheros

3.4.2.1. Asignación contigua

3.4.2.2. Lista encadenada

3.4.2.3. Lista encadenada mediante tabla de asignación

3.4.2.4. Nodos índice

3.4.3. Implementación de Directorios

3.4.3.1. Directorios en CP/M

3.4.3.2. Directorios en MS-DOS

3.4.3.3. Directorios en UNIX

3.4.4. Administración del Espacio en Disco

3.4.4.1. Tamaño de los Bloques

3.4.4.2. Gestión del Espacio Libre

3.5. Fiabilidad

3.6. Rendimiento de un Sistema de Ficheros

TEMA 4.- Seguridad y Protección

4.1 Introducción

4.2. Seguridad

4.2.1. Aspectos de Seguridad

4.2.2. Tipos de amenazas

4.2.3. Ataques genéricos a la seguridad

4.2.4. Principios de diseño para la seguridad

4.2.5. Autentificación de los usuarios

4.2.6. Amenazas de origen software

4.3. Protección

4.3.1. Dominios de Protección

4.3.2. Listas de Control de Acceso

4.3.3. Capacidades

4.4. Caso de Estudio: Windows NT

PARTE II

TEMA 5.- Introducción al Sistema Operativo UNIX

5.1. Introducción

5.1.1. Historia

5.1.2. Arbol genealógico de Unix

5.1.3. Principios de diseño

5.1.4. Estructura de UNIX

5.2. UNIX desde el punto de vista del usuario

5.2.1. Conexión y desconexión al sistema

5.2.2. El shell

5.2.2.1. Redirección de salida estándar

5.2.2.2. Redirección de entrada estándar

5.2.2.3. Cauces o tuberías (pipes)

5.2.2.4. Metacaracteres

5.2.2.5. El lenguaje del shell

5.3. Fundamentos de UNIX

5.3.1. Procesos

5.3.1.1. Comunicación entre Procesos

5.3.1.2. Señales

5.3.2. El sistema de ficheros

5.3.2.1. Seguridad y protección de ficheros

5.3.3. Entrada/Salida

5.3.4. Modelo de memoria

5.3.5. Llamadas al sistema

5.4. Ordenes de UNIX más comunes

5.4.1. Ordenes para el manejo de directorios

5.4.2. Ordenes para el manejo de ficheros

5.4.3. Ordenes para el control de procesos

5.4.4. Ordenes para seguridad y protección

5.4.5. Ordenes varias

TEMA 6.- Implementación de UNIX

6.1. Introducción

6.2. El Núcleo (Kernel) de UNIX

6.3. Gestión de Procesos

6.3.1. Estructuras de Control de Procesos

6.3.2. Contexto de un proceso

6.3.3. Estados de un proceso

6.3.4. Interrupciones

6.3.5. Planificación de procesos

6.4. Sistema de Ficheros

6.4.1. Estructura del Sistema de Ficheros

6.4.2. Nodos-i

6.4.3. Estructura de un fichero regular

6.4.4. Directorios

6.4.5. El Sistema de Ficheros de Berkeley

6.4.6. Tablas de control de acceso a ficheros

6.5. Gestión de Memoria

6.5.1. Intercambio (Swapping)

6.5.2. Paginación

6.6. Entrada/Salida

6.6.1. Gestión de los dispositivos de bloque

6.6.2. Gestión de los dispositivos de caracteres

6.7. Comunicación entre Procesos.

TEMA 7.- Programación en UNIX

7.1 Introducción

7.2. Gestión de Errores

7.3. Gestión de Ficheros Regulares

7.3.1. Apertura de un fichero: open()

7.3.2. Lectura de datos de un fichero: read()

7.3.3. Escritura de datos en un fichero: write()

7.3.4. Cierre de un fichero: close()

7.3.5. Acceso aleatorio: lseek()

7.3.6. Duplicación de un descriptor: dup()/dup2()

7.3.7. Información sobre un fichero: stat()

7.3.8. Modificación del modo de un fichero: chmod()

7.3.9. Creación de enlaces: link()

7.3.10. Borrado de un fichero: unlink()

7.3.11. Operaciones sobre descriptores de fichero: fcntl()

7.4. Gestión de Directorios

7.4.1. Creación de un directorio: mknod(), mkdir()

7.4.2. Borrado de un directorio: rmdir()

7.4.3. Apertura de un directorio: opendir()

7.4.4. Lectura de un directorio: readdir()

7.4.5. Cierre de un directorio: closedir()

7.4.6. Cotrol del puntero de lectura de un directorio: seekdir(), telldir(), rewinddir()

7.5. Gestión de Procesos

7.5.1. Creación de un proceso: fork()

7.5.2. Obtención de identificadores: getuid(), getgid(), ...

7.5.3. Finalización de un proceso: exit()

7.5.4. Espera de terminación de un hijo: wait()

7.5.5. Ejecución de programas: exec()

7.6. Señales

7.6.1. Envío de una señal: kill()

7.6.2. Tratamiento de una señal: signal()

7.7. Comunicación entre procesos

7.7.1. Creación de un pipe: pipe()

 

BIBLIOGRAFÍA

 

METODOLOGIA PEDAGOGICA

El desarrollo de la asignatura se basará en clases de pizarra, utilizando cuando sea necesario, elementos auxiliares como proyector de transparencias. Aquellos temas que lo requieran tendrán una componente práctica basada en la propuesta y resolución de problemas.

Para las clases prácticas que impliquen el uso de computadores, se utilizarán las aulas de laboratorio del Departamento. Las prácticas serán tutorizadas y habrá un guión para cada sesión de las mismas.

 

SISTEMA DE EVALUACION

Se hará una prueba escrita al final del cuatrimestre con cuestiones de tipo teórico y ejercicios prácticos. Para la calificación final del alumno se tendrá en cuenta el aprovechamiento de las clases de laboratorio, reflejado en una memoria de prácticas que este deberá confeccionar.