Beruflich Dokumente
Kultur Dokumente
Quinta edicin
2a edicin en Servicio de Publicaciones ETSIT-UPM
Gregorio Fernndez
Primera edicin: Septiembre 1994 Segunda edicin: Febrero 1995 Tercera edicin: Febrero 1998 Cuarta edicin: Febrero 2003 (1a edicin en Servicio de Publicaciones ETSIT-UPM) Quinta edicin: Diciembre 2004 (2a edicin en Servicio de Publicaciones ETSIT-UPM)
2004 Fundacin Rogelio Segovia para el Desarrollo de las Telecomunicaciones No est permida la reproduccin total o parcial de este libro, ni su tratamiento informtico, ni la transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el premiso previo y por escrito de los titulares del copyright. ISBN: 84-7402-312-2 Depsito legal: TO-98-2005 Edita: Fundacin Rogelio Segovia para el Desarrollo de las Telecomunicaciones Ciudad Universitaria s/n 28040 Madrid Imprime: Grcas Aurora
Tabla de materias
Prlogo Prefacio 0. Modelos y niveles 0.1. Propsito . . . . . . . . . . . . . . . . . . . . . . 0.2. Sistemas y modelos . . . . . . . . . . . . . . . . . 0.3. Funcin, estructura y proceso . . . . . . . . . . . . 0.4. Ejemplos de sistemas y modelos . . . . . . . . . . 0.5. Pragmtica . . . . . . . . . . . . . . . . . . . . . 0.6. Jerarquas de abstracciones . . . . . . . . . . . . . 0.7. Jerarqua de niveles para los ordenadores . . . . . . 0.8. Un ltimo ejemplo: la mquina de von Neumann 0.9. Estructura y contenido del libro . . . . . . . . . . . 0.10. Resumen . . . . . . . . . . . . . . . . . . . . . . 0.11. Observaciones terminolgicas . . . . . . . . . . . 0.12. Notas histricas . . . . . . . . . . . . . . . . . . . 0.13. Orientaciones bibliogrcas . . . . . . . . . . . . 0.14. Ejercicios . . . . . . . . . . . . . . . . . . . . . .
XIII XVII
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
1 1 2 7 12 19 23 24 28 34 36 37 38 41 42
45
47 47 48 50
II
Tabla de materias
1.4. Programacin . . . . . . . . . . . . . . . . . . . . . . 1.5. Suma de dos nmeros . . . . . . . . . . . . . . . . . . 1.6. Construccin de bucles . . . . . . . . . . . . . . . . . 1.7. Programas mutantes . . . . . . . . . . . . . . . . . . . 1.8. Suma de cien nmeros . . . . . . . . . . . . . . . . . 1.9. Intercambio de los contenidos de dos zonas de memoria 1.10. Subprogramas . . . . . . . . . . . . . . . . . . . . . . 1.11. Ensamblador . . . . . . . . . . . . . . . . . . . . . . 1.12. Introduccin a las comunicaciones con la periferia . . . 1.13. Crtica de la espera activa . . . . . . . . . . . . . . . . 1.14. Comentarios sobre Smplez . . . . . . . . . . . . . . . 1.15. Resumen . . . . . . . . . . . . . . . . . . . . . . . . 1.16. Observaciones terminolgicas . . . . . . . . . . . . . 1.17. Notas histricas . . . . . . . . . . . . . . . . . . . . . 1.18. Orientaciones bibliogrcas . . . . . . . . . . . . . . 1.19. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 2. Smplez+i4 2.1. Propsito . . . . . . . . . . . 2.2. Modelo estructural . . . . . . 2.3. Modelo funcional . . . . . . . 2.4. Modos de direccionamiento . . 2.5. Convenios simblicos . . . . . 2.6. Contando con X . . . . . . . . 2.7. Punteros e ndices . . . . . . . 2.8. Interrupciones . . . . . . . . . 2.9. Comentarios sobre Smplez+i4 2.10. Resumen . . . . . . . . . . . 2.11. Observaciones terminolgicas 2.12. Notas histricas . . . . . . . . 2.13. Orientaciones bibliogrcas . 2.14. Ejercicios . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
54 54 56 58 60 62 63 66 69 70 73 74 75 76 76 77 81 81 82 82 84 86 87 88 90 97 98 99 99 99 99 101 101 102 104 111 113 115 119 120 123 124
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
3. Variaciones sobre representacin y procesamiento 3.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Memoria principal y registros . . . . . . . . . . . . . . . . . . 3.3. Representacin de los tipos elementales de datos . . . . . . . 3.4. Convenios sobre el orden de almacenamiento . . . . . . . . . 3.5. Operaciones de procesamiento . . . . . . . . . . . . . . . . . 3.6. Procesamiento de interrupciones . . . . . . . . . . . . . . . . 3.7. Introduccin al procesamiento simblico . . . . . . . . . . . . 3.8. Tiempo de traduccin, tiempo de carga y tiempo de ejecucin . 3.9. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10. Observaciones terminolgicas . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Tabla de materias
III
3.11. Notas histricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 3.12. Orientaciones bibliogrcas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 3.13. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4. Variaciones sobre instrucciones y direccionamientos 4.1. Propsito . . . . . . . . . . . . . . . . . . . . . 4.2. Tipos de software . . . . . . . . . . . . . . . . . 4.3. Formatos de instrucciones . . . . . . . . . . . . 4.4. Modos de direccionamiento . . . . . . . . . . . . 4.5. Direccionamientos relativos . . . . . . . . . . . 4.6. Pilas y subprogramas . . . . . . . . . . . . . . . 4.7. Repertorios de instrucciones . . . . . . . . . . . 4.8. Medidas de prestaciones . . . . . . . . . . . . . 4.9. RISC y CISC . . . . . . . . . . . . . . . . . 4.10. Resumen . . . . . . . . . . . . . . . . . . . . . 4.11. Observaciones terminolgicas . . . . . . . . . . 4.12. Notas histricas . . . . . . . . . . . . . . . . . . 4.13. Orientaciones bibliogrcas . . . . . . . . . . . 4.14. Ejercicios . . . . . . . . . . . . . . . . . . . . . 5. Variaciones sobre la periferia 5.1. Propsito . . . . . . . . . . . . . 5.2. Tipos de perifricos . . . . . . . . 5.3. Tratamiento de la variedad . . . . 5.4. Modelos . . . . . . . . . . . . . . 5.5. Memorias secundarias . . . . . . 5.6. ADM: justicacin . . . . . . . . 5.7. ADM: modelos estructurales . . . 5.8. ADM: modelos procesales . . . . 5.9. ADM: modelos funcionales . . . . 5.10. Procesadores perifricos . . . . . 5.11. Comunicaciones entre ordenadores 5.12. Normalizacin . . . . . . . . . . . 5.13. Sistemas abiertos . . . . . . . . . 5.14. Resumen . . . . . . . . . . . . . 5.15. Observaciones terminolgicas . . 5.16. Notas histricas . . . . . . . . . . 5.17. Orientaciones bibliogrcas . . . 5.18. Ejercicios . . . . . . . . . . . . . 131 131 132 133 134 137 146 151 154 158 159 160 160 162 163 167 167 168 172 173 176 180 181 182 184 186 187 192 193 195 195 196 197 197
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
6. Algortmez: la UCP 199 6.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 6.2. Modelo estructural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 6.3. Modelo funcional: formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
IV
Tabla de materias
6.4. Modelo funcional: instrucciones . . . . 6.5. Modelo procesal . . . . . . . . . . . . . 6.6. Modos de direccionamiento . . . . . . . 6.7. Lenguaje ensamblador . . . . . . . . . 6.8. Ensamblaje, montaje y carga . . . . . . 6.9. Suma de cincuenta nmeros . . . . . . 6.10. Intercambio de dos zonas . . . . . . . . 6.11. Ordenacin . . . . . . . . . . . . . . . 6.12. Rutinas aritmticas y de conversin . . 6.13. Consideraciones sobre los subprogramas 6.14. Interrupciones . . . . . . . . . . . . . . 6.15. Comentarios sobre Algortmez . . . . . 6.16. Resumen . . . . . . . . . . . . . . . . 6.17. Observaciones terminolgicas . . . . . 6.18. Notas histricas . . . . . . . . . . . . . 6.19. Orientaciones bibliogrcas . . . . . . 6.20. Ejercicios . . . . . . . . . . . . . . . . 7. Algortmez: la periferia 7.1. Propsito . . . . . . . . . . . . 7.2. Comunicacin con los puertos . 7.3. Esquemas de interrupciones . . 7.4. Consulta por software . . . . . . 7.5. Rutinas de servicio . . . . . . . 7.6. Consulta por hardware . . . . . 7.7. Controlador de interrupciones . 7.8. Controlador de disquetes . . . . 7.9. Controlador de grcos . . . . . 7.10. Unidad de gestin de la memoria 7.11. Resumen . . . . . . . . . . . . 7.12. Observaciones terminolgicas . 7.13. Notas histricas . . . . . . . . . 7.14. Orientaciones bibliogrcas . . 7.15. Ejercicios . . . . . . . . . . . . 8. Regstrez 8.1. Propsito . . . . . . . . . . . 8.2. Modelos estructural y procesal 8.3. Modelo funcional: formatos . 8.4. Modos de direccionamiento . . 8.5. Repertorio de instrucciones . . 8.6. Subprogramas . . . . . . . . . 8.7. Interrupciones . . . . . . . . . 8.8. Comentarios sobre Regstrez .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
203 206 207 211 218 223 225 226 228 234 238 240 241 241 241 243 244 249 249 250 253 253 257 263 263 266 270 279 283 284 284 284 285 287 287 288 294 297 298 307 311 314
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Tabla de materias
8.9. Resumen . . . . . . . . . . . 8.10. Observaciones terminolgicas 8.11. Notas histricas . . . . . . . . 8.12. Orientaciones bibliogrcas . 8.13. Ejercicios . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
317
319 319 320 321 328 331 334 336 336 337 337 337 339 339 340 342 343 346 348 349 349 349 350 350 351 351 352 354 355 356 360 362
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
11. Microsmplez 11.1. Propsito . . . . . . . . . . . . . . . . . . . . . 11.2. Un secuenciador cableado para Smplez . . . . . 11.3. Control microprogramado . . . . . . . . . . . . 11.4. La micromquina de Wilkes . . . . . . . . . . . 11.5. Un secuenciador microprogramado para Smplez 11.6. Microsmplez+i4 . . . . . . . . . . . . . . . . . 11.7. Resumen . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
VI
Tabla de materias
11.8. Observaciones terminolgicas 11.9. Notas histricas . . . . . . . . 11.10. Orientaciones bibliogrcas . 11.11. Ejercicios . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
362 362 363 363 365 365 366 368 370 370 372 372 374 375 375 376 376 377 377 378 378 383 391 393 396 405 408 410 412 412 418 418 419 419 419 421 421 422 426 430 432
12. Modelos en el nivel de micromquina 12.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . 12.2. Modelos estructurales . . . . . . . . . . . . . . . . . 12.3. Modelos funcionales . . . . . . . . . . . . . . . . . 12.4. Modelos procesales . . . . . . . . . . . . . . . . . . 12.5. Firmware y emulacin . . . . . . . . . . . . . . . . 12.6. Estado actual de la microprogramacin . . . . . . . . 12.7. Microprogramacin, arquitectura y microarquitectura 12.8. Resumen . . . . . . . . . . . . . . . . . . . . . . . 12.9. Observaciones terminolgicas . . . . . . . . . . . . 12.10. Notas histricas . . . . . . . . . . . . . . . . . . . 12.11. Orientaciones bibliogrcas . . . . . . . . . . . . . 12.12. Ejercicios . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
13. Microalgortmez 13.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . . . 13.2. Modelo funcional de la UCP . . . . . . . . . . . . . . . 13.3. Ruta de datos . . . . . . . . . . . . . . . . . . . . . . . 13.4. Modelo procesal . . . . . . . . . . . . . . . . . . . . . . 13.5. Modelos estructural y procesal de la unidad de control . 13.6. Modelo funcional en el nivel de micromquina . . . . . 13.7. Firmware . . . . . . . . . . . . . . . . . . . . . . . . . 13.8. Hardware: generacin de las direcciones . . . . . . . . . 13.9. Hardware: atencin de interrupciones y cesin de buses . 13.10. Hardware: generacin de las micrordenes . . . . . . . 13.11. Comentarios sobre los diseos de Smplez y Algortmez 13.12. Un Microalgortmez verstil . . . . . . . . . . . . . . . 13.13. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . 13.14. Observaciones terminolgicas . . . . . . . . . . . . . . 13.15. Notas histricas . . . . . . . . . . . . . . . . . . . . . 13.16. Orientaciones bibliogrcas . . . . . . . . . . . . . . . 13.17. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 14. Controladores subordinados 14.1. Propsito . . . . . . . . . . 14.2. Controlador de la MP . . . . 14.3. Controladores de perifricos 14.4. Controlador serial . . . . . . 14.5. Controlador de ADM . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Tabla de materias
VII
14.6.Controlador de interrupciones . 14.7. Resumen . . . . . . . . . . . 14.8. Observaciones terminolgicas 14.9. Notas histricas . . . . . . . . 14.10. Orientaciones bibliogrcas . 14.11. Ejercicios . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
432 435 435 436 436 436 437 437 438 441 445 446 448 449 457 462 463 464 465 466 466 469 469 470 472 474 475 477 481 482 484 485 489 490 490 490 490 490
15. Variaciones sobre microarquitectura 15.1. Propsito . . . . . . . . . . . . . . . . 15.2. Variaciones en los modelos estructurales 15.3. Encadenamiento . . . . . . . . . . . . . 15.4. Alternativas para el sistema de memoria 15.5. Memoria organizada modularmente . . 15.6. Memoria asociativa . . . . . . . . . . . 15.7. Memoria oculta . . . . . . . . . . . . . 15.8. Memoria virtual . . . . . . . . . . . . . 15.9. Jerarqua de memorias . . . . . . . . . 15.10. Resumen . . . . . . . . . . . . . . . . 15.11. Observaciones terminolgicas . . . . . 15.12. Notas histricas . . . . . . . . . . . . 15.13. Orientaciones bibliogrcas . . . . . . 15.14. Ejercicios . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
16. Microrregstrez 16.1. Propsito . . . . . . . . . . . . . . . . . . 16.2. Modelos del sistema . . . . . . . . . . . . 16.3. La memoria oculta . . . . . . . . . . . . . 16.4. Modelo funcional de la UCP . . . . . . . . 16.5. Modelo estructural de la UCP . . . . . . . . 16.6. Modelo procesal de la UCP . . . . . . . . . 16.7. Conictos de datos . . . . . . . . . . . . . 16.8. Conictos estructurales . . . . . . . . . . . 16.9. Conictos de control . . . . . . . . . . . . 16.10. Subsistemas del modelo estructural . . . . 16.11. Otras posibilidades para la implementacin 16.12. Resumen . . . . . . . . . . . . . . . . . . 16.13. Observaciones terminolgicas . . . . . . . 16.14. Notas histricas . . . . . . . . . . . . . . 16.15. Orientaciones bibliogrcas . . . . . . . . 16.16. Ejercicios . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
VIII
Tabla de materias
Tercera parte: La mquina vestida, o los niveles de mquina operativa y mquina simblica
17. Mquinas virtuales 17.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . 17.2. Mquinas reales y virtuales . . . . . . . . . . . . . . 17.3. El nivel de mquina operativa . . . . . . . . . . . . . 17.4. El nivel de mquina simblica . . . . . . . . . . . . 17.5. Otros programas del sistema . . . . . . . . . . . . . 17.6. La comunicacin entre el ordenador y las personas . 17.7. Denicin y componentes de los sistemas operativos 17.8. Ficheros . . . . . . . . . . . . . . . . . . . . . . . . 17.9. Procesos . . . . . . . . . . . . . . . . . . . . . . . . 17.10. Hebras . . . . . . . . . . . . . . . . . . . . . . . . 17.11. Resumen . . . . . . . . . . . . . . . . . . . . . . . 17.12. Observaciones terminolgicas . . . . . . . . . . . . 17.13. Notas histricas . . . . . . . . . . . . . . . . . . . 17.14. Orientaciones bibliogrcas . . . . . . . . . . . . . 17.15. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . 18. Monoalgortmez 18.1. Propsito . . . . . . . . . . . . . . 18.2. Modelo funcional . . . . . . . . . . 18.3. Ocho llamadas . . . . . . . . . . . 18.4. Ejemplos de uso de las macros . . . 18.5. Otras llamadas al sistema de cheros 18.6. Carga y ejecucin . . . . . . . . . . 18.7. Errores . . . . . . . . . . . . . . . . 18.8. Modelo estructural . . . . . . . . . 18.9. Modelo procesal . . . . . . . . . . . 18.10. Resumen . . . . . . . . . . . . . . 18.11. Observaciones terminolgicas . . . 18.12. Notas histricas . . . . . . . . . . 18.13. Orientaciones bibliogrcas . . . . 18.14. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
493
495 495 496 496 498 500 501 503 506 511 515 515 517 517 518 518 519 519 520 522 525 527 530 531 533 537 540 540 541 541 541 543 543 544 544 546 549 550 552
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
19. Ncleo de Monoalgortmez 19.1. Propsito . . . . . . . . . . . . . . . . 19.2. Algoritmos y estructuras de datos . . . . 19.3. Mapa de memoria . . . . . . . . . . . . 19.4. Estructuras de datos . . . . . . . . . . . 19.5. La rutina de interrupciones de programa 19.6. El sistema de gestin de la memoria . . 19.7. El sistema de gestin de cheros . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
Tabla de materias
IX
19.8. Gestores de perifricos y rutinas de servicio 19.9. Comparacin con sistemas reales . . . . . . 19.10. Resumen . . . . . . . . . . . . . . . . . . 19.11. Observaciones terminolgicas . . . . . . . 19.12. Notas histricas . . . . . . . . . . . . . . 19.13. Orientaciones bibliogrcas . . . . . . . . 19.14. Ejercicios . . . . . . . . . . . . . . . . . . 20. Multialgortmez 20.1. Propsito . . . . . . . . . . . 20.2. Procesos . . . . . . . . . . . . 20.3. Modelo funcional . . . . . . . 20.4. Modelo estructural . . . . . . 20.5. Modelo procesal . . . . . . . . 20.6. El distribuidor y el planicador 20.7. Resumen . . . . . . . . . . . 20.8. Observaciones terminolgicas 20.9. Notas histricas . . . . . . . . 20.10. Orientaciones bibliogrcas . 20.11. Ejercicios . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
561 562 562 563 563 563 563 567 567 568 573 579 585 592 594 594 595 595 595 599 599 600 604 606 607 609 609 612 616 618 619 619 620 621 621 623 623 624 625 627 628
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
21. Modelos en el nivel de mquina operativa 21.1. Propsito . . . . . . . . . . . . . . . . 21.2. Modelos funcionales . . . . . . . . . . 21.3. Modelos estructurales . . . . . . . . . . 21.4. Modelos procesales . . . . . . . . . . . 21.5. Detalles de implementacin . . . . . . . 21.6. Procesos y hebras . . . . . . . . . . . . 21.7. Estados a evitar . . . . . . . . . . . . . 21.8. Comunicacin entre procesos . . . . . . 21.9. Sistemas operativos en red y distribuidos 21.10. Seguridad . . . . . . . . . . . . . . . . 21.11. Resumen . . . . . . . . . . . . . . . . 21.12. Observaciones terminolgicas . . . . . 21.13. Notas histricas . . . . . . . . . . . . 21.14. Orientaciones bibliogrcas . . . . . . 21.15. Ejercicios . . . . . . . . . . . . . . . . 22. Modelos en el nivel de mquina simblica 22.1. Propsito . . . . . . . . . . . . . . . 22.2. Modelos funcionales . . . . . . . . . 22.3. Modelos estructurales . . . . . . . . . 22.4. Modelos procesales . . . . . . . . . . 22.5. Lenguajes . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Tabla de materias
22.6. Lenguajes de alto nivel . . . . . . . . . 22.7. Sentencias, procedimientos y funciones 22.8. Procedimientos y funciones . . . . . . . 22.9. Tipos estructurados . . . . . . . . . . . 22.10. Lenguajes declarativos . . . . . . . . . 22.11. Entornos de programacin . . . . . . . 22.12. Resumen . . . . . . . . . . . . . . . . 22.13. Observaciones terminolgicas . . . . . 22.14. Notas histricas . . . . . . . . . . . . 22.15. Orientaciones bibliogrcas . . . . . . 22.16. Ejercicios . . . . . . . . . . . . . . . . 23. La mquina virtual Java: arquitectura 23.1. Propsito . . . . . . . . . . . . . . 23.2. Visin de conjunto . . . . . . . . . 23.3. Modelo estructural . . . . . . . . . 23.4. Modelo funcional . . . . . . . . . . 23.5. Modelo procesal . . . . . . . . . . . 23.6. Resumen . . . . . . . . . . . . . . 23.7. Observaciones terminolgicas . . . 23.8. Notas histricas . . . . . . . . . . . 23.9. Orientaciones bibliogrcas . . . . 23.10. Ejercicios . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
629 630 632 636 640 641 642 642 643 643 644 647 647 648 652 656 664 668 669 669 669 669 671 671 672 674 687 691 691 692 692 693 693 693
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
24. La mquina virtual Java: implementacin 24.1. Propsito . . . . . . . . . . . . . . . . 24.2. Implementaciones programadas . . . . 24.3. Una implementacin microprogramada 24.4. Implementaciones cableadas . . . . . . 24.5. Comentarios sobre la JVM . . . . . . . 24.6. El lenguaje C# y la plataforma .NET . . 24.7. Resumen . . . . . . . . . . . . . . . . 24.8. Observaciones terminolgicas . . . . . 24.9. Notas histricas . . . . . . . . . . . . . 24.10. Orientaciones bibliogrcas . . . . . . 24.11. Ejercicios . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
Apndices
695
A. Codicacin, sistemas de numeracin y aritmtica binaria 697 A.1. Codicacin de la informacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 A.2. Sistemas de numeracin posicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 A.3. Algoritmos para operaciones aritmticas . . . . . . . . . . . . . . . . . . . . . . . . . . 702
Tabla de materias
XI
Aritmtica binaria con coma ja . . Aritmtica binaria con coma otante Aritmtica decimal con BCD . . . . Observaciones terminolgicas . . . Notas histricas . . . . . . . . . . . Orientaciones bibliogrcas . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
702 708 709 711 712 712 713 713 715 716 724 728 731 733 734 734 734
B. El nivel de circuito lgico B.1. Componentes, sistemas y modelos . . . . . . . . . . B.2. Puertas . . . . . . . . . . . . . . . . . . . . . . . . . B.3. Sistemas combinacionales . . . . . . . . . . . . . . B.4. Biestables y registros . . . . . . . . . . . . . . . . . B.5. Sistemas secuenciales . . . . . . . . . . . . . . . . . B.6. Buses, puertas triestado y puertas de colector abierto B.7. Memorias . . . . . . . . . . . . . . . . . . . . . . . B.8. Observaciones terminolgicas . . . . . . . . . . . . B.9. Notas histricas . . . . . . . . . . . . . . . . . . . . B.10. Orientaciones bibliogrcas . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
C. Lxico 735 C.1. EspaolIngls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 C.2. InglsEspaol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 Referencias ndice 741 759
XII
Tabla de materias
Prlogo
Dado que voy a defender que ste es un libro raro y magistral, lo primero que tengo que hacer es reproducir, para informacin del lector, las acepciones que de la voz raro admite el Diccionario de la Lengua Espaola. Raro, ra. (Del lat. rarus) adj. Extraordinario, poco comn o frecuente. 2. Escaso en su clase o especie. 3. Insigne, sobresaliente o excelente en su lnea. 4. Extravagante de genio o de comportamiento y propenso a singularizarse. 5. Que tiene poca densidad y consistencia. Dcese principalmente de los gases enrarecidos. 6. V. tierra rara. De raro en raro. loc. adv. Raramente, de tarde en tarde. Desglosar en este prlogo la suma de las caractersticas infrecuentes que convierten a este libro en un objeto tan raro, tan raro, que cumple en su totalidad las tres primeras acepciones del Diccionario y adems es de los que aparecen muy de tarde en tarde. Empezar diciendo que es didctico o sea, adecuado para ensear puede parecer una perogrullada, puesto que su propio ttulo expresa que se trata de un Curso. No creo, sin embargo, que todos los libros escritos con la nalidad de ser usados como textos para un curso sean didcticos, y podra dar muchos ejemplos. Por suerte para nosotros, ste es profunda y seriamente didctico.
XIII
Sus cualidades didcticas se derivan de un potente aparato textual y grco formado por unos contenidos rigurosos y originales, envueltos en un enfoque sistmico y en un tratamiento sistemtico, unicados sin desmayo del principio al n. Del rigor y la minuciosidad preero no hablar, porque lo comprobar inmediatamente cualquier lector que aborde el estudio del libro. Su originalidad se sustancia en la aparicin en escena sucesivamente de una familia entera de ordenadores cticios, que surgen justamente cuando se los necesita para mostrar de forma completa y sin suras lo que es esencial en todo cuanto atae a los conceptos y tcnicas de la estructura y de la arquitectura de los ordenadores, y de la arquitectura bsica de los sistemas operativos. Ah tenemos a Smplez, a Smplez+i4, a Algortmez, a Regstrez; despus, a sus correspondientes versiones microprogramadas, y, por ltimo, a las versiones en forma de mquinas operativas. Estos ordenadores de ccin van creciendo y hacindose ms complejos y poderosos a medida que va creciendo y asentndose el conocimiento del lector o alumno. Tomemos, por ejemplo, el nivel Algortmez. Primero nos visita Algortmez, pelado, por as decirlo. Ms adelante, se le aade una micromquina y se convierte en Microalgortmez. Luego, se inviste con
XIV
Prlogo
un sistema de monoprogramacin y crece a Monoalgortmez, y ya, moderno y potente, dotado de un sistema de multiprogramacin, se transmuta en Multialgortmez. Otros autores han utilizado estos articios, pero nunca de una manera tan amplia y coherente. Son mquinas imaginarias, simplicadas, aunque hay que avisar, para que nadie se confunda, de que estn fortsimamente ancladas en la realidad (en caso contrario, seran engaosamente didcticas). A los hechos me remito con un par de ejemplos: Regstrez es un ordenador RISC con arquitectura SPARC, arquitectura implantada en el mercado y a punto de convertirse en norma. Y Multialgortmez est absolutamente inspirada en el sistema UNIX. Por consiguiente, el planteamiento de un curso basado en mquinas cticias est muy alejado de una originalidad caprichosa y une a las ventajas ya mencionadas por lo menos otras dos. La primera es que sus contenidos estn relativamente al abrigo de las bruscas mudanzas tecnolgicas que son el pan nuestro de cada da en la industria informtica. Y en segundo lugar, que ofrece un recurso nemotcnico insospechado, pero comprobado: nuestros alumnos, al cabo de los aos, recuerdan todava el EIT1, el EIT2 y el lenguaje ENSAM, que fueron los ancestros de esta nueva, y mucho ms sosticada y perfecta familia de monstruitos. El enfoque sistmico me parece una de las contribuciones ms notables del libro. Un ordenador es un sistema muy complejo, seguramente uno de los sistemas articiales ms complejos que existen. Toda visin completa y pormenorizada de la realidad de un ordenador es inabarcable para el ser humano, pero no lo es una visin completa y razonablemente abstracta. El ordenador se puede estudiar de una manera especializada, pongamos por ejemplo, tomando como plano su realidad en tanto que mquina que procesa un determinado len-
guaje, y es posible profundizar en el conocimiento sobre dicho plano, a costa, eso s, de negarse las otras facetas de su mltiple personalidad. En este libro, el autor ha optado, muy acertadamente, por proyectar una luz mltiple sobre el ordenador, lo que arroja una imagen muy rica, organizada y fructfera. La luz mltiple se compone de modelos (funcionales, estructurales y procesales) y de jerarquas de abstracciones. Este enfoque se especica muy bien en la leccin cero, donde adems se explica todo el despliegue de la estructura y los usos posibles de los contenidos del libro en coherencia con el enfoque sistmico. De lo escrito en el prrafo anterior podra deducirse (apresuradamente) que el autor habra elegido un despliegue generalista y multifactico, y tal vez por ello un tanto supercial, en demrito de una adecuada especializacin. No hay tal, a lo que contribuye sin duda que el tratamiento de los temas es depurado y sistemtico, tanto en la forma como en el fondo, y por consiguiente muy ecaz. Enmarcado en la visin sistmica (modelos y niveles), que da forma al conjunto, los contenidos se ordenan en el interior de las lecciones en otro sistema implacable, en el que el cuerpo de dichos contenidos viene siempre precedido de una seccin llamada Propsito y seguido siempre de los siguientes elementos o secciones: Resumen, Observaciones terminolgicas, Notas histricas, Orientaciones bibliogrcas, y Ejercicios. Si la extensin del texto no lo evidenciara sucientemente, estos ltimos pueden dar fe del grado de detalle en el desarrollo de los contenidos. De aadidura, la condicin de sistematicidad se extiende a lo largo de todo el libro y tambin la de sistemidad, como ponen de maniesto las prolijas referencias cruzadas entre lecciones, que lo convierten en un objeto en el que todos (o casi todos) los textos acaban reforzndose mutuamente, unas
Prlogo
XV
veces por sntesis y otras por anlisis, e integrndose en una visin unicada. Sobre ser didctico, el libro tiene un carcter bsico, que aqu no signica elemental o banal, sino fundamental, vale decir desprovisto de accesorios. Esto ya lo explica su autor en el prefacio, pero yo quiero aadir que, siendo bsico, es tambin denso y duro, un autntico curso universitario. Y progresivo. Parte de un ordenador casi grotesco, por lo sencillo, y va progresando sin pausa, desmenuzando los mecanismos internos y funciones de mquinas y sistemas, hasta llegar a las mquinas y sistemas ms modernos y sosticados. Te ves, qu s yo, estudiando hoy los entresijos de los modos de direccionamiento, y al cabo de unos das o de unos meses, segn el ritmo, te encuentras con que te has familiarizado con la memoria oculta, la memoria virtual, la estructura MIMD, las arquitecturas de comunicaciones, la comunicacin entre procesos en un sistema operativo, los sistemas operativos en red, los lenguajes declarativos y un largo etctera. Uno de los valores del libro que ms aprecio personalmente es que es un libro culto, y esta cualidad s que es rara, palabra de honor. Me estoy reriendo ms que nada a una cultura tcnica, pero no slo a la cultura especca que corresponde a la materia que constituye el objeto de este libro sino a una cultura tcnica general. Ambas brotan en cualquier pasaje del libro, aqu en un ejemplo, all en un ejercicio, aunque se concentran especialmente en las secciones histricas, terminolgicas y bibliogrcas, algunas de ellas antolgicas. Sus rasgos culturales y hasta eruditos, de la ms vieja raigambre universitaria europea, deberan ser conceptuados por los profesores que elijan este Curso para libro de texto como una oportunidad para renar sus paladares, incluido el hecho espectacular de poder gozar de un estilo literario sobrio, milimtrico, y al tiempo expresivo. Sepan que en estas ms de setecientas pginas se ltra
una parte de los conocimientos y saberes de su autor, el profesor Gregorio Fernndez, que se extienden, adems de al campo de la estructura y arquitectura de los computadores, a los siguientes (y slo cito los que yo he observado presencialmente): Lgica, Inteligencia Articial, Programacin Declarativa e Imperativa, Bioingeniera, Tcnicas de Modelacin y Simulacin, Teora de Autmatas, y Ciberntica y Teora de Sistemas. Y, para terminar con los calicativos al libro, dir una obviedad: que es libro de un solo autor. En efecto, es una obviedad, pero es asimismo una rareza, porque ya es difcil encontrar un libro importante de texto sobre tcnica moderna que no haya sido escrito por dos o ms autores. Y sin duda es una enorme ventaja, por razones de calidad, homogeneidad y coherencia. Vengo, por ltimo, al autor. El dice que ha trabajado en la elaboracin de este libro ms de seis mil horas durante los ltimos seis aos. Soy testigo de ello. Ha elaborado el libro hasta en sus ms nmos detalles, lo que incluye toda la edicin grca y de smbolos (le pido al lector que eche ahora una ojeada rpida por sus pginas para que valore lo que estoy diciendo). El libro que tenemos en las manos est tal cual ha salido del despacho de Gregorio. Y no es verdad que haya trabajado en l seis mil horas. Segn mis cuentas, han sido diecisiete aos, desde que empezamos juntos los que luego fueron conocidos como libros verdes de teleco. El ha continuado y culminado la tarea con fuerza mental irrepetible y paciencia franciscana. As, su libro se convierte en una leccin para todos los que nos dedicamos a la tarea universitaria. Ya hace tiempo que Gregorio Fernndez es un maestro universitario, quiero decir un profesor de profesores. Pero este libro es un instrumento que proyecta su magisterio all donde haya unos ojos para leerlo y una mente para estudiarlo, y un profesor para aprender con l la tarea de ensear.
XVI
Prlogo
Por eso deca al principio de mi prlogo que ste es un libro raro y magistral. Lo que quera expresar es que es un libro con el que se ejerce un magisterio. Y para aclarar del todo el concepto, recurro, como antes hice, al Diccionario, reproduciendo tres acepciones de la voz magistral: Perteneciente o relativo al ejercicio del magisterio. 2. Dcese de lo que se hace con maestra. 8. Aplcase a instrumentos que por su perfeccin y exactitud sirven de trmino de comparacin para los ordinarios de su especie.
Pondr las cartas sobre la mesa. Con Gregorio me unen una larga amistad y una colaboracin de muchos aos, que tal vez me hayan hecho pasar por alto algn defecto de su libro, que en todo caso calicara de menor comparado con su caudaloso aliento y con la importancia de los rasgos que he querido resaltar en este prlogo. Y le desafo al lector a que me demuestre lo contrario. Madrid, 1994 Fernando Sez Vacas Catedrtico Universidad Politcnica de Madrid
Prefacio
Este libro est concebido y escrito para: Servir como apoyo didctico en un primer curso sobre los fundamentos de la arquitectura de ordenadores. Servir tambin como iniciacin concreta1 al estudio de los sistemas operativos, en un curso sobre estos sistemas (que se supone precedido de otro sobre fundamentos de arquitectura). Servir al lector que, de manera autnoma, desee adquirir conocimientos bsicos sobre la estructura y el funcionamiento de los ordenadores.
Estudiantes de ingeniera, con conocimientos previos de programacin en un lenguaje de alto nivel y de circuitos lgicos. Profesionales en proceso de reconversin a las tecnologas de la informacin y las comunicaciones. Profesionales o estudiantes de otras materias en las que el ordenador se utiliza como una herramienta cuya organizacin, estructura y funcionamiento internos es conveniente conocer para obtener de ella el mximo provecho. Como nico requisito previo, se supone que el lector tiene unos conocimientos mnimos de programacin. Para la mayor parte del Curso no es necesario que sepa disear programas en ningn lenguaje determinado, pero s que sea capaz de entender algoritmos sencillos escritos en un lenguaje de alto nivel, preferiblemente en C, lenguaje que se utiliza para presentar algunos algoritmos, y tambin en algunos de los ejercicios propuestos. Slo para las dos ltimas Lecciones, dedicadas a la mquina virtual Java, es preciso tener cierta familiaridad con el lenguaje Java. Algunas de las Lecciones requieren tambin ciertas nociones de codicacin y aritmtica binaria, as como de circuitos lgicos combinacionales y secuenciales. Se incluyen sendos Apndices con todo lo hace falta saber sobre ambas cosas para la comprensin del libro.
Lectores
Independientemente de la clasicacin implcita en el prrafo anterior (alumno de un curso, o autnomo), el libro se ha elaborado teniendo presentes tres perles de lector2 :
Iniciar [...] 3. g. Instruir en cosas abstractas o muy profundas. Concretar[...] 3. Reducir a lo ms esencial y seguro la materia sobre la que se habla o escribe (Diccionario de la Real Academia Espaola). 2 La primera edicin, de 1994, era una refundicin de tres publicaciones dirigidas a distintos tipos de lectores: Fundamentos de los ordenadores, Servicio de Publicaciones de la E.T.S.I. Telecomunicacin, Madrid, 1991 (vol.1) y 1992 (vol.2), Iniciacin concreta a los sistemas operativos, Servicio de Publicaciones de la E.T.S.I. Telecomunicacin, Madrid, 1993, y Arquitectura de ordenadores (dos volmenes), Escuela de Organizacin Industrial, Madrid, 1993. En las ediciones posteriores se ha ido depurando y actualizando el contenido, pero siempre conservando el enfoque original.
1
XVII
XVIII
Prefacio
Temtica
El objeto de estudio aqu es el ordenador, no la informtica. Es decir, el instrumento, no la ciencia construida a su alrededor.3 Ahora bien, los ordenadores pueden estudiarse en diferentes niveles de abstraccin (esto se explica en la Leccin 0). Otras dos palabras del ttulo, arquitectura y sistemas operativos, determinan los niveles en los que se centra este libro: los que tienen que ver con el funcionamiento interno del hardware y del software, sin descender ms que lo imprescindible a los circuitos.
Enfoque
Tambin se ha querido dejar constancia en el ttulo del enfoque adoptado. Vemoslo. Se trata de un curso (y no tiene Captulos, sino Lecciones). Sea el lector un alumno regular o no, est escrito para que pueda seguirse sin ir a clase.4 Como consecuencia, se encontrarn
La informtica [computer science] es el estudio de los fenmenos que rodean a los ordenadores [...] La mquina no ya el hardware, sino la mquina programada, viviente es el organismo que estudiamos. A. Newell y H. Simon: Computer science as empirical inquiry: symbols and search. Comm. of the ACM, 19, 3 (Mar. 1976), pp. 113126. 4 Si no fuera por la renuencia del autor a las dedicatorias, habra dirigido la de este libro a los alumnos que se aburren en clase. Esto requiere una explicacin (entre otras cosas, para apaciguar el enojo de los colegas). Una de las aberraciones de nuestro sistema educativo universitario es el acto en que se ha convertido la leccin magistral en la mayora de los centros. Entendemos que debera ser una clase de sntesis y reforzamiento, impartida tras un perodo de estudio, acciones tutoriales, clases prcticas y evaluaciones parciales, y preparada muy cuidadosamente. La limitacin de recursos no slo hace inviable este proceso. Determina tambin un nmero de alumnos por grupo (ms del centenar en muchos casos) que conduce a las clases tericas, monlogos en los que el profesor, casi sin interaccin con los alumnos (y agobiado a veces por cubrir el programa), expone, con su mejor voluntad de hacerse entender, una sucesin ms o menos ordenada de conocimientos. Muy frecuentemente, preparando estas clases, reexiono sobre su escasa ecacia educativa. Y me asombra la capacidad de los alumnos para cumplir estoicamente un horario que a veces incluye seis horas seguidas de clase! Salvo que uno fuese, adems de profesor, un
3
ms reiteraciones de las habituales. Pretendemos asegurar la comprensin de cada concepto, asumiendo el riesgo de excedernos en el nmero de palabras. No obstante, hemos buscado un trmino medio, pues las Lecciones estn muy interrelacionadas y la reiteracin tiene un lmite. El lector encontrar con frecuencia referencias a Apartados de otras Lecciones distintas a la que est estudiando (fcilmente localizables por la forma de encabezar las pginas). Y es un curso sobre conceptos bsicos. Adems de complejos, los ordenadores son dependientes de unas tecnologas que cambian muy rpidamente. Un curso basado en los productos que hoy se encuentran en el mercado tendra una utilidad efmera, y los conocimientos transmitidos quedaran rpidamente obsoletos. Afortunadamente, despus de ms de sesenta aos de sucesivas innovaciones, pueden ya identicarse ciertos conceptos relativamente invariantes e independientes de la tecnologa, y en ellos se centra el libro. Para concentrarse mejor en esos conceptos bsicos, la exposicin se hace sobre ordenadores cticios (Smplez, Algortmez y Regstrez). Pero el aislamiento (o abstraccin) total de la tecnologa es imposible. Ya sea para ilustrar conceptos o para motivar al lector que conoce los ordenadores como usuario, a lo largo del texto se dan algunos datos concretos que ha sido preciso ir actualizando en las sucesivas ediciones, y que seguramente empezarn a quedar obsoletos al poco de publicarse esta ltima.
Estructura
El curso est diseado sobre la base de una visin sistmica de los ordenadores. En cada nivel de abstraccin se presentan diferentes tipos de descripciones o modelos. En la Leccin 0 se explica
excepcional orador con poder de seduccin del auditorio, no sera ms rentable y graticante para el alumno adquirir los conocimientos por medio de la palabra escrita, a su ritmo y manera? sta ha sido una de las motivaciones para escribir este libro. Esperamos que nos sirva para organizar las clases de un modo ms sensato.
Prefacio
XIX
esta concepcin sistmica, y a su trmino podremos situar en ese contexto su estructura y contenido. Adelantemos aqu que, aparte de esa Leccin 0 y de tres Apndices, consta de tres partes con ocho Lecciones cada una. Todas las Lecciones empiezan con un Apartado de Propsito. En l se jan los objetivos de la Leccin y, cuando es la primera de una parte, del conjunto de Lecciones. Se incluyen tambin ah las reexiones o consideraciones previas que sean necesarias como introduccin. En los Apartados de Resumen se recuerda lo tratado y en su caso se aaden conclusiones nales. Nos ha parecido conveniente ir complementando la exposicin con algunos asuntos no estrictamente tcnicos, que aparecen al nal de las Lecciones: Con los Apartados de Observaciones terminolgicas pretendemos compensar el abuso de barbarismos tan extendido en la informtica; para algunos trminos hemos adoptado traducciones poco usuales, que se explican o se justican en esos Apartados. En las Notas histricas presentamos algunos hechos que creemos conveniente conocer para la buena comprensin de los ordenadores. Para su uso como libro de texto, los conceptos incluidos en cada Leccin pueden tratarse en dos clases de unos cincuenta minutos, suponiendo que se trata de clases de sntesis. Estimamos que desarrollar el contenido de todas las Lecciones requerira una asignatura de unos quince crditos (150 horas). Para una de seis crditos (mdulo bastante extendido en los planes de estudio actuales) es preciso seleccionar. Al nal de la Leccin 0 se dan algunas orientaciones a este respecto.
exmenes y dos simuladores, uno de Smplez y el otro de Algortmez. En otros Centros se han desarrollado tambin simuladores de estas mquinas, y algunos son pblicamente accesibles: E.T.S.I.T. de Vigo (Universidad de Vigo): http://www-gist.det.uvigo.es/esal/ E.U.P. de Linares (Universidad de Jan): http://telecoslinares.iespana.es/ telecoslinares/programas.htm Facultad Regional de Mendoza (Universidad Tecnolgica Nacional, Argentina) : http://web.frm.utn.edu.ar/tecnicad2/ tec_dig2/tools/te2simplez.html
Agradecimientos
Los conocimientos que trato de compartir aqu los he adquirido en treinta aos de actividad docente e investigadora en la Escuela Tcnica Superior de Ingenieros de Telecomunicacin de la Universidad Politcnica de Madrid. No es posible mencionar a todas las personas que, de un modo u otro, han contribuido a mi formacin y maduracin personal. Pero el riesgo de olvidar a muchos no justicara el dejar de distinguir a algunos. Ante todos, Fernando Sez Vacas. l me inici en la Informtica y, sobre todo, en la forma abierta de estudiar la tecnologa, en la docencia universitaria, en la necesidad del rigor y la autocrtica. Su amistad ininterrumpida ha sido y es una fuente permanente de enriquecimiento. Entre los profesores que han colaborado en la imparticin de la asignatura Fundamentos de ordenadores (cuyo programa ha sido el germen del libro), tengo que destacar, muy especialmente, a Mercedes Garijo, que dedic muchas horas a revisar sucesivas versiones del texto y de las guras, lo que me ha permitido depurar inconsistencias, carencias, errores y erratas de todo tipo (huelga decir que los que an quedan son de mi exclusiva responsabilidad). Pedro Alonso y Marifeli Sedano han contribuido con un gran nmero de correcciones. Las Lecciones de introduccin a los sis-
Materiales de apoyo
En las pginas web de la asignatura Fundamentos de ordenadores de la E.T.S.I. Telecomunicacin de la Universidad Politcnica de Madrid (http://www.gsi.dit.upm.es/~gfer/ffoo/), as como en las de Arquitectura de ordenadores (http://www.lab.dit.upm.es/~arqo/), pueden encontrarse transparencias, problemas,
XX
Prefacio
temas operativos (17 a 21) se mejoraron en las primeras ediciones gracias a valiosas sugerencias de ngel lvarez, Gonzalo Len, Joaqun Seoane y Juan Quemada. Algunos profesores de otros Centros me han hecho llegar tambin comentarios provechosos: Martn Llamas y Juan Carlos Burguillo (Universidad de Vigo), Luis Snchez y Alberto Garca (Universidad Carlos III), Joaqun Lpez (Universidad Alfonso X el Sabio), Jos R. Gonzlez de Mendvil (Universidad Pblica de Navarra), lvaro Surez (Universidad de Las Palmas de Gran Canaria), Francisco Rodrguez Rubio (Universidad de Sevilla), Iaki Goirizelaia (Universidad del Pas Vasco) y Sebastin Garca y Joaqun Caada (Universidad de Jan). Un antecedente de este libro fueron los dos volmenes editados en la Escuela hace ms de veinticinco aos. Eran el resultado de un trabajo de coordinacin de Fernando Sez Vacas y mo en el que los profesores con los que iniciamos el diseo y la imparticin de la asignatura contribuan con varios captulos: Pedro Alonso, Carmen Costilla, Juan Quemada, Enrique Rivero y Jos Mara Vela quizs reconozcan aqu todava algunos detalles inspirados en sus textos. La actividad docente, cuando es fruto de una vocacin y no la obligacin de un ocio, es placentera y graticadora, pero tambin exigente y ardua. A potenciar los primeros atributos y mitigar los efectos negativos de los ltimos contribuye la integracin en un entorno estimulante y enriquecedor como el que he tenido la suerte de disfrutar. Ya he mencionado a algunos compaeros, pero no puedo olvidar a otros que con los que colaboro o he colaborado: Carlos Delgado, Jos Carlos Gonzlez, Jos Miguel Goi, Carlos ngel Iglesias, Luis Magdalena, Daro Maravall, Amalio Nieto, Encarna Pastor, Juan Riera, Juan Ramn Velasco, Angel Via... Aunque difcil de precisar y cuanticar, es innegable y de obligado reconocimiento la positiva inuencia de los alumnos en la evolucin profesio-
nal y personal de un profesor. Por su ahnco en la deteccin de errores sobre las primeras ediciones, y en la crtica constructiva, valga como representativo el de scar Jos Martnez de la Torre, que en su momento fue delegado de los alumnos de la Escuela, y actualmente, ya titulado, cursa el tercer ciclo. Ivn Pea Rueda y Javier Rodrguez Dantart desarrollaron, en el marco de sus proyectos n de carrera, los simuladores de Smplez y Algortmez, que permiten experimentar virtualmente con las mquinas. En realidad son algo ms que simuladores. Contienen herramientas para ensamblar mdulos escritos en el lenguaje ensamblador, montarlos y cargarlos en la memoria. El de Smplez incluye tambin una simulacin de la ruta de datos y del secuenciador para visualizar paso a paso la ejecucin de las instrucciones y la evolucin temporal de las micrordenes, as como un editor de microprogramas. Si el lector los prueba apreciar en pocos minutos la calidad de su diseo. En los medios instrumentales, he hecho uso de las aportaciones de Donald Knuth y de LesA lie Lamport, creadores de TEX y LTEX, respectivamente, as como de otras herramientas desarrolladas en la comunidad del software libre: Linux, Emacs, Babel, Ispell, Idraw, Xg... Al publicarse la primera edicin, en 1994, estim que haba dedicado a su elaboracin ms de seis mil horas, casi cuatro mil de ellas en perodos de vacaciones y nes de semana. Las sucesivas revisiones han supuesto un incremento importante de esos nmeros a lo largo de diez aos. La deuda contrada con mi familia es tan grande que slo cabe dejar constancia de su existencia.
Gregorio Fernndez
Leccin 0
Modelos y niveles
0.1. Propsito
Los ordenadores se pueden contemplar desde distintos puntos de vista, dependiendo de la formacin y de la profesin del observador, de la ndole de su relacin con ellos e, incluso, de su intencin en un momento dado. En este libro, las intenciones de los observadores (lector y autor) parecen estar bien acotadas: no nos ocuparemos de otras facetas que no sean estrictamente tcnicas. Aun as, hay diversos puntos de vista. Cules? Sorprendentemente (al n y al cabo estamos hablando de simples mquinas), una respuesta (que no sea trivial) exige desarrollar antes cierto marco conceptual. Y ste es el primer propsito. Una vez obtenida la respuesta, ser relativamente fcil cumplir el propsito ltimo (de esta Leccin): situar en ese marco los contenidos del libro. Veremos que para describir a los ordenadores hay varios tipos de modelos, y que tales modelos se construyen a partir de unos elementos que se combinan siguiendo ciertas reglas. O, lo que es igual, todo modelo se expresa en un lenguaje. En las Lecciones siguientes estudiaremos esos modelos y esos lenguajes. Pero en sta hablaremos de su naturaleza, construyendo un metamodelo, y usando la lengua espaola como metalenguaje. Podemos decir que sta es una metaleccin. 1 En consecuencia, esta (meta)leccin tiene un carcter ms abstracto y generalista y un enfoque menos tcnico que el resto del curso. Su objetivo es delimitar y enmarcar el contenido de ste, y, si es posible, contribuir a sistematizar el estudio de los ordenadores. Pero su lectura, aunque la considero muy recomendable (de lo contrario, habra ahorrado estas cuarenta y cuatro pginas), no es compulsiva ni necesaria para comprender las Lecciones que le siguen. Si se omite, slo se perder cierta perspectiva global. El lector poco acionado a visiones generalistas y ms propenso a ir al grano tiene la opcin de leer el resumen del Apartado 0.10 y pasar luego, sin ms prembulos, a la Leccin 1. Slo le pido, antes de que corra a hacerlo, que termine de leer este prrafo (con la quizs vana esperanza de hacerle cambiar de idea). La idea de abstraccin tiene una connotacin peyorativa para muchas personas con pretendida vocacin por la ingeniera (esta explicacin, este libro, esta asignatura, son demasiados abstractos..., vayamos al grano, concretemos...). Sin embargo, le invito a reexionar seriamente sobre la siguiente proposicin: sin abstraccin no puede hacerse ingeniera; todo lo ms, artesana.
Sistemas
La acepcin de sistema que aqu nos interesa es la segunda del D.R.A.E.2 : conjunto de cosas que relacionadas entre s ordenadamente contribuyen a determinado objeto. Entendiendo cosa en un sentido amplio3 , designa a un concepto generalizador que conduce, por una parte, a lo que se ha llamado pensamiento sistmico (necesidad de enfoques globalizadores por contraposicin a, o complementarios de, los reduccionistas de las ciencias clsicas), y, por otra, a las teoras generales de sistemas (o teoras de sistemas generales), construcciones abstractas (en s mismas, sistemas) que pretenden aplicarse a disciplinas muy diversas. Sin entrar en tales cuestiones ms de lo estrictamente necesario para nuestro propsito, hemos de comentar algunos puntos que consideramos importantes para la comprensin de los sistemas llamados ordenadores.
Observe que este enunciado no es una denicin de ordenador, sino la declaracin de unas propiedades. Se utiliza el verbo ser en el sentido de la predicacin, no en el de la identidad. (J. Ferrater y H. Leblanc: Lgica matemtica. Fondo de Cultura Econmica, Mxico, 1962). Parece ocioso, a estas alturas, dar una denicin de ordenador. 2 Diccionario de la Real Academia Espaola, vigsimosegunda edicin (2001), que citaremos con frecuencia. 3 O sea, pudiendo denotar tanto objetos fsicos de nuestro entorno material como objetos conceptuales elaborados por la mente. Como dice Javier Aracil : Se aplica [cosa] a todo aquello que nos rodea ante lo que se puede preguntar signicativamente: qu es eso? Se excluye nicamente aquello ante lo que, siguiendo la sugerencia de los orteguianos, cabe cuestionar: quin es ese? (J. Aracil: Mquinas, sistemas y modelos. Un ensayo sobre sistmica. Tecnos, Madrid, 1986).
1
Los sistemas pueden ser materiales o conceptuales. Un ordenador, un automvil, un edicio, incluso un hombre (despojado ste ltimo de cualquier connotacin idealista o espiritual)4 , son sistemas materiales. Un manual de programacin, un esquema de las partes del automvil y sus relaciones, los planos del edicio, la siologa, son sistemas conceptuales. Estos ejemplos de sistemas conceptuales son tambin sistemas abstrados: cada uno de ellos existe porque existe (o puede llegar a existir) un sistema material que se corresponde con l, y cada uno es un modelo (en el sentido que deniremos ms adelante) del correspondiente sistema material (el manual es un modelo del ordenador, etc.). Estos son los sistemas conceptuales que aqu nos interesan, no otros, como las teoras matemticas o lingsticas, que son sistemas abstractos cuya existencia no est ligada a la de ningn sistema material. Los sistemas conceptuales son elaboraciones de la mente humana. En ellos suele estar claro (o debera estarlo) cules son las cosas, o partes, que los componen: en general, son smbolos (grcos, palabras, nmeros). En los sistemas materiales no est tan claro: en el lmite, las partes seran las partculas elementales de la Fsica. Sin embargo, nadie piensa as cuando ja su atencin, por ejemplo, en el sistema solar; ms bien considerar que las partes son el sol, los planetas y sus satlites, admitiendo que todos stos son, a su vez, sistemas, o sea, subsistemas con relacin al sistema del que forman parte. En general, cuando estudiamos un sistema material lo consideramos formado por subsistemas, tambin materiales, en cuya composicin no entramos; y, adems, idealizamos cada uno de estos subsistemas, es decir, nos quedamos con las caractersticas que consideramos releSegn el criterio de Aracil citado en la nota anterior, un hombre no es una cosa, pero s podra ser un sistema compuesto por cosas. Por otra parte, cuando se estudian sistemas de los que el hombre forma parte (sistemas sociales, sistemas hombremquina, etc.) es obligado tomar el punto de vista del hombre como cosa.
4
0.2
Sistemas y modelos
vantes para nuestros nes y hacemos abstraccin de las que no lo son. Pero al actuar as lo que hacemos es, realmente, construir un sistema conceptual, un modelo del sistema original. Enseguida deniremos lo que es un modelo, pero antes haremos unos breves comentarios sobre dos caractersticas de los sistemas: la apertura y la complejidad.
sistema
Sistemas abiertos
Desde el mismo momento en que consideramos un sistema estamos particionando el conjunto de las cosas del universo en dos: las que forman el sistema y todas las dems; estas ltimas constituyen el entorno del sistema considerado. Hay sistemas conceptuales (sistemas lingsticos, sistemas algebraicos, etc.) que son cerrados: se puede establecer una frontera impermeable entre el sistema y el entorno. Pero todos los sistemas materiales son, en mayor o menor medida, abiertos: hay partes del sistema que interactan con las del entorno (es decir, que inuyen sobre o que son inuidas por ellas). En general, un sistema abierto es aqul que intercambia materia y/o energa y/o informacin con su entorno. La Figura 0.1 (en la que los crculos representan las partes o subsistemas, y las echas las inuencias o interacciones) ilustra esta denicin. Un ordenador es, desde luego, un sistema abierto: recibe datos y entrega resultados y, por tanto, intercambia informacin con el entorno5 . Y, aunque a efectos meramente didcticos podemos estudiar su funcionamiento interno independientemente de su funcin, su existencia slo se justica porque los benecios que socialmente reporta este intercambio son (supuestamente) ms relevantes que los costes que le acompaan.
Tambin intercambia energa, pero los modelos que aqu nos interesan hacen abstraccin de este hecho. Observe que el mismo concepto de informacin (Apndice A) implica una abstraccin: la informacin ha de tener algn soporte para ser almacenada y comunicada, y la grabacin y la comunicacin sobre estos soportes implican algn tipo de energa.
5
entorno
Figura 0.1
Sistema abierto.
Esta denicin de sistema abierto es clsica en las teoras de sistemas generales. En el campo de los ordenadores se utiliza de una forma mucho ms concreta y restrictiva. Lo veremos en el Apartado 5.13.
Sistemas complejos
La complejidad es una propiedad que atribuimos, casi siempre de manera subjetiva6 , a ciertos sistemas. Herbert Simon ha denido un sistema complejo como el compuesto por un gran nmero de partes que actan entre s de manera no sencilla7 . La imprecisin de esta denicin no es ajena al hecho de que la complejidad no es un atributo del sistema en s: depende tanto del sistema como del observador. Casi todos los sistemas en los que centremos nuestra atencin pueden parecernos simples o complejos, dependiendo de que dispongamos o no de descripciones sucientemente buenas para responder a las preguntas, o resolver los problemas que nos planteamos. De ah que haya una constante en la evolucin del pensamienLa complejidad de un objeto est en los ojos del observador. G.J. Klir: Complexity: some general observations. System Research, 2, 2 (1985), pp. 131140. 7 H.A. Simon: The Sciences of the Articial. M.I.T. Press, 1973. Traduccin de F. Gironella: Las ciencias de lo articial. A.T.E., Barcelona, 1978.
6
4 to: la bsqueda de descripciones comprensibles de sistemas que, en principio, parecen complejos (o ms complejos de lo que luego resultan ser cuando se encuentra la descripcin adecuada). De los cuatro ejemplos de sistemas citados ms arriba, el ordenador, el automvil, el edicio y el hombre, seguramente muchos lectores consideraran en primera instancia como complejos slo el primero y el ltimo, no los otros dos. Y es as porque disponen de descripciones comprensibles del automvil y del edicio que les permiten predecir su funcin y/o su comportamiento para resolver los problemas que se les plantean habitualmente, y no as de los otros dos. La invencin de buenas descripciones (o buenos modelos) es importante para comprender la realidad (actividad del lsofo y del cientco), para actuar sobre ella (actividad de muchos otros profesionales: mdicos, economistas, polticos...), para concebir, construir o reparar artefactos (actividad del ingeniero) y para movernos en una y utilizar adecuadamente los otros (actividad de todos). Pero en todos los casos hay que ser precavidos, so pena de resultar incautos. Desde el punto de vista cientco y losco, no se debe confundir la realidad con el modelo que, esclavos de nuestra percepcin, construimos8 . Y, desde el punto de vista de la ingeniera, el diseo de artefactos apoyndose en modelos lleva consigo el riesgo de creer que el artefacto es el modelo, y sin embargo ste abstrae comportamientos que pueden ser importantes. Esto es especialmente cierto en lo concerniente a la integracin del artefacto en el entorno social, asunto frecuentemente olvidado en los planes de estudio, y relacionado con lo que Mario Bunge llama tecnopraxeologa9 . Para un mismo sistema, el ordenador en nuesNo es que tu teora sea tan amplia como la realidad; es que tu percepcin de la realidad es tan estrecha como tu teora. K. Craik: The Nature of Explanation. Cambridge University Press, Cambridge, 1943. 9 M. Bunge: Epistemologa. Ariel, Barcelona, 1980: un libro cuya lectura es muy recomendable para los estudiantes de ciencias y de ingeniera.
8
tro caso, podemos utilizar descripciones distintas, segn cmo se contemple al sistema y segn cul sea el n de la descripcin. Puesto que el sistema se describe mediante un modelo, veamos qu entendemos por modelo y qu tipos de modelos podemos utilizar.
Modelos
Similarmente a lo que ocurre con el trmino sistema, modelo tiene varias acepciones. En el campo de los ordenadores se habla, por ejemplo, del modelo de von Neumann o del modelo de Wilkes para referirse a esquemas generales que sirven de gua para el diseo de ordenadores, o del modelo tal de tal ordenador, aludiendo a un sistema determinado del que se fabrican muchas rplicas. En la acepcin que aqu nos interesa, un modelo es, en s mismo, un sistema, material o conceptual, que se utiliza en lugar de otro10 al que, por su relacin con el modelo, podemos llamar original. El modelado de un sistema consiste en buscar o elaborar un modelo de ese sistema. Es un proceso intelectual pragmtico y unidireccional (se utiliza un modelo en sustitucin de un original) que est presente en todo desarrollo terico o aplicado, pero tambin en toda actividad humana (actuamos siempre suponiendo ciertas pautas o modos de comportamiento de las cosas y seres que nos rodean). Todo modelo es homomrco (en el sentido matemtico de la palabra, no en el etimolgico) con el sistema original al que sustituye. Esto es, la correspondencia entre ambos no es isomrca o biunvoca: el modelo slo reeja los rasgos de inters del original, haciendo abstraccin de muchos otros que no se consideran relevantes para los nes que se persiguen con la modelacin (Figura 0.2).
4. Esquema terico, generalmente en forma matemtica, de un sistema o de una realidad compleja, como la evolucin econmica de un pas, que se elabora para facilitar su comprensin y el estudio de su comportamiento. (D.R.A.E.)
10
0.2
Sistemas y modelos
original
sistema (original)
semntica
homomorfismo
sintaxis
modelo
sistema (modelo)
pragmtica
personas
Figura 0.2
Los modelos son vehculos de comunicacin, y, por ende, lenguajes. Los modelos se construyen siguiendo ciertas reglas para combinar elementos (sintaxis), representan a un sistema original (semntica) y sirven a un n (pragmtica). La Figura 0.3 ilustra estas relaciones entre el modelo, el sistema que representa y las personas que lo usan.
Tipos de modelos
Las anteriores consideraciones nos sirven para establecer un marco de clasicacin de los modelos siguiendo los tres niveles semiticos. Pero, adems, como sistemas que son, los modelos pueden ser materiales o conceptuales (abstrados). De acuerdo con esto, tenemos varios tipos de modelos, como resume la Figura 0.4 (en la pgina siguiente), que pasamos a comentar. Por su sintaxis, los modelos materiales son tan variados como los distintos tipos de elementos fsicos que pueden componerlos (ladrillos, chips, molculas, clulas...) y las reglas para su combinacin; no hay clasicacin posible de los modelos materiales atendiendo a la sintaxis. En cuanto a los
sintaxis
semntica
pragmtica
materiales
icnicos analgicos
comprensin
uso conceptuales (abstrados) formalizados no formalizados funcionales estructurales procesales diseo/ implementacin
Figura 0.4
modelos conceptuales, estarn expresados en algn lenguaje ms o menos formalizado. La clasicacin de la gura (formalizados y no formalizados) en realidad representa los extremos de una gama innita de posibilidades (entre los modelos puramente matemticos expresados estrictamente, por ejemplo, en lgebra, y las descripciones totalmente literarias en lenguaje natural, normalmente adoptamos una posicin intermedia, sea porque matizamos con el lenguaje natural el modelo formal, sea porque procuramos restringir el uso del lenguaje natural en las descripciones para evitar ambigedades). Atendiendo a su semntica, los modelos materiales pueden ser icnicos o analgicos. Los primeros son los que se construyen con partes de la misma naturaleza fsica que las partes del original, de modo que el modelo reproduce al original cambiando nicamente la escala de algunas magnitudes, y eventualmente abstrayendo, omitiendo o transformando alguna magnitud. Es el caso de las reproducciones a escala de vehculos para su estudio aerodinmico, o de los mapas topogrcos. En este tipo de modelo aparece claramente la propiedad de homomorsmo entre el modelo y el original (en la reproduccin a escala de vehculos, si slo interesa el comportamiento aerodinmico no se incluyen detalles de los subsistemas motor, elctrico, etc.; en los mapas, aparte del cambio de
escala, se transforma la dimensin de altitud mediante el convenio de las lneas de nivel). Los modelos analgicos son tambin materiales, y estn, por tanto, constituidos por objetos concretos, pero de naturaleza diferente a la de las partes del original. Es el caso de los circuitos equivalentes cuyo comportamiento elctrico es anlogo al de algn sistema mecnico original. La Figura 0.5 lo ilustra con un ejemplo sencillo: el modelo matemtico es el mismo para los dos sistemas. Cada uno de ellos es un modelo analgico del otro.
K M D F(t)
dx dx M + D + Kx = F(t) dt 2 dt R L
x(t)
0
dq dq L + R + q/C = E(t) dt 2 dt
Figura 0.5
0.3
7 todas las posibles respuestas del sistema, y de cmo unos se relacionan con las otras en cada instante. As son los modelos de ordenador denidos en los manuales de programacin, el modelo de comportamiento del automvil que ensean en las autoescuelas, o los modelos del hombre de la psicologa conductista. Al establecer un modelo funcional se selecciona un nmero nito de tipos de estmulos y de respuestas (lo que se traduce, al formalizar el modelo, en un nmero nito de variables de entrada y de salida), y esto ya signica una cierta abstraccin, puesto que las relaciones del sistema con el entorno pueden ser innumerables. Por otra parte, hemos dicho que un modelo funcional debe describir todos los estmulos, las respuestas y las relaciones entre unos y otras. Frecuentemente, la enumeracin exhaustiva (es decir, para todos los valores posibles de las variables de entrada y salida seleccionadas) es imposible, y se utiliza o bien un modelo funcional incompleto (es el caso del modelo de autoescuela, que incluye el comportamiento dinmico habitual, pero excluye habilidades dominadas slo por especialistas) o bien una descripcin intensional, no extensional14 (es el caso de los modelos de sistemas dinmicos lineales, en los que se utilizan ecuaciones diferenciales como las de la Figura 0.5, o funciones de transferencia, que engloban en una sola frmula las innitas relaciones posibles entre las entradas y las salidas).
Distinguiremos, desde el punto de vista semntico, tres tipos de modelos conceptuales: funcionales, estructurales y procesales. sta es la clasicacin ms interesante a los efectos de este libro. Dedicaremos los dos Apartados siguientes a denir esos tipos y a ilustrarlos con ejemplos. Finalmente, por su pragmtica, los modelos (sean materiales o abstrados) pueden utilizarse, entre otras cosas, para comprender al sistema original, para usarlo, para disearlo o para implementarlo. En cada caso se tendr un punto de vista distinto sobre el sistema, y se utilizarn diferentes modelos (materiales o conceptuales, ms o menos formalizados, funcionales, estructurales o procesales). Trataremos de estos asuntos pragmticos en el Apartado 0.5.
estmulos
sistema
respuestas
Figura 0.6
Utilizamos estos adjetivos (no admitidos en el D.R.A.E.) con su sentido matemtico: un conjunto puede denirse por extensin o por intensin.
14
Modelos estructurales
Los modelos estructurales describen la organizacin del sistema como conjunto de partes interrelacionadas. En la mayora de las deniciones de sistema (como la reproducida ms arriba) subyace una concepcin estructural. Un modelo estructural comprende a los componentes del sistema (subsistemas), denidos de manera funcional, y a las relaciones entre estos componentes (Figura 0.7). Ambas cosas, si estn completamente especicadas, determinan (al menos, tericamente) la funcin del sistema. Modelos estructurales que determinan los modelos funcionales de los tres sistemas citados ms arriba son: componentes bsicos (memorias, registros, etc.), con sus conexiones y leyes de interaccin para el ordenador, partes mecnicas y leyes de la mecnica para el automvil, y conceptos y leyes de la psicologa cognoscitiva para el hombre. Ahora bien, siendo los modelos representaciones aproximadas de los sistemas, la determinacin del modelo funcional a partir del estructural es siempre relativa. As, los modelos de la psicologa cognoscitiva son (al menos de momento) demasiado burdos para poder deducir de ellos las leyes de la psicologa conductista. Y aun si los modelos funcionales de los componentes son sucientemente precisos, en la prctica el proceso deductivo puede ser inabordable (como deducir el comportamiento de una persona a partir de un perfecto conocimiento de la bioqumica). Por eso hemos matizado ms arriba que el modelo estructural determina tericamente al funcional. Y por eso, para el estudio de sistemas complejos se introducen modelos en distintos niveles de abstraccin. Elevar el nivel de abstraccin permite elaborar modelos tiles para sistemas complejos pero sacricando la posibilidad de que los modelos en un nivel alto puedan estar completamente determinados por los de un nivel ms bajo. En general, esta indeterminacin justica el aforismo aristotlico el todo es ms que la suma de sus partes, que en los sistemas se traduce por la aparicin de
estmulos
sistema respuestas
Figura 0.7
propiedades emergentes: las que resultan como consecuencia de interacciones entre las partes y no pueden deducirse mediante anlisis del modelo estructural15 . Uno podra esperar que las cosas fuesen ms favorables en un sistema ms determinado como es el ordenador, y que el perfecto conocimiento de sus componentes e interacciones nos permitiese predecir todos sus posibles comportamientos. O, dicho en trminos ms prcticos, que dado un programa y unos datos, pudisemos inferir, con toda certeza, cules van a ser los resultados. Pero no es as. El ordenador no es tan complejo como muchos sistemas vivos, pero s lo suciente como para que sus descripciones tengan que hacerse en distintos niveles de abstraccin, y lo dicho en el prrafo anterior le es tambin aplicable. Volveremos sobre los niveles en el Apartado 0.7, pero sealemos aqu la trascendencia de este hecho. En efecto, por una parte es el desencadenante de toda una problemtica en la ingeniera del software: la de tratar de conseguir que los programas funcionen correctamente16 . Por otra, es posible disear
sta es una reformulacin en trminos de modelos del concepto de emergencia propuesto por George Henry Lewes (Problems of Life and Mind, vol. 2. Kegan Paul, Trench, Turbner, and Co., Londres, 1875), pero ya enunciado (con el nombre de efectos heteropticos) nada menos que por John Stuart Mill (System of Logic. Longmans, Green, Reader, and Dyer, Londres 1843). 16 Todo programa real contiene errores mientras no se demuestra lo contrario, lo cual es imposible (T. Gilb: Laws of unreliability. Datamation, 21, 3, Mar. 1975). Slo recientemente se han empezado a desarrollar modelos que permiten, en ciertos casos, garantizar que un programa construido con esos modelos es correcto (vase el Apartado 22.2).
15
0.3
9 binaria del resultado a decimal y presenta este resultado decimal por la pantalla. Una posible descomposicin es la de la Figura 0.8(c), en la que se han agrupado las operaciones de lectura, escritura y transformaciones de representacin en un programa principal, y la del clculo del factorial en una funcin. Este modelo hace abstraccin del hardware en el que se ejecutan las operaciones.
programas que exhiban comportamientos imprevisibles o emergentes; el aprendizaje en el ordenador se consigue si esos comportamientos van mejorando en algn sentido. Sigamos con los modelos estructurales y con un ejemplo que nos permitir insistir en esta posibilidad de aprendizaje en los ordenadores. Es frecuente que un mismo sistema, con un determinado modelo funcional, pueda representarse por distintos modelos estructurales. Dicho de otro modo, el modelador, dependiendo de su punto de vista o de su intencin (pragmtica) puede adoptar distintas descomposiciones. Fijmosnos, por ejemplo, en el sistema familiar de un ordenador personal con pantalla grca, teclado y ratn (nos olvidaremos, para simplicar, de discos y otros componentes). Este ya es un modelo estructural, suciente para muchos usuarios y vendedores de ordenadores. Pero si uno no se conforma con considerar la caja como una caja negra, y abre la carcasa, con unos mnimos conocimientos puede identicar fcilmente cuatro grandes componentes: la fuente de alimentacin, la placa base (que incluye los circuitos de la unidad central de procesamiento y de la memoria principal), la placa controladora de vdeo y una placa ms pequea con unos circuitos para controlar al ratn (los del teclado suelen estar incluidos en la placa madre, y, a veces, tambin los del ratn). Uno puede rpidamente establecer el modelo de la Figura 0.8(a). O bien puede decidir que no le interesa lo que se reere al suministro de energa ni a la disposicin fsica, y, haciendo abstraccin de tales cosas, agrupar los componentes de ms bajo nivel (los circuitos) por su funcin. Llegar as al modelo clsico que muestra la Figura 0.8(b). Pero cabe tambin que no le interesen en absoluto estas descomposiciones en componentes fsicos, sino otra que sea de ms utilidad para describir lo que ocurre en la ejecucin de un determinado programa. Sea ste uno que lee del teclado un nmero natural, lo convierte a la representacin binaria interna, utiliza una funcin para calcular el factorial del dato ledo, convierte la representacin
ratn teclado
pantalla
placa base
controlador serial
controlador de video
bus
fuente de alimentacin
entrada
UCP
salida
MP
dato
programa principal
resultado
funcin
10
grama dependiendo del parecido que hay entre estos sonidos y la pronunciacin correcta de la frase (pronunciacin que se le da, al mismo tiempo que se da la frase al programa, por otro dispositivo de entrada). Si se consigue que a medida que se van sucediendo estmulos y respuestas vaya mejorando ese parecido hasta que, nalmente, el sistema lea bien frases que nunca antes haba odo no podemos decir que la mquina (formada por el ordenador y el programa) ha aprendido a leer? (aunque, desde luego, no haya llegado a comprender). No se trata de ninguna utopa: se han diseado sistemas con ese modo de comportamiento18 . El asunto del aprendizaje en ordenadores no slo es intelectualmente muy atractivo, tiene tambin importantes aplicaciones en ingeniera, como el control de sistemas complejos (donde un modelo del sistema a controlar es impracticable, y el sistema de aprendizaje se va adaptando para conseguir los objetivos), la enseanza individualizada por ordenador (donde el sistema aprende un modelo del alumno concreto), la minera de datos (descubrimiento de conocimientos en bases de datos), la minera de la web (descubrimiento de relaciones estructurales entre pginas, o de patrones de uso a partir de los cheros en los que se registran las visitas), etc. Pero est fuera del alcance de este libro, y no lo volveremos a tratar, salvo por algunas alusiones, en los Apartados 1.7 y 15.219 .
Por ejemplo, para la lengua inglesa, y con muchas limitaciones, NetTalk, basado en la programacin de una red neuronal. (T.J. Sejnowski y C.R. Rosemberg: NetTalk: a parallel network that learns to read aloud. Technical Report TR-86-01, Dep. Electrical Eng., John Hopkins Univ., 1986). Durante los ltimos aos se ha ido progresando lentamente en este difcil campo de aplicacin de las redes neuronales al reconocimiento del lenguaje hablado; vase, por ejemplo, el artculo de N. Morgan y H.A. Bourlard: Neural networks for statistical recognition of continuous speech, Proc. IEEE, 83, 5 (May 1995), pp. 742770. 19 Recomendamos al lector interesado el libro de Tom Mitchell: Machine Learning, McGraw-Hill, 1997.
18
0.3
11
Modelos procesales
As como un modelo funcional describe la funcin dinmica externa (relaciones entre sistema y entorno) y un modelo estructural describe la organizacin esttica interna (partes e interacciones), un modelo procesal describe la actividad dinmica interna o proceso de un sistema material. En efecto, si el sistema exhibe un comportamiento dinmico en sus relaciones con el entorno, necesariamente tienen que producirse cambios en su interior. Un modelo procesal describe estos cambios, haciendo abstraccin de la estructura, basndose en las ideas de estados y transiciones. El estado es una entidad abstracta, conceptual, que podemos denir como la informacin mnima necesaria en un instante dado para, conociendo la evolucin de los estmulos a partir de ese instante, predecir la evolucin de las respuestas. El estado resume la historia del sistema. Ante un estmulo en un instante, el estado cambia, y a este cambio de un estado al siguiente se le llama transicin20 . Un proceso es una sucesin de estados y transiciones (y de respuestas asociadas a ellos). Su descripcin formal se hace mediante dos funciones matemticas: la funcin de transicin determina el estado siguiente, dependiendo del estado actual y del estmulo que se reciba, y la funcin de salida determina la respuesta para el estado actual y el estmulo recibido (Figura 0.9). A partir del estado en un determinado instante y de los estmulos que desde ese instante se vayan recibiendo, el modelo procesal determinar el proceso que seguir el sistema, es decir, la secuencia de estados, de respuestas y de transiciones entre estados. Un modelo procesal es un sistema conceptual, y como tal no tiene sentido decir que est en un
En la Segunda Parte veremos que en los modelos de descripcin del hardware los estados se suceden sin que parezca existir ningn estmulo. Esto es as cuando el sistema est sincronizado, de modo que regularmente cambia de un estado al siguiente. Pero, en realidad, siempre hay un estmulo: el paso inexorable del tiempo. En los ordenadores y en otros sistemas digitales este estmulo tiene, adems, una materializacin bien clara: la seal peridica del reloj.
20
funcin de transicin
estmulos
estado i
estado i+1
respuestas
funcin de salida
Figura 0.9
estado u otro21 . Un proceso, por el contrario, es un sistema material (las actividades internas son reales, aunque se abstraigan en el modelo), y como tal en cada momento estar en un estado. Un modelo procesal incluye el conjunto de estados, Q, el de estmulos o entradas, E, y el de respuestas o salidas, S, y las funciones de transicin, f , y de salida, g. Si los conjuntos son nitos (Q = {q0 , q1 , ..., qn }, E = {e0 , e1 , ..., em }, S = {s0 , s1 , ..., sr }) las funciones de transicin y de salida son discretas: qt+1 = f (et , qt ) y st+1 = g(et , qt ), donde t se reere al instante actual y t + 1 al instante siguiente. Decamos que los modelos procesales son abstractos. Quizs a algn lector se lo parezcan demasiado. Para ayudarle, pondremos algunos ejemplos en el siguiente Apartado. Terminamos ste con una consideracin similar a la que hacamos ms arriba con respecto a los sistemas abiertos: el concepto de proceso, aqu denido de manera general, se utiliza en el campo de los ordenadores con un signicado mucho ms concreto, como veremos en el Apartado 17.9.
Los objetos concretos o materiales son y estn: existen fsicamente y estn en algn estado. Los objetos conceptuales, en cambio, son: existen (conceptualmente), tienen propiedades conceptuales que no posee objeto concreto alguno, tales como la propiedad de ser un conjunto, o una relacin, o un espacio. Los conjuntos no se mueven, las funciones no metabolizan, los espacios no procrean, las estructuras algebraicas no pasan hambre, las derivadas no explotan. M. Bunge: Epistemologa. Ariel, Barcelona, 1980.
21
12
x(t)
0
y el comportamiento (modelo funcional) de cada parte viene dado por leyes de la Fsica: Fm (t) = M Fa (t) = D
d2 x dt2
para la masa,
dx dt
para el amortiguador, y
Fr (t) = K x para el resorte. El modelo estructural, al denir por completo la interrelacin entre partes y el modelo funcional de cada parte, determina totalmente el modelo funcional del sistema. De hecho, lo que ocurre es que el modelo funcional procede de las simplicaciones hechas en el modelo estructural. Para establecer un modelo procesal hemos de denir las variables de estado. De acuerdo con la denicin de estado dada anteriormente, estas variables deben ser tales que baste con conocer sus valores en un instante t = t0 y los valores de F (t) desde t = t0 hasta t > t0 para poder calcular x(t) en t > t0 . Pueden servir como variables de estado x(t) y v(t) = dx(t) : desde un punto de vista matedt mtico, para integrar la ecuacin que aparece en la Figura 0.5 (y poder as calcular x(t)) hacen falta dos condiciones iniciales: x(t0 ) y x (t0 ); desde un punto de vista intuitivo, basta conocer la posicin y la velocidad con que se mueve el sistema en un momento para saber dnde va a estar despus. El modelo procesal viene dado por las ecuaciones de estado:
0.4
4. La tasa de crecimiento de la poblacin de presas depende, por una parte, del nmero de presas (cuanto ms hay, ms crece), y, por otra, del nmero de encuentros, que es proporcional al producto P (t) D(t) (cuanto ms hay menos crece la poblacin). 5. La tasa de crecimiento de la poblacin de predadores depende igualmente del nmero de predadores (cuanto ms hay, menos crece, porque tienen que repartirse a las presas), y del nmero de encuentros (cuanto ms hay, ms crece). 6. Abstraemos cualquier interaccin con el entorno. Teniendo en cuenta las hiptesis 4 y 5 es fcil expresar grcamente las relaciones entre las variables como indica la Figura 0.12. Este tipo de modelo estructural se llama diagrama causal. Y, combinando todas las hiptesis, tampoco es difcil cuanticar las relaciones en forma de ecuaciones diferenciales:
dP dt dD dt
= v(t)
K = M x(t) D M
v(t) +
1 M
F (t)
que determinan, de forma continua, el cambio de un estado (x(t), v(t)) al siguiente. El espacio de estados es el conjunto de valores posibles del par (x(t), v(t)): todo el plano real. A partir de un estado inicial, y para un estmulo F (t), la sucesin de estados (puntos en el plano) forma una trayectoria. En la Figura 0.11 puede verse la trayectoria correspondiente al caso de la Figura 0.10 (x(t0 ) > 0, v(t0 ) = 0 y F (t) = 0 para t > t0 ).
Estas son las conocidas ecuaciones de Volterra, y son un modelo procesal de nuestro sistema. Y el modelo funcional? Pues bien, la ltima hiptesis equivale a decir que estamos considerando un sistema cerrado. Por tanto, no existe modelo funcional.
+ +
Figura 0.12. Modelo estructural (diagrama causal) de las presas y los predadores.
14
Los dos ejemplos anteriores se reeren a sistemas continuos: las magnitudes de inters toman valores en una escala de nmeros reales. Por ese motivo, los modelos estn expresados en el tipo de ecuaciones matemticas que permiten trabajar con variables de esta naturaleza. Analizaremos ahora un sistema que es discreto, en el sentido de que las magnitudes slo pueden tomar, en cada momento, uno de entre un conjunto nito de valores, y adems los cambios de esos valores no ocurren continuamente a lo largo del tiempo, sino solamente en instantes determinados. Se trata de un sistema electrnico digital sencillo: un sumador binario serial. En primer lugar, veamos su descripcin funcional. Un sumador binario es un sistema que suma dos nmeros expresados en el sistema de numeracin de base 2 y da el resultado en el mismo sistema23 . En los ordenadores es un componente de la unidad aritmtica y lgica que funciona en paralelo, es decir, los bits (dgitos binarios) que constituyen los sumandos se presentan todos al mismo tiempo (es un circuito combinacional24 ), pero aqu consideramos el caso de un sumador serial, en el que los bits de los sumandos se presentan secuencialmente y por parejas, y los bits del resultado se obtienen tambin secuencialmente. Es decir, primero se presentan los dos bits de menor peso, el sumador los suma y entrega el bit de menor peso del resultado (y toma nota del acarreo, si lo hay, pero esto es una actividad interna), luego los siguientes, etc. La Figura 0.13 presenta al sistema como una caja negra, y en la Figura 0.14 puede verse un ejemplo de comportamiento que corresponde al caso particular 011001+011101 = 11011025 . En realiEn el Apndice A se resume la aritmtica con base 2, o binaria, en la que slo hay dos dgitos, 0 y 1. 24 En el Apndice B se resumen los principios de los circuitos lgicos combinacionales y secuenciales. 25 Para interpretar bien la Figura 0.14, obsrvese que los dgitos binarios estn representados en ella en sentido inverso a como los escribimos sobre el papel.
23
...
2 1 0 e1 e1 e1
sumador
2
S
...
s2 s1 s0
...
e2 e1 e0 2 2 2 t2 t1 t0
serial
...
...
t2 t1 t0
S= E + E
1
tiempo
dad, el comportamiento est denido por los valores de la entrada y la salida, pero la gura incluye ms informacin: la variable interna z representa al acarreo; q (tambin interna) es el acarreo retardado, o acarreo de la suma binaria en el instante t , que ha de sumarse con et y et en el instante 1 2 t. R es la seal de reloj, que marca el perodo, , de presentacin de los estmulos. Las variables q y z representan cosas que pasan dentro, y por tanto no forman parte del modelo funcional. Pero el perodo s es un parmetro funcional importante, ya que es preciso conocerlo para poder usar el sistema. Por tanto, el modelo funcional (que incluye a todos los comportamientos particulares posibles) puede expresarse formalmente de una manera muy sencilla:
0.4
15
(a) La relacin entre las entradas y las salidas es S = E1 + E2 , donde S, E1 y E2 representan, de manera general, nmeros expresados en binario (cadenas de bits). (b) Los bits que forman las cadenas de entrada deben presentarse con un perodo . Un posible modelo estructural del sumador puede establecerse con dos componentes, una etapa de sumador y un circuito de retardo, conectados como indica la Figura 0.15. Para que el modelo estructural est completo (de modo que el modelo funcional quede totalmente determinado a partir de l) hay que dar modelos funcionales de ambos componentes. Si e1 , e2 , s, z y q representan dgitos binarios, estos modelos son: Para la etapa de sumador: s = (e1 + e2 + q)(md 2) si e1 + e2 + q = 0 o si e1 + e2 + q = 1 z= 1 si e1 + e2 + q = 10 o si e1 + e2 + q = 11 Es decir, s es el bit menos signicativo de la suma binaria de los dos bits que se presentan en un momento dado a la entrada, junto con el posible acarreo (q) de la suma anterior, y z es el acarreo generado que ha de guardarse para la suma de los siguientes. Para el circuito de retardo: q(t) = z(t ), donde debe coincidir con el perodo de presentacin de los estmulos (bits) a la entrada. Es decir, el acarreo que en cada momento hay que sumar es el que se haya podido generar en la suma de los bits precedentes. En la especicacin de la etapa de sumador no se ha indicado explcitamente que las variables son funcin del tiempo (s(t), e1 (t), etc.). Podemos proceder as porque este componente no tiene memoria: su respuesta en un instante depende solamente de las entradas en ese instante (desde el
0
etapa de sumador z
elemento de retardo, O
punto de vista electrnico, es un circuito combinacional). Finalmente, veamos el modelo procesal de este sumador binario serial. Ms arriba hemos denido el concepto de estado como informacin mnima necesaria en un instante dado para, conociendo la evolucin de los estmulos a partir de ese instante, predecir la evolucin de las respuestas. En este caso, la nica informacin necesaria para poder predecir el valor que toma la salida cuando se presentan dos valores particulares en las entradas es si ha habido acarreo anteriormente o no. Es decir, el sistema puede estar en uno de dos estados posibles, que podemos representar con los smbolos q0 (correspondiente a q = 0, no acarreo previo) y q1 (correspondiente a q = 1). El espacio de estados es nito, y consta slo de dos puntos (dos estados concretos): Q = {q0 , q1 } El conjunto de estmulos diferentes tambin es nito: E = {00, 01, 10, 11} as como el de respuestas: S = {0, 1} Como decamos antes, dados el estado actual y el estmulo, la funcin de transicin, f (e, q), debe dar el estado siguiente, y la funcin de salida, g(e, q), la respuesta. Por ejemplo, si hay acarreo (q = 1) y el estmulo es e1 = 1, e2 = 0, la respuesta debe ser s = 0 y el acarreo z = 1, es decir: g(10, 1) = 0, f (10, 1) = 1. Un anlisis ex-
16 haustivo de las 4 2 = 8 combinaciones posibles de entradas y estados nos permite especicar completamente las funciones f y g. En la Figura 0.16 aparece esta especicacin en dos formas equivalentes: como una tabla de transiciones y como un diagrama de transiciones. e q q0 q1
00/0 11/0 01/1 q
0
00 q0 /0 q0 /1
01 q0 /1 q1 /0
10 q0 /1 q1 /0
11 q1 /0 q1 /1
01/0
10/0 q
1
La tabla indica los ocho valores de la funcin f (los escritos delante de los smbolos /) y los ocho valores de g (los escritos detrs). En el diagrama, los crculos corresponden a estados, y los arcos a transiciones entre estados; cada arco, etiquetado e1 e2 /s, corresponde a una transicin de un estado a otro (que puede ser el mismo) debida a la entrada (e1 , e2 ), generndose la salida s. Los tres modelos (funcional, estructural y procesal) son tres formas distintas de describir al mismo sistema. Dependiendo de lo que se pretenda puede ser ms interesante uno u otro. As, desde un punto de vista de usuario (un diseador de un sistema de nivel superior, en el que se utiliza ste como componente o subsistema), lo que importa es el modelo funcional (incluido el parmetro ). Pero desde un punto de vista de diseador los modelos ms tiles son el estructural y el procesal.
0.4
17 En cuanto a la risa, si no quemo incienso, aparece o no segn que el canto estuviese presente o ausente (de modo que la risa imita al canto con un minuto de retardo). Ahora bien, si quemo incienso la risa hace justamente lo contrario de lo que haca el canto. En el momento en que le escribo estoy oyendo a la vez la risa y el canto. Le quedar sumamente agradecido si me aconseja sobre las manipulaciones de rgano e incienso que debo realizar para restablecer denitivamente la calma. El comportamiento que describe esta carta (traducida de un inolvidable libro de Ross Ashby26 ) caracteriza a un sistema cuyas entradas y salidas se pueden formalizar con variables binarias: I, O (entradas), R y C (salidas) (I = 0 si no se quema incienso, I = 1 si se quema, etc.). El mismo texto de la carta es ya un modelo funcional, que se puede formalizar con el lenguaje de la lgica: prrafo 4: Ct+1 = Ct (Rt Ot ) prrafo 5: Rt+1 = It Ct Tambin podemos establecer un modelo estructural, considerando dos componentes, los agentes que generan la risa y el canto, y las inuencias mutuas entre ellos y con las entradas. Del texto de la carta se deduce el diagrama causal de la Figura 0.18.
nonato
activo
bloq.
dato introducido
activo
bloq.
resultado escrito
activo
muerto
Figura 0.17. Modelo procesal del ordenador durante el proceso del clculo del factorial.
18 Pero el ms interesante para este ejemplo es un modelo procesal que, como veremos, conduce inmediatamente a una solucin del problema. R y C son las variables de estado (adems de ser las de salida). En efecto, segn explican los prrafos 4 y 5 de la carta, basta con saber qu valor tienen esas variables en un minuto determinado y qu estmulos (valores de I y O) se dan en ese minuto para conocer los valores que tomarn R y C en el minuto siguiente. El espacio de estados consta de cuatro estados: q0 , correspondiente a R = 0, C = 0 (no se oye la risa ni el canto) q1 , correspondiente a R = 0, C = 1 (no se oye la risa, s el canto) q2 , correspondiente a R = 1, C = 0 (se oye la risa, no el canto) q3 , correspondiente a R = 1, C = 1 (se oyen la risa y el canto) En cada uno de estos cuatro estados pueden aplicarse cuatro estmulos diferentes: e0 : O = 0, I = 0 (no tocar el rgano ni quemar incienso) e1 : O = 0, I = 1 (no tocar el rgano pero quemar incienso) e2 : O = 1, I = 0 (tocar el rgano pero no quemar incienso) e3 : O = 1, I = 1 (tocar el rgano y quemar incienso al mismo tiempo) Pues bien, basta considerar detenidamente los prrafos 4 y 5 de la carta para especicar por completo la funcin de transicin, es decir, para determinar las 4 4 = 16 transiciones entre estados. El resultado, en forma de diagrama de transiciones, puede verse en la Figura 0.19. A la vista de este diagrama, la solucin al problema que plantea la carta aparece fcilmente: el estado inicial es q3 ; de l se puede pasar a q1 mediante e1 o e3 , y de ste a q0 mediante e3 . Expresndolo en los mismos trminos epistolares: Durante un minuto, queme usted incienso, y, si le apetece, toque tambin el rgano; desaparecer la ri-
q 0 no R, no C e :OeI 3
e : O y no I e2 : no O y no I 0
e : no O y no I e0 : O y no I 2 q 3 R, C
e : no O e I e : no O e I 1 e1 : O e I e :OeI 3 q 3 2 e : O y no I R, no C 2 e : no O 0 y no I
e :OeI e3 : no O e I 1
e : O y no I 2 q 1 no R, C
e : no O e I 1
Figura 0.19
sa. Durante el minuto siguiente, siga quemando incienso y pngase a tocar el rgano, si es que no lo estaba haciendo ya. Transcurrido este minuto, cese toda actividad. Si no vuelve a manipular ni el rgano ni el incienso, se habr librado para siempre del encantamiento. Hemos considerado como salidas R y C, que son tambin las variables de estado (por este motivo, en este caso las ecuaciones de estado son las mismas ecuaciones del modelo funcional escritas ms arriba). Alternativamente, podramos haber denido una salida binaria, s, que representase la presencia o ausencia de algn sonido27 : s = 0 si no hay ningn sonido (R = 0, C = 0) s = 1 si hay algn sonido El lector puede ver en el diagrama otras soluciones (con secuencias de estmulos ms largas que la propuesta). Tambin puede observar que, afortunadamente para el propietario de la casa, el estado q0 (el nico con s = 0) es estable para la entrada e0 .
Aqu, a diferencia del caso del sumador, podemos asociar la salida a los estados, no a las transiciones: s = 0 est asociada a q0 , y s = 1 a los otros tres. La funcin de salida es g(q), no g(e, q).
27
0.5
Pragmtica
19 En general, un artefacto28 es un sistema material o conceptual concebido y construido por el hombre, y una herramienta29 es un artefacto que tiene un n especco: el de usarlo como ayuda para la resolucin de ciertos problemas. Un automvil y un edicio son (como el ordenador) artefactos y herramientas, y tambin lo son, aunque se trate de sistemas conceptuales, la lgica y las teoras matemticas. Las obras de arte son artefactos, pero, normalmente, no son herramientas. Todas las herramientas son artefactos (si excluimos las herramientas primitivas que se encuentran en la naturaleza). Los sistemas naturales no son artefactos, y, por tanto, tampoco herramientas (aunque a veces se usen como si lo fueran)30 . Las intenciones y las motivaciones de las personas que tratan con un mismo artefacto (y, en general, con un mismo sistema) pueden ser muy variadas. De ah que el mismo sistema pueda verse de muchas maneras diferentes, o, lo que es igual, que puedan formularse diferentes tipos de modelos en diferentes niveles de abstraccin.
0.5. Pragmtica
Analicemos ahora la vertiente pragmtica de los modelos. Un modelo de un sistema puede servir a la persona que hace uso de l para varios nes: Utilizar el sistema. Esto es, saber qu estmulos tiene que aplicarle para obtener un comportamiento deseado. En este caso normalmente interesa disponer de un modelo funcional, pero (como pone de maniesto el ltimo ejemplo) a veces puede resultar ms til un modelo procesal. Disear, redisear, implementar, reparar o mantener el sistema. En estas actividades suele dominar el uso de modelos estructurales y procesales. El modelo funcional es la entrada a la actividad. Pero ocurre con frecuencia que este modelo no est formalizado, y se hace necesario pasar por una fase previa en la que se establecen las especicaciones formales, como veremos ms adelante. Simplemente, comprender el sistema. La motivacin puede ser pura curiosidad cientca, o un paso previo para alguna de las actividades anteriormente enunciadas. Por ejemplo, en este libro presentamos modelos pensados para que el lector comprenda los ordenadores. El objetivo nal es que el lector se convierta en (o perfeccione sus habilidades como) usuario y/o diseador de ordenadores o de sistemas construidos con l (as lo esperamos). Para una comprensin cabal del sistema hay que estudiar modelos funcionales, estructurales y procesales.
Artefactos y herramientas
Un ordenador es un artefacto: algo hecho con arte. El diseo de ordenadores tiene, en efecto, mucho de artstico. Al mismo tiempo, un ordenador es una herramienta: un objeto que ayuda en la resolucin de problemas (entre los cuales se encuentra el diseo de artefactos, ordenadores incluidos).
20 Un sistema natural particularmente complejo es el hombre. Si se nos pide una descripcin de una persona determinada seguramente daremos una relacin de sus rasgos sionmicos ms destacados, es decir, un modelo esttico y de caja negra (funcional). Para ms detalles, trataramos de describir su personalidad, que incluye rasgos de comportamiento dinmico, y al hacerlo formularamos de manera informal e incompleta algn modelo procesal (le gusta tal cosa, le enfada tal otra...). Pero el hombre, como sistema, es objeto de estudio de diversas ciencias, y en cada una de ellas se han elaborado distintos modelos. La psicologa conductista, por ejemplo, utiliza sobre todo modelos funcionales con los que estudia las respuestas humanas ante los estmulos, mientras que la psicologa cognoscitiva trata con modelos de representacin del conocimiento en la mente humana (modelos estructurales) y de procesamiento de la informacin (modelos procesales). En medicina se utilizan modelos estructurales estticos (anatoma) y funcionales y procesales dinmicos (siologa). Para un socilogo, el hombre es un componente de los sistemas sociales, caracterizado por ciertos rasgos de comportamiento (por tanto, por algn modelo funcional), y para un ingeniero puede ser el objeto ltimo de su profesin (considerando que el objetivo de la ingeniera es la produccin de artefactos que redunden en la mejora de la calidad de vida), un objeto inmediato (diseo ergonmico de interfaces hombremquina), o, incluso, una fuente inspiradora de modelos (en la lnea de lo que algunos llaman binica). En cada caso, el criterio para elegir una descripcin (un modelo) y descartar otras depende, sobre todo, de la adecuacin de esa descripcin al tipo de problemas que se pretende abordar con ella. Como ejemplo de artefacto tomemos el automvil. Para el usuario normal el automvil es una herramienta, y su mejor descripcin es un modelo funcional: le basta con saber cmo responde el vehculo ante los estmulos de girar el volante, pisar el freno, etc. Algunos usuarios especiales, como los pilotos de pruebas, pueden requerir
modelos funcionales ms detallados31 . Pero para los profesionales de la industria del automvil ste no es ya una herramienta, sino el objeto central de su trabajo. En las actividades ligadas al diseo, en general, no bastan los modelos funcionales, y se hacen necesarios modelos estructurales y procesales, diferentes para cada especialidad. Los modelos para la comprensin son generalmente conceptuales, ms o menos formalizados, aunque en ocasiones la comprensin se facilita mediante la presentacin de un modelo analgico (por ejemplo, cuando se explican los rudimentos de la electricidad mediante un smil hidrodinmico). A veces, buscando la mejor forma de comunicar ideas, se mezclan en un mismo diagrama componentes de modelos estructurales y procesales. As ocurre en este libro, en las Figuras 3.15, 3.16, 20.4 y 20.9. Los tpicos modelos para uso son los manuales de usuario; generalmente se trata de descripciones informales, pero como veremos enseguida el usuario del sistema puede ser un diseador de otro sistema (de nivel superior), y en tal caso se hacen necesarios modelos formalizados.
La actividad de diseo
El trmino diseo se aplica tanto en la ingeniera como en actividades muy distantes de ella en el plano axiolgico (los valores esenciales en esas actividades son de naturaleza esttica) y en otras de naturaleza mixta (arquitectura, urbanismo...)32 . Todas estas actividades comparten una orientacin creativa, la idea de ensamblar partes para construir un sistema con ciertos nes. El objeto de la actividad de diseo es siempre
Es bien sabido que todos los usuarios pueden, en ocasiones, beneciarse del conocimiento de modelos estructurales y procesales. Pero cuando un usuario recurre a uno de estos modelos es por una de dos razones: o bien porque su modelo funcional no es suciente para resolver todos sus problemas, o bien porque deja de ser estrictamente un usuario (como ocurre cuando el conductor abre el cap). 32 Diseo: [...] 3. Concepcin original de un objeto u obra destinados a la produccin en serie (D.R.A.E.).
31
0.5
Pragmtica
21
un artefacto. Son artefactos un automvil, un ordenador, un programa, un edicio..., pero tambin un sistema axiomtico, un sistema de transporte, un sistema social... Puede discutirse si el diseo del segundo tipo de sistemas es ingeniera, pero hay principios y herramientas que son de utilidad en el diseo de ciertos tipos de sistemas y que pueden extenderse a otros. En el proceso de diseo se pueden utilizar como herramientas sistemas materiales o conceptuales. La herramienta material ms general y exible es el ordenador, que, con tcnicas de simulacin y visualizacin, permite prever el funcionamiento del sistema que se est diseando; esto es lo que se llama CAD (Computer-Aided Design: diseo asistido por ordenador). Las herramientas conceptuales son las teoras, metodologas y modelos disponibles para el tipo de artefacto a disear. El diseo de un artefacto suele incluir muchas facetas, y con frecuencia slo se dispone de modelos formalizados y sustentados por una teora para algunas de ellas. Esta carencia se suple con heursticos: trucos o reglas empricas cuya utilidad est avalada por la experiencia.
modelo funcional
modelo estructural
modelo procesal
usuario
implementador
diseador
Usuarios y diseadores
El ordenador se puede considerar como una herramienta (punto de vista del usuario) o como un artefacto a construir (punto de vista del diseador). Pero esta diferenciacin no es tan neta como a primera vista pudiera parecer: el diseador de programas de aplicacin es usuario de un sistema operativo; el diseador de ste es usuario de una mquina hardware, diseada haciendo uso de placas, que estn construidas con circuitos integrados... Cada una de estas personas necesita modelos adecuados para ejercer su actividad: en general, el usuario de un sistema necesita un modelo funcional de ese sistema, y utiliza modelos estructurales y procesales de los sistemas que disea con l. Adems de su utilidad dentro de cada actividad, los modelos tambin son vehculos de comunicacin entre unas actividades y otras. Cuando sirven a esta funcin, los modelos suelen llamarse especicaciones. Y, para reducir al mnimo posible los errores de comunicacin, conviene que estos modelos estn expresados en un lenguaje formal. Se habla entonces de especicaciones formales. Para ilustrar lo anterior, volvamos al ejemplo del sumador binario. Partiendo de su especicacin funcional, el resultado del diseo es el modelo procesal de la Figura 0.16 y el estructural de la Figura 0.15. La implementacin en este caso consistira en buscar los componentes fsicos (sistemas electrnicos digitales) que tengan las funcio-
22 nes requeridas por el modelo estructural. Un hecho interesante aparece aqu: al bajar el nivel de abstraccin, en la implementacin pueden ponerse de maniesto restricciones fsicas que obligan a volver sobre las especicaciones del diseo. As, en la especicacin funcional podra haberse decidido un determinado valor, muy pequeo, del parmetro (intervalo entre presentacin de los bits). En el modelo estructural procedente del diseo, este valor es el que debe tener el elemento de retardo. Pero supongamos, ya en la implementacin, que al buscar un componente electrnico que materialice a este elemento33 , no encontramos ninguno con ese valor tan pequeo34 . En este caso sencillo no hay ms solucin que relajar las especicaciones (conformndose con un sistema ms lento); en otros, en los que existen modelos alternativos, es posible rehacer el diseo de modo tal que la implementacin sea factible. La implementacin no siempre consiste en construir un modelo estructural con componentes fsicos. El caso ms notorio es el que se da en programacin. Para el diseo de un programa se parte de unas especicaciones funcionales y se llega a un modelo estructural de componentes abstractos, denido cada uno por su funcin. As, en el ejemplo del programa para el clculo del factorial se podra llegar a la descomposicin en componentes o mdulos que resuma la Figura 0.18(c). Para programas complejos esta descomposicin modular es recursiva: para cada mdulo se establecen un modelo estructural y un modelo procesal, cada componente del modelo estructural vuelve a descomponerse, y as sucesivamente hasta llegar a funciones simples. En cualquier caso, el modelo estructural resultante incluye mdulos denidos funcionalmente. La implementacin consiste en este caso en plasmar esas funciones abstractas en construcciones concretas con un lenguaje de programacin.
Un biestable, como se explica en el Apndice B. O bien lo encontramos pero a un coste prohibitivo. El criterio de coste, aqu omitido, forma parte importante de las especicaciones iniciales del diseo.
34 33
0.6
Jerarquas de abstracciones
23 sus consecuencias. Ya hemos hablado de sistemas, complejidad y modelos, hemos visto tres tipos bsicos de modelos conceptuales para sistemas dinmicos (funcionales, estructurales y procesales), hemos explicado que las descripciones son modelos y que a un mismo sistema pueden aplicrsele descripciones diversas por consideraciones pragmticas. Aclaremos ahora lo que pretendemos signicar con niveles y jerarqua de abstracciones. En general en este Apartado, y particularizando para los ordenadores en el siguiente.
conceptuacin
diseo
Modelos y abstracciones
La modelacin y la abstraccin son actividades intelectuales indisolublemente unidas. En efecto, el modelo slo representa los rasgos de inters del original, es decir, hace abstraccin de los que no son pertinentes para el propsito del modelo. En el ejemplo del sumador binario serial abstraamos detalles como los valores de las tensiones elctricas que puedan corresponder a 0 y a 1, o como el hecho de que los cambios (de 0 a 1 y de 1 a 0) no son instantneos, sino que en realidad35 son graduales, con un tiempo de transicin. Igualmente, abstraamos, en su modelo estructural, la composicin de los dos bloques que lo forman, denindolos por sus modelos funcionales. Si entramos en su composicin, descendemos de nivel de abstraccin.
implementacin
prototipo
pruebas
producto
uso
Acabamos de sugerir que un mismo sistema puede describirse no slo con distintos modelos, sino tambin en distintos niveles de abstraccin.
Entre comillas, porque los cambios se describen como graduales, o como funciones continuas del tiempo, en un nivel de abstraccin inferior, pero si an descendemos ms en el nivel de abstraccin y aplicamos modelos de la fsica cuntica nos encontramos en realidad con cambios nuevamente discretos. No olvidemos la precaucin acerca del modelo y la realidad, mencionada en el prrafo sobre sistemas complejos.
35
24 Pensar en distintos niveles de abstraccin es habitual en las ciencias que tratan con sistemas complejos. Por ejemplo, en las ciencias biolgicas se estudian los niveles bioqumico (biologa molecular), de clula (citologa), de tejido (histologa), de rgano (anatoma) y de organismo. En cada nivel se utilizan los tres tipos de modelos que hemos explicado (aunque no con esos nombres). As, en el nivel de clula la morfologa celular utiliza modelos estructurales (describe a las clulas como ensamblajes de subsistemas), la siologa celular utiliza modelos procesales (describe los procesos internos que explican el metabolismo, el crecimiento, la divisin, etc.) y desarrolla modelos funcionales que son de utilidad para el estudio en los niveles superiores. En general, un nivel de abstraccin para la descripcin de un sistema se caracteriza por: La naturaleza de las variables que representan a las magnitudes (estmulos, respuestas y estados) de inters: pueden ser continuas o discretas, numricas o simblicas. El espacio de estados en el que se formulan modelos procesales. Los componentes que permiten establecer modelos estructurales. Estos componentes estarn descritos como modelos funcionales de sistemas del nivel inferior. Las leyes de composicin que rigen la manera de interconectar componentes. Las leyes de comportamiento que determinan el comportamiento (modelo funcional) de un sistema a partir de su modelo estructural y de los modelos funcionales de los componentes, o bien a partir de su modelo procesal. El lenguaje (o lenguajes) con el que expresamos las leyes y formulamos modelos. Entre estos niveles existe una relacin de orden: los componentes de los modelos estructurales del nivel i son sistemas del nivel i 1. El sistema nal (aqul para el que se construye la jerarqua) viene descrito por los modelos del ms alto nivel. Descender (pasar del nivel i al i 1) en la je-
rarqua es concretar detalles, y ascender es abstraer. Cuando la jerarqua corresponde a un artefacto, y se utiliza para su construccin, la implementacin de sistemas del nivel i implica un descenso al nivel i 1.
Los niveles
El nivel ms bajo (el de menor abstraccin) es el de dispositivo. En l se estudian los sistemas electrnicos bsicos (transistores, resistores, condensadores, etc.) que son componentes del siguiente nivel. En este nivel, los componentes son los materiales semiconductores, y el lenguaje para expresar las interrelaciones y los procesos es el de la fsica del estado slido. (Aqu, si hubiramos de incluir los detalles no electrnicos a que nos referamos en el prrafo anterior, consideraramos otros componentes, como soportes magnticos, pticos y mecnicos).
0.7
25
mquina simblica
+programas
mquina operativa
+programas
micromquina
circuito lgico
circuito elctrico
puertas lgicas
dispositivo
Figura 0.22
Los componentes del nivel de circuito elctrico son los sistemas del anterior, es decir, lo que en la terminologa de la electrnica se llaman, justamente, componentes (discretos): resistores, transistores, etc. Se utilizan aqu lenguajes grcos para indicar las interrelaciones o conexiones entre los componentes, y para expresar el comportamiento de estos componentes y de las estructuras (curvas tensincorriente, cronogramas de las evoluciones de las variables, etc.), as como el lenguaje del lgebra para expresar las leyes de la electricidad. En el nivel de circuito lgico se abstrae la estructura de ciertos sistemas construidos en el nivel anterior: las puertas lgicas. Adems, y paralelamente, se abstrae tambin la naturaleza fsica de
las variables: ya no se trabaja con valores de tensin o de corriente, expresados en voltios o amperios, sino con niveles lgicos (alto y bajo, o 0 y 1). Este nivel puede descomponerse en dos subniveles: el de circuito combinacional y el de circuito secuencial. En efecto, para el diseo de circuitos secuenciales se toman como componentes sistemas combinacionales, como los biestables, diseados con puertas. El lenguaje predominante en este nivel es el del lgebra de Boole. El nivel de circuito lgico no forma parte del contenido de este curso, pero los conceptos ms importantes se presentan en el Apndice B. Los niveles bajos no son exclusivos de la descripcin de ordenadores: son muchos los artefactos electrnicos digitales diseados en el nivel de
26 circuito lgico que no son programables o que, aun sindolo, no son de propsito general (caractersticas ambas que son esenciales de los ordenadores). En tales sistemas es obvio que no tiene sentido abstraer por encima del nivel de circuito lgico. El siguiente nivel es ya caracterstico de los ordenadores: el nivel de micromquina. Sus componentes son registros (elementos en los que se puede registrar y recuperar una informacin binaria de longitud ja), operadores aritmticos y lgicos (que permiten transformar una informacin o combinar varias para dar un resultado), unidades de memoria (que almacenan un conjunto de informaciones), secuenciadores (que generan seales secuenciadas en el tiempo para gobernar a otros componentes) y otros circuitos combinacionales y secuenciales considerados como cajas negras, as como los buses, que permiten interconectar a los elementos. Un componente central en este nivel es la memoria de control, que almacena microinstrucciones. Los modelos procesales describen las secuencias en el tiempo de transferencias de conjuntos de bits entre registros y memorias; estas transferencias estn determinadas por las microinstrucciones almacenadas en la memoria de control. Los modelos funcionales describen las microinstrucciones que acepta la micromquina y sus efectos. En el nivel de mquina convencional (o, simplemente, nivel de mquina) el modelo funcional de un ordenador est compuesto por su repertorio de instrucciones y los convenios de representacin de la informacin. Tanto las instrucciones como las otras informaciones se expresan en binario (cadenas de ceros y unos), que es el lenguaje predominante en este nivel. En los modelos estructurales se abstrae el hecho de que exista una memoria de control con microinstrucciones; se considera integrada en un componente, la unidad central de procesamiento, que en el nivel de micromquina se descompone en circuitos aritmticos, memoria de control, etc. Combinando instrucciones (es decir, programando) se construyen sistemas de niveles superiores.
El nivel de mquina operativa (el de un ordenador acompaado de un sistema operativo) surge como necesidad de arropar al ordenador desnudo (mquina convencional) con programas de uso general que lo hagan ms fcil de utilizar y que optimicen su funcionamiento. El modelo funcional de un ordenador en este nivel incluye al modelo funcional del nivel de mquina y lo ampla con instrucciones virtuales (esencialmente, llamadas al sistema operativo). Este nivel y el siguiente son ya niveles de mquinas virtuales, en el sentido de que las funciones del sistema se implementan mediante una combinacin de hardware y software. Pero en el nivel de mquina operativa el lenguaje de la mquina sigue siendo binario. Si slo dispusiramos de los niveles anteriores la programacin de los ordenadores sera una ardua tarea debido al lenguaje binario. Para facilitarla, se inventaron los procesadores de lenguajes (los clsicos intrpretes y compiladores de lenguajes de programacin, y tambin los programas que materializan a las interfaces de usuario), con los que apareci un nivel nuevo: el de mquina simblica. Hay dos tipos de usuarios en este nivel (renando la jerarqua, podramos descomponerlo en dos subniveles). Los programadores utilizan algn procesador de lenguaje (adems, desde luego, del sistema operativo) que les permite trabajar con una mquina virtual que entiende ese lenguaje. Los usuarios nales trabajan con la mquina virtual que resulta de ejecutar en la mquina operativa los programas desarrollados por los programadores.
Las excepciones
Como todo modelo, la jerarqua presentada es una aproximacin a la realidad. Y como un modelo que pretende ser un marco general para modelos concretos de ordenadores, su aplicacin a esos casos concretos presenta excepciones. Las ms notables se dan en la abstraccin del nivel de circuito lgico al de mquina convencional (o, en sentido contrario, en la implementacin de ste). Segn la Figura 0.22, hay un nivel entre ambos, el de mi-
0.7
27 mware36 . Los sistemas de los niveles inferiores (circuito elctrico y circuito lgico) se implementan siempre en hardware, mientras que los de los niveles superiores (mquina simblica y mquina operativa) se suelen implementar mediante software. El nivel de mquina convencional se puede implementar en hardware o en rmware, como estudiaremos en la Segunda Parte, pero tambin en software (mediante un programa que, ejecutndose en otra mquina, simule al sistema). Si el lector tiene conocimientos sobre lenguajes de programacin ya sabe lo que son los compiladores y los intrpretes37 , utilizados para la implementacin software de los niveles superiores. As, el nivel de mquina simblica queda denido, funcionalmente, por la sintaxis y la semntica de los lenguajes de programacin. Por ejemplo, la mquina C corresponde al lenguaje C, y se implementa mediante un compilador de C que traduce los programas al lenguaje binario de la mquina operativa (o, muy raro pero no imposible en el caso de este lenguaje, mediante un intrprete que se ejecute en la mquina convencional). La mquina simblica denida por el lenguaje de rdenes del sistema operativo se implementa mediante un intrprete de este lenguaje. Y la mquina operativa denida por unas operaciones, las llamadas al sistema, que estudiaremos en la Tercera Parte, se implementa mediante programas intrpretes que forman parte del sistema operativo. A veces la implementacin se hace mediante un proceso de compilacin seguido de otro de interpretacin. As, un programa en Java se compila primero a un lenguaje intermedio (bytecodes) y el resultado se interpreta en una mquina convencional (Apartado 22.4 y Lecciones 23 y 24).
En estas expresiones se adjetivan los sustantivos hardware, software y rmware; sera quizs ms correcto decir implementacin mediante hardware, etc. En la Segunda Parte estudiaremos con detalle el rmware, pero podemos ya avanzar que est formado por microprogramas (conjuntos de microinstrucciones) almacenados en una memoria de control, y esto es lo que dene el nivel de micromquina. 37 En cualquier caso, estas ideas se presentan en la Leccin 22.
36
cromquina. Pero, como veremos en la Segunda Parte, a veces este nivel no existe: los sistemas del nivel de mquina convencional se pueden implementar directamente con componentes que son sistemas del nivel de circuito lgico (Apartado 9.1), y a veces existe otro nivel adicional (el de nanomquina) entre el de micromquina y el de circuito lgico (Apartado 12.2). La existencia de estos niveles est condicionada por las tecnologas disponibles en cada momento (en denitiva, por el nivel de dispositivo, que irradia su inuencia hacia arriba). Conviene insistir en que esta jerarqua de niveles es un marco de referencia til, pero no rgido ni dogmtico. De hecho, en la Segunda Parte de este curso nos situaremos en un nivel intermedio que no aparece en ella: el nivel de microarquitectura. Es el mismo nivel de micromquina cuando ste existe, pero cuando la mquina convencional (es decir, los sistemas descritos en el nivel de mquina convencional) se implementa directamente con circuitos lgicos, el nivel de microarquitectura sirve para describir esa implementacin abstrayendo detalles de tales circuitos. La diferencia entre ambos niveles (micromquina y microarquitectura) se ver claramente en el Apartado 12.7.
Abstracciones e implementaciones
Cuando subimos en la jerarqua hacemos abstraccin, mientras que al bajar entramos en detalles. La abstraccin es obligada para describir a un sistema en un determinado nivel. Y el entrar en detalles es necesario cuando tenemos que implementar el sistema. Los sistemas descritos funcionalmente (especicados mediante un lenguaje adecuado) en un determinado nivel pueden implementarse de varias formas. En los ordenadores, las formas tpicas son la implementacin hardware, la implementacin software y una intermedia, la implementacin r-
28
UCP
datos UAL datos UE/S
instrucciones, y datos (operandos y resultados) direcciones (de MP y de UE/S) seales de control ("micrordenes")
UE/S (unidades de entrada y salida) en el esquema de bloques de la Figura 0.23. Al conjunto de la UC y la UAL se le llama UCP (unidad central de procesamiento, o procesador central). La tecnologa electrnica actual permite encapsular la UCP (y parte de la MP, Apartado 15.7) en un chip, y el resultado se llama microprocesador.
Unidades (subsistemas)
... Puesto que el dispositivo nal ha de ser una mquina computadora de propsito general, deber contener ciertos rganos fundamentales relacionados con la aritmtica, la memoria de almacenamiento, el control y la comunicacin con el operador humano....
Aqu el documento introduce el modelo estructural bsico en el nivel de mquina convencional. Los rganos son los subsistemas denominados UAL (unidad aritmtica y lgica), MP (memoria principal), UC (unidad de control) y
En el escrito se utilizan indistintamente, y con el mismo signicado, instrucciones, rdenes y rdenes de programa. Actualmente se habla siempre de instrucciones. El conjunto de instrucciones diferentes que puede ejecutar un ordenador se llama juego o repertorio de instrucciones.
0.8
29
aqu que el tiempo de disponibilidad de una palabra de la memoria debera ser de 5 a 50 seg. Asimismo, sera deseable que las palabras pudiesen ser sustituidas por otras nuevas a la misma velocidad aproximadamente. No parece que fsicamente sea posible lograr tal capacidad. Por tanto, nos vemos obligados a reconocer la posibilidad de construir una jerarqua de memorias, en la que cada una de las memorias tenga una mayor capacidad que la precedente pero menor rapidez de acceso...
Esbozado el modelo estructural en el nivel de mquina convencional, es preciso describir sus subsistemas mediante modelos funcionales.
Memoria
... Hemos diferenciado, conceptualmente, dos formas diferentes de memoria: almacenamiento de datos y almacenamiento de rdenes. No obstante, si las rdenes dadas a la mquina se reducen a un cdigo numrico, y si la mquina puede distinguir de alguna manera un nmero de una orden, el rgano de memoria puede utilizarse para almacenar tanto nmeros como rdenes.
Es decir, en el subsistema de memoria se almacenan tanto las instrucciones que forman un programa como los datos. Esto es lo que luego se ha llamado arquitectura Princeton (como veremos en el Apartado 15.7, en ciertos diseos se utiliza una memoria para datos y otra para instrucciones, siguiendo una arquitectura Harvard).
... Planeamos una facilidad de almacenamiento electrnico completamente automtico de unos 4.000 nmeros de cuarenta dgitos binarios cada uno. Esto corresponde a una precisin de 240 0, 9 1012 , es decir, unos doce decimales. Creemos que esta capacidad es superior en un factor de diez a la requerida para la mayora de los problemas que abordamos actualmente... Proponemos adems una memoria subsidiaria de mucha mayor capacidad, tambin automtica, en algn medio como cinta o hilo magntico.
La capacidad planeada, expresada en unidades actuales, era 4.000 40/8 = 20.000 bytes, es decir, menos de 2 KB. Obviamente, los problemas a los que se diriga esa mquina no eran los que hoy resuelven los ordenadores... Se habla de una memoria secundaria. En este libro no la contemplaremos hasta la Leccin 5.
... Lo ideal sera... que cualquier conjunto de cuarenta dgitos binarios, o palabra, fuese accesible inmediatamente es decir, en un tiempo considerablemente inferior al tiempo de operacin de un multiplicador electrnico rpido[...] De
La velocidad tambin se ha multiplicado por varios rdenes de magnitud: el tiempo de acceso en las memorias de semiconductores (con capacidades de millones de bytes), es alrededor de una milsima parte de esos 5 a 50 s que no parece que sea posible lograr. Aqu aparece una caracterstica esencial de la memoria principal: la de ser de acceso directo, tambin llamado acceso aleatorio (sera deseable que las palabras pudiesen ser sustituidas por otras nuevas a la misma velocidad), as como el concepto de jerarqua de memorias, ampliamente desarrollado despus, y que estudiaremos en la Leccin 15. De momento slo consideraremos la existencia de una nica memoria, de acceso directo y de lectura y escritura, y nos referiremos a ella como memoria o como MP, indistintamente . El elemento mnimo de almacenamiento es el bit. Un punto de memoria es un mecanismo fsico capaz de almacenar un bit. En la MP, estos puntos de memoria (formados por circuitos con transistores) se agrupan en posiciones, celdas o casillas, en cada una de las cuales se aloja un conjunto de bits, llamado palabra. En cada acceso (de escritura, o grabacin en la memoria, o de lectura, o recuperacin de la memoria) se introduce o se extrae una palabra completa (n bits; valores tpicos de n son 8, 16, 32 o 64, dependiendo del ordenador). Cada una de estas posiciones viene identicada por una direccin, nmero entero comprendido entre 0 y M1, donde M es la capacidad de la memoria: el nmero de posiciones, es decir, de palabras que puede almacenar.
30 Como ilustra la Figura 0.24, para extraer una palabra de la memoria (operacin de lectura) se da su direccin y, tras un tiempo de acceso para la lectura, se tiene en la salida el contenido de esa posicin. Para introducir una palabra en una posicin (operacin de escritura), se indica tambin la direccin y, tras un tiempo de acceso para la escritura, queda la palabra grabada. Decir que la memoria tiene acceso directo, o aleatorio, signica simplemente que el tiempo que transcurre desde que a la memoria se le da una microorden de lectura o escritura hasta que la operacin ha concluido es independiente de la posicin (vase el Apartado 4.12).
micrordenes de la UC: esc lec
direccin
Dos propiedades importantes de la MP son: Una celda nunca puede estar vaca: siempre tiene un contenido formado por un conjunto de bits (ceros y unos). La operacin de lectura no es destructiva: el contenido ledo permanece tal como estaba previamente en la celda; la escritura s lo es: el contenido anterior desaparece y queda sustituido por el nuevo. El trmino palabra se reere, de forma abstracta, a un conjunto (ordenado, es decir, una lista) de bits. Pero lo utilizaremos indistintamente para referirnos tanto a una posicin de la MP como a su contenido.
Como su nombre indica, la UAL incluye tambin las operaciones de tipo lgico (negacin, o NOT, conjuncin, o AND, disyuncin, u OR), que no se mencionan aqu, pero s en otras partes del documento que estamos comentando. Al nal de la cita aparece claramente expresado un ejemplo del problema de la disyuntiva hardware/software, habitual en el diseo de los ordenadores, y que veremos repetirse a lo largo de todo el curso: muchas funciones pueden realizarse indistintamente de manera cableada (por hardware) o de manera programada (por software). La eleccin depende de que predomine el deseo de reducir el coste (soluciones software) o de conseguir una mquina ms rpida (soluciones hardware). En la Segunda Parte estudiaremos una solucin intermedia: la realizacin microprogramada (o por rmware). En resumen, la unidad aritmtica y lgica, o UAL, es un subsistema que puede tomar dos operandos (o slo uno, como en el caso de NOT) y generar el resultado correspondiente a la operacin que se le indique, de entre un conjunto de
0.8
31
utilizacin de los procesos aritmticos habituales, no hay ninguna razn para que el mismo computador no pueda llevar a cabo tal conversin. Podra argumentarse que sta es una operacin que consume mucho tiempo. Sin embargo, no es as [...]. Est claro que un computador de propsito general, utilizado como herramienta de investigacin cientca, est llamado a hacer gran nmero de multiplicaciones sobre una cantidad relativamente pequea de datos de entrada, y de aqu que el tiempo consumido en la conversin de decimal a binario sea solamente un pequeo porcentaje del tiempo total de computacin. Una observacin similar cabe aplicar a los datos de salida...
operaciones previstas en su diseo. En lo sucesivo seguiremos el convenio de representar la UAL por el diagrama de la Figura 0.25.
resultado
UAL
operando 1
operando 2
Figura 0.25
Diagrama de la UAL.
... Al considerar los rganos de clculo de una mquina computadora nos vemos naturalmente obligados a pensar en el sistema de numeracin que debemos adoptar. Pese a la tradicin establecida de construir mquinas digitales con el sistema decimal, para la nuestra nos sentimos ms inclinados por el sistema binario...
Luego de unas consideraciones para justicar esta eleccin, muy ligadas a la tecnologa de la poca (aunque podran aplicarse tambin, en esencia, a la tecnologa actual), contina con las ventajas del sistema binario:
... La principal virtud del sistema binario frente al decimal radica en la mayor sencillez y velocidad con que pueden realizarse las operaciones elementales... ... Un punto adicional que merece resaltarse es ste: una parte importante de la mquina no es de naturaleza aritmtica, sino lgica. Ahora bien, la lgica, al ser un sistema del s y del no, es fundamentalmente binaria. Por tanto, una disposicin binaria de los rganos aritmticos contribuye de manera importante a conseguir una mquina ms homognea, que puede integrarse mejor y ser ms eciente... ... El nico inconveniente del sistema binario desde el punto de vista humano es el problema de la conversin. Sin embargo, como se conoce perfectamente la manera de convertir nmeros de una base a otra, y puesto que esta conversin puede efectuarse totalmente mediante la
La propuesta era para una mquina que, aunque de propsito general, estaba concebida pensando especialmente en su aplicacin a problemas de clculo cientco. Cuando ms tarde aparecieron las primeras aplicaciones comerciales, se vio que poda ser ms eciente hacer las operaciones aritmticas en decimal (aunque, desde luego, codicando los dgitos decimales en binario, es decir, utilizando cdigos BCD, como veremos en la Leccin 3).
Las unidades de entrada y salida, o dispositivos perifricos (que, abreviadamente, se suelen llamar o bien dispositivos o bien perifricos), representadas en la Figura 0.23 como un simple bloque (UE/S), pueden ser muchas y variadas. Se incluyen entre ellas no slo las que permiten la comunicacin con las personas (teclado, pantalla, ratn, impresora, etc.), sino tambin las memorias secundarias (cintas, discos, etc.), como veremos en la Leccin 5.
32
Unidad de control
... Si la memoria para rdenes es simplemente un rgano de almacenamiento, tiene que haber otro rgano que pueda ejecutar automticamente las rdenes almacenadas en la memoria. A este rgano le llamaremos el control ...
La UC examina las instrucciones (rdenes) almacenadas en la memoria y genera las seales (micrordenes)38 precisas para que las otras unidades ejecuten lo que indica la instruccin.
micrordenes (a la UAL, la MP y/o las UE/S)
UC
Figura 0.26
Unidad de control.
... Tiene que ser posible extraer nmeros de cualquier parte de la memoria en cualquier momento. Sin embargo, en el caso de las rdenes, el tratamiento puede ser ms metdico, puesto que las instrucciones de control se pueden poner, por lo menos parcialmente, en secuencia lineal. En consecuencia, el control se construir de forma que normalmente proceda de la posicin n de memoria a la posicin (n+1) para su siguiente instruccin...
... Debe ser posible transferir datos de la memoria al rgano aritmtico, y viceversa. En la transferencia de la informacin desde el rgano aritmtico a la memoria hay que distinguir dos tipos: transferencias de nmeros como tales y transferencias de nmeros que forman parte de rdenes. El primer caso es bastante obvio y no necesita mayor explicacin. El segundo es ms sutil y sirve para explicar la generalidad y sencillez del sistema. Consideremos, a modo de ilustracin, el problema de la interpolacin. Supongamos que hemos formulado las instrucciones necesarias para realizar una interpolacin de orden n en una secuencia de datos. La posicin exacta dentro de la memoria de las (n+1) cantidades que pueden corresponder al valor funcional deseado es funcin de un argumento. Y este argumento es, probablemente, el resultado de una computacin en la mquina. As pues, necesitamos una orden que pueda sustituir un nmero dentro de una determinada orden en el caso de la interpolacin, la posicin del argumento o del grupo de argumentos ms prximo en nuestra tabla al valor deseado . Por medio de tal orden, los resultados de un clculo se pueden introducir en las instrucciones que realizan esa u otra computacin diferente. Esto hace posible que una secuencia de instrucciones se pueda utilizar con diferentes conjuntos de nmeros localizados en diferentes partes de la memoria... ... En resumen, las transferencias a la memoria sern de dos tipos: sustituciones totales, con las que la cantidad previamente almacenada queda borrada y sustituida por un nuevo nmero, y sustituciones parciales con las que la parte de una orden que contiene un nmero de posicin de memoria suponemos que las distintas posiciones de memoria estn numeradas consecutivamente por nmeros de posicin de memoria queda sustituida por un nuevo nmero de posicin de memoria...
Tras la ejecucin de una instruccin que est almacenada en la palabra de direccin d de la memoria, la siguiente a ejecutar es, normalmente, la almacenada en la direccin d + 1 (las excepciones son las instrucciones de bifurcacin, que comentaremos luego, al hablar de los programas).
Cmo la unidad de control genera estas micrordenes es ya algo propio del nivel de microarquitectura, a lo que dedicaremos la Segunda Parte.
38
Estos dos prrafos aluden a una tcnica a la que haba que recurrir en las primeras mquinas para recorrer zonas de memoria: la modicacin de instrucciones. Posteriormente se introdujeron otros mecanismos, que estudiaremos a partir de la Leccin 2, con los que se resuelve el mismo problema de forma ms segura y cmoda, pero la posibili-
0.8
33
denes se almacenan en la memoria por parejas. Como en este computador se va a utilizar el mismo rgano de memoria para rdenes y para nmeros, es conveniente que ambos tengan la misma longitud. Pero nmeros de dieciocho dgitos binarios no seran sucientemente precisos para los problemas que esta mquina ha de resolver. Se requiere ms bien una precisin de al menos 1010 , o 233 . De aqu que sea preferible hacer las palabras sucientemente largas para acomodar dos rdenes... ... Nuestros nmeros van a tener cuarenta dgitos binarios cada uno. Esto permite que cada orden tenga veinte dgitos binarios: los doce que especican una posicin de memoria y ocho ms que especican una operacin (en lugar del mnimo de seis a que nos referamos ms arriba)...
dad de modicar las instrucciones en el curso de la ejecucin de un programa es consecuencia de la misma idea de programa almacenado, y, desde el punto de vista didctico, ayuda a comprender el funcionamiento del ordenador. Analizaremos casos concretos en la Leccin siguiente. Los nmeros de posiciones de memoria son las direcciones, denidas ms arriba al hablar de la memoria.
Formato de instrucciones
Hasta aqu se han presentado el modelo estructural en el nivel de mquina convencional y los modelos funcionales de sus componentes. El modelo funcional de la unidad de control, descrito de manera muy simplicada, es tambin un modelo procesal de la mquina completa. Ahora pasamos al modelo funcional, es decir, a lo que es necesario conocer para usar (programar) la mquina.
... Como la memoria va a tener 212 = 4.096 palabras de cuarenta dgitos [...] un nmero binario de doce dgitos es suciente para identicar a una posicin de palabra... ... Dado que la mayora de las operaciones del computador hacen referencia al menos a un nmero en una posicin de la memoria, es razonable adoptar un cdigo en el que doce dgitos binarios de cada orden se asignan a la especicacin de una posicin de memoria. En aquellas rdenes que no precisan extraer o introducir un nmero en la memoria, esas posiciones de dgitos no se tendrn en cuenta... ... Aunque an no est denitivamente decidido cuntas operaciones se incorporarn en el computador (es decir, cuntas rdenes diferentes debe ser capaz de comprender el control), consideraremos por ahora que probablemente sern ms de 25 , pero menos de 26 . Por esta razn, es factible asignar seis dgitos binarios para el cdigo de orden. Resulta as que cada orden debe contener dieciocho dgitos binarios, los doce primeros para identicar una posicin de memoria y los seis restantes para especicar una operacin. Ahora podemos explicar por qu las r-
O sea, el formato de instrucciones propuesto es el que indica la Figura 0.27, con dos instrucciones en cada palabra. En muchos diseos posteriores se ha seguido ms bien la opcin contraria: palabras relativamente cortas e instrucciones que pueden ocupar una o ms palabras, y lo mismo para los nmeros39 .
8 12 8 12
CO
CD
CO
CD
En general, un formato es la denicin del signicado de cada uno de los bits de una palabra. Se representa grcamente como un rectngulo que cubre todos los bits. En un formato se distinguen partes o campos, grupos de bits con signicado propio. En el formato de la Figura 0.27 hay dos campos para cada una de las instrucciones: uno de ocho bits, CO, que indica de qu instruccin se trata (el cdigo de operacin), y otro de doce bits, CD, que da la direccin de la MP a la que hace referencia la instruccin.
Una excepcin son los llamados VLIWC (Very Large Instruction Word Computers, Apartado 15.3.
39
34
Programas
... La utilidad de un computador automtico radica en la posibilidad de utilizar repetidamente una secuencia determinada de instrucciones, siendo el nmero de veces que se repite o bien previamente determinado o bien dependiente de los resultados de la computacin. Cuando se completa cada repeticin hay que seguir una u otra secuencia de rdenes, por lo que en la mayora de los casos tenemos que especicar dos secuencias distintas de rdenes, precedidas por una instruccin que indique la secuencia a seguir. Esta eleccin puede depender del signo de un nmero (el cero representar positivo a efectos internos en la mquina). En consecuencia, introducimos una orden (la orden de transferencia condicionada) que, dependiendo del signo de un nmero determinado, har que se ejecute la rutina apropiada de entre las dos... ... Frecuentemente, dos secuencias distintas de rdenes terminan en una rutina comn. Por tanto, es preciso indicar al control que en ambos casos siga desde el punto de comienzo de la rutina comn. Esta transferencia incondicionada puede llevarse a cabo bien por el empleo articial de una transferencia condicionada o bien mediante la introduccin de una orden explcita para tal transferencia...
Es decir, los programas constan de una secuencia de instrucciones que se almacenan consecutivamente en la memoria. Normalmente, tras la ejecucin de una instruccin se pasa a la siguiente. Pero en ocasiones hay que pasar no a la instruccin almacenada en la direccin siguiente, sino a otra, almacenada en otra direccin. Para poder hacer tal cosa estn las instrucciones de transferencia de control, o instrucciones de bifurcacin40 . Para completar el modelo funcional sera preciso especicar todas las instrucciones, explicando para cada una su cdigo de operacin y lo que hace la instruccin. Esto es lo que haremos en la Leccin 1, con una mquina muy similar a la descrita en este documento que hemos comentado.
Como veremos en la Leccin 4, las instrucciones de bifurcacin son un caso particular de las de transferencia de control.
40
0.9
35
17
Monoalgortmez y Multialgortmez 18 19 20
21
22
23
24
Conocimientos de Java
Conocimientos avanzados
Smplez 1 2
3
Conocimientos bsicos
5 Algortmez 6 7 Regstrez 8
NIVEL DE MICROARQUITECTURA
Smplez 9 10 11
12
Algortmez 13 14
15
Regstrez 16
Conocimientos bsicos
Conocimientos avanzados
Figura 0.28
En cada Parte se encuentran dos tipos de Lecciones: las que se apoyan en las mquinas cticias para introducir conceptos o para concretarlos, y las que presentan modelos ms generales y variaciones, generalizando los detalles de las otras Lecciones. As, en las dos primeras Partes se empieza con el caso concreto de Smplez, luego se generaliza y nalmente se vuelven a concretar algunos detalles con Algortmez y con Regstrez. La Tercera Parte comienza con una Leccin general a la que siguen tres en las que se desarrollan modelos de sistemas operativos para Algortmez, otra de carcter general sobre el nivel de mquina simblica, y, nalmente, dos Lecciones sobre la Mquina Virtual Java cuya lectura requiere conocer el lenguaje de programacin Java. Las Lecciones estn secuenciadas, como es habitual, para un estudio lineal del libro. Pero se puede navegar por ellas de otras maneras, dependiendo de los intereses del lector y de sus conocimientos previos. La Figura 0.28 resume las dependencias ms importantes entre las Lecciones y puede servir de orientacin, junto con la Tabla
de materias, para establecer posibles trayectorias. Las echas de trazo continuo indican dependencias fuertes, en el sentido de que la Leccin en la que entra una de estas echas es muy dependiente de lo tratado en aquella de la que procede. Las de puntos son dbiles: la Leccin puede asimilarse sin necesidad de haber estudiado la precedente, si bien habr que acudir a ella en algunos momentos (estas referencias concretas se explicitan en el texto de cada Leccin, en los lugares oportunos). Tambin es posible, si se dispone de conocimientos previos, empezar el estudio en lugares intermedios. Los conocimientos bsicos a los que alude la Figura 0.28 se reeren a: En los niveles de mquina operativa y mquina simblica (entrada a la Leccin 17), estructura y funcionamiento en el nivel de mquina convencional. (Pero obsrvese que las Lecciones 18 y 19 se sustentan en el caso concreto de Algortmez, y requieren el conocimiento previo de algunos detalles de las Lecciones 6 y 7). En el nivel de mquina convencional (entrada a
36 la Leccin 3), ideas bsicas de la arquitectura de von Neumann y de programacin en ese nivel. En el nivel de microarquitectura (entrada a la Leccin 12), conceptos de transferencias entre registros y control. (Pero obsrvese tambin que las Lecciones 13 y 14 son dependientes de la 6). Las dos Lecciones sobre Regstrez (8 y 16) pueden estudiarse con bastante independencia de las dems si se dispone de una buena base de conocimientos sobre los niveles de mquina convencional y microarquitectura. Como ejemplos de adaptacin del material a diferentes necesidades, lo hemos utilizado en: Un curso bsico sobre estructura y funcionamiento de los ordenadores impartido dentro de un programa de reconversin de titulados superiores a las tecnologas de la informacin. Un curso sobre programacin (con Pascal) y otro sobre circuitos lgicos precedan a ste. El objetivo era impartir conocimientos imprescindibles a futuros usuarios de los niveles de mquina convencional, mquina operativa y/o mquina simblica. Para un total de sesenta horas lectivas, se siguieron las Lecciones 1, 2, 3, 4, 9, 10, 11, 17, 21 y 22. La asignatura Fundamentos de Ordenadores, incluida en el segundo curso del plan de estudios de la Escuela Tcnica Superior de Ingenieros de Telecomunicacin de Madrid. Es una asignatura cuatrimestral de seis crditos cuyos alumnos han estudiado previamente programacin (con Java) y electrnica digital. El contenido de Fundamentos de ordenadores (que se ampla en Arquitectura de ordenadores) junto con el de Fundamentos de programacin, es el pilar bsico para varias de las asignaturas incluidas en la especialidad de Telemtica: Ingeniera del software, Software de comunicaciones, Sistemas operativos distribuidos, Bases de datos, etc. En los ltimos aos hemos seguido, esencialmente, la siguiente secuencia de Lecciones: 1, 2, 9, 10, 11 (Smplez), 3, 4 (variaciones), 6, 7 (Algortmez), 12 y 15 (micromquina y microarquitectura). Esto representa, aproximadamente, el 40 % del texto.
Introduccin a los sistemas operativos en la asignatura Arquitectura de ordenadores, de cuarto curso, con las Lecciones 18 a 20 (Monoalgortmez y Multialgortmez).
0.10. Resumen
Los ordenadores son sistemas complejos que pueden estudiarse, disearse o utilizarse desde distintos puntos de vista. Estos puntos de vista pueden situarse en una jerarqua de niveles de abstraccin. Los niveles de esta jerarqua aparecen en la Figura 0.22. Y dentro de cada nivel se puede describir la funcin (mediante un modelo funcional), la estructura (mediante un modelo estructural) o el funcionamiento (mediante un modelo procesal). En las descripciones de ordenadores se utilizan frecuentemente los tres modelos, como hemos podido ver al comentar la descripcin clsica de la mquina de von Neumann. Una vez jado este marco conceptual, se puede situar en l el contenido del libro. Es lo que se resume en la Figura 0.28. Terminaremos con una reexin acerca de la secuencia de estudio de los modelos en distintos niveles. Podra pensarse en recorrer la jerarqua ordenadamente, en sentido ascendente o descendente, de manera indiferente. En efecto, en principio cada nivel debera poder estudiarse independientemente de los dems: basta con conocer los modelos funcionales del nivel inmediatamente inferior. Aqu, sin embargo, empezamos en el nivel de mquina convencional, luego descendemos al de microarquitectura y nalmente nos elevamos a los de mquina operativa y mquina simblica. Las echas de la Figura 0.28 sugieren esta trayectoria, que tiene una justicacin: las ideas bsicas de los modelos funcional, estructural y procesal en el nivel de mquina convencional propuestos por von Neumann an se conservan, a pesar de la gran evolucin tecnolgica posterior, y su fuerza es tal que determinan de manera fundamental la mayora de los modelos en los otros niveles.
0.11
Observaciones terminolgicas
37
o de funcionamiento para referirse a lo que nosotros llamamos modelo procesal. La adecuacin del trmino al concepto parece clara: procesal es perteneciente o relativo al proceso. Algunos de los nombres de los niveles de mquinas requieren comentario. Nivel de mquina convencional es una expresin introducida por Tanenbaum en un texto clsico que referenciamos ms adelante. El prejo micro en el nivel de micromquina (nivel de microprogramacin, segn Tanenbaum) slo se reere a un mayor grado de resolucin, o de detalle, que el propio del nivel de mquina convencional; es decir, no guarda relacin alguna con el tamao fsico de la mquina (Apartado 9.1). El nivel de mquina operativa es el que corresponde a una mquina acompaada de unos programas que constituyen lo que se llama un sistema operativo. Cabe discutir si sistema operativo es una traduccin acertada de operating system42 , pero es la utilizada por todos los hispanohablantes (y consagrada por la R.A.E.). Finalmente, el nivel de mquina simblica implica que la mquina procesa smbolos o, lo que es igual, el lenguaje que corresponde a la mquina est denido sobre un alfabeto de smbolos ms rico que {0,1} (vase el Apartado 17.6). En las descripciones de los aos 40 y 50 se utilizaba la palabra orden como sinnimo de instruccin. Por eso, se llamaron micrordenes a las seales generadas por la UC para gobernar a las otras unidades, y esta denominacin s se ha conservado, diferencindola de microinstruccin, como veremos en la Segunda Parte. Asimismo, se hablaba de dgito binario; el trmino bit, como contraccin de binary digit, lo propuso John Tukey en 1949 (frente a otras alternativas que tambin se contemplaron: bigit, binit...) (Howe, 2004). En muchos textos y manuales escritos en espaol se utilizan las abreviaturas CPU (por Central Processing Unit), ALU (por Arithmetic and Logic Unit) y MM (por Main Memory) en lugar de UCP, UAL y MP, respectivamente. El D.R.A.E. dice que un chip es un pequeo circuito integrado que realiza numerosas funciones en ordenadores y dispositivos electrnicos, y para procesador da una denicin an ms sorprendente: uniA operativo (dcese de lo que obra y hace su efecto) le corresponde en ingls operative. El verbo operate debera traducirse por hacer funcionar o explotar. Hace aos se deca sistema de explotacin (y su equivalente en francs s se ha conservado).
42
38
dad central de proceso, formada por uno o dos chips. (Una UCP puede implementarse con uno, con dos, o con cualquier nmero de chips). La denicin clsica de palabra (en tecnologa de ordenadores) es conjunto de bits que se transeren en paralelo entre la MP y la UCP. No obstante, la evolucin tecnolgica ha hecho que esta denicin tenga que matizarse. En efecto, actualmente es frecuente que la MP est organizada por octetos o bytes43 (cada direccin identica a un conjunto de ocho bits) y que en una operacin de lectura o escritura se recupere o grabe una de esas palabras de ocho bits. Las instrucciones y los datos suelen ocupar varios bytes, lo cual, en principio, implicara que para grabarlos o recuperarlos hubiera que hacer varios accesos de escritura o lectura a la memoria. As, en efecto, funcionan muchos sistemas basados en microprocesador y, concretamente, el primitivo PC (Personal Computer) de hace unos aos, que tienen un bus de datos de ocho bits; en ellos puede decirse que la longitud de palabra es ocho bits. Pero para reducir el nmero de accesos a la MP (y, de este modo, aumentar la velocidad del ordenador) lo ms frecuente es que la MP est organizada de tal modo que se puedan leer en un solo acceso conjuntos de ocho, de diecisis, o de treinta y dos bits. As funcionan los actuales pecs, en los que el bus de datos y la longitud de palabra tienen diecisis o treinta y dos bits. Por ejemplo, en un ordenador de treinta y dos bits los accesos a la MP pueden ser a octeto (byte, ocho bits), a media palabra (half word, dos bytes) o a palabra (word, cuatro bytes).
En Lecciones sucesivas, conforme vayamos estudiando la evolucin de mquina de von Neumann, iremos indicando el origen de las aportaciones posteriores.
Los precursores
Es preciso retroceder miles de aos para encontrar los bacos como primitivas herramientas de clculo. Se ha dicho que el primer computador fue el mecanismo de Antikythera, sistema mecnico para clculos de astronoma diseado en Grecia hace unos dos mil aos (Morris, 1984). Pero es mucho ms conocido que Pascal construy en 1642 una calculadora basada en ruedas-contadoras dentadas; Leibniz, en 1671, la perfeccion, aadindole las operaciones de multiplicacin y divisin, aunque su comercializacin tuvo que esperar (por motivos tecnolgicos) hasta bien entrado el siglo XIX, extendindose su uso desde entonces y hasta muy recientemente, cuando la tecnologa electrnica termin por sustituir a la mecnica. Suele mencionarse como uno de los precursores ms importantes a Charles Babbage, que desde 1832 hasta su fallecimiento en 1871 trabaj en el diseo de su mquina analtica, primer modelo de computador automtico de uso general, en el que se encuentra ya la especializacin de unidades funcionales: memoria, unidad aritmtica, control y entrada/salida. Sus contemporneos consideraron el invento como producto de una mente febril (y no les faltaba algo de razn: la mquina era prcticamente irrealizable con la tecnologa de la poca). Asombra hoy su capacidad para alumbrar ideas que habran de esperar casi un siglo para ser llevadas a la prctica (concepto de programa, de bucle, etc.). El libro de Morrison y Morrison (1961) est integramente dedicado a las mquinas de Babbage. Babbage pens en las tarjetas perforadas (inventadas por Jacquard para los telares) como soporte para almacenamiento de programas y datos. Poco despus, en Norteamrica, Herman Hollerith las utilizaba para el tratamiento estadstico de grandes volmenes de informacin; sus mquinas se utilizaron para el censo norteamericano de 1890 y rpidamente encontraron aplicaciones comerciales. Para su fabricacin, Hollerith fund la empresa que algo ms tarde se convertira en la International Bussines Machines. Por otra parte, est la evolucin de los autmatas, meras curiosidades de saln de los siglos XVII al XIX que imitaban movimientos humanos; hacia 1910 Leonardo Torres Quevedo introduca el concepto moderno
0.12
Notas histricas
39
de autmata44 , y sugera que, combinados con las tcnicas de clculo electromecnicas, podran sustituir al hombre en las cadenas de produccin. Como en el caso de Babagge, esta idea tuvo que esperar algunos aos para que la tecnologa permitiera su realizacin. Y tambin como Babbage, Torres se adelant a su tiempo con varios conceptos informticos; por ejemplo, el tiempo compartido: para mejor aprovechar su aritmmetro (construido en 1920) concibi la posibilidad de conectarle varios terminales. Pero la aportacin ms importante en este campo de los autmatas es el famoso artculo de Alan Mathison Turing en el que introduca, tericamente, el concepto de autmata abstracto de uso general para procesamiento de la informacin (Turing, 1936). Segn muchos autores, este trabajo result ser fundamental para el desarrollo posterior de los ordenadores (en l, por ejemplo, ya se sugera la disyuntiva hardware/software mencionada en el Apartado 0.8, y, para algunos, contena el germen de la idea de programa almacenado, vase ms adelante). Segn Eames (1973), Fusionando estas tres lneas de desarrollo [calculadoras, mquinas estadsticas y autmatas], hacia la mitad del siglo XX, lleg a hacerse posible un tipo totalmente nuevo de mquina: el computador digital electrnico.
44
De una entrevista publicada en 1915: Los antiguos autmatas [...] imitaban el aspecto y los movimientos de los seres vivos, pero esto no tiene mucho inters en la prctica, y lo que buscamos es un tipo de aparato que obvie los meros gestos visibles del hombre e intente conseguir los resultados que obtiene una persona para, de ese modo, reemplazar a un hombre por una mquina
(Torres and his remarkable automatic devices, Scientic American, 113, 6, nov. 1915, p. 296). Segn Randell (1982), Hay pocas razones para dudar de que, de haber existido una clara necesidad, Torres habra construido un ingenio analtico completo [...] No fue hasta la guerra de 1939-1945 que el inters por las mquinas de clculo automtico lleg a ser bastante fuerte para crear el entorno que permiti llevar a la realidad el concepto de Babbage. Sobre la obra de Torres Quevedo hay una extensa monografa de Garca Santesmases (1980).
40
el desarrollo de una mquina comercial. No creamos que fuera difcil venderles algo cuyo futuro era tan obviamente brillante, pero estbamos equivocados... As, Eckert y yo, como tantos otros inventores, tuvimos que autonanciar nuestro trabajo. Hasta que casualmente me encontr con unos amigos de la ocina del Censo y me dijeron que queran un computador, y entonces pudimos arrancar, formando nuestra propia compaa. El resto es historia (Mauchly, 1975). Parte de la historia es que la Eckert-Mauchly Computer Corp. construy en 1948 un segundo computador, el BINAC, y desarroll el UNIVAC 1, primer computador comercial45 . Un ao antes de su lanzamiento, en 1950, la empresa fue absorbida por Remington Rand. Pero otro hecho histrico, que refuerza el valor de la frase de Smith citada al comienzo de este Apartado, es que en 1973 una decisin judicial desestim una demanda de doscientos millones de dlares interpuesta por Sperry Rand contra Honeywell por infraccin de la patente de Eckert y Mauchly. Esta decisin declar invlida tal patente, atribuyendo los derechos de la invencin del computador electrnico digital a John Vincent Atanasoff, que entre 1939 y 1942 haba diseado y construido con ayuda de Clifford Berry una mquina llamada ABC (Atanasoff-Berry Computer) (Mollenhoff, 1974). Ms recientemente, algunos autores (Burks y Burks, 1987 y Mollenhoff, 1988) han investigado sobre los trabajos de Atanasoff y sus inuencias en los ms conocidos de Aiken, Eckert, Mauchly, von Neumann, etc.
en el modelo de todos los diseos posteriores. ste es el informe del que hemos reproducido algunos prrafos en esta Leccin. En un libro apologtico, Goldstine (1972) presentaba a von Neumann como la gura intelectual ms importante del renacimiento austrohngaro tras la primera guerra mundial. No obstante, vase lo que escriben Patterson y Hennessy a este respecto: En 1944, von Neumann empez a colaborar en el proyecto ENIAC. El grupo pretenda mejorar la forma de introducir los programas y se discuti la posibilidad de almacenar los programas como nmeros; von Neumann ayud a cristalizar las ideas y escribi una memoria en la que propona un computador de programa almacenado llamado EDVAC (Electronic Discrete Variable Automatic Computer). Herman Goldstine distribuy la memoria y puso en ella el nombre de von Neumann, lo que caus gran consternacin a Eckert y Mauchly, cuyos nombres se omitieron. Esta memoria ha sido el origen de la expresin comn computador von Neumann. Algunos inventores pioneros en el campo de los computadores creen que este trmino concede demasiado mrito a von Neumann, que conceptualiz y escribi las ideas, y demasiado poco a los ingenieros, Eckert y Mauchly, que construyeron la mquina46 . Como la mayora de los historiadores, los autores de este libro (ganadores de la Medalla von Neumann del IEEE en 2000) creen que los tres desempearon un papel clave en el desarrollo del computador de programa almacenado. El papel de von Neumann al escribir las ideas, generalizarlas y reexionar sobre los aspectos de programacin fue esencial para transferir las ideas a una audiencia ms amplia. (Hennessy y Patterson, 2003, pp. 67-68). Se ha debatido mucho sobre la paternidad de la idea del programa almacenado. Turing trabaj junto con von Neumann en el IAS durante dos aos, al nal de los 30 (Tropp, 1974). Parece que durante la Segunda Guerra Mundial ambos se entrevistaron en varias ocasiones, pero se conoce poco de la actividad de Turing en este perodo, por su vinculacin con proyectos secretos
46 Curiosamente, en las ediciones anteriores conclua aqu este prrafo diciendo: Por este motivo, en este libro no aparecer tal expresin.
El programa almacenado
Dice Mauchly (1975) haber tenido la idea de utilizar lneas de retardo para almacenar el programa y los datos, pero que para entonces ya haba comenzado la construccin del ENIAC y preri terminarlo en lugar de recomenzar el diseo. En cualquier caso, el concepto de programa almacenado se gesta tambin en la Universidad de Pennsylvania, y aparece en la propuesta para el EDVAC (von Neumann, 1945). En 1946 John von Neumann comienza, en el Institute for Advanced Study (IAS) de la Universidad de Princeton, el desarrollo del ordenador IAS, cuya arquitectura, descrita en el famoso informe que escribi junto con Arthur Burks y Herman Goldstine (Burks et al., 1946), se convertira
Un ejemplar de esta mquina, de la que se vendieron cuarenta y ocho unidades a un precio de 250.000 dlares, se exhibe en el Computer Museum de Boston.
45
0.13
Orientaciones bibliogrcas
41
El de Patterson y Hennessy (2003)47 es ms avanzado. Es, segn una opinin bastante extendida que compartimos, el mejor libro publicado sobre arquitectura de ordenadores en el sentido clsico (niveles de mquina convencional y microarquitectura, y medidas de prestaciones). Pero para abordar su estudio se requiere previamente el de un libro ms bsico (como ste). El de Hennessy y Patterson (2004) es una versin suavizada de la primera edicin del anterior. Los autores han reelaborado la presentacin, aadiendo guras y cuadros y eliminando material de detalle, pero (y slo es una apreciacin personal) no lo han convertido en el tratamiento de la interfaz hardware/software que promete su ttulo: sigue dando una perspectiva muy ligada al hardware. Algunos captulos, como el 6 (encadenamiento) y el 7 (jerarqua de memorias) son magncos por su claridad. Y libros sobre sistemas operativos: El de Silberschatz et al. (2004) es seguramente el ms utilizado como texto en asignaturas dedicadas a este tema. Explica los conceptos ms importantes y los ilustra con su implementacin en Linux y en Windows XP. Tiene asociado un sistema simplicado (pero no tanto como Multialgortmez), Nachos, cuyo simulador es un programa libre que se puede descargar de la Red. El de Tanenbaum (2001) abarca los mismos conceptos, e incluye un captulo sobre sistemas multimedia. Utiliza como ilustraciones Unix y Windows 2000. El de Tanenbaum y Woodhull (1997) es una nueva edicin de un clsico (Tanenbaum, 1987) que describe con todo detalle el cdigo en lenguaje C de una implementacin de Unix llamada Minix. Como detalle anecdtico, el origen de Linux est en el empeo de Linus Torvals, cuando era estudiante de segundo curso en la Universidad de Helsinki en 1991, en mejorar este sistema (que nunca pretendi ser ms que una herramienta didctica) y hacerlo libre (entonces no lo era: se venda con el libro). En la web se puede acceder a muchos cursos y materiales. La WWW Computer Architecture Page, en la direccin http://www.cs.wisc.edu/~arch/www/, contiene cientos de enlaces. Un documento particularmente interesante es el titulado CPU Design Howto, en http://www.tldp.org/HOWTO/48 .
Respetando el deseo de los autores, iremos alternando sus nombres en las referencias a ste y a su segundo libro. 48 Muchas de las referencias que citaremos son direccio47
britnicos (Tropp, 1993). Se dice que von Neumann recomendaba siempre a sus colaboradores la lectura del artculo de Turing (1936), y se ha especulado sobre la posible inuencia de ste en la gestacin del concepto de programa almacenado (Randell, 1972). En cualquier caso, aqu la historia nos traslada nuevamente a Cambridge (Inglaterra), porque, adelantndose al EDVAC, el EDSAC de Maurice Wilkes sera el primer ordenador de programa almacenado en entrar en funcionamiento, en 1949 (Wilkes, 1985).
42
Pasamos ya a citar referencias especcas sobre el contenido de esta Leccin. El enfoque sistmico y las teoras generales de sistemas (o teoras de sistemas generales) tienen una larga tradicin y una extensa bibliografa. Para profundizar ms en el asunto, Klir (1991) presenta una amplia perspectiva de la teora y una recopilacin de treinta y cinco artculos clsicos. Jerarquas de niveles de abstraccin para sistemas complejos se elaboran, por ejemplo, en Miller (1987) (para sistemas biolgicos y sociales) y en Sez (1990) (para sistemas omticos). Ya en el campo de la descripcin de ordenadores, las jerarquas de niveles ms conocidas son la de Bell y Newell (Siewiorek et al., 1982) y la de Tanenbaum (1990). La que aqu hemos presentado es una sntesis de ambas, en el sentido de que pretende fusionar la orientacin estructural de la primera con el nfasis funcional de la segunda, y evidencia estos puntos de vista con el uso de modelos. Una importante aportacin conceptual en estas jerarquas (que aqu no hemos explicado) es la propuesta de Newell (1982) sobre un nuevo nivel de abstraccin por encima del de mquina simblica, el nivel de conocimiento, en el que se enmarcan los trabajos sobre inteligencia articial e ingeniera del conocimiento. Dietterich (1986) y Clancey (1989) han estudiado los procesos de aprendizaje en este nivel, y Basden (2002) ha hecho una revisin y un profundo anlisis losco. La descripcin de la conguracin bsica de von Neumann se encuentra en todos los libros sobre estructura, arquitectura u organizacin de ordenadores. Aqu hemos optado por basarnos en la fuente original (Burks et al., 1946). En realidad, hay un documento anterior, la memoria a la que se reeren Patterson y Hennessy en el prrafo reproducido ms arriba (von Neumann, 1945). Pero su lectura es ms difcil, y hasta hace pocos aos no se haba publicado el texto completo, cosa que hicieron Godfrey y Hendry (1993), con un magnco trabajo de reconstruccin del texto y de comparacin entre la propuesta de von Neumann y la mquina (EDVAC) que realmente se construy. Para detalles histricos, hay una revista cuatrimestral, Annals of the History of Computing (publicanes de la web. Como es sabido, un problema es que estas pginas suelen cambiar de direccin, o desaparecer. Una solucin parcial es la existencia de un gran archivo que almacena contenidos publicados desde 1996. Su direccin es: http://www.archive.org.
da por el I.E.E.E.), y son muchos los libros editados con recopilaciones de trabajos de inters histrico; entre ellos, el de Randell (1982), donde pueden encontrarse artculos de Torres, Zuse, Aiken, von Neumann, etc., y el de Pylyshyn y Bannon (1989), que incluye otros estudios sociales sobre la informtica. Para datos prehistricos, puede leerse, por ejemplo, Price (1984), o Corge (1975).
0.14. Ejercicios
Todas las Lecciones terminan con un Apartado que tiene este ttulo. Ejercicio debe entenderse en un sentido amplio. Algunos son problemas bien denidos, con una o varias soluciones concretas, pero otros son invitaciones al lector para ejercitar su capacidad creativa y comprobar que ha asimilado (hecho suyo) el contenido de la Leccin (y pueden no tener soluciones en el sentido de un problema clsico de libro de texto). De los que siguen, los seis primeros son del primer tipo (tres se reeren a sistemas continuos y los otros tres a sistemas discretos), y los restantes, del segundo. 1. Ample los modelos de las presas y los predadores (ejemplo 2 del Apartado 0.4) considerando una nueva variable, RN, que representa la cantidad de recursos naturales. RN inuye en las tasas de natalidad y de mortalidad de ambas especies, y, recprocamente, las poblaciones inuyen tambin sobre RN: su tasa de crecimiento se supondr constante, pero su tasa de agotamiento ser proporcional al nmero total de presas y predadores. 2. Para estudiar los cambios en una poblacin de animales herbvoros se decide empezar por tener en cuenta dos variables bsicas, el nmero total de animales (H) y la cantidad de pasto (P ), y las siguientes relaciones dinmicas: (a) Los animales, en condiciones favorables (pasto suciente), se reproducen con una tasa de natalidad constante (TN /ao)) y mueren con una tasa de mortalidad constante (TM /ao; TN > TM ), de modo que, en esas condiciones: dH dt = TN H TM H individuos/ao. (b) El pasto se genera a partir de las sustancias minerales del suelo, de los residuos orgnicos y de la energa solar (considerados todos fuentes inagotables), de modo que, si
0.14
Ejercicios los animales no lo consumiesen, crecera exponencialmente: dP = K P dt (c) Los animales, cuando hay alimento suciente, consumen el pasto con una tasa constante, TC , que se mide en Kg/(individuoao). (d) Se considera que hay alimento suciente si la cantidad de pasto para cada herbvoro, PH = P/H, es igual o superior a 10 Kg/individuo. Denimos una variable auxiliar, DP , que representa la deciencia de pasto por animal, del siguiente modo: DP = 0 si PH 10 DP = 1 PH /10 si PH < 10 (e) En condiciones de alimento insuciente se producen los siguientes fenmenos: La tasa de mortalidad aumenta en una cantidad proporcional a DP , con una constante de proporcionalidad KM . La tasa de natalidad disminuye en una cantidad proporcional a DP , con una constante de proporcionalidad KN . La tasa de consumo de pasto por animal se divide por (1 + KP DP ). Con todos estos datos, elabore un modelo cualitativo en forma de diagrama causal y un modelo procesal en forma de ecuaciones diferenciales. Analice cualitativamente la dinmica del sistema (tambin puede simularlo en un ordenador), y razone si con este modelo podra explicarse la extincin de los dinosaurios.
43
TN = KN fN (A/P ); TM = KM fM (A/P ) Tecnologa, T . Aumenta con una tasa de innovaciones tecnolgicas, TT , proporcional al producto A P . Elabore, primero, un modelo estructural (diagrama causal). Despus, un modelo procesal (ecuaciones diferenciales). Parece razonable que las funciones fF , fN y fM no sean lineales; dibuje las formas aproximadas que podran tener. 4. Un detector de paridad es un sistema digital con una entrada y una salida, ambas binarias. El valor de la salida debe ser 0 si el nmero total de 1 que se han introducido a la entrada, desde que comenz a funcionar, es par (o ninguno), y 1 si es impar. Obtenga un modelo procesal de este sistema expresado en las mismas formas que el de la Figura 0.16. 5. Mi perro tiene un carcter de ordinario apacible. Normalmente est tranquilo, y en cualquier caso puede devolvrsele a ese estado ofrecindole un hueso. Si huele a un desconocido, ladra y se pone nervioso. Si se intenta quitarle un hueso grue y se irrita. Si yo le regao se queda tranquilo, pero si es un desconocido se pone nervioso e irritado. Cuando est nervioso e irritado, muerde. He llegado a la conclusin de que se puede prever su comportamiento con un modelo procesal que tiene en cuenta cinco entradas, cuatro estados y tres salidas. Qu modelo es se? (Problema adaptado de Gilbert, 1976). 6. Explorando un lugar lejano y misterioso, descubre usted un extrao artilugio de origen desconocido. Es una caja negra y hermtica cuya monotona slo se ve interrumpida por la presencia de tres elementos: una palanca en su parte frontal y dos protuberancias, una verde (V) y otra roja (R) en su parte superior. La palanca est bajada (b), pero parece admitir dos posiciones: arriba (a) y abajo (b). Por su aspecto, dirase que las protuberancias son luces, aunque en este momento estn apagadas. Ms curioso que precavido, decide usted experimentar, y comprueba que, en efecto, al mover la palanca se desencadena una secuencia de apagados y encendidos de las lmparas, con un perodo de un minuto. Toma nota de todas sus acciones sobre la palanca y de sus efectos, y, codicando los efectos observados as:
3. Se pretende establecer un modelo bsico para el estudio de la dinmica de una poblacin limitada por la cantidad total de alimentos, pero tal que la poblacin, adems de consumir alimentos, puede inuir en su elaboracin por medio de innovaciones tecnolgicas. Se consideran las siguientes variables como principales: Alimentos, A. Disminuye segn una tasa de consumo de alimentos, TC , proporcional a la poblacin, y aumenta con una tasa de fabricacin de alimentos, TF , funcin del nivel de tecnologa: TF = KF fF (T ) Poblacin, P . Las tasas de natalidad (TN ) y de mortalidad (TM ) dependen de la cantidad de alimentos por persona:
44
00: luces apagadas, 01: V apagada, R encendida, 10: R apagada, V encendida, 11: las dos encendidas, registra el siguiente comportamiento: instante 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 palanca b a a a a b a a b a b b b b a a a b a a b b b luces 00 01 10 00 01 10 01 10 11 10 11 01 00 00 01 10 00 00 01 10 11 01 00
Cambian estas nuevas observaciones sus hiptesis sobre el sistema? Qu nuevas investigaciones puede hacer, y qu otros modelos podra proponer? 7. La Figura 0.28 es un modelo de este libro. De qu tipo? Identique sus aspectos sintcticos, semnticos y pragmticos. 8. En el Apartado 0.3 se sugera que el programa principal de la Figura 0.8(c) podra modicarse automticamente para que el sistema mejorase su comportamiento, y, de este modo, aprendiese. Trate el lector de extraer sus propias conclusiones, teniendo en cuenta conocimientos bsicos de la psicologa: refuerzo (premio y castigo), representacin del conocimiento, etc., y de extrapolar (por ejemplo, cundo podra decirse que el sistema comprende?). 9. Trate de reconstruir algunas de las consideraciones que cabe imaginar que se hicieran von Neumann y sus colaboradores. Por ejemplo, habiendo llegado a la conclusin de jar en veinte bits la longitud de las instrucciones, analice las distintas alternativas de diseo en cuanto a nmero de instrucciones diferentes y capacidad de memoria direccionable. 10. Continuando con el tipo de Ejercicio anterior, suponga que se planteasen otro formato de instrucciones, en el que hubiese tres campos: CO, CD1 y CD2, donde CD1 y CD2 indican direcciones de MP en las que se encuentran dos operandos. Las instrucciones que operan sobre dos operandos dejan el resultado en la palabra de memoria inicialmente ocupada por el primero de ellos. Qu ventajas y qu inconvenientes tendra este tipo de ordenador con respecto al anterior? 11. Identique, en cada uno de los niveles de la Figura 0.22, los elementos caractersticos de cada nivel de abstraccin que se han enunciado en el Apartado 0.6. 12. Segn algunos orculos (no carentes de fundamento) una tecnologa basada en molculas orgnicas podra sustituir a la actual de los semiconductores. Especule sobre la validez, tras esta eventual mutacin tecnolgica, de la jerarqua de la Figura 0.22.
(a) Establezca un modelo procesal que explique este comportamiento, y un modelo estructural que pueda servir de base para la implementacin, con nuestra tecnologa, de un sistema que muestre el mismo comportamiento. Podramos asegurar que tiene el mismo modelo funcional? (b) Sigue usted experimentando y observa esto: instante 23 24 25 26 27 28 palanca b a a a b b luces 00 11 10 10 01 00