UNIVERSIDAD DE LAS PALMAS DE GRAN CANARIA

 

Sistemas Operativos

ASIGNATURA: Sistemas Operativos.

TITULACIÓN: Ingeniería Informática, Ingeniería Técnica en Informática de Sistemas, e Ingeniería Técnica en Informática de Gestión.

CENTRO: Facultad de Informática.

CURSO: Segundo.

ORGANIZACIÓN: 1º Cuatrimestre.

CRÉDITOS: 4,5 totales (4.5 Teoría + 4.5 Práctica).

LINK: http://sopa.dis.ulpgc.es/ , http://sopa.dis.ulpgc.es/doc/guia2003.htm

Esta asignatura cubre plenamente la materia troncal de Sistemas Operativos, definida en las directrices para planes de estudios de esta forma: “organización, estructura y servicio de los sistemas operativos. Gestión y administración de memoria y de procesos. Gestión de entrada/salida. Sistemas de ficheros.”

La práctica de esta asignatura irá encaminada a consolidar los conocimientos teóricos impartidos en el aula, haciendo que el estudiante construya componentes de un sistema operativo. Para ello el estudiante tendrá que aprender a manejarse en un entorno de programación, en concreto C++ bajo UNIX (Linux). Gracias a esto, la parte práctica servirá también como adiestramiento en la programación de sistemas.

En suma, los objetivos docentes de Sistemas Operativos son:

  • Conceptos generales sobre sistemas operativos
  • estructura
  • funciones
  • diseño
  • Programación de sistemas
  • Operación y programación en entorno UNIX
  • Programación básica en lenguaje C++

PROGRAMA TEÓRICO:

1. Conceptos generales de sistemas operativos

1.1. Definición de sistema operativo.
1.2. Recorrido histórico. Tipos de sistemas.
1.3. Estructura de computadores y sistema operativo.
1.4. Estructura de un sistema operativo.

2. Procesos y concurrencia

2.1. Fundamentos de procesos y concurrencia.
2.2. Planificación de procesos.
2.3. Sincronización y comunicación.
2.4. Interbloqueo.

3. Entrada/salida

3.1. Manejadores de dispositivos.
3.2. Gestión de colas: spooling.

4. Memoria

4.1. Organización de la memoria.
4.2. Gestión de memoria contigua.
4.3. Segmentación y paginación.
4.4. Memoria virtual: paginación por demanda.

5. Archivos

5.1. Interfaz del sistema de archivos.
5.2. Implementación del sistema de archivos.

El texto de referencia para todas estas unidades es la obra Sistemas operativos. Conceptos fundamentales, de A. Silberschatz y P. Galvin [1]


PROGRAMA PRÁCTICO:

Práctica número 1
Descripción: Operación en entorno UNIX
Objetivos: Conseguir que el estudiante sea capaz de trabajar como usuario en un entorno UNIX-Linux: manejo de archivos, entorno de ventanas, editores, etc.
Material de Laboratorio recomendado: Por cada persona, un PC con Linux conectado a la red y que tenga instalados los paquetes de desarrollo en C/C++ y un entorno gráfico

Práctica número 2
Descripción: Programación en C++ bajo UNIX
Objetivos: Dar a conocer al estudiante el subconjunto de C++ que se va a emplear en los trabajos. Que el estudiante conozca y utilice las herramientas básicas para desarrollar en C/C++ bajo Linux:compilador, depurador, make, compilación en Emacs.
Material de Laboratorio recomendado: Por cada persona, un pecé con Linux conectado a la red y que tenga instalados los paquetes de desarrollo en C/C++ y un entorno gráfico

Práctica número 3
Descripción: Introducción al sistema operativo Nachos
Objetivos: Presentar la arquitectura del s.o. instruccional Nachos, así como las instrucciones básicas para instalarlo, explorarlo y modificarlo.
Material de Laboratorio recomendado: Por cada persona, un pecé con Linux conectado a la red y que tenga instalados los paquetes de desarrollo en C/C++ y un entorno gráfico

Práctica número 4
Descripción: Primer trabajo: hilos y concurrencia en Nachos
Objetivos: Implementar en Nachos herramientas de sincronización entre procesos. Adiestrarse en programación concurrente mediante la realización de ejercicios básicos.
Material de laboratorio recomendado: Por cada dos personas, un pecé con Linux conectado a la red y que tenga instalados los paquetes de desarrollo en C/C++ y un entorno gráfico.

Práctica número 5
Descripción: Segundo trabajo: llamadas al sistema y multiprogramación
Objetivos: Implementar llamadas al sistema de Nachos. Dar soporte a programas de usuario multiprogramados mediante tiempo compartido. Gestión de memoria elemental.
Material de laboratorio recomendado: Por cada dos personas, un pecé con Linux conectado a la red y que tenga instalados los paquetes de desarrollo en C/C++ y un entorno gráfico.

Práctica número 6
Descripción: Tercer trabajo: memoria virtual (opcional)
Objetivos: Incorporar memoria virtual al Nachos y evaluar el rendimiento de las políticas de reemplazo de páginas.
Material de laboratorio recomendado: Por cada dos personas, un pecé con Linux conectado a la red y que tenga instalados los paquetes de desarrollo en C/C++ y un entorno gráfico.

La asignatura se evaluará mediante ex­ámenes, el resultado de los trabajos prácticos y controles discrecionales en clase.

Los exámenes teóricos constituyen en 75% de la calificación final. Habrá un examen obligatorio de convocatoria (junio o septiembre, según lo dispuesto oficialmente). Además, a mitad del cuatrimestre se celebrará un examen parcial, optativo y no liberatorio. Este examen parcial está concebido como una preparación al examen definitivo y también para compensar malos resultados en el examen final.

Si se obtiene mayor nota en el parcial que en la convocatoria, el examen parcial supondrá un 25% de la nota final y el examen de convocatoria, un 50%. En otro caso, el examen de convocatoria representará el 75% de la nota final. Es decir, el examen parcial nunca perjudicará la nota final y sólo se tendrá en cuenta si beneficia al alumno. Además, la nota del examen parcial se tiene en cuenta tanto en junio como en septiembre. La nota del examen parcial se tiene en cuenta tanto en junio como en septiembre. El examen parcial no libera materia exigible y contendrá preguntas de los temas explicados hasta mitad del cuatrimestre. El examen obligatorio siempre abarcará todo el temario de la asignatura.

Los dos trabajos prácticos obligatorios serán evaluados y su calificación contribuirá en un 25% a la nota final de la asignatura. Cada trabajo representa el 12’5% de la nota final. Los integrantes de un grupo de prácticas habrán de completar con éxito los dos trabajos, como muy tarde una semana antes del examen de junio. El tercer trabajo, optativo, incrementará la nota hasta en un 10% adicional. Los trabajos prácticos superados tendrán validez en las convocatorias de junio, septiembre y en la de diciembre del siguiente curso. En las convocatorias extraordinarias no hay que presentar trabajos adicionales.

A lo largo del curso podrán realizarse controles escritos sobre alguna de las unidades teóricas de la asignatura. Estos controles serán a discreción del profesor, así que no tendrán fecha prefijada. Los controles se realizarán durante la hora de clase. La calificación obtenida en estos controles podrá incrementar hasta en un 10% la nota obtenida mediante exámenes y trabajos.

La calificación final resultará de aplicar los porcentajes antedichos a la nota obtenida en exámenes, trabajos prácticos y en su caso, a la evaluación continua. No obstante, para aprobar la asignatura habrá que obtener más del 50% de la nota máxima tanto en el examen como en de cada uno de los los trabajos obligatorios y de la media de los exámenes. La nota media de los exámenes se calcula de la siguiente forma: a)si la nota del final es mayor que la del parcial, coincide con la nota del final; b)en otro caso, es (P+2*F)/3, donde P es la nota del parcial y F es la nota del final. Si un alumno tiene una nota media superior a 5 pero no cumple los mínimos en exámenes o prácticas, figurará en las actas con una nota de 4’5.

1. Sistemas operativos. Quinta Edición. A.Silberschatz, P. Galvin. Addison-Wesley. 1999

2. Sistemas Operativos. Una visión aplicada. J. Carretero, P. de Miguel, F. García, F. Pérez. McGrawHill. 2001

3. El lenguaje de programación C++. B. Stroustrup. Addison-Wesley. 1998

4. Edición especial Linux 4ª edición. J. Tackett, S. Burnett. Prentice may. 2000

 

 

 

Programación de Sistemas

ASIGNATURA: Programación de Sistemas.

TITULACIÓN: Ingeniería Técnica en Informática de Sistemas, e Ingeniería Técnica en Informática de Gestión.

CENTRO: Facultad de Informática.

CURSO: Tercero.

ORGANIZACIÓN: Optativa.

CRÉDITOS: 6 totales (3 Teoría + 3 Práctica).

LINK: http://sopa.dis.ulpgc.es/ , http://sopa.dis.ulpgc.es/psis/

1. Introducción, Conceptos generales y Herramientas
2. Programación básica en UNIX
3. Procesos y Señales
4. Comunicación y Sincronización de procesos
5. Memoria
6. Entrada/salida avanzada
7. Manejadores de dispositivos

  • 2 horas teoría + 2 horas prácticas
  • Examen teórico = 50%
  • Dos trabajos prácticos (20% + 20%)
  • Un trabajo práctico optativo (15% adicional)
  • Hasta un 10% por evaluación contínua

  • Advanced programming in the UNIX environment, W. Richard Stevens
  • Unix. Programación Avanzada. Fco. Manuel Márquez
  • Programación Linux 2.0. Card, Dumas & Mével
  • Advanced UNIX programming, Marc J. Rochkind
  • Programación en Linux al descubierto. Kurt Wall

 

ASIGNATURA: Administración de Sistemas Operativos.

TITULACIÓN: Ingeniería Técnica en Informática de Sistemas, e Ingeniería Técnica en Informática de Gestión.

CENTRO: Facultad de Informática.

CURSO: Tercero.

ORGANIZACIÓN: Optativa.

CRÉDITOS: 4,5 totales (3 Teoría + 1.5 Práctica).

LINK: http://sopa.dis.ulpgc.es/ , http://sopa.dis.ulpgc.es/aso-itis/aso-2002-guia.PDF

Pretendemos que los alumnos y alumnas que cursen esta asignatura adquieran los conocimientos básicos y dominen las técnicas fundamentales de la Administración de los Sistemas Operativos. Concretamente:

  • Mantenimiento del sistema. En esta faceta se contemplan todas aquellas acciones encaminadas a mantener al Sistema Operativo al día de acuerdo con los cambios y nuevas necesidades que se producen en los
    entornos operativos.
  • Control del uso de los recursos (contabilidad del sistema). Este apartado de la administración abarca a todas aquellas acciones que nos permiten conocer cómo, cuando y en qué medida los recursos son utilizados por los usuarios. Esta información es vital a la hora de definir políticas de uso y nuevos requerimiento de recursos en el sistema.
  • Dominio de los parámetros que influyen en el rendimiento del sistema. Mediante el conocimiento de éstos y cómo repercuten en el sistema se estará en condiciones de optimizar el funcionamiento del Sistema Operativo en base a especificaciones de funcionamiento.

Tema 1: la figura del administrador del sistema opertivo

1.1 El administrador del sistema y sus privilegios
1.2 Tareas básicas del administrador
1.3 Relación entre el administrador y los usuarios del sistema
Bibliografía Básica: FRI-95, MEM-89 y CAR-00
Bibliografía complementaria: TAC-00

Tema 2: herramientas básicas para la administración del sistema operativo

2.1 La documentación
2.1.1 Los distintos tipos de manuales
2.1.2 Epígrafes específicos para la administración del sistema operativo
2.1.3 Los distintos soportes de distribución
2.2 Utilidades especiales para el administrador
2.2 .1 Órdenes generales de uso frecuente
2.2.2 Órdenes específicas para la administración del sistema operativo
2.2.3 Utilidades específicas para la administración del sistema operativo
2.3 Lenguajes de control de órdenes
2.3.1 Características generales
2.3.2 Tipos de datos utilizados
2.3.3 sentencias de control
2.4. Instalación de aplicaciones
2.4.1. Disciplina
2.4.2. Utilidades
Horas de teoría estimadas: 3.5
Horas de prácticas estimadas: 4
Bibliografía básica: : FRI-95, MEM-89 y OLC-99
Bibliografía complementaria: TAC-00

Tema 3: usuarios y seguridad del sistema

3.1 Usuarios y grupos
3.1.1. Tipos de usuarios
3.1.2 Atributos que definen el perfil de un usuario
3.1.3 Mantenimiento de los usuarios del sistema
3.1.4 Organización lógica de usuarios: grupos de usuarios
3.2 Integridad: seguridad física
3.2.1 Aspectos ambientales y políticos.
3.2.2 Requerimientos: dispositivos y utilidades comúnmente empleadas.
3.2.2 Técnicas y políticas para el salvaguardado de la información.
3.3 Protección: seguridad lógica
3.3.1 El problema de la seguridad lógica
3.3.2 Los puntos débiles de los sistemas
3.3.3 Recomendaciones para evitar a los intrusos
3.3.4 Procedimientos para la detección de intrusos
Horas estimadas: 2
Horas de prácticas estimadas: 6
Bibliografía básica: FRI-95, MEM-89 y CAR-00
Bibliografía complementaria: TAC-00

Tema 4: administración de recursos

4.1 Discos
4.1.1 Organización lógica de los discos
4.1.2 Operaciones: formateo y particionado
4.2 Sistema de ficheros
4.2.1 Visión del usuario
4.2.2 Visión del sistema: Organización y tipos de sistemas de ficheros
4.2.3 Operaciones: creación, tipos y control de accesos
4.2.4 Establecimiento de cuotas
4.2.5 Control de la integridad de los sistemas de ficheros
4.3 Impresoras y colas de impresión
4.3.1 Visión general del subsistema de impresión: spool de impresión
4.3.2 Configuración del subsistema de impresión
4.3.3 Control del subsistema de impresión
4.4 Servicios de red
4.4.1 Directrices de configuración de una red
4.4.3 Configuración de una red TCP/IP
4.4.4 Servicios de red: FTP, TELNET, NFS y correo electrónico
4.5 Terminales y modems
4.5.1 Aspectos hardware de terminales: tipos y señales de control
4.5.2 Configuración local de terminales
4.5.3 Instalación de terminales en el sistema
4.5.4 Instalación de modems en el sistema
4.5.5 Accesos remotos
Horas de teoría estimadas: 6
Horas de prácticas estimadas: 12
Bibliografía básica: FRI-95, MEM-89 y CAR-00
Bibliografía complementaria: TAC-00 y BAC-86

Tema 5: rendimiento y afinamiento del sistema

5.1 Objetivos del afinamiento del sistema
5.2 Monitorización del sistema
5.2.1 Criterios de rendimiento
5.2.2 Herramientas para la monitorización
5.3 Control de la carga de trabajo
5.4 Rendimiento y afinamiento del sistema de discos
5.5 Rendimiento y afinamiento del sistema de ficheros
5.6 Rendimiento y afinamiento del manejo de memoria
5.7 Rendimiento y afinamiento del sistema de comunicaciones
Horas de teoría estimadas: 1
Horas de prácticas estimadas: 4
Bibliografía básica: FRI-95, MEM-89 y CAR-00
Bibliografía complementaria: LOU-92 TAC-00 y BAC-86

Tema 6: sistema de contabilidad de recursos

6.1 Objetivos de la contabilidad del sistema
6.2 Requerimientos
6.4 Recursos típicos contabilizados
6.4.1 Uso de la CPU
6.4.2 Uso de disco
6.4.3 Uso de impresoras
6.4.4 Sesiones
Horas de teoría estimadas: 2
Horas de prácticas estimadas: 4
Bibliografía básica: FRI-95, MEM-89 y CAR-00
Bibliografía complementaria: TAC-00 y BAC-86

Debido a la naturaleza de la asignatura la evaluación se realizará de forma continuada, consistiendo en ejercicios prácticos que el alumno individualmente deberá resolver en el laboratorio en presencia del profesor, concretamente:

  • El alumno deberá superar unos ejercicios prácticos de evaluación cuyos contenidos coincidirán con los impartidos en las actividades prácticas, por tanto habrán entre 2 o 3 ejercicios de evaluación dependiendo de la evolución del curso. Cada ejercicio puntuará de 0 a 10 puntos. Para superar cada uno de estos ejercicios el alumno dispondrá de dos oportunidades. Para realizar los ejercicios en primera oportunidad cada
    alumno dispondrá de un calendario fechas que se comunicará con antelación. Para realizar los ejercicios en segunda oportunidad se dispondrá de un segundo calendario de fechas que también se comunicarán con antelación.
  • Para aprobar la asignatura se deberá obtener al menos una puntuación de 5 en cada uno de los ejercicios de evaluación. Aquellos alumnos que tuvieran al menos un ejercicio de evaluación suspendido, menos de 5 puntos en la calificación, podrán acudir a las convocatorias oficiales para optar a aprobarlos, estos ejercicios de evaluación serán del mismo tipo que los realizados durante el curso, o sea de tipo práctico. Sólo se tendrán que examinar de aquellos contenidos no aprobados, guardándose las notas de los ejercicios en todas las convocatorias oficiales de un curso académico.
  • La nota final será la resultante de la media aritmética de las notas obtenidas en cada uno de los ejercicios de evaluación.

Bibliografía principal
[FRI-95] “Essential System Administration”, Frisch A., O´Reilly & Associates, Inc.
[NEM-95] "UNIX System Administration Handbook" (2ª ed.), Nemeth E., Snyder G., Seebass S. And Hein T., Prentice Hall.
[CAR-00] “Administración de Sistemas Linux”, Carling M., Degler S. Y Dennis J., Prentice Hall
[OLC-92] "The Korn Shell. User & Programming Manual", Olczak A., Addison-Wesley.

Bibliografía complementaria
[TACK-00] “Utilizando LINUX” (2ª edi.), Tackett J. y Gunter D., Prentice Hall.
[BAC-86] "The Design of the UNIX operating system", Bach M.J., Prentice-Hall International Editions.
[LOU-92] "System Perfrmance Tuning", Loukides M., O´Relly & Associates, Inc.

 

 

Ampliación de Sistemas Operativos

ASIGNATURA: Ampliación de Sistemas Operativos.

TITULACIÓN: Ingeniería Informática

CENTRO: Facultad de Informática.

CURSO: Quinto.

ORGANIZACIÓN: Optativa.

CRÉDITOS: 4,5 totales (3 Teoría + 1.5 Práctica).

LINK: http://sopa.dis.ulpgc.es/ , http://sopa.dis.ulpgc.es/ii-aso/portal_aso/index.htm

Estudio de las nuevas tecnologías en las que se basan los sistemas operativos actuales. Comprender cómo trabajan estos sistemas y como lo hacen. Analizar los algoritmos estructuras de datos y código que conforman estos nuevos sistemas operativos. Estudio de primitivas de comunicación en sistemas operativos distribuidos.

La concreción de estos objetivos se basa en el estudio del sistema operativo actual LINUX, por su fácil disponibilidad, gratuidad y su uso cada vez mayor en los sistemas informáticos servidores de información y en los sistemas distribuidos.

TEMA 1. Introducción

1.1 Historia de Linux

1.2 Conceptos generales

1.3 La licencia pública GNU

TEMA 2. Arquitectura del núcleo

2.1 Características de diseño del núcleo

2.2 Visión general de la arquitectura del núcleo

2.3 Estudio detallado de la arquitectura

2.4 Estructura de directorios

TEMA 3. Arranque del sistema e inicialización

3.1 Encendido del Computador

3.2 Carga del sistema e inicialización

3.3 El programa INIT

TEMA 4. Sistema de interrupciones

4.1 Interrupciones en Linux

4.2 Interrupciones Hardware

4.3 Interrupciones por llamadas al sistema

TEMA 5. Gestión de procesos e hilos

5.1 Conceptos generales sobre procesos e hilos

5.2 Representación de los procesos en el núcleo

5.3 Generación de procesos Fork, Clone

5.4 Ejecución de una imagen Exec

5.5 Terminación de un proceso Exit

5.6 La llamada wait

TEMA 6. Manejo de Memoria

6.1 La memoria virtual en Linux

6.2 La Unidad de Manejo de Memoria

6.3 Paginación y Tabla de Páginas

6.4 Segmentación

TEMA 7. Sistema de Ficheros

7.1 El sistema de ficheros en Linux

7.2 La estructura superbloque

7.3 La estructura inode

7.4 Estructura de directorios

7.5 Sistema de Ficheros Virtual

7.6 Montar un sistema de ficheros

7.7 El bufer cache

7.8 Ficheros asociados a dispositivos

TEMA 8. Comunicación entre procesos

8.1 Conceptos generales de comunicación

8.2 Señales

8.3 Mensajes

8.4 Semáforos

8.5 Memoria compartida

  • [BEK-97] Linux Kernel Internals. Michael Beck. Addison Wesley, 1997.
  • [CAN-03] Anatomía del núcleo de Linux 2.4. Santiago Candela, Rubén García, Gabino Padrón. Universidad de Las Palmas de Gran Canaria, 2003
  • [CAR-97] Programación Linux 2.0 API del Sistema y Funcionamiento del Núcleo. Rémy Card, Eric Dumas, Franck Mevel. Gestion 2000 D.L., 1997

 

Ampliación de Sistemas Operativos

ASIGNATURA: Diseño de Sistemas Operativos.

TITULACIÓN: Ingeniería Informática

CENTRO: Facultad de Informática.

CURSO: Cuarto.

ORGANIZACIÓN: 2º Cuatrimestre.

CRÉDITOS: 6 totales (3 Teoría + 3 Práctica).

LINK: http://sopa.dis.ulpgc.es/ , http://sopa.dis.ulpgc.es/ii-dso/

Nos planteamos una estrategia para una ampliación de sistemas operativos, consistente en el estudio y desarrollo de varios temas, que por su integridad, e independencia los podemos construir en módulos separados, que aunque interrelacionados entre sí, cada uno tiene una temática propia que conforma un todo con su propia identidad.

El módulo Diseño del Núcleo de un Sistema Operativo está basado en el estudio del Sistema Operativo "LINUX" desarrollado por Linus Torvalds.

La disponibilidad de los programas fuentes de este S.O. Así como libros y documentación en Internet, proporcionan una buena herramienta pedagógica para cubrir los objetivos de este módulo, permitiendo el análisis, síntesis, desarrollo y prueba de nuevos módulos que conforman parte de un S.O.

Los principales objetivos didácticos que se tratan en este curso de Diseño de Sistemas Operativos, tratan con: Afianzar los conceptos básicos estudiados en asignaturas anteriores de sistemas operativos. Planteamiento y resolución de problemas prácticos derivados de una implementación real, utilizando las llamadas y librerías del sistema. Diseño e implementación de utilidades del sistema. Estudio de temas relacionados con los últimos avances en sistemas operativos. Presentamos un desglose de objetivos por temas según programa:


TEMA 1: INTRODUCCIÓN AL LINUX

El primer capítulo, introduce la información básica para que un usuario pueda utilizar LINUX, realizándose una descripción de la arquitectura y estructura del núcleo. También se describe la utilización de llamadas al sistema.

TEMA 2: ARRANQUE E INICIALIZACIÓN DEL NÚCLEO

Los objetivos del segundo capítulo tratan de la comprensión de todos los pasos que ocurren desde que se enciende el computador, hasta que este presenta el simbolo del procesador de comandos. Analizar y estudiar el programa de inicialización INIT.

TEMA 3: INTERRUPCIONES

Los objetivos de este capitulo tratan de afianzar el concepto de interrupción y los pasos que ejecuta el núcleo cuando se realiza una interupción. Se estudia como implementa Linux el sistema de interrupciones, se analizan las estructuras de datos y procedimientos que permiten gestionar y atender las interrupociones hardware. Se estudia el mecanismo de interrupción software de las llamadas al sistema, sus pasos, estructuras y procedimientos. Finalmente se estudia el sitema de señales, las estructuras y los procedimientos que gestiónan el envio y recepción de señales.

TEMA 4: LLAMADAS AL SISTEMA

El tercer capítulo está relacionado con las llamadas al sistema, que están soportadas por LINUX, haciéndose un estudio funcional de cada una de ellas y agrupándolas según su aplicación a procesos, señales, manejo de ficheros, relativas a directorios, protección y manejo de tiempos.

TEMA 5: PROCESOS

El siguiente conjunto de capítulos trata sobre los bloques fundamentales que conforman un S.O. comenzando con el bloque que estudia los procesos. En él se hace un repaso a los conceptos sobre procesos, su estructura interna, pasándose a continuación a estudiar su realización. Se analizan las estructuras de datos para el manejo de procesos. Se estudia la implementación de estructuras y procedimientos para la gestión de CPU. Se estudian llamadas al sistema que están relacionadas con la creación de procesos FORK y CLONE, con la ejecución de la imagen de un programa EXEC, la terminación de un proceso EXIT y la espera por un proceso WAIT.

TEMA 6: MEMORIA

En el siguiente capítulo sobre memoria, se trata de estudiar las estructuras y procedimientos que asignan memoria virtual a un proceso, se analiza la técnica de paginación las estructuras de tablas de páginas y los procedimientos que las manejan, se estudian los procedimientos que permiten tratar el disco como una prolongación de la memoria SWAP. Se analizan las llamadas que permiten proyectar un fichero de disco en memoria, MMAP. Se termina estudiando llamdas relacionadas con el manejo de memoria como BRK.

TEMA 7: ARCHIVOS

Este capítulo versa sobre ficheros donde se estudia el sistema de ficheros virtual implementado por Linux, con sus estructuras de datos principales, el bloque cache, el superbloque, el inodo, y la estructura de directorio. Se estudia uno de los sistemas de ficheros reales que soporta, la segunda parte de este capítulo está relacionada con la implementación de las operaciones sobre ficheros, CREAT, MAKENOD, OPEN, CLOSE READ, WRITE y SEEK, el manejo de directorios y la implementación de las llamadas PIPE, MOUNT, UMOUNT, así como otras llamadas como CHDIR, CHROOT, STAT y FSTAT.

TEMA 8: COMUNICACIÓN ENTRE PROCESOS

Los objetivos de este capitulo tratan de estudiar las primitivas de comunicación entre procesos PIC. Se estudian los mecanismo de mensajes, semaforos y memoria compartida, con las estructuras de datos y procedimientos que los implementan.

TEMA 9: AVANCES EN SISTEMAS OPERATIVOS

Este capítulo trata de introducir al alumno, en aquellos tópicos que son novedosos en S.O., para ello se selección articulos y temas sobre sistemas operativos, aparecidos en revistas, que por su actualidad y novedad son de interes para el alumno.

[RUB-92] Linus Device Drivers. Alesandro Rubini. O'Reilly Associates INC, 1992

[BAC-86] The Desing of the UNIX Operating System. Bach. Prentice Hall, 1986

[MAR-96] UNIX Programación Avanzada. Francisco Manuel Márquez. Ra-ma

[GRO-86] File Systems Design and Implementation. Grosshans. Prentice Hall, 1986

[BEK-97] Linux Kernel Internals. Michael Beck. Addison Wesley, 1997

[PET-85] Operating System Concepts. 2Nd ed. Peterson and Silberschatz. Addison Wesley, 1985

[CAR-97] Linux 2.0 API Sistema y Funcionamiento del Núcleo. Rémy Card, Eric Dumas, Franck Mével. Ediciones Gestión 2000, 1998

[MAX-99] Linux Core Kernel Commentary. Scott Maxwell. Coriolis Open Press, 1999

[TAN-98] Sistemas Operativos. Diseño e implementación 2º edición. Tanembaun. Prentice-Hall, 1997

[TAN-96] Sistemas Operativos Distribuidos. Tanembaun, Prentice-Hall, 1996

[TIS-96] PC Interno. Tischer M., Jennrich B. Editorial Marcombo Data Beker, 1996

[CAN-03] Anatomia de LINUX 2.4. Candela S, Garcia C, Padrón G. Universidad de Las Palmas de Gran Canaria, 2003

[MOS-02] IA-64 Linux Kernel Design and implementation. David Mosberger, Stéfphane Eranian. Prentice Hall PTR, 2002

UNIVERSIDAD DE LA LAGUNA

Sistemas Operativos I(ITIS/ITIG)

ASIGNATURA: Sistemas Operativos.

TITULACIÓN: Ingeniería Técnica en Informática de Sistemas,  Ingeniería Técnica en Informática de Gestión.

CENTRO: Centro Superior de Informática de La Laguna.

CURSO: Segundo.

ORGANIZACIÓN: 1º Cuatrimestre.Troncal

CRÉDITOS: 7,5 totales

LINK: http://www.csi.ull.es/asignas/info.php3?ID=182

 

Sistemas Operativos Avanzados (ITIS/ITIG)

ASIGNATURA: Sistemas Operativos Avanzados.

TITULACIÓN: Ingeniería Técnica en Informática de Sistemas,  Ingeniería Técnica en Informática de Gestión.

CENTRO: Centro Superior de Informática.

CURSO:Tercero.

ORGANIZACIÓN: 1º Cuatrimestre.Optativa.

CRÉDITOS: 6 totales

LINK: http://www.csi.ull.es/asignas/info.php3?ID=200

   

Diseño de Sistemas Operativos(ITIS/ITIG)

ASIGNATURA: Diseño de Sistemas Operativos.

TITULACIÓN: Ingeniería  Técnica en Informática de Sistemas, Ingenieria Ténica en Informática de Gestión.

CENTRO: Centro Superior de Informática de La Laguna.

CURSO: Cuarto.

ORGANIZACIÓN: 2º Cuatrimestre.Optativa.

CRÉDITOS: 7.5 créditos

LINK: http://www.csi.ull.es/asignas/info.php3?ID=82 , http://cabrilla.lct.ull.es/

Estudio de la estructura interna de un sistema operativo. Caso de estudio: UNIX

 

PARTE 0:INTRODUCCIÓN
CAPITULO 1: Repaso general del sistema operativo UNIX.
- Historia del Sistema Operativo Unix.
- Estructura del UNIX
- Introducción al kernel.
PARTE I: SUBSISTEMA DE FICHEROS
CAPITULO 2: El buffer cache.
- Estructura del buffer.
- Recuperación de datos del buffer.
- Lectura y escritura de bloques del disco.
- Ventajas e inconvenientes del buffer cache.
CAPITULO 3: Representación de ficheros
- Introducción al subsistema de ficheros.
- Estructura de datos independiente del subsistema de ficheros. Inodos
- Capa dependiente del subsistema de ficheros.
- Gestión de inodos en memoria.
- Implementación de sistema de ficheros: s5fs, ext2fs.

CAPITULO 4: Llamadas al sistema relacionadas con el subsistema de ficheros.
- Llamadas al sistema para la manipulación de ficheros: open, read, write, close, lseek.
- Creación de ficheros y ficheros especiales.
- Cambio de propietario y cambio de permisos de un fichero.
- Llamada stat y fstat.
- Mecanismo de comunicación simple: pipes
- Duplicado de ficheros.
CAPITULO 5: Controladores de dispositivos
- Interfaces de controladores de dispositivos
- Dispositivos de bloque
- Dispositivos carácter
PARTE II: SUBSISTEMA DE PROCESOS.
CAPITULO 6: Estructura de procesos.
- Programas y procesos
- Estados de procesos y transiciones.
- Estructuras para la gestión de procesos.
- Subsistema de gestión de memoria.
- Imagen de un proceso en el espacio de kernel.
- El contexto de un proceso.
- Situaciones en la que se modifica el contexto de un proceso
- Operaciones que se realizan sobre el espacio de direcciones de un proceso.
- Algoritmos sleep-wakeup.
CAPITULO 7: Control de procesos.
- Creación de procesos.
- Señales.
- Finalización de procesos: algoritmo exit.
- Esperando la finalización de procesos: algoritmo wait.
- Ejecución de otros programas: llamada exec.
- Identificación de procesos
CAPITULO 8: Planificación de procesos.
- Política de planificación. Colas multinivel.
- Planificación de grupos de procesos
CAPITULO 9: Políticas de administración de memoria.
- Política de swapping.
- Política de demanda de páginas.
- Robo de páginas.
CAPITULO 10: Comunicación entre procesos
- Traza de procesos.
- Facilidades IPC del System V.
a) Sockets.
PARTE III: SISTEMAS OPERATIVOS DISTRIBUIDOS.
CAPITULO 11: Introducción a los sistemas operativos distribuidos
- Comunicación en los sistemas operativos distribuidos
- Sincronización
- Gestión de procesos.


Tutorías:

El horario de tutorías es el siguiente: Lunes de 09:00 a 11:00, martes de 11:00 a 13:00

Evaluación:
La evaluación final estará determinada por la media ponderada de la evaluación del ejercicio teórico y de la presentación de las prácticas. Es necesario superar con más de un 5 cada una de las partes para realizar la media. La evaluación se desglosa de la siguiente manera.



Ejercicio teórico:
a) Convocatoria de Junio
El ejercicio consistirá en una serie de preguntas y cuestiones que cubran las partes 0, 2 y 3 del temario así como el capítulo 3 de la parte 1. Representa el 50% de la calificación general.
b) Restantes convocatorias:
El ejercicio consistirá a su vez de dos partes:
1. Ejercicio de las mismas características que en la convocatoria de junio. Representa el 50% de la calificación final.
2. Ejercicio que cubran los restantes capítulos de la parte 1 del temario. Representa el 15% de la calificación final.

Ejercicio práctico:
Consistirá en la entrega de las prácticas.
a) Convocatoria de Junio
Representa el 50% de la calificación general.
b) Restantes convocatorias:
Representa el 35% de la calificación general.

Prácticas

Consistirán en la realización de una serie de programas bajo UNIX/Linux que cubran los siguientes contenidos de la asignatura:

1. Introducción a la programación con llamadas al sistema.
2. Implementación del buffer cache.
3. Desarrollo de un intérprete de comandos (Shell).
4. Desarrollo de aplicaciones cliente/servidor usando llamadas al sistema.

Las prácticas se realizarán en la sala B del centro de cálculo. El horario reservado para estas prácticas es el siguiente:

Día Hora Lugar Grupo
Lunes 11:00-13:00 Sala B A
Martes 9:00-11:00 Sala B B
Miercoles 11:00-13:00 Sala B C


La asistencia a las prácticas no es obligatoria.

La entrega de las prácticas consistirá en la presentación de las mismas al profesor. Además, las prácticas 2 y 3 deberán llevar acompañadas un informe donde se describan los detalles más importantes de la implementación de las mismas. La fecha límite para la presentación será el día anterior a la fecha del primer llamamiento de la correspondiente convocatoria. Será necesario la solicitud de cita previa para la corrección. Ninguna práctica será tenida en cuenta con posterioridad a esa fecha para la presente convocatoria.

Se guardarán las notas de prácticas durante un curso. Transcurrido éste, la no superación de la asignatura, implica la repetición de las prácticas.

Bibliografía

- Maurice J. Bach: "The design of the Unix Operating System". Ed. Prentice Hall International.
- Prabhat K. Andleigh: "Unix System Architecture". Ed. Prentice Hall.
- Steve D. Pate: "UNIX Internals. A Practical Approach". Ed. Addison-Wesley.
- M. Beck, H. Böhme, M. Dziadzka, U. Kunitz, R. Magnus, D. Verworner: "Linux Kernel Internals". Ed. Addison-Wesley.
- A. S. Tanenbaum: “Sistemas operativos distribuidos”. Ed. Prentice Hall
- Leffler, McKusick, Karels, Quarterman. "The Design and Implementation of the 4.3 BSD UNIX Operating System. Ed. Addison-Wesley.
- Fco. Manuel Márquez: "UNIX Programación Avanzada". Ed. rama
- Keith Haviland, Ben Salama: "Unix System Programming". Ed. Addison-Wesley.