PROCESOS EN SISTEMAS DISTRIBUIDOS

 PROCESOS EN SISTEMAS DISTRIBUIDOS


"El éxito no es la clave para la felicidad. La felicidad es la clave para el éxito. Si amas lo que haces, alcanzarás el éxito"

PROCESOS:

Objetivo: Identificar la forma en que los distintos tipos de procesos cumplen su crucial papel en los sistemas distribuidos


PROCESOS EN SISTEMAS DISTRIBUIDOS


En sistemas distribuidos, los procesos son entidades concurrentes que se ejecutan de forma independiente en diferentes nodos de la red. Estos procesos pueden comunicarse entre sí a través de la red para colaborar en la realización de tareas comunes. Juntos, los distintos tipos de procesos, como hilos, clientes, servidores y la migración de código desempeñan roles fundamentales en la coordinación y ejecución de operaciones distribuidas, permitiendo el funcionamiento eficiente y escalable de sistemas distribuidos.

HILOS

Se refiere a una secuencia de instrucciones que puede ejecutarse de forma independiente dentro de un proceso. Físicamente, los hilos existen en la memoria del sistema informático, en la misma área donde se almacenan los programas en ejecución. En términos más simples, un hilo es una entidad virtual que forma parte de un programa y puede ejecutarse de manera simultánea con otros hilos, permitiendo la realización de múltiples tareas de manera concurrente dentro de un mismo proceso.

HILOS POR PROCESO 



Cada hilo representa una secuencia de instrucciones que puede ejecutarse de forma independiente dentro de un proceso. Puede haber procesos con un solo hilo (monotarea)y procesos con múltiples hilos de un mismo proceso (multitarea)

VIRTUALIZACIÓN  
 

La virtualización se refiere al proceso de crear una versión virtual de recursos informáticos, como servidores, almacenamiento, redes o sistemas operativos. Esta técnica permite que múltiples máquinas virtuales, cada una con su entorno aislado, funcionen en un mismo hardware físico. La virtualización ayuda a optimizar el uso de recursos, mejorar la escalabilidad, facilitar la administración de sistemas y aumentar la flexibilidad en entornos informáticos empresariales.


¿CÓMO FUNCIONA LA VIRTUALIZACIÓN?


Un hipervisor, también conocido como monitor de máquina virtual, es un software o firmware que permite la creación y gestión de máquinas virtuales en un entorno de virtualización. El hipervisor actúa como una capa intermedia entre el hardware físico de la computadora y las máquinas virtuales, permitiendo que las VM compartan eficientemente los recursos del sistema subyacente. Existen dos tipos principales de hipervisores: los de tipo 1, que se ejecutan directamente sobre el hardware, y los de tipo 2, que operan sobre un sistema operativo anfitrión




FUNCIONES DEL HIPERVISOR: 


 Aislamiento: Asegura que cada VM funcione de manera aislada, sin interferir con las demás, lo que mejora la seguridad y estabilidad

Asignación de Recursos: Administra la distribución de recursos físicos como CPU, memoria y almacenamiento entre las VMs.

Supervisión y Gestión: Proporciona herramientas para monitorear y gestionar el rendimiento y el estado de las VMs, facilitando tareas como el ajuste dinámico de recursos y la migración de VMs.

Migración en Vivo: Permite mover VMs de un host físico a otro sin interrumpir su funcionamiento, lo cual es crucial para el mantenimiento y la carga balanceada

CLIENTES 

 

En sistemas distribuidos, un cliente es un componente que solicita servicios o recursos a un servidor remoto a través de una red.

Las características de un cliente incluyen: 

  • Capacidad de enviar solicitudes: Un cliente puede enviar solicitudes para acceder a servicios o recursos en la red.
  • Interacción con servidores: Los clientes interactúan con servidores remotos para obtener información, procesar datos o realizar acciones
  • Independencia de plataforma: Los clientes deben ser capaces de funcionar en diferentes plataformas y sistemas operativos
  • Seguridad: Los clientes deben asegurar la confidencialidad, integridad y autenticación de las comunicaciones con los servidores
  • Manejo de errores: Los clientes deben ser capaces de manejar errores de red y comunicación de manera adecuada para garantizar la fiabilidad de las operaciones
TIPOS COMUNES DE CLIENTES  

Clientes ligeros: Estos clientes tienen una funcionalidad limitada y dependen en gran medida de los servidores remotos para llevar a cabo tareas computacionalmente intensivas o de procesamiento de datos.

Clientes pesados: A diferencia de los clientes ligeros, los clientes pesados tienen más capacidad de procesamiento y pueden realizar tareas complejas localmente antes de interactuar con los servidores remotos.

Clientes web: Son clientes que acceden a servicios o recursos a través de navegadores web. Estos clientes utilizan tecnologías web como HTML, CSS y JavaScript para interactuar con servidores web y aplicaciones en la nube.

Clientes móviles: Son clientes diseñados para dispositivos móviles como teléfonos inteligentes y tabletas. Estos clientes pueden acceder a servicios remotos a través de redes móviles y aplicaciones móviles específicas.

Clientes de escritorio: Son aplicaciones de software instaladas en dispositivos de escritorio que se comunican con servidores remotos para acceder a servicios en la nube o recursos compartidos

Clientes embebidos: Son clientes integrados en dispositivos o sistemas embebidos que se conectan a servidores remotos para acceder a servicios o intercambiar datos a través de redes

SERVIDORES

Un servidor es un componente informático que ofrece servicios, recursos o funcionalidades a otros componentes llamados clientes a través de una red de computadoras. Los servidores en sistemas distribuidos actúan como puntos de acceso centralizados para que los clientes soliciten y obtengan información, realicen procesamiento de datos o ejecuten operaciones remotas. Estos servidores suelen estar diseñados para ser confiables, escalables y seguros, gestionando múltiples solicitudes de clientes de manera eficiente.

TIPOS DE SERVIDORES 

Servidor Web:  Función: Proporciona páginas web a los clientes que las solicitan mediante navegadores web.  Ejemplo: Apache HTTP Server, Nginx.

 Servidor de Correo:  Función: Gestiona y almacena correos electrónicos.  Ejemplo: Microsoft Exchange, Postfix.

Servidor de Base de Datos:  Función: Proporciona acceso a bases de datos, gestionando consultas y almacenamiento de datos.  Ejemplo: MySQL, PostgreSQL.

Servidor de Archivos:  Función: Almacena y permite el acceso a archivos y documentos.  Ejemplo: Samba, Microsoft Windows Server

MIGRACIÓN DE CÓDIGO  

La migración de código se refiere al proceso de trasladar o transferir código fuente, aplicaciones o sistemas de un entorno a otro. Esto puede implicar cambiar de un lenguaje de programación a otro, mover una aplicación de un sistema operativo a otro, actualizar versiones de software, o incluso migrar datos entre diferentes plataformas.

Importancia de la Migración de Código

Optimización del Rendimiento: La migración de código permite distribuir la carga de trabajo de manera más equitativa entre los nodos de la red, evitando cuellos de botella y maximizando la utilización de recursos.

Escalabilidad Dinámica: Con la migración de código, los sistemas distribuidos pueden escalar horizontalmente de manera dinámica, agregando o eliminando recursos según la demanda actual.

Resiliencia y Tolerancia a Fallos: Al migrar el código de un nodo a otro, los sistemas distribuidos pueden recuperarse de fallos o problemas de rendimiento de manera más rápida y eficiente, minimizando el impacto en la operación general.

Eficiencia en el Uso de Recursos: La migración de código permite aprovechar al máximo los recursos disponibles en la red, asignando dinámicamente las tareas a los nodos más adecuados en función de su capacidad y carga actual 



Comentarios

Entradas populares de este blog

LOGICA JUICIO, ORACIÓN Y PROPOSICIÓN

Probabilidad y estadística Métodos de conteo

LEYES DEL ÁLGEBRA PROPOSICIONAL