Saltar a contenido

1.1.-Software y Hardware

1.1. Relación entre el software y el hardware (CE 1.a)

Idea principal

El hardware aporta los componentes físicos y el software aporta las instrucciones. Un programa solo puede ejecutarse cuando ambos colaboran, con el sistema operativo como intermediario entre las aplicaciones y muchos dispositivos.

Un ordenador personal, un portátil, un teléfono móvil o una tableta combina hardware y software. En este tema estudiaremos qué incluye cada parte, cómo se comunican durante la ejecución de un programa y por qué esta relación importa al desarrollar aplicaciones.

El objetivo no es memorizar una lista de componentes, sino comprender qué ocurre cuando una aplicación recibe datos, los procesa, los guarda y muestra un resultado.

Según la normativa del módulo Entornos de Desarrollo, este contenido contribuye al siguiente resultado de aprendizaje y criterio de evaluación:

Código Descripción
RA 1 Reconoce los elementos y herramientas que intervienen en el desarrollo de un programa informático, analizando sus características y las fases en las que actúan hasta llegar a su puesta en funcionamiento.
CE 1.a Se ha reconocido la relación de los programas con los componentes del sistema informático: memoria, procesador, periféricos, entre otros.

Qué deberías saber al terminar

Al acabar este apartado deberías poder:

  • distinguir hardware y software mediante ejemplos;
  • explicar la función de la CPU, la RAM, el almacenamiento y los periféricos;
  • describir el recorrido de los datos durante la ejecución de un programa;
  • relacionar estas decisiones con el rendimiento de una aplicación.

Mapa del tema

Seguiremos esta secuencia: hardware → software → comunicación entre ambos → ejemplo práctico con Tetris → importancia para el desarrollo.

1. Hardware: la parte física

La Real Academia Española define hardware como el «conjunto de los componentes que integran la parte material de una computadora». En términos prácticos, es todo lo que forma parte físicamente del sistema: se puede ver, tocar o conectar.

Esto incluye tanto componentes internos —circuitos, memoria, procesador o tarjeta gráfica— como periféricos externos —teclado, ratón, pantalla, impresora o memoria USB—.

Hardware

El hardware es el conjunto de componentes físicos que reciben, procesan, almacenan o muestran información.

Una analogía útil es imaginar una cocina moderna:

  • los electrodomésticos y utensilios representan el hardware;
  • el procesador es quien realiza las tareas;
  • la memoria es el espacio donde se colocan temporalmente los ingredientes;
  • los periféricos permiten interactuar con el exterior.
Relación entre hardware y software
El hardware necesita instrucciones del software para realizar tareas útiles.

Componentes principales

Componente Función principal Ejemplo durante un videojuego
Procesador (CPU) Lee y ejecuta instrucciones, y realiza cálculos. Calcula la posición y la velocidad de un personaje.
Memoria RAM Mantiene temporalmente el código y los datos en uso. Guarda la posición actual de las piezas.
Disco duro o SSD Conserva datos a largo plazo, incluso al apagar el equipo. Almacena el juego y una partida guardada.
Periféricos Permiten la entrada, la salida o ambas. El teclado recibe órdenes y la pantalla muestra el resultado.
GPU o tarjeta gráfica Procesa y renderiza imágenes, especialmente en paralelo. Dibuja la pieza en la posición calculada.

La CPU también recibe los nombres de procesador, microprocesador o UPC (Unidad de Procesamiento Central). La RAM, en cambio, es volátil: necesita alimentación eléctrica y pierde su contenido al apagar el equipo. El SSD o el disco duro son almacenamiento persistente: conservan los archivos sin alimentación.

Modelo de máquina de Von Neumann
En el modelo de Von Neumann, la CPU trabaja con instrucciones y datos almacenados en memoria.

2. Software: instrucciones y datos

El IEEE define el software como el conjunto de programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.

Dicho de forma sencilla, el software es la parte lógica del sistema: los programas y los datos que indican al hardware qué debe hacer. Se crea utilizando lenguajes de programación y puede tener distintos propósitos.

Software

El software es el conjunto de instrucciones, programas, procedimientos, documentación y datos que permiten realizar tareas con un sistema informático.

Algunos ejemplos son:

  • navegadores web, como Google Chrome o Mozilla Firefox;
  • sistemas operativos, como Windows, macOS o Linux;
  • antivirus y otras utilidades de seguridad;
  • aplicaciones ofimáticas, como Microsoft Word o LibreOffice;
  • sistemas empresariales, como un BPMS, un ERP o un CRM.

Clasificación habitual del software

Tipo Para qué sirve Ejemplos
Software de sistema Gestiona los recursos básicos y permite que funcionen las aplicaciones. Sistema operativo, controladores (drivers) y utilidades.
Software de aplicación Resuelve una necesidad concreta de la persona usuaria. Suite ofimática, navegador, editor de imágenes o videojuego.
Software de desarrollo Ayuda a crear, traducir, probar o mantener otros programas. Editor, compilador, intérprete, depurador o IDE.

El sistema operativo es una pieza especialmente importante del software de sistema. Actúa como intermediario entre las aplicaciones y el hardware: administra la memoria, coordina procesos y ofrece servicios para acceder a discos, teclado, pantalla, red o impresora. Los controladores permiten que el sistema operativo conozca la forma concreta de comunicarse con cada dispositivo.

Volviendo a la analogía de la cocina, el software son las recetas y el sistema operativo es quien organiza el trabajo: proporciona al procesador los ingredientes que necesita, reserva espacio en la memoria y solicita los utensilios adecuados.

Tipos de software
Clasificación del software según su función.

No confundas aplicación y software de desarrollo

Un editor como Visual Studio Code es un programa que se ejecuta sobre Windows, Linux o macOS, pero se clasifica como software de desarrollo porque su finalidad es ayudar a crear otros programas.

3. Cómo se comunican el software y el hardware

La ejecución de un programa puede entenderse como un ciclo de entrada, procesamiento, memoria y salida. De forma simplificada:

  1. El programa está almacenado de forma persistente en el SSD o disco duro.
  2. El sistema operativo lo carga, junto con sus datos, en la memoria RAM.
  3. La CPU recupera instrucciones y datos desde la RAM y ejecuta las instrucciones.
  4. El programa recibe entradas —por ejemplo, una pulsación de teclado— y actualiza sus datos.
  5. El resultado se envía a un dispositivo de salida, como la pantalla, o se guarda de nuevo en almacenamiento persistente.
flowchart LR
    A[SSD o disco<br/>programa y datos] -->|cargar| B[RAM<br/>código y datos en uso]
    B -->|leer instrucciones| C[CPU<br/>procesar y calcular]
    D[Entrada<br/>teclado o ratón] -->|eventos| C
    C -->|resultado| E[Salida<br/>pantalla o altavoces]
    C -->|guardar| A

El disco duro también se considera un periférico de entrada/salida (E/S) porque permite leer datos y escribirlos. La CPU no almacena de forma permanente los documentos: los procesa y coordina operaciones, mientras que la RAM mantiene temporalmente la información que se está utilizando.

Una precisión importante

Una aplicación no suele enviar órdenes directamente al teclado. El teclado genera una entrada, el sistema operativo recibe el evento mediante su controlador y la aplicación consulta ese evento para reaccionar. Del mismo modo, la aplicación solicita guardar un archivo al sistema operativo, que se encarga de escribirlo en el almacenamiento.

Cada vez que ejecutamos un programa, la CPU recupera instrucciones y las ejecuta en pasos muy pequeños, millones de veces por segundo. Por ejemplo:

  • Al escribir en un procesador de textos, el teclado envía pulsaciones al sistema; el sistema operativo las comunica a la aplicación y esta actualiza el documento en la RAM.
  • Al guardar el documento, el sistema operativo toma los datos que están en memoria y los escribe en un archivo del SSD o del disco duro.
  • Al mostrar el documento, la aplicación solicita una representación visual; la CPU y, cuando procede, la GPU procesan la información y la pantalla muestra los píxeles.

4. Ejemplo práctico: el juego Tetris

Tetris permite observar la colaboración entre varios componentes sin ocultar el proceso detrás de una aplicación compleja.

  1. Pulsas una flecha del teclado. El teclado, que es un dispositivo de entrada, genera un evento.
  2. El sistema operativo comunica el evento al juego.
  3. La CPU ejecuta el código del juego y calcula la nueva posición de la pieza.
  4. La RAM conserva temporalmente el estado del juego: piezas, posiciones, puntuación y nivel.
  5. La GPU puede renderizar la escena y la pantalla muestra el resultado.
  6. Si guardas la partida, el sistema operativo escribe sus datos en el SSD o disco duro.
  7. Cuando cierras el juego, el sistema operativo libera la memoria y otros recursos reservados.
sequenceDiagram
    actor Jugador
    participant Teclado
    participant SO as Sistema operativo
    participant Juego
    participant CPU
    participant RAM
    participant GPU
    participant Pantalla

    Jugador->>Teclado: Pulsa una flecha
    Teclado->>SO: Envía evento de entrada
    SO->>Juego: Comunica la pulsación
    Juego->>CPU: Solicita calcular el movimiento
    CPU->>RAM: Actualiza el estado de la pieza
    CPU->>GPU: Solicita dibujar la escena
    GPU->>Pantalla: Envía la imagen
    Pantalla-->>Jugador: Muestra la pieza desplazada

En este ejemplo, el software del juego define las reglas: qué ocurre al pulsar una tecla, cómo cae una pieza o cuándo se completa una línea. La CPU ejecuta esas instrucciones, la RAM mantiene los datos de la partida, la GPU se ocupa especialmente del renderizado y el sistema operativo coordina el acceso a los recursos.

CPU y GPU no hacen exactamente lo mismo

La CPU ejecuta la lógica general del programa, como la física, las colisiones o las reglas del juego. La GPU está especializada en realizar cálculos gráficos y dibujar la escena. En aplicaciones sencillas la división puede ser menos visible, pero el principio sigue siendo útil.

5. Por qué esta relación importa al desarrollar

Comprender la relación entre software y hardware es esencial para desarrollar aplicaciones eficientes. Una aplicación no utiliza recursos infinitos: consume tiempo de CPU, memoria RAM, almacenamiento, red y, en algunos casos, capacidad de cálculo gráfico.

Por ejemplo:

  • un editor de vídeo puede necesitar mucha RAM; conviene liberar recursos que ya no se usan y evitar cargar datos innecesarios;
  • una aplicación móvil debe tener en cuenta que el dispositivo puede disponer de menos memoria, procesador y batería que un ordenador;
  • una aplicación que lee y escribe continuamente en disco puede ser más lenta que otra que trabaja en RAM y guarda solo cuando es necesario;
  • conocer los periféricos y el sistema operativo ayuda a diseñar correctamente la entrada, la salida y la gestión de errores.

En el trabajo profesional, esta perspectiva permite elegir estructuras de datos adecuadas, controlar el consumo de memoria, reducir operaciones costosas y adaptar una aplicación a distintos dispositivos.

6. Buenas prácticas y errores frecuentes

Situación Por qué ocurre Cómo evitarla
Confundir RAM con almacenamiento permanente Ambas guardan datos, pero tienen distinta persistencia. Recordar: RAM = temporal; SSD/HDD = persistente.
Afirmar que el monitor ejecuta el programa El monitor solo muestra la salida recibida. Separar procesamiento (CPU/GPU) de salida visual (pantalla).
Pensar que el disco ejecuta el juego El programa se carga desde el disco, pero se ejecuta usando CPU y RAM. Diferenciar cargar, ejecutar y guardar.
Confundir un periférico con software Un dispositivo físico puede estar controlado por un programa. Nombrar por separado dispositivo, controlador y aplicación.
Suponer que todas las aplicaciones controlan directamente el hardware El acceso directo dificultaría la seguridad y la portabilidad. Entender el papel del sistema operativo y sus controladores.

Para analizar cualquier programa

Pregúntate siempre: ¿qué datos recibe?, ¿dónde se almacenan mientras se usan?, ¿qué componente los procesa?, ¿qué resultado produce? y ¿cuándo se guardan de forma permanente?

7. Resumen

En este tema has aprendido que:

  • el hardware es la parte física del sistema y el software es la parte lógica;
  • la CPU ejecuta instrucciones, la RAM mantiene temporalmente código y datos, y el SSD o disco duro conserva la información;
  • los periféricos realizan operaciones de entrada, salida o entrada/salida;
  • el sistema operativo hace de intermediario entre las aplicaciones y muchos componentes físicos;
  • durante la ejecución, un programa se carga en RAM, la CPU procesa sus instrucciones y el resultado se comunica mediante dispositivos de E/S;
  • en un videojuego como Tetris, teclado, CPU, RAM, GPU, pantalla y almacenamiento colaboran siguiendo las instrucciones del software;
  • conocer el hardware permite diseñar aplicaciones más eficientes y adecuadas al dispositivo.

Idea clave

El software indica qué hacer, el hardware proporciona los medios para hacerlo y el sistema operativo coordina buena parte de esa colaboración. Esta relación es la base para comprender el código fuente, el código objeto y el código ejecutable del siguiente apartado.

Bibliografía y fuentes

Presentación