Publicado el 2 de Junio del 2019
720 visualizaciones desde el 2 de Junio del 2019
2,8 MB
671 paginas
Creado hace 12a (29/02/2012)
Programación Distribuida y Mejora del Rendimiento
Casiano R. León 1
29 de febrero de 2012
1DEIOC Universidad de La Laguna
Índice general
1. Ejecucion de Programas
12
12
14
16
17
18
21
27
28
1.1. La función system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. La función exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Variables de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Uso de comillas de ejecución (Backticks) . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Salvando Manejadores de Fichero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. Pipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7. Entrada/Salida sin Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.8. Repaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.9. Práctica: Introducción a los Sistemas de Control de Versiones. Ejecución Controlada de Un Programa 30
1.10. Repaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.11. Repaso: Control de Versiones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.12. Práctica: Un Comando para la Gestión de Usuarios en Subversion . . . . . . . . . . .
1.13. El Módulo IPC::Run3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.14. Práctica: Uso de IPC::Run3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15. Pipes con nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.15.1. Práctica: Pipes con Nombre. Apertura Bidireccional
. . . . . . . . . . . . . . .
1.15.2. Práctica: Calculo Usando Pipes con Nombre . . . . . . . . . . . . . . . . . . . .
66
76
83
84
84
84
89
90
2. SSH: Secure Shell
93
93
2.1. Conexiones con ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
2.1.1.
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
2.1.2. Conexión SSH a Una máquina por Primera Vez . . . . . . . . . . . . . . . . . .
2.1.3. Claves Pública y Privada: Estableciendo Autentificación No Interactiva . . . .
96
2.1.4. Copia Segura de un Fichero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.1.5. Práctica: Copia Segura Paralela: Parallel Secure Copy . . . . . . . . . . . . . . 101
2.1.6. Copia Segura en Cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.1.7. Transferencia por sftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.1.8. El fichero authorized keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.1.9. Acceso Sólo Via scp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.1.10. Práctica: Repositorio svn y ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
2.1.11. SSH::RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
2.1.12. Deshabilitar la Asignación de una TTY . . . . . . . . . . . . . . . . . . . . . . 117
2.1.13. Agentes SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
2.1.14. Mejor un Sólo Agente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
2.1.15. Redireccionado al Agente SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
2.1.16. Consideraciones sobre la Seguridad del Uso de Agentes . . . . . . . . . . . . . . 127
2.1.17. Depuración/Debugging
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
2.1.18. Los Ficheros de Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
2.1.19. Copias de Seguridad con rsync . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
2.1.20. Multiplexado de Conexiones con SSH . . . . . . . . . . . . . . . . . . . . . . . 137
2.1.21. Conexiones X y Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.1.22. Tunneling Directo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
1
2.1.23. Creación de un Tunel Inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
2.1.24. SSH como Proxy SOCKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
2.2. Montando un Disco Remoto via SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
2.3. Protegiéndose contra Ataques con Diccionarios
. . . . . . . . . . . . . . . . . . . . . . 147
2.4. Distributed Shell: dsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.5. Conexión Automática ssh con Net::SSH::Perl . . . . . . . . . . . . . . . . . . . . . . 150
2.5.1. Perl SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.5.2. Cifrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
2.5.3. Conmutando Entre Modo Batch e Interactivo . . . . . . . . . . . . . . . . . . . 154
2.6. El Módulo Net::SSH::Expect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2.7. El Módulo IPC::PerlSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2.8. Práctica: Producto de Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
2.9. Visualización de un Cluster con cssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.10. Práctica: usando cssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
2.11. Arrancando Múltiples Sesiones SSH Usando DCOP . . . . . . . . . . . . . . . . . . . . 160
2.12. Virtual Network Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
2.13. screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3. Fork y Señales
168
3.1. La Función fork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
3.2. La Función wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.3. La Depuración de Procesos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.4. Señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.4.1. Lista de Señales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.4.2. Envío de señales
3.4.3. Captura de señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.4.4. Señales a Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.4.5. Controlando Errores en Tiempo de Ejecución con eval . . . . . . . . . . . . . 176
3.4.6. Controlando warnings en tiempo de ejecución . . . . . . . . . . . . . . . . . . . 178
3.4.7. A Donde se Retorna Después de la Ejecución del Manejador de una Señal
. . . 178
3.4.8. Cronometrando el Tiempo de Entrada con alarm . . . . . . . . . . . . . . . . . 180
3.4.9. Limitando el Tiempo de Lectura . . . . . . . . . . . . . . . . . . . . . . . . . . 180
3.4.10. Limitando el Tiempo de un Proceso . . . . . . . . . . . . . . . . . . . . . . . . 181
3.4.11. El Manejo de Excepciones PIPE . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
3.4.12. El Manejador IGNORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
3.4.13. Consideraciones sobre el uso de las Señales
. . . . . . . . . . . . . . . . . . . . 184
3.4.14. Cosechado con un Manejador para CHLD . . . . . . . . . . . . . . . . . . . . . . 185
3.4.15. Ejercicio: Barreras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.5. Cerrojos sobre Ficheros
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
3.6. Práctica: Cálculo Multiproceso usando cerrojos . . . . . . . . . . . . . . . . . . . . . . 188
3.7. Práctica: El PID de un Subproceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.8. Práctica: Marshalling: Modifique Proc::Simple . . . . . . . . . . . . . . . . . . . . . . 189
3.9. El Módulo Parallel::Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
3.10. El Módulo Parallel::ForkManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
3.11. Práctica: Callbacks en ForkManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
3.12. El Análisis de URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
3.13. Práctica: Analisis de URLs en el Programa de Descarga . . . . . . . . . . . . . . . . . 201
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.14. Granjas Simples
3.14.1. Granja usando pipes y wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.14.2. Ejercicio: Uso de waitpid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
3.14.3. Ejercicio: Hashes de Manejadores . . . . . . . . . . . . . . . . . . . . . . . . . . 206
3.14.4. Granja con Extensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
3.14.5. Práctica: Granja con Pipes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
2
3.14.6. Práctica: Extendiendo los Objetos Farm::Machine . . . . . . . . . . . . . . . . 217
4. Pipes
220
4.1. La Función pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.1.1. Múltiples escritores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.1.2. Múltiples Lectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
4.1.3. Comunicación Bidireccional con Pipe . . . . . . . . . . . . . . . . . . . . . . . . 223
4.1.4. Atascos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
4.1.5. El Módulo IO::Pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
4.1.6. Comunicación de Estructuras de Datos Complejas
. . . . . .
Comentarios de: Programación Distribuida y Mejora del Rendimiento (0)
No hay comentarios