2. Definiciones
Un sistema operativo distribuido muestra
al sistema distribuido subyacente como
una colección de recursos, abstrayendo
su complejidad física (computadoras,
redes, nodos) y lógica (protocolos,
dominios)
Permite a las aplicaciones interactuar con
los recursos en forma protegida y
ordenada
Sistemas
Distribuidos Ing. José L. Simón
3. Definiciones
El encapsulamiento de recursos puede
ocultar, por ejemplo, la replicación de una
base de datos u otro servicio
El sistema operativo distribuido ordena y
sincroniza los accesos concurrentes a
cada recurso compartido
Sistemas
Distribuidos Ing. José L. Simón
4. Conceptos básicos
Encapsulamiento y protección de
recursos
Kernels
Procesos y threads
Servicios de comunicación
Invocación de operaciones
Distribución de memoria
Sistemas
Distribuidos Ing. José L. Simón
5. Conceptos
Un sistema operativo distribuido permite
diseñar aplicaciones que se ejecutan
sobre el sistema distribuido subyacente
Presenta a los recursos como
abstracciones orientadas al dominio del
problema:
Canales de comunicación ⇔ redes
Procesos ⇔ procesadores
Sistemas
Distribuidos Ing. José L. Simón
6. Implementación
Un sistema operativo distribuido es una
colección de kernels y procesos
servidores que brindan la abstracción
antedicha
Una red de computadoras con Windows o
Unix no es un sistema operativo
distribuido porque la frontera entre los
recursos está claramente definida
Sistemas
Distribuidos Ing. José L. Simón
7. Implementación
encapsulamiento
Modularidad
recurso Protección
Concurrencia
Replicación
Sistemas
Distribuidos Ing. José L. Simón
8. Acceso a los recursos
compartidos
El sistema operativo distribuido brinda un
mecanismo de invocación para el acceso
a los recursos compartidos
Para poder usar un recurso, una
aplicación debe tener acceso al nombre
de ese recurso
Sistemas
Distribuidos Ing. José L. Simón
9. Invocación
Por ej. una aplicación pide acceso al
servicio de impresión mediante un
nombre de impresora y no su ubicación
en la red
El sistema operativo distribuido debe
‘mapear’ esa invocación a la impresora
física
Sistemas
Distribuidos Ing. José L. Simón
10. Invocación
Resolución de nombres
Invocación Comunicación
Scheduling (concurrencia)
Sistemas
Distribuidos Ing. José L. Simón
11. Administración de recursos
El sistema operativo distribuido debe
proveer mecanismos y políticas para la
administración de recursos compartidos
Mecanismo: forma
Política: orden
Sistemas
Distribuidos Ing. José L. Simón
12. Kernels
En los sistemas operativos es la parte de
software que administra los recursos,
ejecuta las aplicaciones, controla el
hardware y establece las prioridades.
El código del kernel se ejecuta al mayor
nivel de privilegio, es decir, puede
acceder a los dispositivos físicos en forma
irrestricta
Sistemas
Distribuidos Ing. José L. Simón
13. Kernels
El kernel administra la memoria,
asignando ‘espacios de direcciones’
privados para cada proceso en ejecución
Establece allí el privilegio de
lectura/escritura para uno o mas procesos
Impide a otros procesos el acceso no
controlado a ese espacio
Sistemas
Distribuidos Ing. José L. Simón
14. Espacio de direcciones
Espacio de direcciones
Proceso 1
Proceso 2
Proceso 3
Sistemas
Distribuidos Ing. José L. Simón
15. Kernels: ejecución de
aplicaciones
El kernel se ejecuta en ‘modo supervisor’,
al máximo nivel de privilegios
Las aplicaciones lo hacen em ‘modo
usuario’, con privilegios restringidos
Los servicios del kernel se acceden
mediante ‘system calls’ o ‘kernel traps’
Sistemas
Distribuidos Ing. José L. Simón
16. Servicios
Servicio de archivos
Memoria virtual (paging)
RPC
Procesos
IPC
Admin. memoria
Sistemas
Distribuidos Ing. José L. Simón
17. Kernels: tipos
Monolíticos: el kernel incluye todos los
servicios
Microkernels: el kernel brinda un conjunto
mínimo de servicios indispensables. El
resto se implementa como servicios en
modo usuario
Sistemas
Distribuidos Ing. José L. Simón
18. Kernels monolíticos
Servicios
Kernel
Sistemas
Distribuidos Ing. José L. Simón
19. Microkernels
S1 S2 S3 S4
Microkernel
Sistemas
Distribuidos Ing. José L. Simón