Arquitectura de Computadoras: Desde Algoritmos hasta Sistemas Operativos

Fundamentos de la Programación y Arquitectura de Computadoras

Algoritmos: La Base de la Programación

Un algoritmo es un conjunto ordenado y finito de instrucciones que permite realizar una actividad mediante pasos sucesivos. El proceso típico es:

  1. Planteamiento del Problema
  2. Desarrollo del Algoritmo
  3. Ejecución del Algoritmo
  4. Obtención del Resultado

Lenguajes de Programación: Comunicación con la Máquina

Los lenguajes de programación permiten a los humanos comunicarse con las computadoras. Existen diferentes niveles:

  • Lenguaje Máquina: Conjunto de reglas y símbolos específicos del procesador, utilizando un sistema binario (0 y 1). Directamente ejecutable, pero dependiente del hardware y vulnerable a malware.
  • Lenguaje Ensamblador: Utiliza palabras mnemotécnicas que representan instrucciones del lenguaje máquina, facilitando la programación.
  • Lenguaje de Alto Nivel: Independiente del procesador. Se escribe en un editor de texto y requiere un compilador o un intérprete para su traducción.

Compiladores e Intérpretes

  • Compilador: Traduce todo el código fuente a código máquina, generando un programa ejecutable. Proceso: 1) Análisis, 2) Síntesis.
  • Intérprete: Traduce y ejecuta el código línea por línea. Más lento, pero más flexible.
  • Bytecode: Código intermedio (similar al lenguaje ensamblador) que se traduce a binario en la CPU.
  • Máquina Virtual: Realiza el paso final de la traducción del bytecode.

Ventajas de la Máquina Virtual (Intérprete de M. Virtual) frente al intérprete puro: Mayor portabilidad, rapidez y estabilidad.

Estructura Interna de un Ordenador

Flujo de Traducción de Lenguajes

El proceso de traducción desde un lenguaje de alto nivel hasta el hardware sigue estos pasos:

  1. Lenguaje de Alto Nivel (Compilador/Intérprete) → Lenguaje Ensamblador (Ensamblador)
  2. Sistema Operativo (Programa que interpreta instrucciones y gestiona recursos)
  3. Conjunto de Instrucciones (Describe cómo es el procesador)
  4. Microarquitectura (Describe cómo están conectados los componentes internos – microinstrucciones)
  5. Lógica Digital (Hardware)

Bloques Funcionales y Buses

Los componentes de un ordenador se interconectan mediante buses:

  • Bus de Datos: Transmite datos.
  • Bus de Direcciones: Indica el destino de los datos.
  • Bus de Control: Controla el acceso y uso de los buses de datos y direcciones.

Tipos de Memoria

  • Memoria: Almacena los programas durante su ejecución.
  • RAM (Random Access Memory): Permite leer y escribir datos. Tipos:
    • SRAM (Static RAM): Mantiene el contenido mientras tenga alimentación. Más rápida y cara.
    • DRAM (Dynamic RAM): Necesita un circuito de refresco. Más lenta, pero con mayor capacidad.
  • ROM (Read-Only Memory): Solo lectura. Los programas se mantienen incluso sin conexión. Tipos:
    • PROM (Programmable ROM): Programable una sola vez.
    • EPROM (Erasable PROM): Se puede borrar y reprogramar.
    • EEPROM (Electrically EPROM): No requiere un dispositivo especial para borrarse.
  • Memoria Flash: Permite lectura y escritura por bloques. Ejemplo: USB.
  • Memoria Secundaria: Almacenamiento permanente (CD, DVD, etc.).
  • Caché: Memoria SRAM de alta velocidad y poca capacidad que guarda copias temporales de datos.

Funcionamiento de la Memoria Caché

La CPU transfiere bloques de datos a la caché. Si las lecturas siguientes corresponden a datos de ese bloque, se utiliza la caché (más rápida). Los accesos son predecibles gracias a:

  • Localidad Temporal: Datos recientemente usados.
  • Localidad Espacial: Datos en zonas cercanas de memoria.

Estrategias de diseño de la caché:

  • Política de Extracción: Qué bloque subir del nivel inferior.
  • Política de Ubicación: Dónde colocar el bloque (directa, asociativa, asociativa por conjuntos).
  • Política de Reemplazo: Qué bloque abandonar.
  • Política de Escritura: Cuándo actualizar la información.

Arquitectura Harvard

Utiliza dispositivos de memoria separados para instrucciones y datos. Memoria: PROM y SRAM.

Unidad Central de Proceso (CPU)

Ejecuta los programas almacenados en la memoria principal. Busca instrucciones y las ejecuta secuencialmente.

Líneas del bus de control:

  • Reloj
  • Línea de control
  • Interrupciones
  • Línea de arbitraje de bus
  • Líneas de estado

Componentes de la CPU

  • Unidad de Control (CU): Detecta señales y capta instrucciones.
  • Registros: Almacenan resultados temporales e información de control.
  • Unidad Aritmético-Lógica (ALU): Realiza operaciones.
  • Buses: Internos (conectan componentes de la CPU) y externos (conectan otros dispositivos).

Dispositivos de Entrada/Salida (E/S)

Permiten la entrada (ej: altavoz) y salida (ej: ratón) de información.

Partes:

  • Controlador
  • Dispositivo
  • Interfaz de conexión

Funciones:

  • Control y temporización de la información.
  • Comunicación con la CPU.
  • Almacenamiento temporal de datos (buffer): Sincroniza las velocidades de la CPU y los dispositivos.
  • Detección y corrección de errores.

Ejecución de Instrucciones

Ciclo de instrucción:

  1. Captar (Fetch)
  2. Decodificar
  3. Ejecutar

Componentes de una instrucción:

  • Opcode: Indica la operación a realizar.
  • Address: Especifica los operandos.

Tipos de Arquitecturas de CPU

  • Arquitectura de Pila: Último en entrar, primero en salir (LIFO). Registro especial (TOS) indica la posición.
  • Arquitectura con Acumulador: Un registro especial (acumulador) es siempre uno de los operandos.
  • Arquitectura GPR Registro-Memoria: Un operando en memoria, otro en un registro.
  • Arquitectura GPR Registro-Registro: Todos los operandos (incluido el resultado) son registros.

Jerarquía de Memoria

(Más rápida y menos capacidad) → (Más capacidad y menos rápida):

CPU → Caché → RAM → Disco Duro → (Almacenamiento en red, Disco duro extraíble, etc.)

Interrupciones

Alteración forzada del flujo de instrucciones de un programa en respuesta a un cambio de estado (ej: entrada/salida de datos). El controlador de E/S (DMA) gestiona la transferencia de datos, liberando a la CPU.

  1. La CPU envía una solicitud al DMA.
  2. El DMA gestiona la transferencia y, al finalizar, envía una señal de interrupción a la CPU.

Sistemas Operativos (SO)

Funciones principales:

  • Gestionar el hardware.
  • Proporcionar a las aplicaciones servicios para manipular los dispositivos hardware.

Memoria Virtual

Abstracción de la memoria principal y de los dispositivos de E/S. Permite:

  • Usar la memoria principal como caché.
  • Simplificar la gestión de memoria.
  • Proteger las direcciones de memoria.

Ficheros

Abstracción de los dispositivos de E/S y la memoria principal. Secuencia de bytes. Ventajas:

  • Portabilidad
  • Seguridad
  • Sencillez

Procesos

Abstracción de E/S, memoria principal y CPU. Ejecución secuencial de instrucciones. Existe multitarea (varios procesos a la vez) y multinúcleo (varios procesadores).

Las instrucciones del programa están determinadas por:

  • El estado de la CPU.
  • Variables en memoria.
  • Recursos utilizados por el proceso.

El planificador (scheduler) decide cuándo cambiar de contexto y cuál de los procesos en espera se ejecuta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.