sistemas operativos: una visión aplicada - arcos · – diferencias entre lan y wan cada vez más...
Post on 10-Apr-2018
232 Views
Preview:
TRANSCRIPT
Sistemas operativos: una visión aplicada
Capítulo 10 Introducción a los sistemas distribuidos
Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos• Sistemas operativos distribuidos• Comunicación de procesos• Sincronización de procesos• Gestión de procesos• Sistemas de archivos• Gestión de memoria
Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez
Conceptos previos
• Un programaes un conjunto de instrucciones.• Un procesoes un programa en ejecución.• Una red de computadoreses un conjunto de computadores
conectados por una red de interconexión.• Un sistema distribuido(SD)
– Modelo físico: conjunto de nodos (procesadores sin memoria ni reloj común) conectados por una red.
– Modelo lógico: conjunto de procesos que ejecutan concurrentementeen uno o más computadores que colaboran y comunican intercambiando mensajes.
• Un protocoloes un conjunto de reglas e instrucciones que gobiernan la comunicación en un sistema distribuido, es decir, el intercambio de mensajes.
Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de Miguel, F. Pérez
Arquitectura de un sistema distribuido
Red de interconexión
Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de Miguel, F. Pérez
Redes e interconexión
• Paquete: tipo de mensaje que se intercambia entre dos dispositivos de comunicación.– Tamaño limitado por el hardware
• Mensaje: objeto lógico que se intercambian entre dos o más procesos.– Su tamaño puede ser bastante grande.– Un mensaje se descompone en paquetes.
• Subsistema de comunicación: conjunto de componentes HW y SW que proporcionan servicios de comunicación en un sistema distribuido.
• Protocolo: conjunto de reglas e instrucciones que gobiernan el intercambio de paquetes y mensajes
Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez
Tipos de redes de computadores
• Redes de área local(LAN, Local Area Network)– Redes que enlazan sistemas cercanos– Posibilidad de difusión de mensajes (broadcast)
• Redes de área extensa(WAN, Wide Area Network)– Poco ancho de banda (20-500 Kbps)– Bajas latencias– Redes telefónicas, redes públicas de datos, fiabra óptica
RDSI, B-RDSI, ATM• Nuevos desarrollos en telecomunicaciones (ATM y RDSI)
– Diferencias entre LAN y WAN cada vez más borrosas
Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplos de protocolos
• Protocolosinternet:– Originados por el trabajo de DARPA en los 70– Muy utilizados en la actualidad– Gran crecimiento durante los 90 debido al uso del Web
• Protocolos OSI (open system interconection)– Estándar desarrollado por ISO
• Estándares propietarios– SNA de IBM (años 70)– DECnet desarrollado por DEC– NetWare: red de Novell para redes de PC
Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez
Protocolos TCP/IP
Emisor Receptor
Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de Miguel, F. Pérez
Encaminamiento
• Permite que los paquetes viajen del proceso emisor al receptor.• Algoritmo:
– Un programa de aplicación genera un paquete, o bien se lee un paquete de la interfaz de red.
– Si el paquete es para la máquina, se acepta.– En caso contrario, se incrementa el contador de saltos, si se
excede el máximo, el paquete se descarta.– Si el paquete no es para la máquina se busca en la tabla de
encaminamiento y se retransmite a la interfaz adecuada.• Tablas estáticas, las más utilizadas• Tablas dinámicas
Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos
• Sistemas operativos distribuidos• Comunicación de procesos• Sincronización de procesos• Gestión de procesos• Sistemas de archivos• Gestión de memoria
Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez
Sistema operativo en red (SOR)
• El usuario ve un conjunto de máquinas independientes– No hay transparencia
• Se debe acceder de forma explícita a los recursos de otras máquinas
• Difíciles de utilizar para desarrollar aplicaciones distribuidas
Sistema operativo
Lenguajes de programación
Aplicaciones
Red de interconexión
Hardware
Sistema operativo
Lenguajes de programación
Aplicaciones
Hardware
Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez
Sistema operativo distribuido (SOD)
• Se comporta como un SO único (visión única)– Distribución. Transparencia
• Se construyen normalmente como micronúcleos que ofrecen servicios básicos de comunicación– Mach, Amoeba, Chorus.
• Todos los computadores deben ejecutar el mismo SOD
Sistema operativo distribuido
Lenguajes de programación
Aplicaciones
Red de interconexión
Hardware Hardware
Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez
Middleware y entornos distribuidos
• Servicios y protocolos estándarizados: Sistemas abiertos• Ofrecen servicios no incluidos en el SO (servicios de ficheros
distribuidos, servicios de nombres, ...)• Facilitan el desarrollo de aplicaciones distribuidas• Independientes del HW y del SO subyacente. • DCE, CORBA, DCOM, Legion, Globe, Globus
Sistema operativo
Middleware
Lenguajes de programación
Aplicaciones
Red de interconexión
Hardware
Sistema operativo
Hardware
Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de un sistema operativo distribuido
• Servicios de comunicación• Servicios de sincronización• Gestión distribuida de procesos• Sistemas de archivos distribuidos• Memoria compartida distribuida
Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos• Sistemas operativos distribuidos
• Comunicación de procesos• Sincronización de procesos• Gestión de procesos• Sistemas de archivos• Gestión de memoria
Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez
Comunicación cliente-sevidor
• Protocolo típico: petición-respuesta
• Muy utilizada en entornos distribuidos (más del 90% de los sistemas distribuidos utilizan la arquitectura cliente-servidor)
NÚCLEO
cliente
petcición
respuesta
servidor
Máquina A Máquina B
NÚCLEO
RED
Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez
Sockets
• Aparecieron en 1981 en UNIX BSD 4.2– Intento de incluir TCP/IP en UNIX– Diseño independiente del protocolo de comunicación
• Un socket es punto final de comunicación (dirección IP y puerto)
• Abstracción que:– Ofrece interfaz de acceso a los servicios de red en el nivel de
transporte• Protocolo TCP• Protocolo UDP
– Representa un extremo de una comunicación bidireccional con una dirección asociada
Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez
Tipos de sockets
• Stream(SOCK_STREAM)– Orientado a conexión– Fiable, se asegura el orden de entrega de mensajes– No mantiene separación entre mensajes– Si PF_INET se corresponde con el protocolo TCP
• Datagrama(SOCK_DGRAM)– Sin conexión– No fiable, no se asegura el orden en la entrega – Mantiene la separación entre mensajes– Si PF_INET se corresponde con el protocolo UDP
• Raw(SOCK_RAW)– Permite el acceso a los protocolos internos como IP
Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo
• Programa que obtiene la dirección en formato decimal-punto a partir de un formato dominio-punto.void main(int argc, char **argv) {
struct hostent *hp;struct in_addr in;
hp = gethostbyname(argv[1]);if (hp == NULL) {
printf(“Error en gethostbyname\n”);exit(0);
}memcpy(&in.s_addr,*(hp->h_addr_list),sizeof(in.s_ad dr));printf(“%s es %s\n”, hp->h_name, inet_ntoa(in));
}
Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez
Escenario típico con sockets streams
Proceso cliente
Proceso servidor
socket()
socket()
bind()
listen()
accept() Crearthread
read()
close()
accept()
connect()Abrir conexión
read()
close()
Peticiónwrite()
Respuestawrite()
Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo (TCP)
NÚCLEO
clientesumar(5,2)
5+2
Restulado = 7
servidor
Máquina A Máquina B
NÚCLEO
RED
Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez
Cliente (datagramas)
bzero((char *)&client_addr, sizeof(client_addr));client_addr.sin_family = AF_INET;client_addr.sin_addr.s_addr = INADDR_ANY;client_addr.sin_port = htons(0);
bind (s, (struct sockaddr *)&client_addr, sizeof(client_addr));
num[0] = 2; num[1] = 5;
sendto(s, (char *)num, 2 * sizeof(int), 0, (struct sockaddr *) &server_addr, sizeof(server_addr));
recvfrom(s, (char *)&res, sizeof(int), 0, NULL, NULL);
printf("2 + 5 = %d\n", res);close(s);
}
Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez
Llamadas a procedimientos remotos (RPC)
• RPC (remote procedure call): llamadas a procedimiento remoto (Birrel y Nelson 1985)
• Híbrido entre llamadas a procedimientos y paso de mensajes• Las RPC constituyen el núcleo de muchos sistemas distribuidos• Llegaron a su culminación con DCE (Distributed Computing
Environment)• Han evolucionado hacia orientación a objetos
– Invocación de métodos remotos (CORBA, RMI)
Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez
Funcionamiento de las RPC
• El proceso que realiza la llamada empaqueta los argumentos en un mensaje, se los envía a otro proceso y espera el resultado
• El proceso que ejecuta el procedimiento extrae los argumentos del mensaje, realiza la llamada de forma local, obtiene el resultado y se lo envía de vuelta al proceso que realizó la llamada
• Objetivo: acercar la semántica de las llamadas a procedimiento convencional a un entorno distribuido (transparencia).
Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez
Llamadas y mensajes en una RPC
SISTEMA CLIENTE
CÓDIGO DE LA APLICACIÓN
PREPARAENTRADA
CONVIERTESALIDA
INICIOLLAMADAsuma(5,2)
FINLLAMADA = 7
RESGUARDOCLIENTE 2
1
5
3
PROCEDIMIENTOS
EJECUTAPROCEDIMIENTO
REMOTO
SISTEMA SERVIDOR
RESGUARDOSERVIDOR
PREPARASALIDA
CONVIERTEENTRADA
4
67
Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez
RPC: protocolo básico
cliente servidor
Desempaqueta
la respuesta
Se registra con un servicio de nombres
recibe petición
Ejecuta elprocedimiento
envía petición
“enlaza con el servidor”
prepara parámetros, envía petición
Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de Miguel, F. Pérez
Aplanamiento
SISTEMA CLIENTE
CÓDIGO DE LA APLICACIÓN
RESGUARDOCLIENTE
Procedimiento(”ABC”, 123, 12.34)
aplanamiento
mensaje
Tira de bytes
A B C 123 12.34
PROCEDIMIENTOS
SISTEMA SERVIDOR
RESGUARDOSERVIDOR
Extrae los parámetros
A B C 123 12.34
Procedimiento(”ABC”, 123, 12.34)
Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de Miguel, F. Pérez
Enlace dinámico(Binding)
• Enlace dinámico: permite localizar objetos con nombre en un sistema distribuido, en concreto, servidores que ejecutan las RPC.
• Tipos de enlace:– Enlace no persistente: la conexión entre el cliente y el
servidor se establece en cada RPC. – Enlace persistente: la conexión se mantiene después de la
primera RPC.• Útil en aplicaciones con muchas RPC repetidas• Problemas si lo servidores cambian de lugar
Sistemas operativos: una visión aplicada 28 © J. Carretero, F. García, P. de Miguel, F. Pérez
Establecimiento de la comunicación en una RPC
Servidor de nombres
1. Registrar procedimiento
5. Dar de bajaprocedimiento
2. Buscarservidor
3. Direccióndel servidor
4. Ejecutarprocedimiento
servidor
servidor
Máquina A Máquina B
Máquina C
Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de Miguel, F. Pérez
Programación con RPC
COMPILADOR C COMPILADOR C
COMPILADOR CCOMPILADOR C
CABECERA CABECERAFICHEROSFUENTE DEL
CLIENTE
FICHEROSOBJETO DEL
CLIENTE
FICHEROSOBJETO DEL
SERVIDOR
EJECUTABLEDEL
CLIENTE
EJECUTABLEDEL
SERVIDOR
FICHEROSFUENTE DEL
SERVIDOR
OBJETOSUPLENTEEN CLIENTE
OBJETOSUPLENTE
EN SERVIDOR
MONTADOR MONTADOR
BIBLIOT.RPC
BIBLIOT.RPC
DESARROLLODE LA
INTERFAZ
DESARROLLODEL
CLIENTE
DESARROLLODEL
SERVIDOR
COMPILADOR IDL
SUPLENTEEN SERVIDOR
SUPLENTEEN CLIENTE
CABECERA
FICHERODE DEFINICIÓNDE INTERFAZ
Sistemas operativos: una visión aplicada 30 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplos de paquetes de RPC
• RPC de Sun (1990) utilizado en NFS• RPC del proyecto ANSA (1989) desarrollado por Architecture
Project Management Ltd. (Cambridge, Inglaterra)• RPC de DCE (1990), estándar desarrollado por Open Software
Foundation
Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo
NÚCLEO
clientesumar(5,2)
5+2
Restulado = 7
servidor
Máquina A Máquina B
NÚCLEO
RED
Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema de la aplicación
suma.xrepcgen
suma_svc.c
servidor.c
suma.h
suma_xdr.c
suma_clnt.c
cliente.cArchivos para
el cliente
Archivoscomunes
Archivos parael servidor
Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos• Sistemas operativos distribuidos• Comunicación de procesos
• Sincronización de procesos• Gestión de procesos• Sistemas de archivos• Gestión de memoria
Sistemas operativos: una visión aplicada 34 © J. Carretero, F. García, P. de Miguel, F. Pérez
Relojes lógicos
• En ausencia de un reloj global la relación causa-efecto (precede a) es la única posibilidad de ordenar eventos
• Relación de precedencia (Lamport)– Si a y b son dos eventos del mismo proceso ya ocurrió antes
que b, entonces a� b– Si a=send(m) y b=receive(m), entonces a � b– La relación es transitiva
• Dos eventos son concurrentes (a || b) si no se puede deducir entre ellos una relación de causalidad potencial
Sistemas operativos: una visión aplicada 35 © J. Carretero, F. García, P. de Miguel, F. Pérez
Mantenimiento de los relojes lógicos
Sistemas operativos: una visión aplicada 36 © J. Carretero, F. García, P. de Miguel, F. Pérez
Relojes vectoriales
• Desarrollado independientemente por Fidge, Mattern y Schmuck• Todo proceso lleva asociado un vector de enteros RV• RVi[a] es el valor del reloj vectorial del proceso i cuando
ejecuta el evento a.• Mantenimiento de los relojes vectoriales
– Inicialmente RVi= 0– Cuando un procesoi genera un evento
• RVi[i ] = RV i[i ] +1– Todos los mensajes llevan el RV del envío– Cuando un procesoj recibe un mensaje con RV
• RVj = max(RVj , RV ) (componente a componente)• RVj[j ] = RV j[j ] +1 (evento de recepción)
Sistemas operativos: una visión aplicada 37 © J. Carretero, F. García, P. de Miguel, F. Pérez
Relojes vectoriales
P0(1,0,0) (2,1,0) (3,1,2) (4,1,2) (5,1,2)
(1,0,1) (1,0,2) (1,0,3) (1,0,4) (5,1,5)
(0,1,0)
(1,2,3)
(4,3,3)P1
P2
Sistemas operativos: una visión aplicada 38 © J. Carretero, F. García, P. de Miguel, F. Pérez
Exclusión mutua distribuida
• Los procesos ejecutan el siguiente fragmento de códigoentrada()SECCIÓN CRÍTICAsalida()
• Requisitospara resolver el problema de la sección crítica– Exclusión mutua– Progreso– Espera acotada
• Algoritmos– Algoritmo centralizado– Algoritmo distribuido– Anillo con testigo
Sistemas operativos: una visión aplicada 39 © J. Carretero, F. García, P. de Miguel, F. Pérez
Algoritmo centralizado
• Existe un proceso coordinador
0
entradaOK
C
1 2
No hay respuespuesta(bloquea al cliente)
0
entrada
C
1 2
OK
0
salida
C
1 2
Sistemas operativos: una visión aplicada 40 © J. Carretero, F. García, P. de Miguel, F. Pérez
Anillo con testigo
• Los procesos se ordenan conceptualmente como un anillo.• Por el anillo circula un testigo. • Cuando un proceso quiere entrar en la SC debe esperar a recoger
el testigo• Cuando sale de la SC envía el testigo al nuevo proceso del anillo
2
1testigo
3
4
5
6
Sistemas operativos: una visión aplicada 41 © J. Carretero, F. García, P. de Miguel, F. Pérez
Algoritmo distribuido
• Algoritmo de Ricart y Agrawala requiere la existencia un orden total de todos los mensajes en el sistema
• Un proceso que quiere entrar en una sección crítica (SC) envía un mensaje a todos los procesos (y a él mismo)
• Cuando un proceso recibe un mensaje– Si el receptor no está en la SC ni quiere entrar envía OK al
emisor– Si el receptor ya está en la SC no responde– Si el receptor desea entrar, compara la marca de tiempo del
mensaje. Si el mensaje tiene una marca menor envía OK. En caso contrario entra y no envía nada.
• Cuando un proceso recibe todos los mensajes puede entrar
Sistemas operativos: una visión aplicada 42 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos• Sistemas operativos distribuidos• Comunicación de procesos• Sincronización de procesos
• Gestión de procesos• Sistemas de archivos• Gestión de memoria
Sistemas operativos: una visión aplicada 43 © J. Carretero, F. García, P. de Miguel, F. Pérez
Modelos de sistema
• Conjunto de estaciones de trabajo– El sistema consta de estaciones de trabajo a las que tienen
acceso los usuarios.• Pool de procesadores
– Los usuarios con terminales.– Los procesos se envían a procesadores de un pool.
• Modelo híbridos– Trabajos interactivos en las estaciones de trabajo.– Trabajos no interactivos en en el poolde procesadores.
Sistemas operativos: una visión aplicada 44 © J. Carretero, F. García, P. de Miguel, F. Pérez
Estrategias para localizar una estación inactiva
Nodo Nodo
Tengo poca carga.Podéis mandarme procesos
Tengo mucha carga.Busco estación inactiva
(a) (b)
Sistemas operativos: una visión aplicada 45 © J. Carretero, F. García, P. de Miguel, F. Pérez
Algoritmos de distribución de la carga
• Política de transferencia: determina cuando transferir.• Política de selección: selecciona el proceso a transferir.• Política de ubicación: selecciona el nodo al que transferir.• Política de información: decide cuándo, desde dónde y qué
información sobre otros nodos recoger.
Sistemas operativos: una visión aplicada 46 © J. Carretero, F. García, P. de Miguel, F. Pérez
Planificación de procesos
Sistemas operativos: una visión aplicada 47 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos• Sistemas operativos distribuidos• Comunicación de procesos• Sincronización de procesos• Gestión de procesos
• Sistemas de archivos• Gestión de memoria
Sistemas operativos: una visión aplicada 48 © J. Carretero, F. García, P. de Miguel, F. Pérez
Sistema de archivos distribuido
• Objetivo principal: compartir datos entre usuarios ofreciendo transparencia
• Objetivos secundarios: – rendimiento (debería ser comparable al de un sistema
tradicional)– tolerancia a fallos– disponibilidad
Sistemas operativos: una visión aplicada 49 © J. Carretero, F. García, P. de Miguel, F. Pérez
Arquitectura
Cliente
Servidor Servidor
Cliente
RED DE INTERCONEXIÓN
......................
......................
........ ........CTR
.....
CTR
.....
CTR
.....
CTR
.....
Sistemas operativos: una visión aplicada 50 © J. Carretero, F. García, P. de Miguel, F. Pérez
Tipos de servidores
• Servidores con estado– Cuando se abre un fichero, el servidor almacena información
y da al cliente un identificador único a utilizar en las posteriores llamadas
– Cuando se cierra un fichero se libera la información• Servidores sin estado
– Cada petición es autocontenida (fichero y posición)
Sistemas operativos: una visión aplicada 51 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Sistemas distribuidos• Sistemas operativos distribuidos• Comunicación de procesos• Sincronización de procesos• Gestión de procesos• Sistemas de archivos
• Gestión de memoria
Sistemas operativos: una visión aplicada 52 © J. Carretero, F. García, P. de Miguel, F. Pérez
Uso de paginadores externos
Paginador externo
Mensajes
Transferir página
Fallos de página
Espacio dedireccionesdel proceso
Nodo A
Núcleo
Nodo B
Núcleo
Sistemas operativos: una visión aplicada 53 © J. Carretero, F. García, P. de Miguel, F. Pérez
Memoria compartida distribuida
Memoriafísica
Nodo A
proceso
Memoriafísica
Nodo B
proceso
Memoriafísica
Nodo C
proceso
Red de interconexión
Memoria compartida distribuida
top related