Programas, Procesos, Servicios e Hilos: Conceptos Clave y Tipos de Programación

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,51 KB

Conceptos Fundamentales: Programas, Procesos, Servicios e Hilos

Programas: Información almacenada en el disco.

Procesos: Programas en ejecución gestionados por el Sistema Operativo (SO). Están formados por:

  • Instrucciones.
  • Estado de ejecución.
  • Espacio de memoria utilizado.
  • Contador de programa.
  • Otra información relevante para su ejecución.

Servicios: Procesos que no interactúan directamente con el usuario. Proporcionan servicios básicos a otros procesos y, generalmente, se inician automáticamente al arrancar el sistema.

Hilo (Thread): Tarea que puede ejecutarse en paralelo con otras tareas. Los hilos que comparten los mismos recursos forman parte de un mismo proceso. Los programas con múltiples hilos se denominan de flujo múltiple (multithreaded).

El Sistema Operativo (SO)

El Sistema Operativo actúa como intermediario entre el usuario, las aplicaciones y el hardware. Sus funciones principales son:

  • Ejecutar los programas del usuario.
  • Servir de interfaz entre el usuario y los recursos del ordenador.
  • Gestionar los recursos de forma eficiente.

Tipos de Programación

Programación Multiproceso

Es la ejecución de múltiples procesos simultáneamente en un sistema. Aunque el SO gestiona esta concurrencia, la cooperación entre procesos requiere técnicas de comunicación y sincronización.

Programación Concurrente

Es la rama de la informática que se ocupa de las técnicas y notaciones para expresar el paralelismo potencial entre tareas y para resolver los problemas de comunicación y sincronización de procesos. Permite la ejecución simultánea de múltiples aplicaciones, ya sea en un único procesador, en múltiples procesadores o en varios equipos.

Programación Paralela

Diseñada para ejecutarse en equipos multiprocesador. Permite mejorar el rendimiento al ejecutarse en diferentes núcleos simultáneamente.

Programación Distribuida

Posibilita la utilización de múltiples dispositivos de forma paralela. Se puede implementar en:

  • Redes LAN.
  • Supercomputadores.
  • Grid computing (sistemas conectados mediante redes de área extensa).
  • Cloud computing (la nube).

Estados de un Proceso

Los estados típicos de un proceso son:

  • Nuevo: El proceso se acaba de crear. Si hay recursos disponibles, pasa al estado "Listo".
  • Listo: El proceso está preparado para ejecutarse, pero espera a ser asignado al procesador.
  • En ejecución: El proceso está siendo ejecutado por el procesador.
  • Bloqueado: El proceso está esperando que ocurra algún evento (por ejemplo, una operación de E/S).
  • Terminado: El proceso ha finalizado su ejecución.

Gestión de Procesos

El SO se encarga de la gestión de los procesos. Utiliza varias colas:

  • Cola de procesos.
  • Cola de procesos preparados.
  • Cola de dispositivos (para procesos en espera de operaciones de E/S).

El planificador de procesos decide qué proceso usará el procesador y durante cuánto tiempo. Algunos algoritmos de planificación comunes son:

  • FIFO (First-In, First-Out).
  • Round Robin.
  • Planificación por prioridad.
  • Colas múltiples.

Entradas relacionadas: