Sie sind auf Seite 1von 66

CURSO DE ORDENADORES Conceptos bsicos de arquitectura y sistemas operativos

Quinta edicin
2a edicin en Servicio de Publicaciones ETSIT-UPM

Gregorio Fernndez

Escuela Tcnica Superior de Ingenieros de Telecomunicacin Universidad Politcnica de Madrid

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

Primera parte: La mquina desnuda, o el nivel de mquina convencional


1. Smplez 1.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Modelos estructural y procesal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Modelo funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I

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 . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

315 315 315 316 316

Segunda parte: El interior de la mquina, o el nivel de microarquitectura


9. Componentes de los modelos estructurales 9.1. Propsito . . . . . . . . . . . . . . . . 9.2. Ruta de datos y sistema de control . . . 9.3. Componentes de las rutas de datos . . . 9.4. La memoria principal . . . . . . . . . . 9.5. Los perifricos . . . . . . . . . . . . . 9.6. La ruta de datos de Smplez . . . . . . . 9.7. Resumen . . . . . . . . . . . . . . . . 9.8. Observaciones terminolgicas . . . . . 9.9. Notas histricas . . . . . . . . . . . . . 9.10. Orientaciones bibliogrcas . . . . . . 9.11. Ejercicios . . . . . . . . . . . . . . . . 10. Elementos de los modelos procesales 10.1. Propsito . . . . . . . . . . . . 10.2. Sobre los modelos procesales . . 10.3. Lenguajes . . . . . . . . . . . . 10.4. Modelo procesal de Smplez . . 10.5. Cronogramas de Smplez . . . . 10.6. Comentarios . . . . . . . . . . . 10.7. Resumen . . . . . . . . . . . . 10.8. Observaciones terminolgicas . 10.9. Notas histricas . . . . . . . . . 10.10. Orientaciones bibliogrcas . . 10.11. 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

A.4. A.5. A.6. A.7. A.8. A.9.

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.

Madrid, noviembre de 2004

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.

Leccin 0. Modelos y niveles

0.2. Sistemas y modelos


Un ordenador es un sistema complejo que puede describirse mediante diferentes modelos en distintos niveles de una jerarqua de abstracciones1 . Todo lo que sigue en esta Leccin est dedicado a explicar el signicado de este escueto (y posiblemente crptico para el lector) mensaje, y a extraer consecuencias de l.

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

Leccin 0. Modelos y niveles

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

Sistema y modelo. Figura 0.3. Sintaxis, semntica y pragmtica de los modelos.

Aspectos semiticos de los modelos


La semitica es una teora lgica general de los sistemas de smbolos. Siendo los lenguajes sistemas de smbolos, la semitica ejerce la funcin de un metalenguaje. Se distinguen tres niveles en el estudio de los lenguajes, lo que da lugar a los tres campos de la semitica: la sintaxis se limita nicamente a los smbolos y a las leyes para su combinacin (reglas gramaticales); la semntica se ocupa del signicado de los smbolos, es decir, de su relacin con los objetos que designan; y la pragmtica trata de las relaciones de los smbolos y construcciones del lenguaje con las personas que los utilizan. As, y en el lenguaje natural, al enunciar cosas como ordenador es un sustantivo u ordenador es tambin un adjetivo nos movemos en el campo de la sintaxis; al decir un ordenador es un artefacto pensado para liberar a la mente humana de tareas rutinarias u ordenador (sustantivo) es un vocablo de origen francs que designa a ciertas mquinas tambin llamadas computadores estamos en el campo de la semntica, y al armar que hay quien ve un peligro en los ordenadores o para la gran mayora de sus usuarios el ordenador es una magnca herramienta pasamos al campo de la pragmtica.

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

Leccin 0. Modelos y niveles

sintaxis

semntica

pragmtica

materiales

icnicos analgicos

comprensin

uso conceptuales (abstrados) formalizados no formalizados funcionales estructurales procesales diseo/ implementacin

Figura 0.4

Clasicacin de los modelos.

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

i(t) = dq/dt E(t) +


2

dq dq L + R + q/C = E(t) dt 2 dt

Figura 0.5

Un ejemplo de modelo analgico.

0.3

Funcin, estructura y proceso

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.

0.3. Funcin, estructura y proceso


Modelos funcionales
Los modelos funcionales describen la funcin del sistema: sus acciones sobre el entorno y sus reacciones a ste11 . De todas las interacciones posibles entre el sistema y el entorno se seleccionan algunas para el modelo y se clasican en estmulos (inuencias del entorno sobre el sistema) y respuestas (inuencias del sistema sobre el entorno). Como ilustra la Figura 0.6, el modelo del sistema es una caja negra12 que recibe estmulos (o entradas) y genera respuestas (o salidas). La respuesta ante un determinado estmulo (o sucesin de estmulos) es el comportamiento del sistema para ese estmulo. Un modelo funcional de un sistema es una descripcin de todos sus comportamientos13 . Es decir, una descripcin de todos los posibles estmulos y
Funcin: Capacidad de actuar propia de los seres vivos y de sus rganos, y de las mquinas o instrumentos (D.R.A.E.) 12 Esta es una denominacin establecida, aunque caja opaca se ajustara ms a la idea. 13 No se olvide que funcional se reere a funcin, no a funcionamiento. El funcionamiento (actividad interna) de un sistema se describe mediante un modelo procesal.
11

estmulos

sistema

respuestas

modelo = {comportamientos} = {respuesta = f(estmulos)}

Figura 0.6

Modelo funcional (caja negra).

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

Leccin 0. Modelos y niveles

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

modelo = {modelos funcionales subsistemas} + {interrelaciones}

Figura 0.7

Modelo estructural (caja transparente).

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

Funcin, estructura y proceso

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

(a) componentes fsicos

entrada

UCP

salida

MP

(b) componentes conceptuales

dato

programa principal

resultado

funcin

(c) componentes abstractos para un programa

Figura 0.8. Descomposiciones estructurales de un ordenador.

10

Leccin 0. Modelos y niveles

Puede aprender un ordenador?


Estructura y funcin suelen aparecer claramente diferenciadas en los sistemas articiales, pero no en los seres vivos (y lo mismo ocurre entre funcin y proceso)17 . Esto es as porque los seres vivos (y los sistemas sociales) cambian estructuralmente con el tiempo, lo que les permite adaptarse y aprender. Pero tambin las mquinas pueden estar dotadas de esa capacidad. Algunas, por su propia concepcin: los autmatas celulares y las redes neuronales. Otras, como el ordenador, por la versatilidad que se deriva del hecho de ser programable. Volvamos a los modelos estructurales de la Figura 0.8. En el primero no tiene sentido pensar en modicaciones estructurales: las placas se conectan en una conguracin ja y ni ellas ni sus partes cambian. Lo mismo puede decirse, en principio, en el segundo modelo estructural, aunque cabe sealar que se han propuesto algunos modelos adaptables para la unidad central de procesamiento (vase nota a pie de pgina en el Apartado 4.9). Consideremos, sin embargo, el modelo de la Figura 0.8(c). Ms arriba hemos concretado diciendo que el programa principal lee un dato, escribe un resultado y realiza algunas transformaciones, mientras que la funcin calcula el factorial. Pero el mismo modelo es aplicable de manera ms general. Analicemos otra situacin. Supongamos que el programa principal recibe como datos una secuencia de letras que forman una frase en espaol y entrega como resultados una secuencia de sonidos por un altavoz, y que la funcin modica la estructura del proLa anttesis entre estructura y funcin, morfologa y siologa est basada en una concepcin esttica del organismo. En una mquina hay una disposicin ja que puede ponerse en movimiento, pero tambin puede permanecer en reposo [...] Realmente, esta separacin entre una estructura preestablecida y los procesos que ocurren en la estructura no se aplica al organismo vivo [...] Las llamadas estructuras son procesos lentos de larga duracin, y las funciones son procesos rpidos de corta duracin. (L. von Bertalanffy: Problems of Life: An Evaluation of Modern Biological and Scientic Thought. Watts, Londres, 1952).
17

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

Funcin, estructura y proceso

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

modelo = {funcin de transicin, funcin de salida}

Figura 0.9

Modelo procesal (caja abstracta).

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

Leccin 0. Modelos y niveles

0.4. Ejemplos de sistemas y modelos


Los ejemplos que siguen se reeren a sistemas de distinta naturaleza. El lector puede encontrar, dependiendo de sus conocimientos previos, mayor o menor dicultad para entenderlos, pero esperamos que, en su conjunto, estas ilustraciones sirvan para que capte las diferencias entre modelos funcionales, estructurales y procesales.
x

x(t)
0

Ejemplo 1: un sistema mecnico


Volvamos a la Figura 0.5, introducida para ilustrar que un sistema elctrico es un modelo analgico de un sistema mecnico22 . Las ecuaciones son modelos funcionales de los correspondientes sistemas. En efecto, en el sistema mecnico podemos considerar que la entrada o estmulo (accin del entorno sobre el sistema) en cada momento es la fuerza aplicada, F (t), y que la salida o respuesta es el desplazamiento de un punto del sistema, x(t), con respecto a la posicin de reposo. La ecuacin resume todas las relaciones posibles entre la entrada y la salida. As, si como consecuencia de una fuerza aplicada en el instante t = t0 el desplazamiento es x0 > 0 y si a partir de ese momento no se aplica ninguna fuerza (F (t) = 0 para t > t0 ), la evolucin de la salida, x(t), se puede obtener matemticamente integrando la ecuacin; el resultado, puesto en forma grca, es el que muestra la Figura 0.10: un movimiento oscilatorio amortiguado. Para el modelo estructural consideramos que el sistema est formado por tres partes: una masa, un amortiguador y un resorte. Suponemos que el amortiguador y el resorte carecen de masa, que la masa y el amortiguador carecen de propiedades elsticas, etc. La fuerza total aplicada se reparte entre las tres partes: F (t) = Fm (t) + Fa (t) + Fr (t)
Tambin el sistema mecnico es un modelo analgico del elctrico. Pero lo normal, por razones prcticas (facilidad de manipulaciones y medidas), es que se utilice el segundo como modelo del primero.
22

Figura 0.10. Un modo de comportamiento del sistema mecnico de la Figura 0.5.

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

Ejemplos de sistemas y modelos


dx/dt

13 sucientes presas; si no hubiese presas, su nmero tendera asintticamente a cero.

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

Figura 0.11. Trayectoria correspondiente al comportamiento de la Figura 0.10.


dx(t) dt dv(t) 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 ).

= K11 P K12 P D = K22 D + K21 P D

Ejemplo 2: un sistema ecolgico


Imaginemos dos especies animales. Los animales de una especie son presas, y los de la otra, predadores. Nos interesa un modelo de la evolucin en el tiempo de la poblacin de cada una de las especies. Hagamos las siguientes hiptesis: 1. Las variables P (t) y D(t) representarn a los nmeros de presas y de predadores (o depredadores) existentes en el instante t. Sus valores son nmeros naturales, pero nuestro modelo las tratar como variables continuas (con valores reales). 2. Las presas se reproducen sin limitacin; si no hubiese predadores su crecimiento sera exponencial. 3. Los predadores viven y se reproducen si hay

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

Leccin 0. Modelos y niveles

Ejemplo 3: un sumador binario


E
1

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

Figura 0.13. Sumador binario serial: modelo funcional.


O R e e z s q
1 2

tiempo

Figura 0.14. Sumador binario serial: ejemplo de comportamiento.

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

Ejemplos de sistemas y modelos


e1 e2 q

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

Figura 0.15. Sumador binario serial: modelo estructural.

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

Leccin 0. Modelos y niveles

Ejemplo 4: un programa de ordenador


Volvamos al ejemplo del Apartado anterior sobre el modelo estructural de un programa para ordenador (Figura 0.8(c)) cuyo modelo funcional es resultado = factorial(dato). El modelo procesal puede verse en la Figura 0.17, sobre la que cabe hacer estos comentarios: 1. Inicialmente, mientras el ordenador no empiece a ejecutar el programa, el proceso no existe. El modelo procesal incluye un estado inicial para esta situacin al que llamamos nonato. 2. En cuanto el programa empieza a ejecutarse, el proceso pasa al estado activo, pero durante un tiempo muy pequeo, porque lo primero que hace es pedir un dato. 3. La unidad (perifrico) por la que se introduce el dato (el teclado, por ejemplo), es mucho ms lenta que la unidad de procesamiento. Mientras no se haya terminado de leer el dato, el proceso no puede continuar: est bloqueado. 4. Una vez obtenido el dato, el proceso vuelve a estar activo. Durante este segundo estado activo el programa hace la transformacin a la representacin interna, llama a la funcin, sta calcula el factorial y el programa traduce el resultado a la representacin a escribir por la pantalla. 5. De nuevo el proceso pasa a bloqueado, ahora esperando a que el resultado quede escrito. 6. Terminada la salida del resultado, el proceso vuelve a estar activo (seguramente, y como al principio, por muy poco tiempo). 7. Como el proceso ha terminado, pasa al estado muerto. ste es un modelo procesal para un programa concreto. En el Apartado 17.9 estudiaremos un modelo genrico, de gran importancia para el estudio del funcionamiento del ordenador durante la ejecucin de programas.

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

00/1 10/1 11/1

Figura 0.16. Sumador binario serial: modelo procesal.

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

Ejemplos de sistemas y modelos

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.

Ejemplo 5: una casa encantada


Querido amigo: Al poco de comprar esta vieja mansin me sorprendi desagradablemente el comprobar que est hechizada con dos sonidos de ultratumba que la hacen prcticamente inhabitable: un canto picaresco y una risa sardnica. An conservo, sin embargo, alguna esperanza, pues la experiencia me ha demostrado que su comportamiento obedece a ciertas leyes, oscuras pero infalibles, que permiten modicarlo tocando el rgano y quemando incienso. En cada minuto, cada sonido est presente o ausente. La situacin en el minuto siguiente es as: El canto conserva el mismo estado (presente o ausente) salvo si en el minuto actual no se oye la risa y toco el rgano, en cuyo caso el canto pasa al estado opuesto.

Figura 0.18. Modelo estructural (diagrama causal) de la casa encantada.


W.R. Ashby: An Introduction to Cybernetics. Chapman and Hall, Londres, 1956. Traduccin de J. Santos: Introduccin a la ciberntica. Nueva Visin, Buenos Aires, 1960.
26

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-

Leccin 0. Modelos y niveles


e : no O y no I 0

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

Modelo procesal de la casa encantada.

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.

Adecuacin de los modelos


Ya sabemos que toda descripcin de un sistema es un modelo de ese sistema. Distintos observadores, contemplando la misma realidad, pueden elaborar o encontrar tiles descripciones muy diferentes para esa realidad. Ello no implica necesariamente que unas descripciones se ajusten ms o menos que otras a la realidad. La mejor descripcin para una determinada persona en un determinado momento no es la ms completa ni la ms detallada, sino, simplemente, la que mejor le permite a esa persona resolver el problema que se plantea en ese momento.
1. Obra mecnica hecha segn arte. 2: Mquina, aparato (D.R.A.E.) 29 1. Instrumento, por lo comn de hierro o acero, con que trabajan los artesanos (D.R.A.E.) 30 Estas armaciones, como algunas otras de esta Leccin, son matizables y cuestionables. En particular, los bien conocidos avances biolgicos recientes empiezan a difuminar los lmites entre artefacto y sistema natural.
28

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

Leccin 0. Modelos y niveles

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.

Diseo, implementacin y especicaciones


En las actividades ligadas a la concepcin y construccin de un artefacto es til distinguir entre diseo e implementacin. El diseo comienza con una descripcin de las funciones pretendidas (un modelo funcional) del sistema, y termina con una descripcin de los componentes abstractos y sus interrelaciones y procesos (modelos estructural abstracto y procesal). En la implementacin se materializa el modelo estructural en otro cuyos componentes son concretos. La Figura 0.20 (que el lector debe situar en el contexto de la Figura 0.3) muestra los tipos de modelos ms ligados a cada actividad.
artefacto (original)

modelo funcional

modelo estructural

modelo procesal

usuario

implementador

diseador

Figura 0.20. Modelos de artefactos ms adecuados segn la pragmtica.

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

Leccin 0. Modelos y niveles

Productos y ciclo de vida


Hemos visto, con un ejemplo sencillo (el del sumador binario), que, como resultado de la implementacin, puede ser necesario rehacer las especicaciones para el diseo. Pero tambin es preciso replantearse las especicaciones iniciales cuando el diseo es para un producto. Entendemos por producto un artefacto que se obtiene como resultado de un proceso de fabricacin. Es decir, no slo es un sistema diseado e implementado por el hombre; este diseo y esta implementacin estn condicionados por la existencia de un mercado y, frecuentemente, de una normativa. Cuando el artefacto es un producto, el resultado de la implementacin es un prototipo, que debe someterse a pruebas antes de su produccin o fabricacin. Como resultado de estas pruebas, y tambin a lo largo de la vida del producto, es posible que aparezca de nuevo la necesidad de un rediseo. La Figura 0.21 ilustra esta naturaleza recurrente de las actividades ligadas a la conceptuacin, la construccin y el uso de un producto. El modelo conceptual es una descripcin de las funciones que se desean en el sistema, y el diseo consiste en elaborar modelos estructurales y procesales para que el sistema satisfaga esas especicaciones funcionales. La sucesin de fases por las que pasa un producto desde su conceptuacin hasta su abandono por obsolescencia o envejecimiento se llama ciclo de vida. La Figura 0.21 representa un modelo muy general de ciclo de vida. En reas particulares de la ingeniera se han propuesto ciclos de vida especializados para los distintos tipos de productos. As, en la ingeniera del software un ciclo de vida clsico es el formado por las fases sucesivas de captura de requisitos (correspondiente, aproximadamente, a la conceptuacin de la Figura 0.21), diseo, codicacin (que corresponde a implementacin), depuracin y validacin (pruebas), y mantenimiento.

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

modelo conceptual (funcional)

diseo

modelos estructural y procesal

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

Jerarquas de niveles de abstraccin


Figura 0.21 Ciclo de vida de un producto.

0.6. Jerarquas de abstracciones


Un ordenador es un sistema complejo que puede describirse mediante diferentes modelos, en distintos niveles de una jerarqua de abstracciones. sta era nuestra declaracin inicial, y el objetivo de esta Leccin es profundizar en su signicado y en

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-

Leccin 0. Modelos y niveles

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.

0.7. Jerarqua de niveles para los ordenadores


La Figura 0.22 presenta los siete niveles de la jerarqua en la que situaremos a las descripciones de los ordenadores. Antes de pasar a comentarlos, haremos dos precisiones: Salvo alusiones espordicas, tanto aqu como en el resto del libro nos limitaremos a aquellas partes de los ordenadores que tienen un soporte tecnolgico electrnico, eludiendo todo lo concerniente a tecnologas mecnica, magntica y ptica utilizadas en terminales y memorias, que precisaran de otras jerarquas de descripcin en los niveles bajos de la Figura 0.22. En esta jerarqua se hace referencia a modelos que son precisamente el objeto de estudio de este curso. Por tanto, no se puede pretender que sea comprensible en una primera lectura. Este Apartado debera ser objeto de repaso recurrente tras el estudio de cada una de las partes del libro.

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

Jerarqua de niveles para los ordenadores


NIVELES COMPONENTES SISTEMAS mquinas simblicas (interpretan sentencias y rdenes en lenguajes simblicos) mquinas programables binarias extendidas (interpretan instrucciones y "llamadas al sistema") mquinas programables binarias (interpretan instrucciones)

25

mquina simblica

+programas

mquina operativa

+programas

mquina convencional implementacin abstraccin +microprogramas

micromquina

mquinas microprogramables (interpretan microinstrucciones) sistemas combinacionales y secuenciales, memorias, ...

circuito lgico

circuito elctrico

puertas lgicas

dispositivo

metales, semiconductores, ...

transistores, resistores, ...

Figura 0.22

Niveles de descripciones para los ordenadores.

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.

Leccin 0. Modelos y niveles

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

Jerarqua de niveles para los ordenadores

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

Leccin 0. Modelos y niveles

0.8. Un ltimo ejemplo: la mquina de von Neumann


Los ordenadores tienen una larga prehistoria (Apartado 0.12). Un hito importante fue la introduccin del concepto de programa almacenado: previamente a su ejecucin, las instrucciones que forman el programa deben estar guardadas, o almacenadas, en una memoria de acceso rpido. Esto condiciona fuertemente los modelos estructurales, funcionales y procesales de los ordenadores en todos los niveles. Modelos estructurales que contenan unidades de memoria, de procesamiento, de control y de entrada/salida se haban propuesto tiempo atrs, pero la idea de tener el programa almacenado en la memoria, y el modelo procesal que acompaa a esta idea, se atribuye generalmente (y quizs errneamente, vase el Apartado 0.12) a John von Neumann. Hay un documento escrito en 1946 por Burks, Goldstine y von Neumann (cuando an no se haba construido ninguna mquina de programa almacenado) que mantiene hoy toda su vigencia conceptual. Haciendo abstraccin de los detalles tecnolgicos, esa descripcin no ha sido superada, pese a que seguramente se habrn publicado decenas de miles de pginas explicando lo mismo. Por eso, nos serviremos de ese texto, extrayendo y glosando algunos de sus prrafos.

UCP
datos UAL datos UE/S

direcciones UC direcciones instrucciones MP

instrucciones, y datos (operandos y resultados) direcciones (de MP y de UE/S) seales de control ("micrordenes")

Figura 0.23. Modelo estructural de la mquina de von Neumann.

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.

Programa almacenado y propsito general


... La mquina debe ser capaz de almacenar no solamente la informacin digital necesaria en una determinada computacin [...] sino tambin las instrucciones que gobiernen la rutina a realizar sobre los datos numricos. En una mquina de propsito especial, estas instrucciones son un componente integrante del dispositivo y constituyen parte de su estructura de diseo. Para que la mquina sea de propsito general, debe ser posible instruirla de modo que pueda llevar a cabo cualquier computacin formulada en trminos numricos. Por tanto, debe existir algn rgano capaz de almacenar esas rdenes de programa...

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

Un ltimo ejemplo: la mquina de von Neumann

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

Leccin 0. Modelos y niveles

Unidad aritmtica y lgica


... Puesto que el dispositivo va a ser una mquina computadora, ha de contener un rgano aritmtico que pueda realizar ciertas operaciones aritmticas elementales. Por tanto, habr una unidad capaz de sumar, restar, multiplicar y dividir... ... Las operaciones que la mquina considerar como elementales sern, evidentemente, aquellas que se le hayan cableado. Por ejemplo, la operacin de multiplicacin podr eliminarse del dispositivo como proceso elemental si la consideramos como una sucesin de sumas correctamente ordenada. Similares observaciones se pueden aplicar a la divisin. En general, la economa de la unidad aritmtica queda determinada por una solucin equilibrada entre el deseo de que la mquina sea rpida una operacin no elemental tardar normalmente mucho tiempo en ejecutarse, al estar formada por una serie de rdenes dadas por el control y el deseo de hacer una mquina sencilla, o de reducir su coste...

direccin

posicin direccionada (n bits)

palabra obtenida (caso de lectura)

palabra a grabar (caso de escritura)

Figura 0.24. Lectura y escritura en una memoria de acceso aleatorio.

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

Un ltimo ejemplo: la mquina de von Neumann

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

operacin 1 operacin 2 ... operacin n

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).

Unidades de entrada y salida


... Por ltimo, tiene que haber dispositivos, que constituyen el rgano de entrada y de salida, mediante los cuales el operador y la mquina puedan comunicarse entre s [...] Este rgano puede considerarse como una forma secundaria de memoria automtica...

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

Leccin 0. Modelos y niveles

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)

direccin de dato (a la MP o las UE/S)

direccin de la instruccin siguiente (a la MP)

UC

instruccin (de la MP)

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

Un ltimo ejemplo: la mquina de von Neumann

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

Figura 0.27. Formato de instrucciones de la mquina de von Neumann.

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

Leccin 0. Modelos y niveles

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...

0.9. Estructura y contenido del libro


Este libro se centra en los niveles superiores al de circuito lgico. La Primera Parte se dedica al nivel de mquina convencional, la Segunda al de microarquitectura, y la Tercera al de mquina operativa, con algunos ingredientes del nivel de mquina simblica. Se aaden tres Apndices. El primero resume algunos elementos sobre codicacin, sistemas de numeracin y aritmtica binaria, necesarios para la Leccin 3. El segundo recoge los conceptos bsicos (necesarios para la Segunda Parte) sobre el nivel de circuito lgico. Y en el tercero se presentan alfabticamente las traducciones de trminos ingleses comentadas en los Apartados de Observaciones terminolgicas. Cada Parte consta de ocho Lecciones en las que se desarrollan modelos funcionales, estructurales y procesales en el nivel correspondiente. Estos modelos se particularizan dando lugar a una gran diversidad de detalles cuando se aplican a ordenadores reales. Nuestro enfoque es conceptual: se trata de formar conceptos bsicos y generales que el lector pueda posteriormente aplicar a mquinas concretas con las que tenga que trabajar. Por eso, no describimos ningn ordenador real (salvo algunos detalles, en algunos de los Ejercicios). Ahora bien, los conceptos y los modelos generales slo se asientan bien mentalmente si se concretan con estudios de casos. Deniremos para esto mquinas cticias especialmente pensadas para concentrarse en lo esencial y no perderse en los detalles de las mquinas reales. Con Smplez y Smplez+i4, las ms elementales, introduciremos lo ms bsico. Algortmez, algo ms elaborada, nos permitir presentar muchas de las caractersticas que se encuentran en la realidad, en el nivel de mquina convencional y en el de micromquina; asimismo, se utilizar, en la Tercera Parte, para entrar en el nivel de mquina operativa. Finalmente, Regstrez incluye ya prcticamente todos los mecanismos de una arquitectura y una microarquitectura reales.

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

Estructura y contenido del libro


NIVELES DE MAQUINA OPERATIVA/SIMBOLICA

35

17

Monoalgortmez y Multialgortmez 18 19 20

21

22

23

24

Conocimientos bsicos NIVEL DE MAQUINA CONVENCIONAL

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

Diagrama de dependencias entre las Lecciones.

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.

Leccin 0. Modelos y niveles

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

0.11. Observaciones terminolgicas


A lo largo del libro aparece con frecuencia el trmino genrico mquina para designar a un tipo particular de mquina, el ordenador. No es ms que una sincdoque para eludir la reiteracin. Muchos autores de lengua castellana rechazan la denominacin ordenador, y hablan de computador o computadora. stos son, adems, los trminos utilizados habitualmente en los pases americanos de habla espaola. Ordenador tiene origen francs: lo introdujo Jacques Perret con motivo de la presentacin en Europa del IBM 701 (Elgozy, 1970)41 . Segn Edgar Morin (1977), [...] el trmino francs ordinateurque expresa tanto la emisin de rdenes como la puesta en ordencompleta el trmino anglosajn computer, que expresa el tratamiento de la informacin. Se trata de un aparato de mando. Podemos aadir que computador evoca las aplicaciones exclusivamente numricas para las que se disearon los primeros ordenadores, mientras que actualmente, y cada vez ms, la mayor parte del procesamiento que se realiza con ordenadores es de naturaleza simblica. Hemos procurado buscar las traducciones ms idneas para los trminos tcnicos. Entre las excepciones (palabras que dejamos en ingls para no perturbar la comprensin) estn hardware (para el conjunto de componentes fsicos que constituyen el ordenador) y software (para los programas), que son los nicos utilizados en el mundo profesional y hasta en la cultura popular. Se han propuesto traducciones, como material y logical (inuidas por las francesas materiel y logiciel), soporte fsico y soporte lgico, pero su aceptacin ha sido escasa. Implementar es, segn el D.R.A.E., poner en funcionamiento, aplicar mtodos, medidas, etc., para llevar algo a cabo. Como hemos podido ver en esta Leccin, el trmino adquiere un signicado especco en el contexto de la jerarqua de niveles de abstraccin: en cada nivel, implementar es concretar estructuralmente, mediante componentes del nivel inferior, un sistema descrito funcionalmente. Procesal no es un adjetivo que se utilice habitualmente en el campo de los ordenadores, donde generalmente se habla de descripcin del comportamiento
De ahora en adelante las referencias a las fuentes aparecen con el nombre del autor y el ao. Los datos completos, ordenados alfabticamente por autores, estn en Referencias, al nal del libro.
41

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).

Leccin 0. Modelos y niveles

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


No es fcil sintetizar la historia de los instrumentos de clculo y su evolucin hasta el ordenador, porque, como dice Smith (1970), ...en realidad, el pasado es reticulado y no lineal. Es una malla de acontecimientos entretejidos e interrelacionados de forma complicada, inesperada y no siempre racional. En consecuencia, el fenmeno histrico de convergencia es mucho ms signicativo que la simplista cuestin escolar de quin invent el ordenador o quin construy el primer contador dentado. Vamos a sealar aqu algunos hitos signicativos hasta la llamada primera generacin de ordenadores.
43

En lo sucesivo diremos siempre bytes (Apartado 3.10).

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

Los primeros computadores digitales automticos


En las introducciones histricas de la literatura tcnica suele considerarse que el sueo de Babbage (en Cambridge, Inglaterra) se hizo realidad cuando Howard Aiken (en Cambridge, Massachussets) construy el Mark I o ASSC (Automatic Sequence Controlled Calculator). Esta mquina electromecnica, con sus ms de 250.000 piezas y ms de 800.000 metros de cable (Aiken y Hopper, 1946) se termin en 1944 y permaneci en uso ininterrumpido durante ms de quince aos en la Universidad de Harvard. Sin embargo, algo antes, entre 1939 y 1943, Konrad Zuse haba construido en Berlin una serie de computadores electromecnicos (Zuse, 1962), uno de los cuales, el Z4, cuatro o cinco veces ms rpido que el ASSC, se utiliz para clculos aeronuticos en las fbricas Henschel (Elgozy, 1979). Su colaborador, Schreyer, propuso la conversin de esas mquinas a la tecnologa electrnica, pero no encontr nanciacin para realizarla (Schreyer, 1939, 1941). El problema de Zuse fue carecer de apoyo ocial (tuvo incluso que interrumpir sus investigaciones para incorporarse al frente de batalla); su aportacin qued como un hecho aislado, sin continuidad (y sus mquinas destruidas por los bombardeos), a diferencia de lo ocurrido en los EE.UU. En un proyecto que se mantuvo en secreto durante muchos aos (los primeros detalles se publicaron en 1975) un grupo de cientcos britnicos (entre los que estaba Alan Turing) desarroll una serie de mquinas electrnicas programables, llamadas Colossus, la primera de las cuales entr en funcionamiento en 1943 (Randell, 1977). No eran de propsito general, sino especco: descifrar los cdigos utilizados por los alemanes en sus comunicaciones. Entre los pioneros en proponer la reconversin de las mquinas calculadoras de tecnologa electromecnica a electrnica hay que citar tambin a Mauchly (1942). El primer computador electrnico de propsito general se debe a Eckert y Mauchly: en 1946, en Pennsylvania, entraban en funcionamiento, consumiendo 150 Kw, las 18.000 vlvulas del Electronic Numerical Integrator and Calculator (ENIAC), construido por encargo de la Marina de los EE.UU. El propio Mauchly, en un artculo retrospectivo, recordaba la construccin del ENIAC y la idea de aplicarlo a problemas comerciales. Durante 1945 y 1946, Eckert y yo pasamos meses en Wall Street tratando de interesar a la comunidad nanciera para que apoyara

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.

Leccin 0. Modelos y niveles

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).

La primera generacin de ordenadores


En los dos aos que siguen a 1949 numerosos centros de investigacin disearon y construyeron prototipos. En 1951 la empresa Engineering Research Associates (absorbida tambin ms tarde por Sperry) construye el 1101, y en 1952 IBM lanza el 701; son los primeros de las dos series ms conocidas de lo que luego se llam la primera generacin, caracterizada por una tecnologa electrnica de vlvulas de vaco, un software de sistemas muy primitivo y unos costes de las mquinas que hoy consideraramos desorbitados en relacin con su potencia.

0.13. Orientaciones bibliogrcas


A lo largo del curso, en estos Apartados, se incluirn referencias sobre los asuntos tratados en cada Leccin. Empezaremos aqu con algunas de carcter general. Como indica su subttulo, el alcance de este libro est limitado a la arquitectura de ordenadores y los sistemas operativos. Para una visin ms amplia de la Informtica, un libro excelente es el de Prieto et al. (2002), que contiene introducciones muy bien elaboradas a otras materias, como estructuras de datos y algoritmos, perifricos, bases de datos, ingeniera del software y redes de ordenadores. Si el lector est interesado en ampliar detalles y conceptos puede consultar libros sobre arquitectura de ordenadores, como: El libro de Tanenbaum (1999) cubre los mismos temas que ste (de manera ms concisa, pero ms profunda) e incluye como ejemplos descripciones de los microprocesadores Pentium, UltraSPARC y picoJava. El de Hamacher et al. (2002), que tiene el mismo nivel, utiliza como ejemplos los procesadores ARM, 68000 y Pentium.

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.

Leccin 0. Modelos y niveles

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

Leccin 0. Modelos y niveles

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

Das könnte Ihnen auch gefallen