lecc00

Upload: holden-alberto-silva

Post on 17-Jul-2015

51 views

Category:

Documents


0 download

TRANSCRIPT

CURSO DE ORDENADORES Conceptos bsicos de arquitectura y sistemas operativosQuinta edicin2a 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 convencional1. Smplez 1.1. Propsito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Modelos estructural y procesal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Modelo funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .I

4547 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

V

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

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

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

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

X

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.

LectoresIndependientemente 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

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

EnfoqueTambin 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 encontrarnLa 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, un3

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.

EstructuraEl 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 explicaexcepcional 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

AgradecimientosLos 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 apoyoEn 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. PropsitoLos 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.

2

Leccin 0. Modelos y niveles

0.2. Sistemas y modelosUn 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.

SistemasLa 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

3

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

ModelosSimilarmente 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

5

originalsistema (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 modelosLa 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 modelosLas 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

6

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

2

x(t)0

C

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