Informática esencial: una guía para programadores sobre conceptos fundamentales


Precio:
Precio de venta$54.99

Descripción

Capítulo 1: Concepto y Fundamentos de un Sistema Informático

En este capítulo, se discuten una breve historia y evolución de un sistema informático, y los fundamentos de cómo opera.

1. Evolución del Sistema Informático

2. Modelo/Arquitectura de Von Neumann: E/S, CPU y memoria

1. Fetch:

2. Decodificar,

3. Ejecutar

3. Fetch: Dirección y Datos

4. Decodificar: Instrucciones y Arquitectura del Conjunto de Instrucciones:

1. Codificar/Decodificar

1. Representación numérica

2. Números Negativos

3. Little Endian/Big Endian.

2. Formato de Instrucción, Opcode, Operando

3. Modos de direccionamiento

4. ISA:

1. Categorías: RISC, CISC, etc.

2. Ejemplos: x86, ARM, etc.

5. Ejecutar:

1. Fundamentos de la Lógica Digital

2. Ejemplos: ADD, SUB.

6. Avances/Extensiones del Hardware del Ordenador:

1. Bloque de Cómputo: Pipelining, Ejecución Predictiva y Riesgos de Datos

2. Jerarquía de Memoria: Caché (inclusiva, exclusiva), Memoria

3. Basado en Interrupciones vs. Sondeo

1. Rutina de Servicio de Interrupción

4. DMA

5. Multiprocesador: SIMD, MIMD, VLIW, etc.

7. Arquitectura Básica de un Ordenador basado en x86

1. Pila, PC, Registros de Propósito General (GPRs), etc.

8. Dispositivos de E/S - Avances de Interfaz y Controlador, Ejemplo: PCIe, USB

1. Controlador, Bus y Dispositivo

9. Vista Interna y Externa del Diseño de un Sistema Informático de Ejemplo

10. Referencias y lecturas adicionales:

1. Lógica Digital y Diseño de Computadoras: Morris Mano

2. Organización y Diseño de Computadoras: La Interfaz Hardware/Software: Hennessy y Patterson

Capítulo 2: Programación del Hardware del Ordenador

En el capítulo anterior discutimos los fundamentos sobre el hardware y la arquitectura del ordenador. Ahora, habiendo entendido eso, discutamos cómo programar/instruir al hardware para que haga lo que queremos/necesitamos.

1. ¿Qué es programar?

2. Lenguaje ensamblador y lenguaje máquina

3. Programación en Lenguaje de Alto Nivel: ¿por qué?

4. Fundamentos del Lenguaje de Programación:

1. Definición del Lenguaje:

- Sintaxis

- Mapeo de Constructos de Alto Nivel a Nivel de Máquina, ejemplo:

1. Definición de variable a asignación de memoria

2. Asignación a mov

3. Operadores a respectivos: ADD, SUB, MUL, etc.

4. Condicional

Autor: Paul D. Crutcher, Neeraj Kumar Singh, Peter Tiegs
Editorial: Apress
Publicado: 28/06/2021
Páginas: 290
Tipo de encuadernación: Tapa blanda
Peso: 0.98 libras
Tamaño: 9.21h x 6.14w x 0.66d
ISBN13: 9781484271063
ISBN10: 1484271068
Categorías BISAC:
- Informática | Ciencias de la Computación
- Informática | Programación | General

Sobre el autor

Paul D. Crutcher es Ingeniero Principal Senior en Intel Corporation y dirige el equipo de Arquitectura de Software de Plataforma en el Grupo de Computación Cliente. Ha trabajado en Intel durante más de 25 años y también en dos empresas de software más pequeñas. Paul tiene un título en ciencias de la computación, con experiencia que abarca el desarrollo de software, la arquitectura, la integración y la validación basada en las mejores prácticas de ingeniería de sistemas en múltiples áreas. Posee varias patentes y ha escrito múltiples artículos y presentaciones.

Neeraj Kumar Singh es Ingeniero Principal en Intel con más de 15 años de experiencia en software de sistema y diseño de plataformas. Sus áreas de especialización son el codiseño de hardware y software, la arquitectura de sistemas/plataformas y el diseño y desarrollo de software de sistemas. Neeraj es el autor principal de otros dos libros: "System on Chip Interfaces for Low Power Design" e "Industrial System Engineering for Drones: A Guide with Best Practices for Designing", además de muchos otros artículos y presentaciones.

Peter Tiegs es Ingeniero Principal en Intel con 20 años de experiencia en software. Dentro de Intel, a menudo consulta sobre temas de DevOps como la automatización de compilaciones y la ramificación del código fuente. Durante la última década, Peter evangelizó la integración y entrega continuas, así como las prácticas ágiles en Intel. Ha escrito software en todos los niveles de la pila, desde código C embebido hasta VUE.js. Su lenguaje de programación preferido es Python.