PSP01.- Programación multiproceso.

Icono de iDevice Orientaciones para el alumnado
En esta unidad, la primera de este módulo, enlazaremos los conocimientos que adquirimos sobre el funcionamiento de los sistemas informáticos en el módulo profesional "Sistema Informáticos"; en particular: la gestión de procesos por parte del sistema operativo. Para introducirnos en la comunicación entre aplicaciones, comenzaremos en este tema, preocupándonos de la comunicación y sincronización de procesos dentro de un mismo ordenador, como caso más sencillo que se nos puede presentar. Esto nos permitirá iniciarnos en la programación paralela y distribuida, tan en boga actualmente con los procesadores con múltiples núcleos y las redes de ordenadores. Todos los conceptos que vemos en este tema, son la base sobre la que se irán acumulando el resto de contenidos de este módulo.
Datos generales de la Unidad de Trabajo
Nombre completo del MP Programación de Servicios y Procesos.
Siglas MP PSP
y título de la UT 01.- Programación multiproceso.
Índice o tabla de contenidos
  1. Recordando cómo programar en Java y el uso básico del IDE NetBeans.
  2. Introducción: aplicaciones, ejecutables y procesos.
    1. Ejecutables. Tipos.
  3. Gestión de procesos.
    1. Gestión de procesos. Introducción.
    2. Estados de un proceso.
    3. Planificación de procesos por el sistema operativo (I).
      1. Planificación de procesos por el Sistema Operativo (II).
    4. Cambio de contexto en la CPU.
    5. Servicios. Hilos.
    6. Creación de procesos.
    7. Comandos para la gestión de procesos.
    8. Herramientas gráficas para la gestión de procesos.
  4. Programación concurrente.
    1. ¿Para qué concurrencia?
    2. Condiciones de competencia.
  5. Comunicación entre procesos.
    1. Mecanismos básicos de comunicación.
    2. Tipos de comunicación.
  6. Sincronización entre procesos.
    1. Regiones críticas.
      1. Categoría de proceso cliente-suministrador.
    2. Semáforos.
    3. Monitores.
      1. Monitores: Lecturas y escrituras bloqueantes en recursos compartidos.
    4. Memoria compartida.
    5. Cola de mensajes.
  7. Requisitos: seguridad, vivacidad, eficiencia y reusabilidad.
    1. Arquitecturas y patrones de diseño.
    2. Documentación
    3. Dificultades en la depuración.
  8. Programación paralela y distribuida.
    1. Conceptos básicos.
    2. Tipos de paralelismo.
    3. Modelos de infraestructura para programación distribuida.
Objetivos
  • Identificar y diseñar soluciones a los problemas de seguridad en entornos de programación concurrente.
  • Identificar y utilizar primitivas propias de programación concurrente.
  • Conocer detalles de algunas de las técnicas de programación.
  • Conocer, seleccionar y aplicar arquitecturas y patrones de diseño a problemas.
  • Documentar y depurar programas concurrentes.
  • Valorar herramientas y entornos específicos de desarrollo de acuerdo a las restricciones de la aplicación.
  • Conocer los conceptos básicos de la programación concurrente, distribuida y paralela.
Temporalización
(estimación)
Tiempo necesario para estudiar los contenidos (h) 16
Tiempo necesario para completar la tarea (h) 4
Tiempo necesario para completar el examen (h) 1
de días que se recomienda dedicar a esta unidad 5
La temporalización anterior no deja de ser una estimación media, ya que el tiempo a invertir va a depender mucho de las circunstancias personales de cada cual.
Consejos y recomendaciones

Una recomendación interesante, es que repases el glosario de términos, ya que en esta primera unidad te puede servir para refrescar conocimientos.


Resulta interesante que vayas probando e intentando hacer por tu cuenta todos los ejemplos. Recuerda que el tutor o tutora te resolverá las dudas que se te planteen, pero siempre se aprende más equivocándose un poco, que si nos lo dan todo hecho.