Term
|
Definition
Un protocolo se refiere a un conjunto de reglas, procedimientos y convenciones que se utilizan para que dos o más sistemas puedan comunicarse e intercambiar información de manera efectiva y confiable. Los protocolos establecen un conjunto común de reglas para la comunicación, lo que permite que los sistemas se comuniquen de manera coherente y se eviten malentendidos o errores en la comunicación. |
|
|
Term
Cuáles son las capas de modelo OSI en orden |
|
Definition
1. Capa física (Physical Layer) 2. Capa de enlace de datos (Data Link Layer) 3. Capa de red (Network Layer) 4. Capa de transporte (Transport Layer) 5. Capa de sesión (Session Layer) 6. Capa de presentación (Presentation Layer) 7. Capa de aplicación (Application Layer) |
|
|
Term
Define X.25 y su modo de conexión |
|
Definition
X.25 es un estándar de comunicaciones de redes de área amplia (WAN) que define la forma en que los datos se transfieren entre dispositivos a través de redes públicas de conmutación de paquetes. El estándar X.25 se desarrolló en la década de 1970 y se utilizó ampliamente en los sistemas de telecomunicaciones hasta la popularización de las redes de área amplia de Internet. El modo de conexión de X.25 se conoce como "modo de conexión de paquete virtual" (Virtual Circuit Connection Mode). Este modo de conexión permite que los dispositivos establezcan una conexión virtual antes de transmitir datos. El proceso de conexión de paquete virtual se divide en tres fases: establecimiento de conexión, transferencia de datos y liberación de conexión. Durante la fase de establecimiento de conexión, los dispositivos intercambian señales de control para establecer una conexión virtual. La conexión virtual se identifica mediante un número de circuito virtual (VC), que se utiliza para identificar el circuito virtual durante la transmisión de datos. En la fase de transferencia de datos, los dispositivos intercambian paquetes de datos a través del circuito virtual establecido. X.25 utiliza técnicas de control de flujo y corrección de errores para garantizar que los datos se transmitan de manera confiable. Finalmente, en la fase de liberación de conexión, los dispositivos intercambian señales de control para liberar el circuito virtual y terminar la transmisión de datos. El modo de conexión de paquete virtual de X.25 proporciona una forma eficiente y confiable de transferir datos a través de redes de área amplia y se utilizó ampliamente en los sistemas de telecomunicaciones durante décadas. Sin embargo, hoy en día su uso se ha visto reducido debido al aumento de las redes de área amplia basadas en IP y Ethernet. |
|
|
Term
¿Cuál capa del modelo OSI se encarga del significado de los datos? |
|
Definition
La capa del modelo OSI que se encarga del significado de los datos es la capa de presentación (Presentation Layer). La capa de presentación se encarga de la representación y la sintaxis de los datos, y se asegura de que los datos se presenten de manera coherente y comprensible para las aplicaciones que los utilizan. Esto incluye la traducción de los datos en un formato que pueda ser interpretado por la aplicación, la compresión y la cifrado de los datos para garantizar la privacidad y la seguridad de la información. Además, la capa de presentación también puede realizar funciones de conversión de datos, como la conversión de un formato de codificación de caracteres a otro, y la conversión de un formato de imagen a otro. En resumen, la capa de presentación se encarga de proporcionar una representación coherente y comprensible de los datos para las aplicaciones que los utilizan, y garantiza que los datos se presenten de manera adecuada independientemente del tipo de dispositivo o sistema operativo que se utilice. |
|
|
Term
|
Definition
ATM (Asynchronous Transfer Mode) es una tecnología de comunicación de alta velocidad utilizada para transferir datos, voz y video a través de redes de telecomunicaciones de alta velocidad. En una red ATM, los datos se transmiten en paquetes de tamaño fijo llamados "células", cada una de las cuales consta de 53 bytes de datos y 5 bytes de información de encabezado. Las células se transmiten de manera asíncrona, lo que significa que no se requiere una conexión constante entre los dispositivos que se comunican para transferir datos. ATM utiliza técnicas de multiplexación estadística para compartir el ancho de banda disponible entre múltiples usuarios de la red, lo que permite una utilización más eficiente de los recursos de la red. Además, ATM también proporciona servicios de calidad de servicio (QoS) que permiten que los datos críticos, como el tráfico de voz o video, tengan prioridad en la red y se transmitan con una mayor fiabilidad. Aunque ATM se utilizó ampliamente en las redes de telecomunicaciones en la década de 1990, su uso se ha visto reducido con la creciente popularidad de las redes basadas en IP y Ethernet. Sin embargo, todavía se utiliza en algunos entornos, como redes de área local de alta velocidad (LAN) y redes de telecomunicaciones de proveedores de servicios de Internet (ISP). |
|
|
Term
¿Qué es SONET y por cuantos bytes está formado? |
|
Definition
SONET (Synchronous Optical Network) es una tecnología de red de fibra óptica de alta velocidad utilizada para transmitir grandes cantidades de datos a través de largas distancias. SONET utiliza una técnica llamada multiplexación por división de tiempo (TDM) para transmitir múltiples señales de datos simultáneamente a través de una sola fibra óptica. Los datos se transmiten en unidades llamadas "cuadros SONET", que están compuestos por una serie de "contenedores virtuales" (VT) y "contenedores síncronos" (STS). Cada contenedor virtual (VT) tiene una capacidad de 48 bytes, mientras que cada contenedor síncrono (STS) tiene una capacidad de 810 bytes. Un cuadro SONET completo está compuesto por 9 contenedores síncronos (STS-1), lo que significa que está formado por 810 bytes x 9 = 7.290 bytes. SONET se utiliza comúnmente en los sistemas de telecomunicaciones para proporcionar una capacidad de transmisión de datos de alta velocidad y una mayor fiabilidad en la transmisión de datos a largas distancias. También se utiliza como una capa de transporte para otras tecnologías de red, como la red de área amplia óptica (WDM) y la red de servicios integrados digitales (ISDN). |
|
|
Term
|
Definition
La latencia es el tiempo que tarda un paquete de datos en viajar desde su origen hasta su destino a través de una red. Se refiere al retraso que se produce entre el momento en que se inicia una acción y el momento en que se produce su respuesta. La latencia se mide en milisegundos (ms) y depende de varios factores, como la distancia física entre los dispositivos, la calidad y capacidad de los enlaces de red utilizados, el número de nodos de red involucrados en la transmisión de datos, la carga de la red y la capacidad de procesamiento de los dispositivos finales. La latencia puede afectar la calidad y el rendimiento de aplicaciones en tiempo real, como la voz y el video, así como a otras aplicaciones que requieren una respuesta rápida, como los juegos en línea. Un alto nivel de latencia puede causar retardos en la transmisión de datos, lo que puede resultar en retrasos y otros problemas de rendimiento. En general, se busca minimizar la latencia en las redes de comunicación y se utilizan técnicas como la optimización de rutas de red, el uso de enlaces de alta capacidad y la mejora de la capacidad de procesamiento de los dispositivos finales para reducir el impacto de la latencia en la calidad y el rendimiento de las aplicaciones. |
|
|
Term
Menciona dos ventajas del modelo Cliente-Servidor |
|
Definition
- Escalabilidad: el modelo cliente-servidor es altamente escalable. El servidor se encarga de manejar las solicitudes de múltiples clientes, lo que significa que se pueden agregar más clientes a la red sin afectar el rendimiento de otros clientes. Además, se pueden agregar más servidores a la red para manejar la carga de trabajo adicional.
- Mantenimiento centralizado: en el modelo cliente-servidor, el servidor es responsable de mantener la base de datos y otros recursos compartidos. Esto significa que el mantenimiento se puede realizar de manera centralizada en el servidor, lo que simplifica el proceso de mantenimiento y reduce el tiempo y los costos asociados con el mantenimiento. Además, cualquier actualización o cambio en la base de datos o los recursos compartidos se puede hacer en el servidor y se reflejará automáticamente en todos los clientes, lo que garantiza la coherencia y la integridad de los datos. |
|
|
Term
Menciona las capas del modelo cliente servidor y su relaciona con el modelo OSI |
|
Definition
El modelo cliente-servidor no tiene una estructura formal de capas como el modelo OSI, pero se puede considerar una organización básica en dos partes: la parte del cliente y la parte del servidor. La parte del cliente suele constar de dos capas: Capa de presentación: se encarga de la presentación de los datos al usuario. Esta capa es responsable de la conversión de los datos en un formato que sea fácil de entender para el usuario y de la presentación de los datos en la interfaz de usuario. Capa de aplicación: se encarga de la comunicación con el servidor y de la realización de las solicitudes del usuario. Esta capa es responsable de la traducción de las solicitudes del usuario en un formato que pueda ser entendido por el servidor y de la interpretación de las respuestas del servidor para el usuario. Por otro lado, la parte del servidor también se puede dividir en dos capas: Capa de aplicación: se encarga de la lógica de negocio y de la gestión de los recursos del servidor. Esta capa es responsable de la realización de las solicitudes del cliente y de la gestión de los recursos del servidor necesarios para procesar estas solicitudes. Capa de acceso a datos: se encarga de la gestión de la base de datos o los recursos compartidos del servidor. Esta capa es responsable de la recuperación y almacenamiento de los datos en la base de datos o los recursos compartidos del servidor. En resumen, aunque no exista una estructura formal de capas en el modelo cliente-servidor, se puede establecer una relación general con el modelo OSI, donde las capas de presentación y aplicación del cliente estarían relacionadas con las capas de aplicación, presentación y sesión del modelo OSI, mientras que las capas de aplicación y acceso a datos del servidor estarían relacionadas con las capas de aplicación y acceso a datos del modelo OSI. |
|
|
Term
¿Cuáles son los aspectos de diseño del modelo cliente-servidor? |
|
Definition
El modelo cliente-servidor es una arquitectura de red que se utiliza para la comunicación entre aplicaciones distribuidas. El diseño del modelo cliente-servidor puede ser complejo y debe considerar varios aspectos clave, como los siguientes: Selección de protocolos: el modelo cliente-servidor se basa en la comunicación a través de protocolos de red. Es importante seleccionar los protocolos adecuados para garantizar una comunicación eficiente y segura entre el cliente y el servidor. Diseño de la interfaz de usuario: la interfaz de usuario es el medio principal de comunicación entre el usuario y la aplicación cliente. Es importante diseñar una interfaz de usuario fácil de usar y accesible que permita al usuario interactuar de manera eficiente con la aplicación. Diseño de la lógica de la aplicación: la lógica de la aplicación es la parte de la aplicación que se encarga de realizar las operaciones de procesamiento y almacenamiento de datos. Es importante diseñar una lógica de la aplicación robusta y escalable que pueda manejar un gran número de solicitudes de clientes. Diseño de la base de datos: la base de datos es el lugar donde se almacenan los datos de la aplicación. Es importante diseñar una base de datos que sea eficiente, escalable y segura. Selección de la plataforma: la plataforma se refiere al conjunto de tecnologías y herramientas utilizadas para desarrollar la aplicación. Es importante seleccionar una plataforma adecuada que permita el desarrollo de una aplicación robusta y escalable. Gestión de la seguridad: la seguridad es un aspecto importante del diseño del modelo cliente-servidor. Es importante implementar medidas de seguridad adecuadas para proteger la aplicación y los datos del cliente y del servidor. En resumen, el diseño del modelo cliente-servidor debe considerar aspectos clave como la selección de protocolos, el diseño de la interfaz de usuario, la lógica de la aplicación, la base de datos, la plataforma y la seguridad. Al considerar estos aspectos, se puede crear una aplicación cliente-servidor eficiente, escalable y segura. |
|
|
Term
En que consiste el direccionamiento MACHINE.PROCESS |
|
Definition
El direccionamiento MACHINE.PROCESS es un esquema de direccionamiento utilizado en los sistemas distribuidos para identificar de manera única un proceso que se ejecuta en una máquina determinada en la red. En este esquema, el nombre de la máquina y el nombre del proceso se combinan para formar una dirección única para ese proceso en particular. Por ejemplo, en una red con varias máquinas, se puede identificar un proceso en particular como MACHINE.PROCESS. Aquí, "MACHINE" se refiere al nombre de la máquina y "PROCESS" se refiere al nombre del proceso que se está ejecutando en esa máquina. Este esquema de direccionamiento se utiliza comúnmente en sistemas operativos distribuidos y en entornos de redes de área amplia (WAN). El direccionamiento MACHINE.PROCESS es útil en sistemas distribuidos porque permite a los procesos de diferentes máquinas comunicarse de manera efectiva y permite a los usuarios acceder a los recursos compartidos en diferentes máquinas. En resumen, el direccionamiento MACHINE.PROCESS es un esquema de direccionamiento utilizado en los sistemas distribuidos para identificar de manera única un proceso que se ejecuta en una máquina determinada en la red. |
|
|
Term
En que consiste el direccionamiento MACHINE.LOCAL-ID |
|
Definition
El direccionamiento MACHINE.PROCESS es un esquema de direccionamiento utilizado en los sistemas distribuidos para identificar de manera única un proceso que se ejecuta en una máquina determinada en la red. En este esquema, el nombre de la máquina y el nombre del proceso se combinan para formar una dirección única para ese proceso en particular. Por ejemplo, en una red con varias máquinas, se puede identificar un proceso en particular como MACHINE.PROCESS. Aquí, "MACHINE" se refiere al nombre de la máquina y "PROCESS" se refiere al nombre del proceso que se está ejecutando en esa máquina. Este esquema de direccionamiento se utiliza comúnmente en sistemas operativos distribuidos y en entornos de redes de área amplia (WAN). El direccionamiento MACHINE.PROCESS es útil en sistemas distribuidos porque permite a los procesos de diferentes máquinas comunicarse de manera efectiva y permite a los usuarios acceder a los recursos compartidos en diferentes máquinas. En resumen, el direccionamiento MACHINE.PROCESS es un esquema de direccionamiento utilizado en los sistemas distribuidos para identificar de manera única un proceso que se ejecuta en una máquina determinada en la red. En que consiste el direccionamiento MACHINE.LOCAL-ID El direccionamiento MACHINE.LOCAL-ID es un esquema de direccionamiento utilizado en los sistemas distribuidos para identificar de manera única un proceso que se ejecuta en una máquina determinada en la red. En este esquema, el nombre de la máquina y un identificador local se combinan para formar una dirección única para ese proceso en particular. Por ejemplo, en una red con varias máquinas, se puede identificar un proceso en particular como MACHINE.LOCAL-ID. Aquí, "MACHINE" se refiere al nombre de la máquina y "LOCAL-ID" se refiere a un identificador local que se asigna a ese proceso en particular. Este esquema de direccionamiento se utiliza comúnmente en sistemas operativos distribuidos y en entornos de redes de área local (LAN). El direccionamiento MACHINE.LOCAL-ID es útil en sistemas distribuidos porque permite a los procesos de una misma máquina comunicarse de manera efectiva y permite a los usuarios acceder a los recursos locales de una máquina. En resumen, el direccionamiento MACHINE.LOCAL-ID es un esquema de direccionamiento utilizado en los sistemas distribuidos para identificar de manera única un proceso que se ejecuta en una máquina determinada en la red. |
|
|
Term
Que es un servidor de nombres |
|
Definition
Un servidor de nombres (también conocido como servidor DNS) es un componente clave de la infraestructura de Internet que se utiliza para resolver nombres de dominio en direcciones IP. En otras palabras, un servidor de nombres es un sistema que mantiene una base de datos distribuida de nombres de dominio y direcciones IP, y proporciona servicios de resolución de nombres a otros sistemas de la red. Cuando un usuario desea acceder a un sitio web, por ejemplo, el navegador web del usuario envía una solicitud al servidor de nombres para obtener la dirección IP correspondiente al nombre de dominio del sitio web. El servidor de nombres busca la dirección IP en su base de datos y la devuelve al navegador del usuario, que puede entonces utilizar la dirección IP para conectarse al sitio web. Existen diferentes tipos de servidores de nombres, como los servidores de nombres primarios, los servidores de nombres secundarios y los servidores de nombres raíz. Los servidores de nombres primarios son los responsables de mantener la información de nombres y direcciones IP para un dominio específico, mientras que los servidores de nombres secundarios se utilizan para proporcionar redundancia y mejorar la disponibilidad de los servicios de nombres. Los servidores de nombres raíz son los servidores que mantienen la información de los dominios de nivel superior (como .com, .org, etc.) y se utilizan para dirigir las solicitudes de resolución de nombres a los servidores de nombres adecuados. En resumen, un servidor de nombres es un componente clave de la infraestructura de Internet que se utiliza para resolver nombres de dominio en direcciones IP y proporciona servicios de resolución de nombres a otros sistemas de la red. |
|
|
Term
Describe el funcionamiento de primitivas con bloqueo y sin bloqueo |
|
Definition
Las primitivas de bloqueo y sin bloqueo son funciones que se utilizan en los sistemas operativos y en la programación concurrente para sincronizar el acceso a los recursos compartidos. Las primitivas de bloqueo funcionan de la siguiente manera: cuando un proceso necesita acceder a un recurso compartido, solicita un bloqueo (también conocido como semáforo o mutex) del sistema operativo. Si el bloqueo está disponible, el proceso lo adquiere y accede al recurso. Si el bloqueo está ocupado por otro proceso, el proceso que solicita el bloqueo se bloquea y espera a que el recurso esté disponible. Por otro lado, las primitivas sin bloqueo permiten a los procesos acceder a los recursos compartidos sin bloquearse. En lugar de solicitar un bloqueo, el proceso intenta acceder al recurso y si este está disponible, lo utiliza. Si el recurso está ocupado por otro proceso, el proceso que intenta acceder al recurso recibe una señal de que el recurso no está disponible y puede tomar medidas alternativas en lugar de esperar. Las primitivas de bloqueo son útiles para garantizar la coherencia y la consistencia de los datos en sistemas concurrentes, ya que evitan que varios procesos accedan simultáneamente a los mismos recursos y realicen operaciones que puedan interponerse entre sí. Sin embargo, las primitivas de bloqueo pueden causar problemas de rendimiento y escalabilidad en sistemas con muchos procesos que compiten por los mismos recursos. Las primitivas sin bloqueo son más eficientes en términos de rendimiento y escalabilidad, ya que permiten a los procesos acceder a los recursos compartidos sin bloquearse y sin esperar. Sin embargo, las primitivas sin bloqueo pueden ser más difíciles de implementar y depurar, ya que requieren que los procesos estén diseñados para trabajar de manera cooperativa sin bloquear recursos compartidos. En resumen, las primitivas de bloqueo y sin bloqueo son dos técnicas para sincronizar el acceso a los recursos compartidos en sistemas concurrentes. Las primitivas de bloqueo garantizan la coherencia y la consistencia de los datos, mientras que las primitivas sin bloqueo son más eficientes en términos de rendimiento y escalabilidad. |
|
|
Term
Describe el funcionamiento de primitivas no almacenadas |
|
Definition
Las primitivas no almacenadas (también conocidas como primitivas de paso de mensajes) son un mecanismo de sincronización y comunicación utilizado en programación concurrente y sistemas distribuidos. A diferencia de las primitivas de bloqueo y sin bloqueo, las primitivas no almacenadas no requieren que los procesos compartan recursos y evitan los problemas asociados con la competencia por los mismos recursos. En lugar de utilizar un recurso compartido, los procesos se comunican a través del intercambio de mensajes entre ellos. Cada proceso tiene una cola de mensajes asociada, en la que se reciben los mensajes enviados por otros procesos. Cuando un proceso envía un mensaje, lo coloca en la cola de mensajes del proceso receptor, que lo recibe y lo procesa. La primitiva de paso de mensajes se puede utilizar para enviar y recibir mensajes, y generalmente se implementa como una función o una biblioteca en el lenguaje de programación utilizado. Una ventaja de las primitivas no almacenadas es que los procesos no necesitan conocer la identidad o el estado de los demás procesos. Cada proceso puede enviar y recibir mensajes sin saber qué proceso recibirá el mensaje, lo que facilita la implementación de sistemas distribuidos y escalables. Además, las primitivas no almacenadas son adecuadas para sistemas en los que la latencia es alta o la red es inestable, ya que los mensajes se pueden enviar y recibir en cualquier momento sin bloquear o esperar a que los recursos estén disponibles. Sin embargo, las primitivas no almacenadas también tienen algunas desventajas. El paso de mensajes puede ser menos eficiente que el acceso directo a los recursos compartidos, y el envío y recepción de mensajes puede requerir una mayor complejidad de programación. Además, la falta de un recurso compartido centralizado puede dificultar la coordinación y la sincronización de los procesos, lo que puede requerir una planificación cuidadosa y una implementación robusta para garantizar la coherencia y la consistencia de los datos. En resumen, las primitivas no almacenadas son un mecanismo de sincronización y comunicación utilizado en programación concurrente y sistemas distribuidos. Utilizan el intercambio de mensajes entre procesos para evitar la competencia por los recursos compartidos y permiten la implementación de sistemas distribuidos y escalables. Sin embargo, pueden ser menos eficientes que las primitivas de bloqueo y sin bloqueo y pueden requerir una mayor complejidad de programación. |
|
|
Term
Describe el funcionamiento de primitivas almacenadas |
|
Definition
Las primitivas almacenadas son un mecanismo de sincronización utilizado en programación concurrente para garantizar el acceso exclusivo a un recurso compartido. Permiten a los procesos solicitar acceso a un recurso compartido utilizando una llamada a una función, también conocida como primitiva almacenada. La primitiva almacenada bloquea el proceso solicitante hasta que el recurso esté disponible, evitando así la competencia por los mismos recursos. Las primitivas almacenadas funcionan mediante el uso de un bloqueo de recurso, también conocido como semáforo o mutex. El bloqueo es una estructura de datos que se asocia con el recurso compartido y se utiliza para controlar el acceso a él. El bloqueo se puede implementar de varias maneras, pero generalmente tiene dos estados: disponible y ocupado. Cuando un proceso solicita acceso a un recurso compartido, la primitiva almacenada adquiere el bloqueo si está disponible y lo marca como ocupado. Si el bloqueo ya está ocupado, la primitiva almacenada bloquea al proceso solicitante hasta que el bloqueo esté disponible. Cuando un proceso ha terminado de utilizar el recurso compartido, debe liberar el bloqueo utilizando otra llamada a la primitiva almacenada. La liberación del bloqueo marca el recurso como disponible y desbloquea a cualquier proceso que esté esperando para utilizarlo. Las primitivas almacenadas son útiles para garantizar la exclusión mutua y evitar problemas como la condición de carrera, donde dos o más procesos intentan acceder al mismo recurso compartido simultáneamente. También se utilizan para sincronizar el acceso a recursos compartidos y evitar problemas como la inanición, donde un proceso puede quedar bloqueado indefinidamente mientras espera el acceso a un recurso. Sin embargo, las primitivas almacenadas también tienen algunas desventajas. Pueden ser propensas a problemas como la inanición, donde un proceso puede quedar bloqueado indefinidamente si otros procesos adquieren y liberan constantemente el bloqueo. Además, las primitivas almacenadas pueden ser menos eficientes que otros mecanismos de sincronización, ya que implican una mayor sobrecarga de sistema debido a la necesidad de adquirir y liberar el bloqueo. En resumen, las primitivas almacenadas son un mecanismo de sincronización utilizado en programación concurrente para garantizar el acceso exclusivo a un recurso compartido. Funcionan mediante el uso de un bloqueo de recurso que se adquiere y libera mediante llamadas a la primitiva almacenada. Las primitivas almacenadas son útiles para garantizar la exclusión mutua y sincronizar el acceso a recursos compartidos, pero pueden ser propensas a problemas como la inanición y pueden ser menos eficientes que otros mecanismos de sincronización. |
|
|
Term
|
Definition
En el contexto de la programación concurrente, un buzón es un mecanismo de comunicación entre procesos que permite enviar y recibir mensajes de forma asíncrona. Un buzón es esencialmente una cola de mensajes en la que los procesos pueden depositar mensajes para que sean procesados por otros procesos. El funcionamiento de un buzón es relativamente sencillo. Cada buzón está asociado con uno o varios procesos y tiene una capacidad determinada. Los procesos pueden depositar mensajes en el buzón utilizando una llamada a una función que suele denominarse "enviar mensaje". Los mensajes permanecen en el buzón hasta que son procesados por el proceso receptor. Los procesos también pueden leer mensajes de un buzón utilizando una llamada a una función que suele denominarse "recibir mensaje". Si no hay ningún mensaje en el buzón, el proceso receptor se bloquea hasta que se reciba un mensaje. Los buzones son útiles porque permiten la comunicación asíncrona entre procesos. Esto significa que los procesos pueden continuar trabajando mientras esperan a recibir un mensaje, en lugar de tener que esperar de forma activa hasta que se reciba el mensaje. Los buzones también permiten la comunicación entre procesos que no comparten una memoria compartida, lo que los hace especialmente útiles en sistemas distribuidos. Sin embargo, los buzones también tienen algunas desventajas. En particular, pueden ser propensos a problemas de congestión si hay demasiados mensajes en el buzón o si los procesos no pueden procesar los mensajes lo suficientemente rápido. También pueden ser propensos a errores de sincronización si los procesos no se bloquean correctamente al esperar la recepción de un mensaje. En resumen, un buzón es un mecanismo de comunicación asíncrona entre procesos que permite enviar y recibir mensajes utilizando una cola de mensajes. Los buzones son útiles porque permiten la comunicación asíncrona entre procesos y la comunicación entre procesos que no comparten una memoria compartida. Sin embargo, los buzones también pueden ser propensos a problemas de congestión y errores de sincronización. |
|
|
Term
Qué es una primitiva confiable y que es una no confiable |
|
Definition
En programación concurrente, una primitiva confiable es aquella que garantiza que la operación que se realiza se llevará a cabo de manera segura y completa, sin pérdida de información o de datos. En otras palabras, una primitiva confiable es una llamada a una función que asegura que la información que se envía llegará a su destino de manera íntegra, sin errores y en el orden correcto. Por otro lado, una primitiva no confiable no garantiza que la operación que se realiza se llevará a cabo de manera segura y completa. En otras palabras, una primitiva no confiable es una llamada a una función que no asegura que la información que se envía llegará a su destino de manera íntegra, sin errores y en el orden correcto. Por ejemplo, una llamada a una función "enviar mensaje" puede ser confiable si garantiza que el mensaje llegará a su destino de manera segura y completa. Por otro lado, una llamada a una función "enviar mensaje" no confiable no garantiza que el mensaje llegará a su destino de manera segura y completa, por lo que puede haber errores o pérdida de datos en el proceso. En resumen, una primitiva confiable es una llamada a una función que garantiza que la operación se llevará a cabo de manera segura y completa, mientras que una primitiva no confiable no ofrece esta garantía y puede resultar en errores o pérdida de datos. |
|
|
Term
|
Definition
En el contexto de la comunicación de redes, un reconocimiento (también conocido como ACK, del inglés "acknowledgement") es un mensaje enviado por un receptor para confirmar que ha recibido un paquete de datos enviado por un emisor. El reconocimiento es una técnica de control de flujo que se utiliza para asegurarse de que los datos se entreguen correctamente y en el orden correcto. Cuando un emisor envía un paquete de datos a un receptor, espera recibir un reconocimiento en respuesta para confirmar que el paquete ha sido recibido correctamente. Si el emisor no recibe un reconocimiento dentro de un tiempo determinado, puede suponer que el paquete se ha perdido o que hay algún problema en la comunicación. El reconocimiento es una técnica comúnmente utilizada en los protocolos de transporte de redes, como TCP (Protocolo de Control de Transmisión), que es el protocolo utilizado para la transmisión de datos confiable en Internet. |
|
|
Term
Enlista los tipos de paquetes utilizados en el protocolo clientes-servidor |
|
Definition
El protocolo cliente-servidor utiliza diferentes tipos de paquetes o mensajes para la comunicación entre los componentes del sistema. Algunos de los tipos de paquetes más comunes en el protocolo cliente-servidor incluyen: - Solicitud (Request): Este tipo de paquete es enviado por el cliente al servidor para solicitar una acción o información específica. La solicitud puede incluir parámetros o datos adicionales necesarios para que el servidor realice la acción solicitada. - Respuesta (Response): Este tipo de paquete es enviado por el servidor en respuesta a una solicitud recibida del cliente. La respuesta puede incluir los resultados de una acción realizada por el servidor o información solicitada por el cliente. - Confirmación (Confirmation): Este tipo de paquete es enviado por el servidor para confirmar que ha recibido una solicitud o mensaje del cliente. La confirmación se utiliza para garantizar que el cliente sepa que su mensaje ha sido entregado correctamente. - Notificación (Notification): Este tipo de paquete es enviado por el servidor al cliente para notificarle de un evento o cambio en el sistema. Por ejemplo, una notificación puede ser enviada para informar al cliente de que se ha producido un error o de que se ha completado una tarea en segundo plano. - Error (Error): Este tipo de paquete es enviado por el servidor al cliente para informar de un error que ha ocurrido en el sistema. El paquete de error puede incluir información sobre la naturaleza del error y las acciones que el cliente puede tomar para corregirlo. |
|
|
Term
|
Definition
RPC (Remote Procedure Call) es un protocolo de comunicación que permite a los programas de software solicitar servicios o procedimientos de otros programas ubicados en computadoras remotas en una red de computadoras. Es una técnica utilizada en arquitecturas cliente-servidor para permitir que un programa cliente ejecute funciones en un programa servidor remoto, como si estuvieran siendo ejecutadas en su propia máquina. En RPC, el cliente envía una solicitud a través de la red al servidor, especificando el procedimiento que desea ejecutar y los argumentos que se deben utilizar en la llamada al procedimiento. El servidor procesa la solicitud y devuelve una respuesta al cliente con los resultados de la llamada al procedimiento. |
|
|
Term
|
Definition
RPC (Remote Procedure Call) funciona de la siguiente manera: 1. El programa cliente envía una solicitud de llamada a un procedimiento remoto al programa servidor a través de la red. La solicitud contiene el nombre del procedimiento que se debe ejecutar y los parámetros que se deben utilizar en la llamada al procedimiento. 2. El programa servidor recibe la solicitud de llamada al procedimiento remoto y verifica si está autorizado para ejecutar el procedimiento solicitado. Si se autoriza la llamada, el servidor realiza la operación solicitada utilizando los parámetros recibidos. 3. El servidor envía los resultados de la llamada al procedimiento de vuelta al programa cliente a través de la red. Los resultados pueden incluir un valor de retorno y/o un conjunto de parámetros de salida. 4. El programa cliente recibe los resultados de la llamada al procedimiento remoto y puede continuar ejecutando el programa utilizando los resultados recibidos. |
|
|
Term
Cuantos y cuales son los modos de transferencia de parámetros |
|
Definition
Existen tres modos de transferencia de parámetros en la programación de computadoras: 1. Paso por valor (Call by Value): En este modo, se pasa una copia del valor del parámetro al procedimiento. Cualquier modificación hecha al parámetro dentro del procedimiento no afecta el valor original del parámetro fuera del procedimiento. 2. Paso por referencia (Call by Reference): En este modo, se pasa la dirección de memoria del parámetro al procedimiento. Cualquier modificación hecha al parámetro dentro del procedimiento también afecta el valor original del parámetro fuera del procedimiento. 3. Paso por nombre (Call by Name): En este modo, se pasa el nombre del parámetro al procedimiento. El procedimiento evalúa el valor del parámetro cada vez que se usa dentro del procedimiento. Este modo se utiliza principalmente en lenguajes de programación que admiten el mecanismo de evaluación de expresiones perezosas (lazy evaluation).
Cada modo de transferencia de parámetros tiene sus propias ventajas y desventajas, y se selecciona el modo apropiado en función de los requisitos del programa y del lenguaje de programación utilizado. |
|
|
Term
Cuales son los pasos para generar una llamada a un procedimiento remoto |
|
Definition
1. Definir la interfaz del procedimiento remoto: En primer lugar, se debe definir la interfaz del procedimiento remoto en el servidor. La interfaz define el nombre del procedimiento, los parámetros que se deben pasar al procedimiento y el tipo de valor de retorno que se espera del procedimiento. 2. Generar el stub cliente: El stub cliente es un código generado automáticamente que se utiliza para comunicarse con el servidor remoto. El stub cliente se encarga de empaquetar los parámetros de la llamada al procedimiento en un mensaje y enviarlo al servidor remoto. 3. Llamar al procedimiento remoto: En el programa cliente, se llama al procedimiento remoto como si fuera un procedimiento local. El stub cliente se encarga de enviar la llamada al procedimiento remoto al servidor. 4. Generar el stub servidor: El stub servidor es otro código generado automáticamente que se utiliza para recibir la llamada al procedimiento remoto del cliente y ejecutar el procedimiento en el servidor. El stub servidor se encarga de desempaquetar los parámetros de la llamada al procedimiento y llamar al procedimiento en el servidor. 5. Ejecutar el procedimiento remoto: En el servidor, el procedimiento remoto se ejecuta con los parámetros proporcionados por el cliente. El procedimiento puede realizar cualquier operación que se le haya solicitado y devolver un valor de retorno si es necesario. 6. Devolver el valor de retorno: Después de que el procedimiento remoto se haya ejecutado en el servidor, el valor de retorno se devuelve al stub cliente, que lo empaqueta en un mensaje y lo envía de vuelta al programa cliente. 7. Desempaquetar el valor de retorno: El stub cliente desempaqueta el valor de retorno del mensaje recibido del servidor y devuelve el valor de retorno al programa cliente. |
|
|
Term
Como es la comunicación en grupo |
|
Definition
La comunicación en grupo se refiere a la transmisión de información entre múltiples participantes simultáneamente. En una comunicación en grupo, un emisor envía un mensaje a varios receptores y cada receptor puede responder o enviar su propio mensaje. La comunicación en grupo se utiliza en varios contextos, como reuniones en línea, conferencias web, salas de chat, juegos en línea, entre otros. Existen diferentes enfoques para implementar la comunicación en grupo, algunos de ellos son: Multidifusión (Multicast): La multidifusión es una técnica de transmisión de datos que permite que un emisor envíe un mensaje a múltiples destinatarios de forma simultánea. En la multidifusión, se utiliza una dirección de multidifusión para identificar a los receptores del mensaje. Los routers y switches en la red se encargan de enrutar el mensaje a todos los destinatarios que pertenecen al grupo de multidifusión. Difusión (Broadcast): La difusión es una técnica de transmisión de datos que permite que un emisor envíe un mensaje a todos los dispositivos conectados en una red. En la difusión, se utiliza una dirección de difusión para identificar a todos los dispositivos de la red. Todos los dispositivos reciben el mensaje, pero solo el destinatario deseado lo procesa. Comunicación punto a punto (Peer-to-peer): La comunicación punto a punto es un modelo de comunicación donde dos o más dispositivos se comunican directamente entre sí sin la necesidad de un servidor central. En la comunicación punto a punto, cada dispositivo actúa como un cliente y un servidor al mismo tiempo, lo que permite la transmisión de información de forma distribuida. La comunicación en grupo puede ser síncrona o asíncrona. En la comunicación síncrona, todos los participantes están en línea y reciben el mensaje al mismo tiempo, mientras que en la comunicación asíncrona, el mensaje se envía y se recibe en diferentes momentos, permitiendo que los participantes respondan en momentos distintos. |
|
|