CURSO 2005-06

 

CÓDIGO NOMBRE
Asignatura
1710015
SISTEMAS OPERATIVOS I
Subject
  OPERATING SYSTEMS I
Titulación
1710
INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN
Departamento
C137
LENGUAJES Y SISTEMAS INFORMATICOS
Curso
2
 

Créditos UCA
teóricos
3
prácticos
3
Créditos ECTS
5
Tipo
Troncal

 

Short Description

    
Profesores
Antonia Estero Botaro, antonia.estero@uca.es (Prof. coordinador)
Juan José Domínguez Jiménez, juanjose.dominguez@uca.es 
Eugenio Juárez Clavaín, eugenio.juarez@uca.es
José Antonio Ortega Pérez, joseantonio.ortega@uca.es
Manuel Palomo Duarte, manuel.palomo@uca.es
 
Objetivos
Conseguir que el alumno adquiera los conocimientos fundamentales sobre la
gestión de procesos y memoria en sistemas centralizados.
  
Dotar al alumno de los conocimientos necesarios para el manejo de un sistema
multiusuario como LINUX.

Para poder conseguir estos objetivos sería recomendable que el alumno
previamente haya cursado las asignaturas de Introducción a la programación,
Estructuras de Datos I y Estructura y Tecnología de Computadores.
 
Programa
Programa de Teoría  
  
Tema 1:Introducción a los sistemas operativos  (2 horas) 
1.1 ¿Qué es un sistema operativo?   
1.2 Evolución histórica de los sistemas operativos.   
    1.2.1 Los primeros sistemas.   
    1.2.2 Sistemas por lotes.   
    1.2.3 Sistemas por lotes multiprogramados.    
    1.2.4 Sistemas de tiempo compartido.   
1.3 Sistemas para computadores personales.   
1.4 Sistemas de tiempo real.   
1.5 Sistemas con más de un procesador.   
    1.5.1 Sistemas paralelos.   
    1.5.2 Sistemas en red y distribuidos.     
1.6 Mecanismos hardware de protección.   
   
Tema 2: Estructura y funciones de los sistemas operativos.  (3 horas) 
2.1 Funciones y componentes de los sistemas operativos.   
2.2 Solicitud de servicios.   
    2.2.1 Llamadas al sistema.   
    2.2.2 Paso de mensajes.   
2.3 Estructura de un sistema operativo.   
    2.3.1 Estructura simple o monolítica.   
    2.3.2 Estructura modular.   
    2.3.3 Máquinas virtuales.   
    2.3.4 Micronúcleo.   
2.4 El sistema operativo LINUX.    
   
   
Tema 3: Descripción y control de procesos.  (5 horas) 
3.1 ¿Qué es un proceso?   
3.2 Vida de un proceso.   
    3.2.1 Creación de un proceso.   
    3.2.2 Terminación de un proceso.   
    3.2.3 Estados de un proceso.   
3.3 Imagen de un proceso.   
    3.3.1 Bloque de control del proceso.   
3.4 Control de los procesos.   
3.5 Gestión de procesos.   
    3.5.1 Creación de procesos.   
    3.5.2 Cambio de proceso.           
3.6 Hilos de ejecución.   
3.7 Procesos en LINUX.   
   
Tema 4: Planificación  (4 horas) 
4.1 Introducción.   
4.2 Niveles de planificación.   
    4.2.1 Planificación a largo plazo.   
    4.2.2 Planificación a medio plazo.   
    4.3.3 Planificación a corto plazo.   
4.4 Algoritmos de planificación.   
    4.4.1 Primero en llegar, primero en ser servido.   
    4.4.2 El proceso más corto primero.   
    4.4.3 Tiempo restante más corto.   
    4.4.4 Tasa de respuesta más alta.             
    4.4.5 Asignación por turnos.   
    4.4.6 Prioridades.   
    4.4.7 Planificación en varios niveles.   
    4.4.8 Planificación en varios niveles con realimentación.   
4.5 Evaluación de algoritmos de planificación.   
    4.5.1 Criterios del planificador a corto plazo.   
    4.5.2 Evaluación analítica.   
    4.5.3 Simulación.   
    4.5.4 Implementación.   
4.6 Planificación en LINUX.   
   
Tema 5: Sincronización y comunicación  (7 horas) 
5.1 Introducción.   
5.2 Recursos.   
5.3 Interacción entre procesos.   
    5.3.1 Competencia.   
    5.3.2 Compartición.   
    5.3.3 Comunicación.   
5.4 Exclusión mutua.   
    5.4.1 Soluciones software.   
    5.4.2 Soluciones con ayuda del hardware.   
5.5 Semáforos.   
5.6 Monitores.   
5.7 Paso de mensajes.     
5.8 Mecanismos de concurrencia en LINUX.    
   
Tema 6: Interbloqueos  (3 horas) 
6.1 Introducción.   
6.2 Condiciones necesarias.   
6.3 Modelado del interbloqueo.   
6.4 Estrategias para tratar los interbloqueos.   
    6.4.1 Prevención.   
    6.4.2 Predicción.   
    6.4.3 Detección y recuperación.   
   
Tema7: Administración de la memoria  (4 horas) 
7.1 Jerarquía del almacenamiento.     
7.2 Traducción de direcciones.     
7.3 Funciones del administrador de la memoria.     
7.4 Esquemas de asignación de la memoria.   
7.5 Sistemas de monoprogramación.   
7.6 Sistemas de multiprogramación con particiones fijas.   
    7.6.1 Selección del tamaño de las particiones.   
    7.6.2 Algoritmos de colocación.   
    7.6.3 Elementos de control.             
    7.6.4 Protección.   
    7.6.5 Inconvenientes.   
7.7 Multiprogramación con particiones variables.   
    7.7.1 Compactación.   
    7.7.2 Algoritmos de colocación.   
    7.7.3 Elementos de control.   
7.8 El sistema compañero.   
   
Programa de Prácticas: Uso del sistema operativo LINUX.   
         
Práctica 1: Instalación del sistema operativo LINUX.   (1 sesión) 
Práctica 2: Configuración y manejo del entorno de trabajo.  (1 sesión) 
Práctica 3: El sistema de ficheros ext2.  (4 sesiones) 
Práctica 4: Permisos.  (3 sesiones) 
Práctica 5: Aspectos básicos del shell bash.  (2 sesiones) 
Práctica 6: Configuración del entorno del shell bash.  (1 sesión) 
Práctica 7: Filtros.  (2 sesiones) 

Cada sesión de prácticas es de 2 horas.
 
Actividades
Clases de teoría en aula: Se impartirán dos horas semanales de 
clases de teoría en aula.  
   
Clases prácticas: Para mejorar la comprensión de algunos temas de teoría se 
realizarán problemas que serán resueltos en el aula de teoría con la 
participación de los alumnos. Estas clases prácticas se realizarán a lo largo 
de todo el curso. 
   
Prácticas en aulas de informática: Se realizará una sesión semanal de dos 
horas de duración. 
   
Exámenes: Se realizarán los exámenes oficiales de la asignatura 
en las correspondientes convocatorias. Además de estos exámenes 
oficiales, se realizarán exámenes tipo test de forma periódica a lo 
largo del curso esto permitirá a los alumnos comprobar su grado de 
comprensión de la asignatura. Las notas de estos tests tendrán un 
peso en la nota final de la asignatura como se refleja en la sección 
evaluación. Estos tests se realizarán tanto de la parte teórica como de la parte
práctica del temario de la asignatura. 
 
Metodología
Teoría: Las clases constarán fundamentalmente de las 
explicaciones del profesor y, ocasionalmente, de resúmenes escritos 
o ampliaciones de temas específicos. Estas explicaciones podrán ser 
apoyadas por el uso de transparencias. Al finalizar cada tema se 
proporcionará a los alumnos una colección de ejercicios relacionados. 

Prácticas: Las prácticas se desarrollarán en aulas de ordenadores y tendrán 
carácter cerrado. Se proporcionará a los alumnos un manual sobre el contenido 
de las prácticas y relaciones de ejercicios. Las explicaciones del profesor se 
apoyarán en la utilización de medios audiovisuales. 
 
Criterios y sistemas de evaluación
Se realizarán exámenes independientes de la parte Teórica y Práctica 
de la asignatura. Para aprobarla, la nota obtenida en cada parte 
deberá ser igual o superior a cinco. En ese caso, la nota de la 
asignatura será la media de las obtenidas en cada parte. 
 
Tanto en Teoría como en Prácticas se realizarán periódicamente 
exámenes tipo test, cuya puntuación formará parte de la nota final 
obtenida en la asignatura. 
 
En el caso de que se apruebe una de las partes (Teoría o Práctica) en 
Febrero o Junio, se guardará la nota hasta la convocatoria de 
Septiembre.   
 
 
Durante el curso se propondrá la realización de trabajos por parte de 
los alumnos que así lo deseen. La realización de estos trabajos podrá 
suponer un aumento de la nota final, siempre que hayan aprobado los 
exámenes correspondientes. 
 
La nota tanto de la parte teórica como de la parte práctica de la asignatura 
tendrá 2 componentes: 
 
Nota = 0.2 (Nota tests) + 0.8 (Nota examen)} 
 
La nota de los tests realizados se obtendrá mediante la siguiente 
fórmula:
 
(10 / Nº preguntas) × (Aciertos - Errores/2) 
 
 
Recursos bibliográficos
Estero, A. & Domínguez, J.J. 
Sistemas Operativos. Conceptos fundamentales. 
Servicio de Publicaciones de la Universidad de Cádiz, 2002. 
 
Deitel, H.M.; Deitel, P.J. & Choffnes, D.R. 
Operating Systems, 3ª ed. 
Pearson, 2004. 
 
Stallings, W. 
Sistemas Operativos, 4ª ed. 
Prentice Hall, 2002. 
 
Silberschatz, A., Galvin, P. & Gagne, G.
Operting System Concepts with Java, 6º ed. 
John Wiley & Sons, Inc., 2004
 
Carretero, J.; García, F.; De Miguel, P. & Pérez, F. 
Sistemas Operativos. Una visión aplicada. 
McGraw Hill, 2001. 
 
Tanenbaum, A.S. 
Modern Operating Systems, 2ª ed. 
Prentice Hall, 2001. 
 
Bibliografía de Teoría de consulta 
 
Ben-Ari, M. 
Principles of Concurrent and Distributed Programming. 
Prentice Hall, 1990. 
 
Cornes, P. 
The Linux A-Z. 
Prentice Hall, 1997. 
 
 
Milenkovic, M. 
Sistemas Operativos. Conceptos y diseño. 2ª ed. 
McGraw Hill, 1994. 
 
Nutt, G.  
Sistemas Operativos, 3º ed. 
Addison Wesley, 2004. 
 
Editado por Purcell, J. & Robinson A. 
LINUX. The complete reference, 4ª ed. 
Linux Systems Lab, 1996. 
 
Rusling, D.A. 
The LINUX Kernel. 
http://www.linuxdoc.org/LDP/tlk/tlk.html 
 
Tanenbaum, A. S. & Woodhull A. S. 
Sistemas Operativos: Diseño e Implementación. 2ª ed. 
Prentice Hall Hispanoamericana, 1998. 
 
Bibliografía de Prácticas básica 
 
 
Domínguez, J.J. & Estero, A. 
Introducción al sistema operativo LINUX,2ª ed. 
Servicio de publicaciones del Dpto. de Lenguajes y Sistemas  
Informáticos, 2004. 
 
Cornes, P. 
The Linux A-Z. 
Prentice Hall, 1997. 
 
Bibliografía de Prácticas de consulta 
 
Andréasson T. & Skansholm, J. 
Getting Started with UNIX and X. 
Addison Wesley, 1993. 
 
Newham, C. & Rosenblatt, B. 
Learning the bash shell. 
O\\\'Reilly Assoc., 1995. 
 
Editado por Purcell, J. & Robinson A. 
LINUX. The complete reference, 4ª ed.} 
Linux Systems Lab, 1996. 
 
Wood, P.H. & Kochan, S.G. 
UNIX System Security. 
Hayden Books, 1990. 
 
 

 

El presente documento es propiedad de la Universidad de Cádiz y forma parte de su Sistema de Gestión de Calidad Docente.