Sistemas Informáticos: Una Perspectiva del Programador
1120 páginas
Spanish
PDF
4.5

Sistemas Informáticos: Una Perspectiva del Programador

Sistemas Informáticos: Una Perspectiva del Programador

Autor:

Año:

Resumen:

Introducción

El libro «Sistemas Informáticos: Una Perspectiva del Programador» (título original Computer Systems: A Programmer's Perspective) es una obra fundamental que, durante más de una década, ha seguido siendo el estándar de oro para todos aquellos que quieren entender cómo funcionan realmente las computadoras modernas. Escrito por los profesores de la Universidad Carnegie Mellon, Randal Bryant y David O'Hallaron, este libro no solo explica la teoría, sino que le brinda al programador una comprensión práctica profunda de cómo el hardware y el software interactúan entre sí.

A pesar de que en el resumen se menciona el lenguaje C++, el libro está realmente orientado a los lenguajes C y ensamblador (x86-64). No es un manual sobre un lenguaje específico, sino una guía sobre el funcionamiento interno de los sistemas informáticos. Para el sitio educativo PythonLib, este libro será especialmente valioso, ya que ayuda a los desarrolladores de cualquier lenguaje (incluyendo Python) a escribir código más eficiente y fiable, comprendiendo lo que sucede «bajo el capó».

¿De qué trata este libro?

El libro cubre todos los aspectos clave de los sistemas informáticos, desde los bits y bytes hasta la programación de redes. Los temas principales incluyen:

  • Representación de datos: cómo se almacenan números, texto y otros datos en la memoria (sistema binario, complemento a dos, números de punto flotante).
  • Código máquina y ensamblador: cómo el compilador traduce el código C a instrucciones del procesador, cómo funcionan los registros, la pila y las llamadas a funciones.
  • Arquitectura del procesador: segmentación (pipeline), predicción de saltos, superescalaridad: por qué un código funciona más rápido que otro.
  • Jerarquía de memoria: memoria caché, memoria RAM, discos: cómo minimizar las latencias y maximizar el ancho de banda.
  • Enlazado y carga: cómo se ensambla un programa ejecutable a partir de archivos objeto, cómo funciona el enlazado dinámico.
  • Gestión de procesos y hilos: llamadas al sistema, paralelismo, sincronización, problemas de interbloqueo.
  • Medición del rendimiento: perfilado, evaluación comparativa (benchmarking), optimización de código.
  • Redes y aplicaciones cliente-servidor: fundamentos de sockets, protocolos TCP/IP.

¿Para quién es este libro?

Este libro está destinado a programadores de nivel intermedio y avanzado que quieran pasar de escribir «código que simplemente funciona» a escribir código eficiente, fiable y seguro. Será útil para:

  • Desarrolladores en C y C++ que deseen entender cómo se ejecuta su código en hardware real.
  • Programadores en Python, Java u otros lenguajes de alto nivel que quieran mirar «bajo el capó» y comprender las causas de ralentizaciones o fugas de memoria.
  • Estudiantes de carreras técnicas que estudien arquitectura de computadoras, sistemas operativos o compiladores.
  • Ingenieros que trabajen en sistemas embebidos, controladores o servicios de alta carga.

¿Qué aprenderá el lector?

Después de estudiar este libro, el lector podrá:

  • Leer y analizar código ensamblador x86-64.
  • Comprender por qué algunas operaciones (por ejemplo, la división o el trabajo con punto flotante) son más lentas que otras.
  • Optimizar programas teniendo en cuenta la jerarquía de memoria (los fallos de caché son el principal enemigo del rendimiento).
  • Evitar errores típicos relacionados con desbordamiento de búfer, fugas de memoria y condiciones de carrera.
  • Utilizar herramientas de perfilado (gprof, perf, Valgrind) para encontrar cuellos de botella.
  • Escribir código multiproceso seguro utilizando mutex, semáforos y variables de condición.
  • Comprender cómo funcionan el enlazado dinámico y la carga de bibliotecas.
  • Crear aplicaciones de red simples con sockets.

Puntos fuertes del libro

La primera y principal ventaja es su enfoque práctico. Cada capítulo contiene

Recommendations