Sistemas Informáticos en Tiempo Real
CURSO 2010-2011
Evaluación Objetivos Programa Bibliografía Horario Tutorías
Software Documentación Prácticas Exámenes Links Minirobots
ASIGNATURA EN EXTINCIÓN
Profesor Responsable: Luis Miguel Jiménez García Otros Profesores: Departamento: INGENIERÍA DE SISTEMAS INDUSTRIALES Área de Conocimiento: Ingeniería de Sistemas y Automática Titulación: Ingeniería Industrial Curso: Segundo Docencia: 1er cuatr. Tipo: Obligatoria Créditos: 6,0 ( 3,0 T + 3,0 P)
- Superar todas las sesiones de laboratorio (obligatorias)
- Un examen Teórico (100% de la nota final).
- Trabajos de programación optativos (complementan hasta un 5% la nota final)- Durante el curso se realizarán exámenes tipo Test de auto-evaluación (Web UMH identificado de la asignatura)
- El examen consta de dos partes:- Un examen parcial tipo Test liberatorio: (Apto -> 5)
- Examen de desarrollo con cuestiones y problemas: evalúa los 5 puntos restantes (test aprobado), o la totalidad de la asignatura
- Describir la arquitectura básica de un Sistema Operativo en Tiempo Real, justificando su importancia en las aplicaciones de ingeniería.
- Emplear herramientas para el desarrollo aplicaciones de tiempo real (UNIX/POSIX).
- Describir y analizar los elementos que conforman un sistema distribuido, justificando su importancia en aplicaciones industriales.
- Desarrollar aplicaciones en las que se aprecie la necesidad de tiempo real. Programación de minirobots.
1. Introducción a los sistemas informáticos en tiempo real.
2. Arquitectura básica de un sistema operativo de tiempo real.2.1. Procesos y Threads.
2.2. Métodos de planificación.
2.3. Sincronización entre procesos
2.4. Recursos compartidos y bloqueos.
2.5. Utilización de relojes de tiempo real.3. Programación en un sistema operativo de tiempo real (UNIX/POSIX)
3.1. Introducción al sistema operativo UNIX.
3.2. Comunicación y sincronización entre procesos en UNIX.
3.3. Métodos de planificación en UNIX/POSIX.
3.4. Extensiones POSIX para tiempo real.
3.5. Señales POSIX.4. Sistemas distribuidos.
4.1. Introducción a los sistemas distribuidos.
4.2. Estudio de la familia de protocolos de comunicación TCP/IP.
4.3. Direccionamiento IP.
4.4. Protocolo IP.
4.5. Protocolos TCP/UDP.
4.6. Comunicación entre procesos distribuidos. Sockets.[Biblio] "Sistemas Informáticos de Tiempo Real", L.M. Jiménez, R. Puerto, O. Reinoso Sec. Public. UMH, 2000
[Biblio] "Sistemas de Tiempo Real y Lenguajes de Programación ", A.Burns, A. Wellings, Addison-Wesley, 1997
[Biblio] "Introducción a UNIX: un enfoque práctico", A. Afzal, Prentice-Hall, 1997
[Biblio] "UNIX Programación Práctica", Robbins, Prentice-Hall, 1997
[Biblio] "Pthreads Programming", B. Nichols, D. Buttlar, O'Reilly
[Biblio] "Unix : programación avanzada", Márquez, Francisco Madrid RA-MA 1996.
[Biblio] "Unix sistema V versión 4. Manual de referencia", Stephen Coffin, McGraw-Hill 1997
[Biblio] "TCP/IP en Unix programación de aplicaciones distribuidas", Alonso, José Miguel, Madrid Ra-ma D.L. 1998
[Biblio] "TCP/IP Illustrated Vol.1", W. Stevens, Addison-Wesley, 1994
[Biblio] "Redes de Computadoras", A. Tannenbaum, Prentice-Hall, 1997
[Biblio] "Mobile Robots: Inspiration to Implementation", J. Jones, A. Flynn, Ed. A.K. Peters, 1999
[Biblio] "Robotic explorations a hands-on introduction to engineering" Fred G. Martin, Upper Saddle River, NJ Prentice Hall, 2001
[Biblio] "El lenguaje de programación C", Kernighan, Ritchie. Prentice Hall (2ª ed.)
[Biblio] "Practical C Programming", S. Oualline, O’Reilly
[Biblio] "Practical C++ Programming", S. Oualline, O’Reilly
[Biblio] "C Manual de Referencia", H. Schildt, MacGraw Hill
- Prácticas UNIX
- Práctica 0: Manual del Software para las Prácticas de S.O. Unix
- Práctica 1: Introducción al Sistema Operativo UNIX
- Práctica 2: Creación y manejo básico de procesos Programas ejemplo (.c) zip
- Práctica 3: Sincronización de procesos:Semáforos (OPTATIVA)
- Práctica 4: Simulación del control de un depósito mediante threads. Fichero deposito.c
- Práctica 5: TCP/IP (1) , TCP/IP (2)
- Práctica 6: Programación Sockets ; Programas ejemplo (.c) cliente-servidor: zip
- Entrega Prácticas:
- Atom Editor (x64) : editor de texto para programación con edición remota SFTP (instalar paquete FTP-Remote-Edit). Versión x86
- Komodo Edit : editor de texto para programación con edición remota SFTP.
- Cliente Telnet Putty : permite conexiones seguras SSH
- Cliente SFTP Filezilla : permite conexiones FTP y SFTP (cifradas)
- PDF Creator : Permite convertir cualquier tipo de archivo a PDF. Crea una impresora virtual para imprimir el fichero a convertir.
- Monitor de Red WireShark : Manual WireShark , Manual TCPdump
- Socket Workbench : (versión demo)
- NMAP : herramienta para testear puertos y realizar conexiones TCP/UDP (Manual).
- iPerf : herramienta para medida de ancho de banda (Manual). Interfaz java para iperf Jperf (requiere una máquina virtual java instalada)
Programas MacOS X :
- XCode : compilador, editor y entorno de desarrollo para Mac. Disponible en el CD de instalación de MacOSX o en la pagina web de Apple. Es necesario para compilar los ejemplos en Mac y para instalar aplicaciones con MacPorts.
- Atom Editor (Intel) : editor de texto para programación con edición remota SFTP (instalar paquete FTP-Remote-Edit).
- Komodo Edit (Intel) : editor de texto para programación con edición remota SFTP.
- Cliente SSH iTerm : permite conexiones seguras SSH (localización de menús en español)
- Cliente SFTP Filezilla (Intel) : permite conexiones FTP y SFTP (cifradas).
- Monitor de Red WireShark (Intel) , Manual WireShark , Manual TCPdump .
- NMAP : herramienta para testear puertos y realizar conexiones TCP/UDP (Manual).
- iPerf : herramienta para medida de ancho de banda (Manual)
Programas Linux :
- Todas las distribuciones linux incorporan un gestor de paquetes para la instalación de programas, bien como una aplicación gráfica (synaptic, yast, ...) o en consola (apt, ipkg, rpm...) La mayoría de las distribuciones incluyen de serie las aplicaciones usadas en las prácticas (SSH), y siempre puedes encontrar versiones de los programas equivalentes en linux (Filezilla, Komodo Edit, NMAP, iperf) con la herramienta de búsqueda incluida en el gestor de paquetes.
Programas Java (Multiplataforma) :
- Simulador de Redes KIVA : Portal Web (simulador Java de redes de computadores). Si no dispones de la máquina virtual Java puedes descargarla aquí.
Transparencias:
- Procesos PDF file
- Threads : PDF file
- Conceptos de Planificación: PDF file
- Sincronización: PDF file
- Comunicación: PDF file
- POSIX I (procesos): PDF file
- POSIX II (threads): PDF file
- POSIX II (planificación): PDF file
- POSIX III (semáforos): PDF file
- POSIX III (mutex): PDF file
- Programas ejemplo Procesos/Semáforos (.c) zip
- Programas ejemplo Threads/Mutex (.c) zip
- Relojes de Tiempo Real: PDF file
- Relojes POSIX: PDF file
- Señales POSIX: PDF file
- Temporizadores POSIX: PDF file
- Test T1-T3 (incluye solución)
- Test T4-T9 (incluye solución)
- Test T10-T12 (incluye solución)
Curso Conv. Febrero Conv. Septiembre 98/99 Enunciado
SoluciónEnunciado
Solución99/00 Enunciado
Enunciado 00/01 Enunciado
SoluciónEnunciado
Solución01/02 Enunciado
SoluciónEnunciado 02/03 Enunciado
Enunciado 03/04 Enunciado
Enunciado 04/05 Enunciado Enunciado 05/06 Enunciado Enunciado 06/07 Enunciado Enunciado 07/08 Enunciado Enunciado 08/09 Enunciado Enunciado 09/10 Enunciado Enunciado
- Links a Distribuciones Linux , documentación y publicaciones sobre el mismo
- Introducción a Tiempo Real y RTLinux (Linuxfocus) (Lectura recomendable)
- Página de RT-Linux
ISA-UMH © Ingeniería de Sistemas y Automática