1. Instituto Universitario Politécnico
“Santiago Mariño”
Ingeniería en Sistemas – Sede Barcelona
Sistemas Operativos
Distribuidos
Profesor:
Ing. Ramón Aray
Bachiller:
John Peraza
C.I: 23.734.386
2. Es la unión lógica de un grupo de sistemas operativos sobre una
colección de nodos computacionales independientes, conectados en red,
comunicándose y físicamente separados. Cada nodo contiene de forma
individual un subconjunto específico de los programas que componen el
sistema operativo distribuido. Cada subconjunto es una combinación de
dos proveedores de servicios distintos. El primero es un núcleo ubicuo
mínimo o micro núcleo, que controla el hardware del nodo. El segundo es
una colección de componente de administración del sistema de alto nivel
que coordinan las actividades individuales y colaborativas del nodo. Estos
componentes son una abstracción de las funciones del micro núcleo y
dan soporte a las aplicaciones de usuario.
Sistema operativo Distribuido
3. Hoy en día tenemos operando diversos tipos de Sistemas Distribuidos
cada uno encaminado a resolver distintos tipos de problemas. Los
retos que enfrentamos al construir un sistema distribuido varían según
sus especificaciones, sin embargo podemos rescatar en común la
necesidad de manejar los siguientes escenarios:
Heterogeneidad: Las diferentes entidades en el Sistema deben ser
capaces de inter operar entre sí, sin importar las diferencias en sus
arquitecturas, Sistemas Operativos, Protocolos de Comunicación,
Lenguajes de Programación, interfaces de software, modelos de
seguridad y formatos de medios.
Característica
4. Tolerancia a Fallos y Manejo de errores: De tal suerte que un fallo
en un componente no debe provocar la "caída" del sistema, sino que
deberá ser aislado y evitarse medainte un re-enrutamiento.
Escalabilidad: El sistema debería trabajar eficientemente al
incrementarse el número de usuarios simultáneos y la agregación de
un nuevo recurso deberá incrementar el desempeño en general del
sistema.
Concurrencia: Los recursos deben ser accesibles a varias entidades
simultáneamente en ambiente compartido.
Apertura y Extensibilidad: Las interfaces deben estar limpiamente
separadas y públicamente disponibles para permitir una fácil
conectividad y extensión de los componentes actuales y de otros
nuevos.
Característica
5. Estrategia Migratoria y Balance de la carga de trabajo: Éstas
permitirán el movimiento de tareas dentro de un sistema sin afectar
la operación de usuarios y aplicaciones, y la distribución de la carga
en todos los recursos disponibles para mejorar el desempeño.
Seguridad: el acceso a los recursos deberá tener un mecanismo de
seguridad para asegurar que todos los usuarios tengan acceso a todas
las formas de las operaciones.
Transparencia: El concepto de transparencia de un sistema
distribuido va ligado a la idea de que todo el sistema funcione de
forma similar en todos los puntos de la red, independientemente de
la posición del usuario. Queda como responsabilidad del sistema
operativo el establecer los mecanismos que oculten la naturaleza
distribuida del sistema y que permitan trabajar a los usuarios como si
de un único equipo se tratara.
Característica
6. Eficiencia: La idea base de los sistemas distribuidos es la de obtener
sistemas mucho más rápidos que los super-computadores actuales. La
propuesta es sencilla, el paralelismo. Para lograr un sistema eficiente
hay que descartar la idea de ejecutar un programa en un único
procesador de todo el sistema, y pensar en ejecutarlo en la granja de
procesadores, aquellos libres más rápidos. Este es el mismo problema
de la administración del Procesador, donde restamos complejidad por
economía. La tarea de optimizar el reparto de la carga en un
conjunto de procesadores es bastante compleja, y depende de
muchos aspectos, como son los parámetros de sobrecarga, la
homogeneidad de recursos, la velocidad de los programas, las
perturbaciones en redes públicas, la localidad de los datos, los
detalles de ciertos dispositivos, la interacción con usuarios etc.
Característica
7. Flexibilidad: Un proyecto en desarrollo como el diseño de un sistema
operativo distribuido debe estar abierto a cambios y actualizaciones
para mejorarlo. Esta especificación ha sido abordada con
arquitecturas de núcleo: el núcleo monolítico y el micronúcleo. Las
diferencias entre ambos son los servicios que ofrece. Mientras el
núcleo monolítico ofrece todas las funciones básicas del sistema
integradas, el micronúcleo incorpora solamente las fundamentales, el
control de los procesos y su comunicación con la memoria. El resto de
servicios son compilables y se cargan dinámicamente a partir de
servidores en el nivel de usuario.
Característica
8. Núcleo monolítico: Como ejemplo de sistema operativo de núcleo
monolítico está UNIX. Estos sistemas tienen un núcleo grande y
complejo, que engloba todos los servicios del sistema. Está
programado de forma no modular, y tiene un rendimiento mayor que
un micronúcleo. Sin embargo, cualquier cambio a realizar requiere
detener todo el sistema y la recompilación del núcleo.
Micronúcleo: La arquitectura de micronúcleo ofrece la alternativa al
núcleo monolítico. Se basa en una programación altamente modular, y
tiene un tamaño mucho menor que el núcleo monolítico. Como
consecuencia, el refinamiento y el control de errores son más rápidos
y sencillos. Además, la actualización de los servicios es más sencilla y
ágil, ya que sólo es necesaria la recompilación del servicio y no de
todo el núcleo. Como contraprestación, el rendimiento se ve afectado
negativamente. En la actualidad la mayoría de sistemas operativos
distribuidos en desarrollo tienden a un diseño de micronúcleo.
Característica
9. Robustez: Una de las ventajas claras que nos ofrece la idea de
sistema distribuido es que el funcionamiento de todo el sistema no
recae en la responsabilidad de una sola unidad, sino que cualquier
equipo puede sustituir a otro en caso de que falle. La forma más
evidente de lograr la Robustez y por lo tanto la Confiabilidad de todo
el sistema está en la redundancia. La información no debe estar
almacenada en un solo servidor de archivos, sino en por lo menos dos
máquinas. Mediante la redundancia de los principales archivos o de
todos evitamos el caso de que el fallo de un servidor bloquee todo el
sistema, al tener disponibles múltiples respaldos parciales o totales
en los otros equipos.
Característica
10. Comunicación: La comunicación entre procesos en sistemas
centralizados se lleva a cabo mediante el uso de memoria compartida
entre los procesos. En los sistemas distribuidos, al no haber conexión
física entre las distintas memorias de los equipos, la comunicación se
realiza mediante la transferencia de mensajes, lo cual implica gasto
de ancho de banda por el overhead y nos remite a los problemas de
comunicación en red.
Característica
11. Las primeras redes de computadoras fueron diseñadas para satisfacer
unos pocos, y relativamente sencillos, requisitos de aplicación del tipo
transferencia de archivos, conexión a sistemas remotos, correo
electrónico y servicios de noticias. El consiguiente desarrollo de los
sistemas distribuidos, sobre el que se asientas los programas de
aplicación distribuidos que permiten compartir archivos y otros
recursos, ha puesto más alto el estándar de prestaciones que satisfagan
las necesidades de las aplicaciones interactivas. Con el crecimiento y
comercialización de Internet y la aparición de muchos modos nuevos de
uso, se han impuesto requisitos más exigentes en cuanto a fiabilidad,
escalabilidad, movilidad seguridad y calidad de servicio.
Redes e
Interconexión
12. Se encarga de asignar la memoria física del sistema a los programas,
éstos se expanden hasta llenar la memoria con que se cuenta. Todas
las computadoras tienen una jerarquía de memoria, con una pequeña
cantidad de memoria caché, una cantidad mucho mayor de memoria
principal (RAM) y decenas o centenas de gigabyte de
almacenamiento en disco.
Gestión de memoria
13. Ventajas de S.O.D
Economía: Es la razón número uno para elegir los S.O.D. ya que
estos sistemas se suponen con una proporción
precio/desempeño mucho mejor que la de un equipo de súper
cómputo.
Velocidad: Los S.O.D. pueden ser más veloces y tener mayor
poder de cómputo que un mainframe.
Distribución inherente: Porque ciertas aplicaciones son
distribuidas en forma inherente.
Confiabilidad: Un S.O.D. ofrece mayor confiabilidad al distribuir
la carga de trabajo entre muchas máquinas, la falla de un
circuito descompondrá a lo más una máquina y el resto seguirá
intacto.
Desarrollo incremental de la madurez del sistema: Para añadir
poder de cómputo, no se necesita rediseñar ni gastar en
componentes más caros, sólo hay que multiplicarlos.
14. Desventajas de S.O.D
Software: No hay mucha experiencia en el diseño, implantación
y uso del software distribuido, además existen pocos productos
de software para los sistemas distribuidos.
Redes: Una vez que el sistema llega a depender de la red, la
pérdida o saturación de ésta puede negar
algunas de las ventajas que el S.O.D. debía conseguir.
15. Un sistema operativo de red, también llamado N.O.S (del inglés,
Network Operating System), es un software que permite la interconexión
de ordenadores para tener el poder de acceder a
los servicios y recursos, hardware y software, creando redes de
computadoras. Al igual que un equipo no puede trabajar sin un sistema
operativo, una red de equipos no puede funcionar sin un sistema
operativo de red. Consiste en un software que posibilita la comunicación
de un sistema informático con otros equipos en el ámbito de una red.
SISTEMAS OPERATIVOS DE
RED
16. Conecta todos los equipos y recursos de la red.
Gestión de usuarios centralizada.
Proporciona seguridad, controlando el acceso a los datos y
recursos.
Debe validar los accesos (claves, certificados, sistemas
biométricos, etc.) y ver aplicar las políticas de seguridad.
Coordina las funciones de red, incluso con las propias del equipo.
Comparte recursos (lleva a cabo la coordinación y los privilegios a
la hora de compartir). Por tanto, mejora notablemente la
utilización de los recursos.
Permite monitorizar y gestionar la red y sus componentes.
Características
17. Es poder acceder desde una computadora a un recurso ubicado
físicamente en otra computadora que se encuentra geográficamente
en otro lugar, a través de una red local o externa (como Internet).
En el acceso remoto se ven implicados protocolos (En informática, un
protocolo es un conjunto de reglas usadas por computadoras para
comunicarse unas con otras a través de una red por medio de
intercambio de mensajes), y programas en ambas computadoras que
permitan recibir/enviar los datos necesarios. Además deben contar
con un fuerte sistema de seguridad (tanto la red, como los protocolos
y los programas).
Remotamente se puede acceder prácticamente a cualquier recurso
que ofrece una o más computadoras. Se pueden acceder a archivos,
dispositivos periféricos (como impresoras), configuraciones, etc. Por
ejemplo, se puede acceder a un servidor de forma remota para
configurarlo, controlar el estado de sus servicios, transferir archivos,
etc.
Acceso remoto
18. Conexión a un sistema de procesamiento de datos desde una
ubicación remota. Por ejemplo, a través de una red privada virtual.
Programa de escritorio remoto (remote desktop software): Se
refiere a aquel programa o característica de un sistema operativo
que permite que las aplicaciones sean ejecutadas de forma remota
en otra computadora mientras son mostradas gráficamente de
forma local.
Emulador de terminal (terminal emulation), permite acceso
remoto cuando es empleado como interfaz con un sistema remoto.
Pueden emplearse herramientas estándar para esto
como: Telnet (un software para controlar remotamente un sistema
de computadora) y ssh (un shell seguro a menudo usado con
aplicaciones remotas).
Remote Database Access. Un protocolo estándar para acceso a
bases de datos.
Métodos de acceso remoto
19. Es la propiedad que asegura que una operación se ha realizado o
no, y por lo tanto ante un fallo del sistema no puede quedar a
medias. Se dice que una operación es atómica cuando es imposible
para otra parte de un sistema encontrar pasos intermedios. Si esta
operación consiste en una serie de pasos, todos ellos ocurren o
ninguno. Por ejemplo, en el caso de una transacción bancaria o se
ejecuta tanto el depósito y la deducción o ninguna acción es
realizada. Es una característica de los sistemas transaccionales.
El concepto también es relevante cuando se programa con hilos de
ejecución.
Atomicidad
20. Se refiere al hecho de que los Sistemas Administradores de Base de
Datos permiten que muchas transacciones accedan a una misma Base
de Datos a la vez. Cuando existen varios usuarios intentando modificar
los datos al mismo tiempo, se necesita establecer algún tipo de
control para que dichas modificaciones de un usuario no interfieran en
las de los otros, a este sistema se le denomina control de
concurrencia. En este informe podremos ver algunos de los problemas
que se presentan cuando la concurrencia no se controla y algunos de
los mecanismos de bloqueo que nos permiten manejar la concurrencia
en las transacciones. De esta manera, los sistemas de control de
concurrencia deben garantizar la consistencia de transacciones que se
ejecutan de manera concurrente.
Control de Concurrencia