Este documento describe los conceptos y características de los sistemas operativos distribuidos y centralizados. Explica que los sistemas operativos distribuidos permiten la ejecución concurrente de procesos en múltiples nodos de computación a través de una red, mientras que los sistemas centralizados usan los recursos de una sola computadora. También discute las ventajas y desventajas de ambos modelos, así como conceptos como el modelo cliente-servidor y la arquitectura de múltiples capas.
1. INSTITUTO TECNOLÓGICO
Del Istmo
SEP. SNEST
DGEST
ESPECIALIDAD:
ING. EN INFORMATICA
MATERIA:
SISTEMAS OPERATIVOS II
CATEDRÁTICO:
ING. JACINTO TOLEDO TORRES
INVESTIGACIÓN:
INVESTIGACIÓN DE LA UNIDAD 1
ALUMNO:
IRVING FELIPE MARTÍNEZ
SEMESTRE:
QUINTO
GRUPO:
“Z”
Heroica. Ciudad Juchitán de Zaragoza Oaxaca. A 18 de Diciembre del 2015
2. UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES
DISTRIBUIDOS
1.1Conceptos y características de los sistemas operativos
de redes y sistemas operativos centralizados.
SISTEMAS OPERATIVOS DE RED
Un sistema operativo de red es un sistema operativo de computadora diseñado
para administrar y apoyar a las estaciones de trabajo, computadoras personales y
servidores normalmente conectados a una red de área local. La lista de sistemas
operativos de red incluye al LANtastic de Artisoft, Banyan VINES, NetWare de
Novell y LAN Manager de Microsoft. Algunas de las funciones principales de un
sistema operativo de red son compartir impresoras, sistemas de archivos comunes,
compartición de bases de datos y aplicaciones, administración del directorio de
nombres de la red y la habilidad de efectuar un servicio de limpieza para el sistema
de red.
Los sistemas operativos en red no son fundamentalmente distintos de los sistemas
operativos con un solo procesador. Es obvio que necesitan un dispositivo
controlador de interfaz de red y cierto software de bajo nivel para controlarlo, así
como programas para lograr el inicio de una sesión remota y el acceso remoto a los
archivos, pero estas adiciones no cambian la estructura esencial del sistema
operativo.
Características de los Sistemas Operativos de Red
En general, se puede decir que un Sistema Operativo tiene las siguientes
características:
Conveniencia. Un Sistema Operativo hace más conveniente el uso de una
computadora.
Eficiencia. Un Sistema Operativo permite que los recursos de la computadora
se usen de la manera más eficiente posible.
Habilidad para evolucionar. Un Sistema Operativo deberá construirse de
manera que permita el desarrollo, prueba o introducción efectiva de nuevas
funciones del sistema sin interferir con el servicio.
Encargado de administrar el hardware. El Sistema Operativo se encarga de
manejar de una mejor manera los recursos de la computadora en cuanto a
hardware se refiere, esto es, asignar a cada proceso una parte del
procesador para poder compartir los recursos.
Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo
se debe encargar de comunicar a los dispositivos periféricos, cuando el
usuario así lo requiera.
Organizar datos para acceso rápido y seguro.
3. Manejar las comunicaciones en red. El Sistema Operativo permite al usuario
manejar con alta facilidad todo lo referente a la instalación y uso de las redes
de computadoras.
Procesamiento por bytes de flujo a través del bus de datos.
Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al
usuario el acceso y manejo de los dispositivos de Entrada/Salida de la
computadora.
Técnicas de recuperación de errores.
Evita que otros usuarios interfieran. El Sistema Operativo evita que los
usuarios se bloqueen entre ellos, informándoles si esa aplicación está siendo
ocupada por otro usuario.
SISTEMAS OPERATIVOS CENTRALIZADOS
Si queremos dar una definición simple de lo que es un sistema operativo
centralizado, diremos que se trata de aquel que utiliza los recursos de una sola
computadora, es decir, su memoria, CPU, disco y periféricos.
Podemos encontrar este tipo de sistemas operativos en un entorno de empresa, en
el cual puede haber un soporte multiusuario. Las empresas, en especial las
antiguas, utilizan una mainframe potente para dar capacidad de cómputo a muchos
terminales, o también se puede encontrar empresas con abundantes
minicomputadores para los empleados que las necesiten en sus actividades.
4. Los sistemas centralizados se caracterizan por:
Un procesador central que ejecuta todas las aplicaciones
Recursos locales compartidos
Alta seguridad y confiabilidad de los datos
Administración única del sistema
Políticas de seguridad y acceso bien definidas y homogéneas
Alto coste de procesadores y dispositivos de almacenamiento
Dependencia del Centro de Proceso de Datos
Un único sistema operativo
Uno de los primeros modelos de ordenadores interconectados fue el centralizado,
donde todo el procesamiento de la organización se llevaba a cabo en una sola
computadora, normalmente un Mainframe, y los usuarios empleaban sencillos
ordenadores personales. Los problemas de este modelo son que cuando la carga
de procesamiento aumentaba se tenía que cambiar el hardware del Mainframe, lo
cual es más costoso que añadir más computadores personales clientes o servidores
que aumenten las capacidades.
1.2 Conceptos y características de los sistemas
operativos distribuidos.
Un sistema operativo distribuido 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.
Un sistema operativo distribuido provee las funcionalidades esenciales requeridas
por un sistema distribuido, agregando atributos y configuraciones para dar soporte
a los requerimientos adicionales, tales como aumento de escala y disponibilidad.
Desde el punto de vista del usuario el SO funciona de forma similar a un Sistema
Operativo monolítico de un solo nodo. O sea que, aunque está compuesto por
múltiples nodos, para los usuarios y aplicaciones luce como un solo nodo.
5. Separando las funcionalidades mínimas a nivel de sistema de los servicios
modulares adicionales a nivel de usuario provee “una separación de mecanismos y
políticas”. Mecanismos y políticas pueden ser interpretados de la siguiente manera
“cómo algo se hace” contra “por qué algo se hace” respectivamente. Esta
separación incrementa la escalabilidad y la flexibilidad.
Un sistema distribuido puede verse de manera abstracta como un conjunto de
gestores de recursos y un conjunto de programas que usan los recursos. Los
usuarios de los recursos se comunican con los gestores de los recursos para
acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos
modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en
objetos.
Básicamente los sistemas distribuidos cumplen una serie de características:
CONCURRENCIA
Cuando existen varios procesos en una única maquina decimos que se están
ejecutando concurrentemente. Si el ordenador está equipado con un único
procesador central, la concurrencia tiene lugar entrelazando la ejecución de
los distintos procesos. Si la computadora tiene N procesadores, entonces se
pueden estar ejecutando estrictamente a la vez hasta N procesos.
Escalabilidad
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas
escalas diferentes. La escala más pequeña consiste en dos estaciones de
trabajo y un servidor de ficheros, mientras que un sistema distribuido
construido alrededor de una red de área local simple podría contener varios
cientos de estaciones de trabajo, varios servidores de ficheros, servidores de
impresión y otros servidores de propósito específico.
Tolerancia a Fallos
Los sistemas informáticos a veces fallan. Cuando se producen fallos en el
software o en el hardware, los programas podrían producir resultados
incorrectos o podrían pararse antes de terminar la computación que estaban
realizando. El diseño de sistemas tolerantes a fallos se basa en dos
6. cuestiones, complementarias entre sí: Redundancia hardware (uso de
componentes redundantes) y recuperación del software (diseño de
programas que sean capaces de recuperarse de los fallos).
Transparencia
La transparencia se define como la ocultación al usuario y al programador de
aplicaciones de la separación de los componentes de un sistema distribuido,
de manera que el sistema se percibe como un todo, en vez de una colección
de componentes independientes. La transparencia ejerce una gran influencia
en el diseño del software de sistema.
Los verdaderos sistemas operativos distribuidos requieren algo más que sólo
agregar un poco de código a un sistema operativo con un solo procesador, ya que
los sistemas distribuidos y los centralizados difieren en varios puntos críticos. Por
ejemplo, los sistemas distribuidos permiten con frecuencia que las aplicaciones se
ejecuten en varios procesadores al mismo tiempo, lo que requiere algoritmos de
planificación del procesador más complejo para poder optimizar la cantidad de
paralelismo.
1.3 Sistemas operativos distribuidos: ventajas y
desventajas contra sistemas operativos centralizados,
sistemas operativos para redes, modelo cliente – servidor,
modelo de N capas, características del hardware y
características del software (homogéneos y
heterogéneos), direccionamiento lógico y físico.
Sistemas operativos distribuidos: ventajas y desventajas contra
sistemas operativos centralizados
VENTAJAS
Entre las ventajas tenemos: La descentralización económica. Por ejemplo, en el
caso de los CPU, si uno está dispuesto a pagar el doble so obtiene el mismo CPU
sólo que con una velocidad un poco mayor. De tal forma, es más cómodo limitarse
a un gran número de CPU baratos reunidos en un mismo sistema. Los sistemas
distribuidos tienen en potencia una proporción precio/desempeño mucho mejor que
la de un sistema centralizado.
Herb Grosch formuló la que se llamaría “Ley de Grosch”
7. El poder de cómputo de una cpu es proporcional al cuadrado de su precio:
Si se paga el doble se obtiene el cuádruple del desempeño.
Fue aplicable en los años setentas y ochentas a la tecnología mainframe.
No es aplicable a la tecnología del microprocesador:
La solución más eficaz en cuanto a costo es limitarse a un gran número de
cpu baratos reunidos en un mismo sistema.
Los sistemas distribuidos generalmente tienen en potencia una proporción precio /
desempeño mucho mejor que la de un único sistema centralizado.
Algunos autores distinguen entre:
Sistemas distribuidos: están diseñados para que muchos usuarios trabajen
en forma conjunta.
Sistemas paralelos: están diseñados para lograr la máxima rapidez en un
único problema.
En general se consideran sistemas distribuidos, en sentido amplio, a los sistemas
en que:
Existen varias cpu conectadas entre sí.
Las distintas cpu trabajan de manera conjunta.
Ciertas aplicaciones son distribuidas en forma inherente:
Ej.: sistema de automatización de una fábrica:
o Controla los robots y máquinas en la línea de montaje.
o Cada robot o máquina es controlado por su propia computadora.
o Las distintas computadoras están interconectadas.
DESVENTAJAS
El peor de los problemas es el software: qué lenguajes de programación utilizar, que
aplicaciones son adecuadas. El problema de las redes de comunicación. Se pueden
perder mensajes, lo cual requiere un software especial para su manejo y puede
verse sobrecargado. Al saturarse la red ésta debe reemplazarse o añadir una
segunda. De cualquier forma, es un gran costo. El hecho que los datos se puedan
compartir puede ser un arma de doble filo, pues también pueden acceder a datos
que no les corresponde ver. La seguridad es con frecuencia un problema.
Otra ventaja importante es la posibilidad del crecimiento incremental o por
incrementos:
8. Podrían añadirse procesadores al sistema, permitiendo un desarrollo gradual
según las necesidades.
No son necesarios grandes incrementos de potencia en breves lapsos de
tiempo.
Se puede añadir poder de cómputo en pequeños incrementos.
Modelo cliente – servidor Y Modelo de N capas
El modelo cliente-servidor consiste básicamente en un cliente que realiza
peticiones a otro programa (el servidor) que le da respuesta.
La tecnología denominada Cliente -Servidor es utilizada por todas las aplicaciones
de Internet/Intranet. Un cliente funciona en su ordenador local, se comunica con el
servidor remoto, y pide a éste información.
CLIENTE
El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos
al servidor, se le conoce con el término front-end.
El Cliente normalmente maneja todas las funciones relacionadas con la
manipulación y despliegue de datos, por lo que están desarrollados sobre
plataformas que permiten construir interfaces gráficas de usuario (GUI), además de
acceder a los servicios distribuidos en cualquier parte de una red.
Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes
puntos:
1. •Administrar la interfaz de usuario.
2. •Interactuar con el usuario.
3. •Procesar la lógica de la aplicación y hacer validaciones locales.
4. •Generar requerimientos de bases de datos.
5. •Recibir resultados del servidor.
6. •Formatear resultados.
SERVIDOR
Es el proceso encargado de atender a múltiples clientes que hacen peticiones de
algún recurso administrado por él. Al proceso servidor se le conoce con el término
back-end.
El servidor normalmente maneja todas las funciones relacionadas con la mayoría
de las reglas del negocio y los recursos de datos.
9. Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes
puntos:
1. •Aceptar los requerimientos de bases de datos que hacen los clientes.
2. •Procesar requerimientos de bases de datos.
3. •Formatear datos para trasmitirlos a los clientes.
4. •Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de
datos.
Los sistemas Cliente-Servidor pueden ser de muchos tipos, dependiendo de las
aplicaciones que el servidor pone a disposición de los clientes. Entre otros, existen:
Servidores de Impresión, mediante el cual los usuarios comparten
impresoras.
Servidores de Archivos, con el cual los clientes comparten discos duros.
Servidores de Bases de Datos, donde existe una única base de datos.
Servidores de Lotus Notes, que permite el trabajo simultáneo de distintos
clientes con los mismos datos o documentos.
Arquitectura de n capas
La programación por capas es una arquitectura cliente-servidor en el que el objetivo
primordial es la separación de la lógica de negocios de la lógica de diseño; un
ejemplo básico de esto consiste en separar la capa de datos de la capa de
presentación al usuario. La ventaja principal de este estilo es que el desarrollo se
puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio,
sólo se ataca al nivel requerido sin tener que revisar entre código mezclado.
En el diseño de sistemas informáticos actual se suelen usar las arquitecturas
multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le
confía una misión simple, lo que permite el diseño de arquitecturas escalables (que
pueden ampliarse con facilidad en caso de que las necesidades aumenten).
Capas y niveles
1. Capa de presentación: es la que ve el usuario (también se la denomina "capa de
usuario"), presenta el sistema al usuario, le comunica la información y captura la
información del usuario en un mínimo de proceso (realiza un filtrado previo para
comprobar que no hay errores de formato). También es conocida como interfaz
10. gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar)
para el usuario. Esta capa se comunica únicamente con la capa de negocio.
2. Capa de negocio: es donde residen los programas que se ejecutan, se reciben
las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina
capa de negocio (e incluso de lógica del negocio) porque es aquí donde se
establecen todas las reglas que deben cumplirse. Esta capa se comunica con la
capa de presentación, para recibir las solicitudes y presentar los resultados, y con
la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar
datos de él. También se consideran aquí los programas de aplicación.
3. Capa de datos: es donde residen los datos y es la encargada de acceder a los
mismos. Está formada por uno o más gestores de bases de datos que realizan todo
el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación
de información desde la capa de negocio.
Todas estas capas pueden residir en un único computador, si bien lo más usual es
que haya una multitud de computadoras en donde reside la capa de presentación
(son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos
pueden residir en el mismo computador, y si el crecimiento de las necesidades lo
aconseja se pueden separar en dos o más computadoras.
11. Características del hardware y características del
software (homogéneo y heterogéneo)
HARDWARE
Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas
formas, especialmente respecto de:
La forma de interconectarlas entre sí.
Los esquemas de comunicación utilizados.
Existen diversos esquemas de clasificación para los sistemas de cómputos con
varias cpu:
Uno de los más conocidos es la “Taxonomía de Flynn”:
o Considera como características esenciales el número de flujo de
instrucciones y el número de flujos de datos.
o La clasificación incluye equipos SISD, SIMD, MISD y MIMD.
SISD (Single Instruction Single Data: un flujo de instrucciones y un flujo de
datos):Poseen un único procesador.
SIMD (Single Instruction Multiple Data: un flujo de instrucciones y varios flujos de
datos):
Se refiere a ordenar procesadores con una unidad de instrucción que:
o Busca una instrucción.
o Instruye a varias unidades de datos para que la lleven a cabo en
paralelo, cada una con sus propios datos.
Son útiles para los cómputos que repiten los mismos cálculos en varios
conjuntos de datos.
MISD (Multiple Instruction Single Data: un flujo de varias instrucciones y un solo flujo
de datos):No se presenta en la práctica.
MIMD (Multiple Instruction Multiple Data: un grupo de computadoras
independientes, cada una con su propio contador del programa, programa y
datos):Todos los sistemas distribuidos son de este tipo.
12. SOFTWARE
El software se desarrolla o construye; no se manufactura en el sentido clásico. A
pesar de que existen similitudes entre el desarrollo del software y la manufactura
del hardware, las dos actividades serian diferentes en lo fundamental. En ambas la
alta calidad se alcanza por medio del buen diseño, la fase de manufactura del
hardware puede incluir problemas de calidad existentes en el software.
Los componentes reutilizables modernos encapsulan tanto los datos como el
proceso se aplican a estos, lo que permite al ingeniero de software crear nuevas
aplicaciones nuevas a partir de partes reutilizables.
Características
Para cada uno de los usuarios debe de ser similar al trabajo en el Sistema
Centralizado.
Seguridad interna en el sistema distribuido
Se ejecuta en múltiples Computadoras.
Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas
Operativos que proveen los mismos servicios.
Entorno de trabajo cómodo.
Dependiente de redes (LAN,MAN,WAN,etc.)
Compatibilidad entre los dispositivos conectados
Transparencia (El uso de múltiples procesadores y el acceso remoto debe de
ser invisible).
Direccionamiento Lógico Físico Sistemas Distribuidos
Una dirección generada por la CPU se denomina dirección lógica en cambio a la
que es percibida por unidad de memoria se denomina dirección física.
Los esquemas de vinculación de direcciones durante la compilación y durante la
carga dan pie a un entorno en el que las direcciones lógicas y físicas son las
mismas. En cambio, la ejecución del esquema de vinculación de direcciones durante
la ejecución produce un entorno en el que las direcciones lógicas y físicas difieren.
En este caso la dirección lógica suele llamarse dirección virtual.
Direccionamiento lógico y físico El proceso desde que los datos son incorporados
al ordenados hasta que se transmiten al medio se llama encapsulación. Estos datos
son formateados, segmentados, identificados con el direccionamiento lógico y físico
para finalmente ser enviados al medio.
13. Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de
transporte desde de origen, se encarga de segmentarlos para así ser empaquetados
debidamente, esta misma capa en el destino se encargara de reensamblar los datos
y colocarlos en forma secuencial, ya que no siempre llegan a su destino en el orden
en que han sido segmentados, así mismo acorde al protocolo que se esté utilizando
habrá corrección de errores. Estos segmentos son empaquetados (paquetes o
datagramas) e identificados en la capa de red con la dirección lógica o IP
correspondiente al origen y destino
1.4. Sistemas distribuidos de alto rendimiento a bajo costo
(clustering) en sistemas operativos de libre distribución.
Se entiende por cluster como a un conjunto que trabaja en un mismo sector y que
entre ellos colaboran estratégicamente comportándose como uno solo para tener
un beneficio común.
El computo con clustering surge debido a las demandas que se han ido generando,
que incluyen la disponibilidad de microprocesadores económicos de alto
rendimiento y redes de alta velocidad, el desarrollo de herramientas de software
para cómputo distribuido de alto rendimiento, así como la creciente necesidad de
potencia computacional para aplicaciones que la requieran.
Cluster como bien se dice en el párrafo uno, es un conjunto de computadoras unidas
pertenecientes mediante una red que es de una alta velocidad, de tal manera que
ese conjunto relacionado en red es presenciado como una computadora sola.
Debido a todo este se implementaron nuevas tecnologías como lo son:
I. MOSIX
Es un paquete de software que mejora el kernel de Linux con capacidades de
computación de clusters. El kernel mejorado permite a cualquier cluster de
estaciones de trabajo y servidores X86/Pentium/AMD trabajar coordinadamente
como parte de un sólo sistema.
II. KNOPPIX
Se puede usar para demostrar de manera sencilla el sistema GNU/Linux,
especialmente como sistema operativo; para verificar la compatibilidad de hardware
con Linux (especialmente para tarjeta de vídeo), o para restaurar un sistema
corrupto o datos perdidos.
III. HPCC .
Es una forma de hacer clusters con máquinas baratas, para obtener procesamiento
paralelo de alto rendimiento para aplicaciones que usan grandes volúmenes de
datos. La pataforma HPCC incluye configuraciones del sistema para soportar
procesamiento por lotes y procesamiento paralelo, y aplicaciones de consulta de
alto desempeño que usan archivos de datos indexados.
14. IV. BEOWULF
Es un cluster de computadoras de bajo costo, normalmente idénticas que están
conectadas en una pequeña LAN, con librerías y programas instalados que permiten
que el procesamiento se reparta entre ellos.
V. APACHE HADOOP
Para procesado y almacenamiento de conjuntos de datos a gran escala
en Clusters de hardware de bajo costo.