Comprensión profunda del sistema informático 1 índice
1.1 La información es un contexto de bits
1.2 Los programas se traducen a diferentes formas mediante otros programas
1.3 Es beneficioso comprender cómo funcionan los sistemas de compilación. trabajo
1.4 El procesador lee e interpreta las instrucciones almacenadas en la memoria
1.5 La caché es importante
1.6 los dispositivos de almacenamiento forman una jerarquía
1.7 El sistema operativo gestiona el hardware
1.8 El sistema utiliza la red para comunicarse con otros sistemas
1.9 Próximo paso
1.10 Resumen
Notas bibliográficas p>
Parte 1 Estructura y ejecución del programa
2 Información de representación y operación
2.1 Almacenamiento de información
2.2 Representación de números enteros
2.3 Aritmética de Enteros
2.4 Punto Flotante
2.5 Resumen
Notas Bibliográficas
Preguntas de Tarea
Soluciones a prácticas problemas
3 Representación de programas a nivel de máquina
Desde una perspectiva histórica
3.2 Codificación de programas
3.3 Formato de datos
3.4 Obtención de información
3.5 Operaciones aritméticas y lógicas
3.6 Control
3.7 Programa
3.8 Asignación y acceso a matrices p>
3.9 Estructuras de datos heterogéneas
3.10 Alineación
3.11 Poniéndolo todo junto: comprensión de los consejos
3.12 La vida real: uso del depurador GDB
3.13 Referencia de memoria fuera de los límites y desbordamiento del búfer
3.14 *Código de punto flotante
3.15 *Incrustación de código ensamblador en el programa C
3.16 Resumen
Notas bibliográficas
Problemas de tarea
Soluciones a problemas prácticos
4 Arquitectura del procesador
5 Programa de optimización rendimiento
6 niveles de memoria
Parte 2: Ejecutar el programa en el sistema
7 enlaces
8 flujo de control de excepciones
9 Medición del tiempo de ejecución del programa
10 Memoria virtual
Parte 3 Interacción y comunicación entre programas
11 E/S a nivel del sistema
12 Programación de red
13 Programación concurrente
Descripción HCL de la lógica de control del procesador
Manejo de errores
Bibliografía
Índice
Contenido:
Capítulo 65438 0 Recorrido por el sistema informático
1.1 La información es contexto de bits.
El programa 1.2 ha sido traducido a diferentes formatos por otros programas.
1.3 Es beneficioso comprender cómo funciona el sistema de compilación.
1.4 El procesador lee e interpreta instrucciones almacenadas en la memoria.
1.4.1 Composición hardware del sistema
1.4.2 Ejecutar el programa hello.
1.5 Caché
1.6 Dispositivo de almacenamiento con estructura jerárquica
1.7 Hardware de gestión del sistema operativo
1.7.1 Proceso
1.7.2 Hilos
1.7.3 Memoria virtual
1.7.4 Archivos
1.8 Utilice sistemas de red para comunicarse con otros sistemas.
1.9 Próximo paso
1.10 Resumen
Descripción de la referencia
Capítulo 2 Representación y procesamiento de la información
2.1 Almacenamiento de información
2.2 Representación de números enteros
2.3 Operación de números enteros
2.4 Punto flotante
2.5 Resumen
Descripción de referencia
Tarea
Respuestas a las preguntas del ejercicio
Capítulo 3 Representación mecánica de programas
3.1 Perspectiva histórica
3.2 Codificación del programa
3.3 Formato de datos
3.4 Obtención de información
3.5 Operaciones aritméticas y lógicas
3.6 Control
p>3.7 Proceso
3.8 Asignación y acceso a matrices
3.9 Estructuras de datos heterogéneas
3.10 Alineación
3.11 Integral: comprensión de los punteros p>
3.12 La vida real: usando el depurador GDB
3.13 Referencias de memoria fuera de límites y desbordamientos de buffer
3.14 *Código de punto flotante
3.15 * Incrustar código ensamblador en el programa C
3.16 Resumen
Capítulo 4 Arquitectura del procesador
4.1 Arquitectura del conjunto de instrucciones Y86
4.2 Diseño lógico y lenguaje de control de hardware HCL 271
4.3 Implementación secuencial Y86
4.4 Principios generales de las líneas de ensamblaje
4.5 Implementación de canalización Y86
4.6 Resumen
Capítulo 5 Optimización del rendimiento del programa
5.1 Habilidades y limitaciones de la optimización de los compiladores
5.2 Representación del rendimiento del programa
5.3 Ejemplo de programa
5.4 Eliminar la circulación ineficiente
5.5 Reducir las llamadas a procedimientos
5.6 Eliminar referencias de memoria innecesarias
5.7 Comprender los procesadores modernos
5.8 Reducir la sobrecarga del ciclo
5.9 Convertir a código de puntero
5.10 Mejorar el paralelismo
5.11 Síntesis: optimizar el código combinado Resumen de efectos
5.12 Predicción de rama y penalización por error de predicción
5.13 Comprender el rendimiento de la memoria
5.14 La vida real: tecnología de mejora del rendimiento
5.15 Identificar y eliminar cuellos de botella de rendimiento
5.16 Resumen
Capítulo 6 Jerarquía de memoria
6.1 Tecnología de almacenamiento
6.2 Ubicación
6.3 Jerarquía de memoria
6.4 Caché
6.5 Escribir código compatible con caché
6.6 Síntesis: El impacto del caché en el rendimiento del programa
6.7 Síntesis: Explotación de la localidad en los programas.
6.8 Resumen
Descripción de la referencia
Tarea
Respuestas a las preguntas del ejercicio
Enlace del Capítulo 7
7.1 Controlador del compilador
7.2 Enlace estático
7.3 Archivo objeto
7.4 Archivo objeto reubicable
7.5 Símbolos y tablas de símbolos
7.6 Análisis de símbolos
7.7 Restablecer
7.8 Archivos de destino ejecutables
7.9 Carga de archivos de destino ejecutables
7.10 Enlaces dinámicos * * * Disfruta de la biblioteca
7.11 Cargar y vincular desde la aplicación * * * Disfruta de la biblioteca
7.12 * Código independiente de la posición (PIC )
7.13 Herramientas para procesar archivos de destino
7.14 Resumen
Capítulo 8 Proceso de control de excepciones
8.1 Excepciones
8.2 Proceso
8.3 Llamada del sistema y manejo de errores
8.4 Control de procesos
8.5 Señal
8.6 Salto no local
p>8.7 Herramientas para el flujo de operaciones
8.8 Resumen
Capítulo 9 Medición del tiempo de ejecución del programa
9.1 Flujo de tiempo en sistemas informáticos
9.2 Medir el tiempo por conteo de intervalos.
9.3 Contador de bucles
9.4 Utilice el contador de bucles para medir el tiempo de ejecución del programa.
9.5 Medición de la función gettimeofday
9.6 Síntesis: Plan experimental
9.7 Mirando hacia el futuro
9.8 Vida real: K-ésima mejor medición Método
9.9 Lecciones aprendidas
9.10 Resumen
Capítulo 65438 00 Memoria virtual
10.1 Direccionamiento físico y virtual
10.2 Espacio de direcciones
10.3 Máquina virtual como herramienta de almacenamiento en caché
10.4 VM como herramienta de administración de memoria
10.5 VM como herramienta de protección de memoria.
10.6 Traducción de direcciones
10.7 Estudio de caso: sistema de memoria Pentium/Linux
10.8 Asignación de memoria
10.9 Asignación dinámica de memoria
10.10 Recolección de basura
10.11 Errores comunes relacionados con la memoria en programas C
10.12 Resuma brevemente algunos conceptos clave sobre la memoria virtual.
10.13 Resumen
Capítulo 11 E/S a nivel del sistema
11.1 E/S Unix
11.2 Apertura y cierre de archivos p>
p>
11.3 Lectura y escritura de archivos
11.4 Uso del paquete RIO para una lectura y escritura sólidas.
11.5 Leer metadatos de archivos
11.6 ***Disfrutar de archivos
11.7 Redirección de E/S
11.8 Entrada/salida estándar p>
11.9 Síntesis: ¿Qué funciones de E/S se deben utilizar?
11.10 Resumen
Capítulo 12 Programación de red
12.1 Modelo de programación cliente-servidor
12.2 Red
12.3 Internet IP global
12.4 Interfaz de socket
12.5 Servidor web
12.6 Integración: Micro servidor web
12.7 Resumen
Capítulo 13 Proceso de compilación concurrente
13.1 Programación concurrente basada en procesos
13.2 Programación concurrente basada en multiplexación de E/S
13.3 Programación concurrente basada en subprocesos
* * * 13.4 Variables compartidas en programas multiproceso
13.5 Sincronización de subprocesos con señales
13.6 Integral: servidor concurrente pre-proceso
13.7 Otros problemas concurrentes
13.8 Resumen
Descripción de la referencia
Ejercicios de tarea
Respuestas a las preguntas del ejercicio
Apéndice a Descripción de HCL de la lógica de control del procesador
A.1 Manual de referencia de HCL
A.2 SEQ
A.3 SEQ
A.4 Pipeline
Apéndice b Manejo de errores
B.1 Manejo de errores en sistemas Unix
B.2 Funciones contenedoras de procesamiento de errores
B.3 archivo de encabezado csapp.h
B.4 archivo fuente csapp.c