Vous êtes sur la page 1sur 23

Sistemas Distribuidos

Agenda
1.

Sistemas operativos y su rol en la construccin de sistemas distribuidos.


1.
2.
3.
4.

2.

Introduccin a los OSs


Procesos
Threads (Hilos).
Ejercicio

Comunicacin entre procesos.


1.
2.
3.
4.

Introduccin a los Sockets


TCP cliente-servidor.
UDP cliente-servidor.
Conexiones abiertas (RAW)

1.- Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
1.1 - Introduccin a los OSs
La tarea de manejo de hardware es esencial para que los sistemas informticos funcione correctamente.
Este manejo de hardware a travs de un software, va desde el reconocimientos de los dispositivos,
hasta el uso sincronizado de los mismos para que atiendan solicitudes simultaneas
Estos programas deben compartir el hardware: un propsito de un sistema operativo es permitir este
intercambio.
*Homework: Investigar las partes de un Sistema Operativo

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
Las tareas principales de un sistema operativo son:
Gestin de recursos donde los principales recursos son el hardware: por ejemplo, discos, la memoria y
redes.
Capas de abstraccin que nos permiten pensar en archivos con nombres y contenidos en un sistema de
archivos, en lugar de tener que pensar en el diseo de los archivos en el disco. Los servicios comunes
tales como el acceso a las redes.
Los mecanismos de proteccin entre los clientes, para que los clientes maliciosos o defectuosos no
causen daos al sistema.

Seguridad
Abstraccin
Gestin de recursos

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
Los sistemas operativos comprenden una gran cantidad de software.
El lmite exacto entre el software de aplicaciones y software del sistema operativo es discutible.
Por ejemplo, los de uso general, tienen funciones tales como:

- Controladores de disco duros y disquetes;


- Gestin de entrada y salida;
- Proceso de gestin (tarea);
- gestin de la memoria;
- administracin de redes;
- almacenamiento de archivos;
as como una gama de aplicaciones tales como editores de archivos, etc.

Quin se encarga de la gestin y supervisin de estos elementos?


EL KERNEL
Homework: Definicin de Kernel y los tipos que existen. (Micro kernel, kernels modulares, kernels monolticos)

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
Un sistema operativo moderno comprende al menos un Kernel (ncleo)
Que normalmente proporciona:
Acceso a los servicios bsicos comunes,
Gestin de memoria,
Gestin de tareas

Gestin de dispositivos
Manejo de conexiones (Redes)
Mecanismos de seguridad
Interfaz de usuario
Acceso a los archivos

Sistemas de archivos.

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
Estamos acostumbrados a equipos con un solo CPU ejecutando mltiples programas al mismo tiempo.
Esta simultaneidad es una ilusin: slo hay un CPU, por lo que los programas de alguna manera tienen
que compartir el CPU y otros recursos.
Los mecanismos a travs del cual este intercambio se lleva a cabo son:
Los Procesos y ,
Los Threads (Hilos o sub-procesos).

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
1.2.- Procesos
Un proceso es un programa que se ejecuta en un ordenador.
Esta instancia tiene su propio estado, que hace un seguimiento de lo que est haciendo (por ejemplo, lo
que la instruccin que se est ejecutando, los valores de las variables).
Los procesos se comunican slo a travs de los mecanismos proporcionados por el Sistema operativo.

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
Un proceso tiene una serie de recursos asociados con el:
- El programa ejecutable (a menudo llamado "texto" o "cdigo");
- reas de memoria PROPIAS (Data section - DS, heap y stack)
- Al menos un hilo de control
- El acceso a los archivos, interrupciones y otros servicios prestados por el sistema operativo

Una vez que el sistema ha iniciado, cada proceso es creado por un proceso padre. Esta creacin es manejada por
el sistema operativo como una llamada al sistema (System Call)
Homework:
Investigar los modos de trabajo del CPU (Modo supervisor y modo usuario)
Investigar como un compilador (ANSI C) asigna memoria a un programa, que elementos se almacenan en cada seccin y como se manejan. (Mapa de memoria)

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
Los sistemas operativos atienden estos procesos mediante algoritmos de planificacin o scheduling como:
Plazo Fijo
FIFO (First In - First out)
Round Robin
Tamao de Quantum

SJF (Short Job First)


SRTF (Short Remaining Time First)
Tasa de respuesta ms alta
Por Comportamiento
*Homework: Definir como funcionan los algoritmos anteriores

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
1.3.- Threads (Hilos o Subprocesos)
Cuando el sistema operativo programa un nuevo proceso para su ejecucin, un cambio de contexto se
produce.
Esto implica el ajuste de mapas de memoria, permisos y los registros de CPU para que coincida con el
nuevo proceso.
En algunas circunstancias es necesario tener mltiples procesos de ejecucin dentro del mismo espacio
de memoria: esto es potencialmente ms eficiente debido a que NO hay cambio de contexto como tal.
El trmino proceso ligero se utiliza a menudo como un sinnimo de hilo, pero en algunos sistemas
operativos todos los hilos dentro de un proceso son vistos como un solo proceso, mientras que cada
proceso ligero es visible para el planificador del sistema operativo.
*Homework: Qu es un cambio de Contexto? y en que consiste

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
1.3.- Threads (Hilos o Subprocesos)
Un hilo, es un mecanismo que permite que un programa se divida a s mismo en dos o ms tareas que
se ejecutan simultneamente.
Estas tareas en general, comparten el estado, la memoria y otros recursos.
Como resultado, el cambio entre los hilos se puede hacer de manera eficiente, en comparacin con la
conmutacin entre los procesos.
En la mayora de los sistemas operativos multitarea modernos, la diferencia del rendimiento entre hilos
y procesos es pequeo.
A pesar de esto, las aplicaciones multitarea, pueden tener importantes diferencias de rendimiento en
sistemas con varios CPU (por ejemplo, un procesador de doble ncleo).

Sistemas operativos y su rol en la


construccin de sistemas distribuidos.
1.4.- Ejemplos
*Homework: Realice el Diagrama de flujo del siguiente cdigo y
determine si lo que se program fu un Proceso o un Hilo
y justifique su respuesta

2.- Comunicacin entre procesos.


2.1 - Introduccin a los Sockets
La comunicacin entre procesos (IPC Interprocess Communication) abarca una serie de mecanismos
con una solo propsito: permitir a un proceso comunicarse con otro.
Existen dos subcategoras de mecanismos:
El paso de mensajes implica colas de mensajes que se envan desde un proceso a otro. El lgebra de
procesos CSP hace uso de paso de mensajes
La memoria compartida, donde una seccin de la memoria se puede ser accedida por todos los
procesos relacionados con la comunicacin
*Homework:

2.- Comunicacin entre procesos.


Los sockets son un sistema de comunicacin entre procesos de diferentes mquinas de una red. Ms
exactamente, un socket es un punto de comunicacin por el cual un proceso puede emitir o recibir
informacin.
Los sockets utilizan una serie de primitivas para establecer el punto de comunicacin, para conectarse a
una mquina remota en un determinado puerto que est disponible, para escuchar en l, para leer o
escribir y publicar informacin en l, y finalmente para desconectarse.
Con todas las primitivas que ofrecen los sockets, se puede crear un sistema de dilogo muy completo.

2.- Comunicacin entre procesos.


Un socket permite manejar de una forma sencilla la comunicacin entre procesos, aunque estos
procesos se encuentren en sistemas distintos, sin necesidad de conocer el funcionamiento de los
protocolos de comunicacin subyacentes.
Sirven de enlaces de comunicacin entre procesos. Los procesos tratan a los sockets como descriptores
de ficheros, de forma que se pueden intercambiar datos con otros procesos transmitiendo y recibiendo
a travs de sockets
Pueden ejecutarse dentro de la misma mquina o a travs de una red. Generalmente son usados en
forma de cliente-servidor, es decir, cuando un cliente y un servidor establecen una conexin, lo hacen a
travs de un socket.

2.- Comunicacin entre procesos.


Tipos de Sockets
El tipo de sockets describe la forma en la que se transfiere informacin a travs de ese socket.
Existen muchos tipos de sockets, sin embargo, los ms populares son:
Stream (TCP)
Datagram (UDP)
Raw (acceso directo al protocolo: root)

2.- Comunicacin entre procesos.


2.2 TCP cliente-servidor. (Stream Sockets)
Son un servicio orientado a la conexin.
Los datos se transfieren sin encuadrarlos en registros o bloques, asegurndose de esta manera que
los datos lleguen al destino en el orden de transmisin.
Si se rompe la conexin entre los procesos, stos sern informados de tal suceso para que tomen las
medidas oportunas, por eso se dice que estn libres de errores.
El protocolo de comunicaciones con streams es un protocolo orientado a conexin, ya que para
establecer una comunicacin utilizando el protocolo TCP (Transmission Control Protocol), hay que
establecer en primer lugar una conexin entre un par de sockets.

Uno de los sockets est atento a peticiones de conexin (servidor).


Otro solicita una conexin (cliente).
Una vez que los dos sockets estn conectados, se pueden utilizar para transmitir datos en ambas direcciones.

2.- Comunicacin entre procesos.


2.3 UDP cliente-servidor. (Datagram Sockets)
Son un servicio de transporte no orientado a la conexin.
Son ms eficientes que TCP, pero en su utilizacin no est garantizada la fiabilidad.
Los datos se envan y se reciben en paquetes, cuya entrega no est garantizada.
Los paquetes pueden ser

Duplicados
Perdidos
Llegar en un orden diferente al que se envi.

Las comunicaciones a travs de datagramas usan UDP (User Datagram Protocol).


Lo que significa que, cada vez que se enven datagramas es necesario enviar el descriptor del socket
local y la direccin del socket que debe recibir el datagrama, o sea hay que enviar datos adicionales
cada vez que se realice una comunicacin, aunque tiene la ventaja de que se pueden indicar
direcciones globales y el mismo mensaje llegar a un muchas mquinas a la vez.

2.- Comunicacin entre procesos.


2.4 Conexiones abiertas (RAW)
Son sockets que dan acceso directo a la capa de software de red subyacente o a protocolos de ms
bajo nivel. Se utilizan sobre todo para la depuracin del cdigo de los protocolos.
Ejemplos:

Telnet

2.- Comunicacin entre procesos.


Primitivas de los Sockets

2.- Comunicacin entre procesos.


Funcionamiento de la conexin mediante sockets

2.- Comunicacin entre procesos.


Funcionamiento de la conexin mediante sockets

Cliente realiza peticin

Servidor acepta peticin y establece conexin

Vous aimerez peut-être aussi