Está en la página 1de 14

Taller Sistemas distribuidos (Segundo parcial)

Presentado por:

Luigi Davian Patiño Cardona


Codigo: 1093539823

Presentado a:

Cesar Jaramillo Acevedo

Materia:

Sistemas Distribuidos

Ingeniería de Sistemas, UTP

11/11/2021
1. Qué es un socket?, ¿para qué sirve?
Que es:
Definición: Un socket es un punto final de un enlace de comunicación de dos vías
entre dos programas que se ejecutan a través de la red.
También se define como:
Un socket es un proceso o hilo existente en la máquina cliente y en la máquina
servidora, que sirve en última instancia para que el programa servidor y el
cliente lean y escriban la información
Para que:
Para que dos programas puedan comunicarse entre sí es necesario que se cumplan
ciertos requisitos:
• Que un programa sea capaz de localizar al otro.
• Que ambos programas sean capaces de intercambiarse cualquier secuencia de
octetos, es decir, datos relevantes a su finalidad.
Para ello son necesarios los dos recursos que originan el concepto de socket:
• Un par de direcciones del protocolo de red (dirección IP, si se utiliza el
protocolo TCP/IP), que identifican la computadora de origen y la remota.
• Un par de números de puerto, que identifican a un programa dentro de cada
computadora.

2. Explique el algoritmo centralizado para exclusión mutua.


La forma más directa de lograr la exclusión mutua en un sistema distribuido es simular a
la forma en que se lleva a cabo en un sistema monoprocesador. Se elige un proceso
coordinador:
• Cuando un proceso desea ingresar a una región crítica:

Envía un mensaje de solicitud al coordinador:


• Indicando la región crítica.
• Solicitando permiso de acceso.
• Si ningún otro proceso está en ese momento en esa región crítica:
• El coordinador envía una respuesta otorgando el permiso.
• Cuando llega la respuesta el proceso solicitante entra a la región crítica.
• Si un proceso pide permiso para entrar a una región crítica ya asignada a otro
proceso: Elcoordinador no otorga el permiso y encola el pedido.
• Cuando un proceso sale de la región crítica envía un mensaje al coordinador para liberar su
acceso exclusivo:
• El coordinador extrae el primer elemento de la cola de solicitudes diferidas y
envía a esproceso un mensaje otorgando el permiso, con lo cual el proceso queda
habilitado para acceder a la región crítica solicitada.
3. Haga un bosquejo de un programa en Python donde se implemente un servidor que permita
múltiples clientes concurrentes(hilos y Sockets)
Cliente
Los siguientes pasos encapsulados en una clase
• Creación del socket
• Asignación de puerto y dirección Ip
• Creación de un proceso de hilos para recibir los mensajes
• Activación del demonio para recibir mensajes
• Ciclo para escribir y mandar mensajes
• Dos funciones una para recibir y otra para mandar funciones
Nota: El demonio es necesario para que el cliente este constantemente activo para
recibir los mensajes
Servidor
Los siguientes pasos encapsulados en una clase
• Creación del socket
• Asignación de puerto y dirección Ip
• Creación de un proceso de hilos para aceptar y procesar clientes
• Activación de los dos demonios (aceptar y procesar clientes)
• Tres funciones
1)Para aceptar los clientes
2)Para recibir los mensajes
3)Para difundir los mensajes
Nota: El demonio es necesario para que el servidor reciba y procese solicitudes de los clientes

4. Explique el algoritmo distribuido para exclusión mutua.


La forma más directa de lograr la exclusión mutua en un sistema distribuido es simular a
la forma en que se lleva a cabo en un sistema monoprocesador. Se elige un proceso
coordinador:
Cuando un proceso desea ingresar a una región crítica:
• Envía un mensaje de solicitud al
coordinador: Indicando la región crítica.
Solicitando permiso de acceso.

• Si ningún otro proceso está en ese momento en esa región


crítica: El coordinador envía una respuesta otorgando el
permiso.
• Cuando llega la respuesta el proceso solicitante entra a la región crítica.
• Si un proceso pide permiso para entrar a una región crítica ya asignada a otro
proceso: El coordinador no otorga el permiso y encola el pedido.
• Cuando un proceso sale de la región crítica envía un mensaje al coordinador para
liberar usacceso exclusivo:
El coordinador extrae el primer elemento de la cola de solicitudes diferidas y envía a ese
proceso un mensaje otorgando el permiso, con lo cual el proceso queda habilitado para
acceder a la región crítica solicitada.

5. Cómo funciona el algoritmo de Cristian y el algoritmo de Berkeley?, ¿en qué se diferencian?, ¿son
eficientes?, justifique su respuesta
Algoritmos de sincronización
• Algoritmo de Cristian: Usa sincronización externa e interna. Es un algoritmo
centralizado en un servidor de tiempo UTC, que manda el tiempo a un
receptor de nuestro sistema que se denominará receptor de UTC, el resto de
los clientes se sincronizarán con dicho equipo.
Problemas:
o Si el servidor falla. Una solución sería tener más servidores.
o No existe control sobre fraudes o malfuncionamiento por parte del
servidor.
o Escalabilidad.

• Algoritmo de Berkeley: Sincronización interna, no dispone de señal UTC.


Es un algoritmo centralizado en un servidor maestro elegido por todas las
computadoras conectadas. El servidor periódicamente muestrea el tiempo de
las computadoras y con esa información estima un tiempo que es
comunicado al resto de las máquinas para su sincronización.
Problemas:
o Si el servidor falla. Una solución sería elegir a un nuevo maestro.
o Escalabilidad.

6. Mediante un ejemplo explique el algoritmo de Lamport para sincronizar 4 procesos.


7. Cómo se calcula un segundo solar?
El segundo solar se define como 1 / 86.400 de un día solar.
Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol, donde el
tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el
cielo.
Se calcula de la siguiente forma:
dia∗24 h
∗60 min
1 día
1h ∗60 s
1 =86.400 s
1 min

8. Qué es exclusión mutua?, ¿se pueden implementar semáforos en Sistemas distribuidos?


En un sistema multiprogramado con un único procesador, los procesos se intercalan en el
tiempo (Ejemplo: Round Robin) para dar apariencia de ejecución simultánea. Aunque no se
consigue un procesamiento en paralelo real, y aunque se produce una sobrecarga en la CPU
por el hecho de tener que cambiar de tarea constantemente, las ventajas de todo esto son
muy elevadas.
Generalmente se resuelven en sistemas de una sola CPU con métodos como los
semáforos y los monitores:
• Se basan en la memoria compartida.
• No son aplicables a sistemas distribuidos.
• Otro problema de gran importancia es el tiempo y la forma de medirlo, ya que
juega un papel fundamental en algunos modelos de sincronización.
9. Qué es un reloj rápido y un reloj lento?
Comprobación reloj perfecto:
• Si C denota el valor de tiempo de un reloj y t es el tiempo real (Utc o el valor de reloj
de otro nodo), se dice que un reloj es perfecto si (dC / dt) = 1.
• Si (dC / dt) <1, se dice que el reloj es lento.
• Si (dC / dt)> 1, se dice que el reloj es rápido.

10. Cuales son los diferentes tipos de falla?, muestre un ejemplo con sus palabras para cada tipo.
• Fallas de Componentes: Los sistemas presentan error en algún componente, como
una falla es un desperfecto, causado tal vez por un error de Procesamiento, un
error de fabricación, un error de programación, un daño físico, el deterioro con el
curso de tiempo, condiciones ambientales adversas, entradas inesperadas, un error
del operador, roedores comiendo parte del sistema y muchas otras causas.
Las fallas por componentes se clasifican por lo general como transitorias,
intermitentes o permanentes:
o Las fallas transitorias ocurren una vez y después desaparecen si la operación
se repite, la falla ya no se presentará.
o Si ocurre una falla intermitente, esta desaparece, reaparece, etc.
o Una falla permanente es aquella que continúa existiendo hasta reparar el
componente con el desperfecto
• Fallas del sistema: En un sistema distribuido crítico, con frecuencia nos interesa que el
sistema pueda sobrevivir a las fallas de los componentes (en particular del
procesador), en vez de hacer que las fallas sean poco probables: La confiabilidad de
un sistema es en particular importante en un sistema distribuido, debido a la gran
cantidad de componentes presentes; de ahí la mayor posibilidad de que falle uno de
ellos.
Existen dos tipos de fallas de sistema:
o Las fallas Silentes, un procesador que falla solo se detiene y no responde a
las entradas subsecuentes ni produce más entradas, excepto que puede
anunciar que ya no está funcionando. También se llama fallas de detención.
o Con las fallas bizantinas, un procesador que falla continua su ejecución,
proporcionando respuestas incorrectas a las preguntas y posiblemente
trabajando de manera maliciosa junto con otros procesadores que han
fallado, para dar la impresión de que todos funcionan de manera correcta,
aunque no sea así.

11. Explique el concepto de transacción atómica y sus respectivas primitivas.


Se precisan técnicas de abstracción de mayor nivel que: Oculten estos aspectos técnicos.
Permitan a los programadores concentrarse en los algoritmos y la forma en que los procesos
trabajan juntos en paralelo. Tal abstracción la llamaremos transacción atómica,
transacción o acción atómica.
Primitivas de Transacción
Deben ser proporcionadas por el sistema operativo o por el sistema de tiempo de ejecución
del lenguaje.
Begin_transaction: los comandos siguientes forman una transacción.
End_transaction: termina la transacción y se intenta un compromiso.
Abort_transaction: se elimina la transacción; se recuperan los valores
anteriores. Read: se leen datos de un archivo (o algún otro objeto).
Write: se escriben datos en un archivo (o algún otro objeto).
Las operaciones entre Begin y End forman el cuerpo de la transacción y deben ejecutarse
todas o ninguna de ellas.

12. Explique los diferentes tipos de redundancia


El método general para la tolerancia de fallas consiste en el uso de redundancia. Existen tres
tipos posibles:
• Redundancia de la información
• Redundancia del tiempo
• Redundancia física
Con la redundancia de la información, se agregan algunos bits para poder recuperar los bits
revueltos. Por ejemplo, se puede agregar un código Haming para transmitir los datos y
recuperarse del ruido en la línea de transmisión.
Con la redundancia del tiempo, se realiza una acción, y entonces, en caso necesario, se
vuelve a realizar. Si una transacción aborta, puede volverse a realizar sin daño alguno. La
redundancia de tiempo es de particular utilidad cuando las fallas son transitorias e
intermitentes.
Con la redundancia física, se agregan un equipo adicional para permitir que el sistema
como un todo tolere la pérdida o el mal funcionamiento de algunos componentes. Por
ejemplo, se pueden agregar más procesadores, de modo que, si unos pocos de ellos fallan,
el sistema pueda seguir funcionando de manera sencilla.

13. Explique con sus palabras el concepto de TIER, cuáles son las principales diferencias entre un
TIER III y un TIER IV.
La gran diferencia entre un Tier IV y un Tier III son las siguientes. Los IV tiene
redundancia en energía; hay dos fuentes de energía constante. Una puede ser la de la red
eléctrica de la ciudad, y otra la de unos generadores alimentados por diésel que tienen una
autonomía de 72 horas.
14. Diga con sus palabras por qué la virtualización juega un papel importante en Cloud Computing?
Una máquina virtual se define de la siguiente forma:
Desde la perspectiva del usuario
• Es un sistema lógico de cómputo.
• Es una abstracción de una máquina física.
• Ejecuta un sistema operativo con sus aplicaciones.
• Tiene componentes virtuales asociados.
Desde la perspectiva del hipervisor
• Es un conjunto de archivos.
• Archivo de configuración
• Disco virtual
• Logs

Su importancia radica en lo anterior ya que asignada una máquina virtual el usuario


puede hacer lo que quiera, por ejemplos si quisiera que un proceso n el cual deseo un
resultado, pero no tengo ni memoria ni espacio para ejecutarlo se vuelven
imprescindibles las máquinas virtuales asociadas con hardware virtual, definida por el
centro de datos que ha brindado este servicio.

Es decir, el usuario solo se concentra en dar órdenes mientras que otro sistema se
encarga del procesamiento y a su vez si es requerido su almacenamiento. También hay
otro factor a remarcar el económico no es rentable para una empresa crear un centro de
datos, mientras que por un servicio de arrendamiento o streaming por mes obtienen lo
que quieren recursos, sin la necesidad de encargarse de la infraestructura.

15. Exprese con sus palabras la diferencia entre Cloud y Cloud Computing.

• Cloud
Significa un conjunto de dispositivos interconectados para proporcionar algún
servicio. Ejemplo:
– Una red que interconecta dos sitios de una compañía.
• Cloud computing
Cloud computing es un modelo para permitir el acceso por demanda a un conjunto de
recursos computacionales compartidos, desde cualquier parte del mundo
Incluye la transferencia de algunas responsabilidades a cambio de una tarifa mensual
Se puede pensar que cloud es el espacio (Redes computacionales) que se comparte para
brindar un servicio mientras que cloud computing es el servicio en si ya sea el caso de
Netflix, YouTube, Etc. Que nos brinda acceso a unos recursos sin necesidad de tenerlos el
streaming de video es gracias a la suscripción y al acceso a la plataforma.

16. Explique la diferencia entre un servidor de archivos y un servicio de archivos.


El servicio de archivos:
• Es la especificación de los servicios que el sistema de archivos ofrece a sus clientes.
• Define precisamente el servicio con que pueden contar los clientes sin decir nada
respecto de su implantación.
Mientras que el:
Servidor de archivos:
Es un proceso que se ejecuta en alguna máquina y ayuda con la implantación del servicio de
archivos.
• Puede haber uno o varios en un sistema.
• Se encarga de almacenar los archivos

17. Cuales son los modelos de Cloud computing?, explicar cada uno de ellos. ¿Qué ventajas ofrecen
con respecto a la computación tradicional?

Los modelos son los siguientes:


IaaS: Infraestructura como Servicio

En este modelo los consumidores son provistos de procesamiento, almacenamiento y redes,


entre otros recursos informáticos fundamentales.

PaaS: Plataforma como Servicio

En este modelo se le proporciona al consumidor la capacidad de


desplegar en el Cloud, infraestructura creada o adquirida, donde se suelen combinar
múltiples máquinas virtuales. Este tipo de servicio permite a los desarrolladores la creación
de múltiples aplicaciones basadas en herramientas que son suministradas por el proveedor.

SaaS: Software como Servicio

En este modelo las aplicaciones son administradas y alojadas por el proveedor del Cloud.
Este se encarga de las versiones y actualizaciones futuras. El proveedor permite al
consumidor acceder a dichos servicios desde diversos dispositivos como pueden ser,
computadoras, teléfonos inteligentes o tabletas.
Ventajas de Iaas
• Aplica cuando el usuario no quiere comprar máquinas ni gestionar el centro de datos.
• El usuario recibe el sistema operativo para que lo gestione: Instale aplicaciones,
fortalezca la seguridad del sistema operativo, cree usuarios, etc.
• Y hay opciones que pueden incluir por ejemplo la base de datos.
Ventajas de Paas
• Plugins en IDE tradicionales
• Emulación local: para pruebas
• Frameworks con conexión a la plataforma
• Cuentas gratuitas para los desarrolladores
Ventajas de Saas
• Aplicaciones nuevas, desarrolladas desde cero.
• Usuarios pueden usarlas/suscribirse sin depender del Departamento de TI.
• Mayor agilidad.
• Hay posibilidad de alguna personalización.
• Crear campos, formas, y workflows desde el navegador.
• Actualizaciones automáticas y homogéneas.
• Se pierde control de los datos (CRM).

Extra:
18. Investigue cuales son los principales proveedores de cloud y haga un cuadro comparativo de
portafolio, costos, cobertura :
Cuadro comparativo ficha técnica

Ya que las posibilidades de hardware virtual son infinitas se toma un ejemplo

base Para este ejemplo, he introducido la siguiente configuración:

• Potencia de la CPU: 4
• RAM: 8 GB
• Almacenamiento: 1 TB
• OS: Linux

Localizacio Proveedor Precio($Dolares)


n
NortAmeri M5 122
ca
NortAmeri KAMATERA 178
ca
NortAmeri GOOGLE 126
ca
WINDOWS
NortAmeri AZURE 159
ca
NortAmeri CLOUD 211
ca SIGMA
NortAmeri STORM 212
ca
NortAmeri AMAZON 225
ca
NortAmeri ELASTICHO 324
ca STS
DIMENSION
NortAmeri DATA 442
ca
NortAmeri HYVE 802
ca
NortAmeri ACCES 915
ca ALTO
WINDOWS
SouthAmer AZURE 308
ica
SouthAmer AMAZON 383
ica
DIMENSION
SouthAmer DATA 487
ica
Europe KAMATERA 178
Europe CLOUD 127
SIGMA
Europe GOOGLE 134
WINDOWS
Europe AZURE 176
Europe E24CLOUD 193
Europe AMAZON 251
Europe ELASTICHO 300
STS
DIMENSION
Europe DATA 464
Europe EXOSCALE 620
Europe HYVE 802
Europe ACCES 915
ALTO
Asia KAMATERA 178
Asia GOOGLE 139
WINDOWS
Asia AZURE 187
Asia AMAZON 264
Asia CLOUD 299
SIGMA
Asia ELASTICHO 324
STS
DIMENSION
Asia DATA 427

Asia HYVE 802


Asia ACCES 915
ALTO
Australia GOOGLE 170
WINDOWS
Australia AZURE 231
Australia CLOUD 242
SIGMA
Australia AMAZON 283
Australia ZETTA GRID 296
Australia ELASTICHO 324
STS
DIMENSION
Australia DATA 464
DIMENSION
África DATA 464

También podría gustarte