Saltar al contingut Menu
Mapa
  • Inicio
  • Información
  • Contacto
  • Mapa

Sistemas Operativos (SO)

Créditos Dept. Tipo Requisitos
9.0 (7.2 ECTS) AC
  • Obligatoria para la EI
  • Obligatoria para la ETIS
EC2 - Prerequisito para la EI , ETIS
PRED - Precorrequisito para la EI
PS - Precorrequisito para la ETIS

Profesores

Responsable:  (-)
Otros:(-)

Objectivos Generales

El estudiante debe conocer los servicios y las utilidades que ofrece un sistema operativo, así como la gestión de los recursos que proporcionan tales servicios. Esto incluye los siguientes conceptos: intérprete de comandos, llamada al sistema, seguridad, protección, biblioteca de sistema, biblioteca dinámica, proceso, multiproceso, tiempo compartido, concurrencia, exclusión mutua, thread, planificación de procesos, entrada/salida, canal, sistema de ficheros, gestor de dispositivos, comunicación entre procesos (pipes, eventos, semáforos), sockets, memoria compartida, memoria virtual, paginación, área de swap. Asimismo, el estudiante debe conocer las características básicas de las implementaciones de los conceptos anteriores en los sistemas Linux y Windows.

Objectivos Específicos

Conocimientos

  1. Conocer los servicios que ofrece un SO desde el punto de vista de un usuario, de un programador y de un administrador.
  2. Conocer y saber utilizar diferentes sistemas de interacción con el SO (comandos, scripts, bibliotecas, llamadas a sistema, ...) y conocer su implementación.
  3. Saber describir la necesidad de un sistema de ficheros y los servicios que ha de ofrecer. Conocer diferentes formas de implementación en sistemas actuales (particiones, fat, inodes, ntfs, raid)
  4. Saber qué operaciones ha de ofrecer un SO a un programador respecto a la entrada/salida. Ser capaz de describir los conceptos y necesidades de dispositivos, así como la gestión e implementación (parte dependiente e independiente, descriptores de dispositivos, ...)
  5. Conocer los conceptos de proceso, multiproceso, tiempo compartido, concurrencia y threads. Conocer los problemas que puede dar el uso de procesos y threads y maneras de solucionarlos. Saber gestionar procesos y threads. Saber describir cómo se implementan estos conceptos en sistemas actuales.
  6. Conocer y saber usar mecanismos de sincronización y comunicación entre procesos/threads, como por ejemplo pipes, named pipes, memoria compartida, semáforos, ...
  7. Saber describir y gestionar eventos y excepciones. Implementaciones.
  8. Saber describir los conceptos más básicos sobre la visión del SO de las redes de computadores. Saber usar mecanismos para la comunicación (sockets). Enlazar los conceptos de SO con los de redes.
  9. Conocer mecanismos de gestión de memoria que usan SO actuales, poder describir los conceptos de paginación, memoria virtual, swap, ...
  10. Saber describir los problemas básicos de seguridad y protección, y conocer mecanismos implementados en sistemas actuales.
  11. Tener unas nociones básicas sobre rendimiento y técnicas de optimización del sistema operativo.

Habilidades

(Información no introducida)

Competencias

(Información no introducida)

Contenidos

Horas estimadas de:

T P L Alt L Ext. Est O. Ext.
Teoria Problemas Laboratorio Otras actividades Laboratorio externo Estudio Otras horas fuera del horario fijado

1. Introducción
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 0 0 0 0 0 2,0
Descripción de la asignatura, metodología docente, etc...

2. Visión general de un S.O
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 0 0 0 0 4,0 0 10,0
Descripción de que ha de ofrecer un SO, con tal de que se tenga una visión de conjunto antes de profundizar en los temas posteriores.

3. Visión del programador
T      P      L      Alt    L Ext. Est    O. Ext. Total 
0 0 8,0 0 0 10,0 0 18,0
Se describirán las herramientas básicas que debe conocer un programador (o administrador), como por ejemplo shellscripts, comandos básicos, uso del man, compilador y herramientas como el make o el strace.



  • Laboratorio:
    Coger familiaridad con el entorno de programación.

4. Entrada/salida
T      P      L      Alt    L Ext. Est    O. Ext. Total 
10,0 0 2,0 0 0 8,0 0 20,0
Descripción de los mecanismos de entrada/salida, independencia de los dispositivos, tipos de dispositivos, uso, implementación.



  • Laboratorio:
    Familiarización con la e/s en Unix.

5. Sistema de ficheros
T      P      L      Alt    L Ext. Est    O. Ext. Total 
8,0 0 1,0 0 0 8,0 0 17,0
Directorios, protecciones, gestión del almacenamiento secundario, sistemas de ficheros en Linux/Unix y Windows.



  • Laboratorio:
    Conceptos básicos sobre el SF de linux.

6. Procesos
T      P      L      Alt    L Ext. Est    O. Ext. Total 
7,0 0 3,0 0 0 9,0 0 19,0
Ciclo de vida de un proceso, planificación, estructuras básicas para la implementación de procesos. Ejemplos: Unix, Linux, Windows 2k.

7. Comunicación entre procesos
T      P      L      Alt    L Ext. Est    O. Ext. Total 
5,0 0 4,0 0 0 9,0 0 18,0
Necesidad de comunicación y sincronización: pipes, signals, sockets.

8. Compartición de recursos
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 0 2,0 0 0 10,0 0 18,0
Memoria compartida, threads, procesos con recursos compartidos, sección crítica, mutex, semáforos, deadlock.

9. Gestión de memoria
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 0 0 0 0 6,0 0 12,0
Memoria virtual, apoyo del SO y del hardware, políticas y algoritmos.


Total por tipo T      P      L      Alt    L Ext. Est    O. Ext. Total 
50,0 0 20,0 0 0 64,0 0 134,0
Horas adicionales dedicadas a la evaluación 16,0
Total horas de trabajo para el estudiante 150,0

Metodología docente

La asignatura tiene 6 horas de clase a la semana. Cuatro de ellas serán de teoría y dos de problemas/laboratorio. Las clases de problemas/laboratorio se harán en aulas de laboratorio, de forma que el estudiante tenga un terminal a su disposición. En estas clases, el profesor explicará conceptos prácticos, mapeando los conceptos explicados en teoría sobre el sistema operativo en que se vaya a trabajar. Se harán ejercicios tanto en la pizarra como en los terminales. No hay una práctica asociada, sino ejercicios resueltos en el laboratorio.

En las primeras semanas de teoría se explicará el punto de vista de usuario/programador, que será el que se probará en el laboratorio. A partir de estas semanas, en las clases de teoría se explicarán ideas de implementación, como base de la asignatura PROSO.

Método de evaluación

La nota de la asignatura se calculará a partir de dos notas:

- nota de contenidos teóricos (peso 70%)

- la nota de laboratorio o contenidos prácticos (peso 30%)



Hace falta sacar un mínimo de un 3.5 en la nota de laboratorio. De lo contrario, la nota máxima de la asignatura será un 4.



La nota de contenidos prácticos se obtendrá como el máximo entre la nota de seguimiento de las sesiones de prácticas y la nota de un control que se hará en la última sesión de laboratorio.



La nota de contenidos teóricos se puede obtener por controles a lo largo del curso o bien en el examen final. A lo largo del curso se realizarán entre 2 y 4 (por decidir) controles teóricos. El alumno que supere la parte de contenidos teóricos por la vía de los controles quedará liberado, si quiere, del examen final.

Bibliografía básica

  • William Stallings Sistemas operativos : principios de diseño e interioridades, Prentice Hall, 2001.
  • Brian W. Kernighan, Rob Pike El Entorno de programación UNIX, Prentice-Hall, 1987.
  • Brian W. Kernighan, Rob Pike La Práctica de la programación, Pearson Educación, 2000.

Bibliografía complementaria

  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Operating system concepts, John Wiley & sons, 2005.
  • W. Richard Stevens, Stephen A. Rago Advanced programming in the UNIX environment, Addison-Wesley, 2005.

Enlaces web

(Información no introducida)

Capacidades previas

Concurrencia (deseable).
Estructuras de datos.
Ideas de entrada/salida.
Memoria virtual.
Correspondencia C- ensamblador.
Entorno Linux/C.


Compartir

 
logo FIB © Facultad de Informática de Barcelona - Contacto - RSS
Esta web utiliza cookies propias para ofrecerle una mejor experiencia y servicio. Si continúa la navegación, entendemos que acepta nuestra política de cookies. Versión clássica Versión móvil