Sistemas Operativos Distribuidos Ing. José L. Simón Mayo 2000 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 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 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 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 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 Implementación encapsulamiento Modularidad recurso Protección Concurrencia Replicación Sistemas Distribuidos Ing. José L. Simón 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 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 Invocación Resolución de nombres Invocación Comunicación Scheduling (concurrencia) Sistemas Distribuidos Ing. José L. Simón 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 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 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 Espacio de direcciones Proceso 1 Espacio de direcciones Proceso 2 Proceso 3 Sistemas Distribuidos Ing. José L. Simón 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 Servicios Servicio de archivos Memoria virtual (paging) RPC Procesos IPC Admin. memoria Sistemas Distribuidos Ing. José L. Simón 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 Kernels monolíticos Servicios Kernel Sistemas Distribuidos Ing. José L. Simón Microkernels S1 S2 S3 S4 Microkernel Sistemas Distribuidos Ing. José L. Simón