Los contenidos incluidos en este libro abarcan los conceptos básicos del funcionamiento de los sistemas para aprovechar los nuevos avances en los ordenadores, tanto en lo relativo a la ejecución de diferentes programas y tareas como en la comunicación a través de la Red, todo ello utilizando diferentes métodos y servicios a la vez que se asegura el nivel de seguridad necesario.
En este sentido, se muestran los conceptos de concurrencia y paralelismo. También se enseña a familiarizarse con la programación de múltiples procesos e hilos, entendiendo sus principios y formas de aplicación para obtener un mejor rendimiento del sistema para poder crear aplicaciones que optimicen los tiempos de respuesta para el usuario.
De la misma forma, se explica el concepto de computación distribuida y cómo se puede aprovechar la comunicación entre aplicaciones y ordenadores a través de la Red para programar soluciones a problemas complejos. Además, debido al entorno de conexión, se explican los conceptos de seguridad de la información y se enseña a habituarse a la programación de aplicaciones que realicen una comunicación segura.
Los capítulos incluyen actividades y ejemplos con el propósito de facilitar la asimilación de los contenidos tratados.
Así mismo, se incorporan test de conocimientos y ejercicios propuestos con la finalidad de comprobar que los objetivos de cada capítulo se han asimilado correctamente.
Además, reúne los recursos necesarios para incrementar la didáctica del libro, tales como un glosario con los términos informáticos necesarios, bibliografía y documentos para ampliación de los conocimientos. CAPÍTULO 1. PROGRAMACIÓN DE PROCESOS CAPÍTULO 2. PROGRAMACIÓN DE HILOS CAPÍTULO 3. PROGRAMACIÓN DE COMUNICACIONES EN RED CAPÍTULO 4. GENERACIÓN DE SERVICIOS EN RED CAPÍTULO 5. UTILIZACIÓN DE TÉCNICAS DE PROGRAMACIÓN SEGURA
1.1 CONCEPTOS BÁSICOS
1.2 PROGRAMACIÓN CONCURRENTE
1.3 FUNCIONAMIENTO BÁSICO DEL SISTEMA OPERATIVO
1.4 PROCESOS
1.4.1 Estado de un proceso
1.4.2 Colas de procesos
1.4.3 Planificación de procesos
1.4.4 Cambio de contexto
1.5 GESTIÓN DE PROCESOS
1.5.1 Árbol de procesos
1.5.2 Operaciones básicas con procesos
1.6 COMUNICACIÓN DE PROCESOS
1.7 SINCRONIZACIÓN DE PROCESOS
1.7.1 Espera de procesos (operación Wait)
1.8 PROGRAMACIÓN MULTIPROCESO
1.8.1 Clase Process
1.9 CASO PRÁCTICO
RESUMEN DEL CAPÍTULO
EJERCICIOS PROPUESTOS
TEST DE CONOCIMIENTOS
2.1 CONCEPTOS BÁSICOS
2.2 RECURSOS COMPARTIDOS POR HILOS
2.3 ESTADOS DE UN HILO
2.4 GESTIÓN DE HILOS
2.4.1 Operaciones básicas
2.4.2 Planificación de hilos
2.5 SINCRONIZACIÓN DE HILOS
2.5.1 Problemas de sincronización
2.5.2 Mecanismos de sincronización
2.6 PROGRAMACIÓN DE APLICACIONES MULTIHILO
2.7 CASO PRÁCTICO
RESUMEN DEL CAPÍTULO
EJERCICIOS PROPUESTOS
TEST DE CONOCIMIENTOS
3.1 CONCEPTOS BÁSICOS: COMUNICACIÓN ENTRE APLICACIONES
3.1.1 Computación distribuida
3.1.2 Comunicación entre aplicaciones
3.2 PROTOCOLOS DE COMUNICACIONES: IP, TCP, UDP
3.2.1 Pila de protocolos IP
3.2.2 Protocolo TCP
3.2.3 Protocolo UDP
3.3 SOCKETS
3.3.1 Fundamentos
3.3.2 Programación con sockets
3.4 MODELOS DE COMUNICACIONES
3.4.1 Modelo cliente/servidor
3.4.2 Modelo de comunicación en grupo
3.4.3 Modelos híbridos y redes peer-to-peer (P2P)
RESUMEN DEL CAPÍTULO
EJERCICIOS PROPUESTOS
TEST DE CONOCIMIENTOS
4.1 SERVICIOS
4.1.1 Concepto de servicio
4.1.2 Servicios en red
4.1.3 Servicios de nivel de aplicación
4.2 PROGRAMACIÓN DE APLICACIONES CLIENTE Y SERVIDOR
4.2.1 Funciones del servidor
4.2.2 Tecnología de comunicaciones
4.2.3 Definición del protocolo de nivel de aplicación
4.2.4 Implementación
4.3 PROTOCOLOS ESTÁNDAR DE NIVEL DE APLICACION
4.3.1 Telnet
4.3.2 SSH (Secure Shell)
4.3.3 FTP (File Transfer Protocol)
4.3.4 HTTP (Hypertext Transfer Protocol)
4.3.5 POP3 (Post Office Protocol, versión 3)
4.3.6 SMTP (Simple Mail Transfer Protocol)
4.3.7 Otros protocolos de nivel de aplicación importantes
4.4 TÉCNICAS AVANZADAS DE PROGRAMACIÓN DE APLICACIONES DISTRIBUIDAS
4.4.1 Invocación de métodos remotos
4.4.2 Servicios web
4.5 CASO PRÁCTICO
RESUMEN DEL CAPÍTULO
EJERCICIOS PROPUESTOS
TEST DE CONOCIMIENTOS
5.1 CONCEPTOS BÁSICOS
5.1.1 Aplicaciones de la criptografía
5.1.2 Historia de la criptografía
5.2 CARACTERÍSTICAS DE LOS SERVICIOS DE SEGURIDAD
5.2.1 Estructura de un sistema secreto
5.2.2 Herramientas de programación básicas para el cifrado
5.3 MODELO DE CLAVE PRIVADA
5.3.1 Algoritmos de cifrado simétrico
5.3.2 Programación de cifrado simétrico
5.3.3 Resumen de información (función hash)
5.4 MODELO DE CLAVE PÚBLICA
5.4.1 Algoritmo RSA
5.4.2 Programación de cifrado asimétrico
5.4.3 Firma digital
5.5 CONTROL DE ACCESO
5.6 CASO PRÁCTICO
RESUMEN DEL CAPÍTULO
EJERCICIOS PROPUESTOS
TEST DE CONOCIMIENTOS
MATERIAL ADICIONAL
ÍNDICE AL FABÉTICO