You are on page 1of 16

la computación distribuida 

es una red de ordenadores donde los recursos informáticos


son compartidos con todos los otros ordenadores en el sistema. La potencia
deprocesamiento, la memoria y el almacenamiento de datos, son recursos de la
comunidad donde los usuarios autorizados pueden entrar y realizar ciertas tareas. Una
red distribuida puede ser tan simple como una colección de equipos similares
funcionando con el mismo sistema operativo, o tan complejo como una red
interconexionada de sistemas, formada por cualquier plataforma informática que te
puedas imaginar.

La computación distribuida no es algo nuevo. Con esta tecnología, diferentes


ordenadores dentro de una red comparten uno o más recursos. En uno de estos
sistemas considerado ideal, todos los recursos son compartidos, convirtiendo una red
de ordenadores en un potente superordenador. Con el interfaz adecuado,  acceder a
uno de estos sistemas no es muy diferente de que acceder a los recursos de una
máquina local. Todo ordenador autorizado tendrá acceso a una potencia de
procesamiento enorme, y una gran capacidad de almacenamiento.

Aunque el concepto no es nuevo, todavía no está del todo perfeccionado. Científicos


informáticos, programadores e ingenieros todavía están trabajando en crear,
establecer e implementar estándares yprotocolos. Actualmente, muchos sistemas de
computación distribuida dependen de software y herramientas propietarias. Una vez
que la gente se ponga de acuerdo sobre un grupo de protocolos y normas fiables, será
más fácil y eficiente para las organizaciones, adoptar el modelo de computación
distribuida ideal.

Estructura de una computación distribuida

Estos sistemas trabajan con el principio de los recursos combinados. Poniendo una
analogía como ejemplo, digamos que tú y algunos amigos decidís ir de camping.
Tienes una tienda de campaña muy grande, por lo que decides compartirlo con los
otros. Uno de tus amigos se ofrece para traer la comida, y otro pone su furgoneta para
hacer el viaje.  Una vez en marcha, todos compartís conocimientos y experiencias para
que el viaje sea ameno y divertido. Si hubieras hecho el viaje por tu cuenta, hubieras
necesitado más tiempo para juntar todos los recursos necesitados, y posiblemente te
hubiera costado mucho más.

Un sistema de computación distribuida usa el mismo concepto. Se comparte toda la


carga a través de múltiples ordenadores para completar tareas de forma más eficiente
y rápida. Antes de continuar recordemos cuales son los recursos de un ordenador:

 La unidad de procesador central: La conocerás por CPU, y realiza


operaciones matemáticas y direcciona los datos a diferentes localizaciones de
memoria. Puede haber más de una CPU en un equipo.
 Memoria: En general, es un tipo de almacenamiento electrónico temporal.
Mantiene datos relevantes a mano para el microprocesador. Sin la memoria, el
microprocesador tendría que buscar y recuperar datos de un dispositivo de
almacenamiento más permanente, como el disco duro.
 Almacenamiento: En términos de computación distribuida, se refiere a los
dispositivos de almacenamiento permanentes, como son los discos duros o
bases de datos.

Normalmente, un ordenador solo puede operar  dentro de los límites de sus propios
recursos. Hay un límite máximo para que pueda completar una operación o cuanta
información puede almacenar. La mayoría de los ordenadores son actualizables, lo
cual significa que se puede añadir más potencia y capacidad a un solo equipo, pero
eso sigue siendo un aumento incremental de rendimiento.

Los sistemas de computación distribuida enlazan los recursos de red todos juntos, de
una forma tal, que permite a un solo ordenador heredar la potencia del resto de
ordenadores en el sistema. Para un solo usuario, esto le supone un gran avance en
cualquier trabajo que esté haciendo, sea del tipo que sea.

SISTEMA TOLERANTE A FALLOS


Sistema tolerante a fallos es un sistema capaz de continuar operando correctamente incluso en
presencia de fallos en el hardware o errores en el software Cumputación tolerante a fallos
describe el proceso de realizar cálculos, tal como los realizados por un computador, de una
manera tolerante a fallos Orígenes de la computación tolerante a fallos Uso extensivo de técnicas
de detección de errores y de tolerancia a fallos BRC (Bell Relay Computers) 2 CPUs, retry UNIVAC,
Whirlwind I, paridad transferencias de datos EDVAC, 2 ALUs y comparación de resultados
inicialmente, dominio exclusivo de la industria con notables excepciones Shannon y Hamming,
Teoría de códigos Von Neuman, Redundancia

En los años 60, tratamiento sistemático en la industria

ESS (Electronic Switching System) 2 horas no operativo en 40 años

IBM/360

un computador triplicado ayudó al hombre a aterrizar en la luna

Desarrollo rápido a partir de 1970


surgen compañias especializadas en sistemas fiables (Tandem)

creación de un comité de tolerancia a fallos en el IEEE

difusión en revistas y congresos: Computer, IEEE micro, IEEE trans. on computers, proceedings del
IEEE, Journal of

design automation and fault tolerant computing

Miniaturización de las dimensiones de los dispositivos electronicos (transistores y otros)

* nuevas oportunidades

menores tamaños, potencia y coste implican viabilidad de usar redundancia

* nuevos problemas: se aplica redundancia nivel de circuito

mayor susceptibilidad a perturbaciones externas

incremento errores de diseño

mayor probabilidad de circuitos defectuosos

Ampliación de aplicaciones (desde el punto de vista de los sistema de computación)

entornos más duros

usuarios más inexpertos

incremento de los costes de mantenimiento

sistemas cada vez más complejos

FIABILIDAD (RELIABILITY), R(T)

* probabilidad condicional de que el sistema trabaje correctamente en el intervalo [t0, t],


supuesto

que el sistema estaba trabajando correctamente en el tiempo t0

* infiabilidad Q(t) de un sistema es la probabilidad condicional de que el sistema falle en el


intervalo

[t0, t], supuesto que el sistema estaba trabajando correctamente en el tiempo t0

* sistemas en los que incluso periodos momentáneos de funcionamiento incorrecto son


inaceptables
* sistemas sin posibilidad de reparación

DISPONIBILIDAD (AVAILABILITY), A(T)

* probabilidad de que un sistema este operando correctamente y disponible para realizar sus
funciones

en el instante de tiempo t

* un sistema puede ser altamente disponible experimentando periodos frecuentes de


inoperabilidad, en

tanto que la duración de cada periodo sea suficientemente corta

* sistemas en los que el objetivo primario sea ofrecer servicios tan a menudo como sea posible

SEGURIDAD, S(T)

* probabilidad de que un sistema realice correctamente su función o deje de operar de manera


que

no interfiera con la operación de otros sistemas o comprometa la seguridad de las personas


relacionas

con el sistema

MANTENIBILIDAD, M(T)

* probabilidad de que un sistema que ha fallado sea restaurado a un estado operativo dentro de
un

periodo de tiempo t

* el proceso de restauración incluye la localización del problema, la reparación fÍsica del


problema

y la vuelta a su estado operativo original

TESTABILIDAD

* facilidad con la que ciertos atributos de un sistema pueden ser testado

Confiabilidad (Dependability)

* relaciona los conceptos anteriores


* calidad de servicio proporcionada por un sistema

Distintos requerimientos segun las aplicaciones:

LARGA DURACIÓN

* vuelos espaciales no tripulados, satélites

* R(10 años) = 0.95

* permite periodos largos de inoperatividad

* STAR/ Voyager

CÁLCULOS CRÍTICOS

* sistemas de control de vuelo, militares, ciertos controladores

industriales

* Q(10 horas) = 10-9 R(3 horas) = 0.97

* August System CS3001 / A129 IMS

* mantenimiento programado

APLAZAMIENTO DEL MANTENIMIENTO

* sistemas en localizaciones remotas, telefonía

* las operaciones de mantenimiento son

extremadamente costosas

ALTA DISPONIBILIDAD

* sistemas transacciones, de reservas de


billetes

* alta probabilidad de recibir el servicio

cuando se requiere

* Tandem / Stratus

Fallo Latente: un fallo presente en el sistema y que todavía no ha producido un error

Latencia de fallo: tiempo entre la ocurrencia de un fallo y la aparición de un error debido a ese
fallo

Latencia de error: tiempo entre la ocurrencia de un error y la aparición del malfuncionamiento

resultante

No todos los fallos producen errores

No todos los errores dan lugar a malfuncionamientos

Distintos estudios de Sistemas de Computación demuestran:

Los sistemas fallan por numerosas razones incluyendo fallo del hardware, diseño incorrecto

del hardware o del software, operación o mantenimiento inadecuado y entornos

inestables

La probabilidad de error se distribuye sobre este espectro sin una única causa dominante

Existen evidencias de que los fallos transitorios/intermitentes son más frecuentes

La tolerancia a fallos implica REDUNDANCIA recursos adicionales a los estrictamente necesarios

para la operación normal del sistema

La redundancia introducida incrementa el coste del sistema. Es importante elegir adecuadamente

el tipo de recurso adicional

Los computadores tolerantes a fallos aplican una combinación de distintos tipos de redundancia:

hardware, software, información y tiempo y en distintos niveles: nivel físico, nivel sistema

operativo, (nivel aplicación)


La asignatura se centra en el nivel físico
Sistemas Operativos Orientados a Objetos
Conceptos generales de orientación a objetos
El paradigma de la orientación a objetos está basado en cuatro conceptos fundamentales:
• Objetos
• Tipos de datos abstractos (Encapsulamiento y ocultamiento de información )
• Herencia (De atributos y comportamiento)
• Polimorfismo
La programación orientada a objetos utiliza como bloque principal de construcción al objeto, a diferencia de la
programación imperativa, cuyo principal bloque de construcción es la función o subrutina.
Un objeto tiene tres características principales:
1. Una identidad única (nombre o id)
2. Un estado (Representado por los valores de sus atributos internos)
3. Un comportamiento (Conjunto de atributos y métodos para accesarlos)
Un objeto se comunica con otro típicamente por paso de mensajes, y pertenece a una clase, que es el conjunto de
atributos y comportamiento que define un objeto.
La abstracción de datos es la encapsulación del estado y el comportamiento de un objeto.
El ocultamiento se refiere a poner los detalles de la construcción del objeto fuera del alcance del usuario para
proteger sus valores y comportamiento.
En lugar de la llamada a procedimientos y/o funciones, se utiliza la invocación de métodos unidos a los objetos que
son los únicos que pueden modificar las características de los objetos.
El polimorfismo usa una liga dinámica y virtual por medio de la cual distintos objetos hijos de una misma clase se
comportan de una manera única y distinta al mismo método

Page 2
Diseño de un Sistema Operativo Orientado a Objetos (SOOO).
En general, el SOOO se compone principalmente de un microkernel cuya principal función es la administración del
hardware y el resto es una serie de capas de objetos reemplazables cuando es necesario.
Objetos: Código más datos. El código se ejecuta sólo cuando los objetos intercambian mensajes. La administraciónde
los objetos se realiza de una manera similar a una base de datos. El SOOO debe contar con funciones básicas de
Commit y Rollback, Tolerancia a fallas a nivel software y Store and Forward.
Las aplicaciones se desarrollan por medio de la acumulación de objetos tanto del S.O. como del usuario
Ventajas y Desventajas de Sistemas Operativos Orientados a Objetos
Ventajas
+ Son SOs mejor estructurados
+ Existe una más clara separación entre especificación e implantación de objetos
+ La flexibilidad y reusabilidad de los objetos es alta
+ Es posible reutilizar componentes

Page 3
+ Existe una mejor comunicación tanto interna como externa, ya que todos los objetos trabajan con paso de
mensajes
+ La diferenciación de actividades es más clara.
Desventajas
- Existe una fuerte falta de compatibilidad por falta de estándares
- No existen estándares para incrustar un objeto dentro de otro
- Deficiente comunicación entre SOs heterogéneos
- El diseño es altamente complejo, lo que incrementa la probabilidad de errores
- La ejecución de programas es lenta.

Un micron´ucleo es un peque˜no n´ucleo del SO que proporciona

las bases para ampliaciones modulares

La idea: s´olo las funciones absolutamente esenciales del n´ucleo

del SO deben permanecer en el micron´ucleo

Las aplicaciones y los servicios menos esenciales se construyen

sobre el micron´ucleo y se ejecutan en modo usuario. Por

ejemplo: manejadores de dispositivo, sistemas de ficheros,

gestores de memoria virtual, etc.

El micron´ucleo es el nexo de uni´on de los elementos que se

ejecutan en el modo de usuario


Juan Piernas C´anovas Tema 2. Arquitecturas de Sistemas OperativosN´ucleos monol
´ıticos

Organizaci´on modular

Organizaciones estratificadas o por capas

N´ucleos extensibles o micron´ucleos

Sistemas operativos para sistemas distribuidos

Bibliograf´ıa

Caracter´ısticas de los micron´ucleos

M´aquinas virtuales

Exokernels

Modelos cliente-servidor

El sistema operativo Mach

N´ucleos extensibles o micron´ucleos

En una arquitectura micron´ucleo podemos distinguir tipos de

m´odulos:

m´odulos troncales, independientes de cualquier pol´ıtica

m´odulos espec´ıficos, depedientes de cierta pol´ıtica

Los m´odulos troncales implementan el micron´ucleo:

No proporcionan una funcionalidad completa de SO

Crean un entorno de trabajo fiable de prop´osito general sobre

el que se asientan los m´odulos dependientes de la pol´ıtica

Proporcionan una m´aquina virtual de bajo nivel con una


gesti´on b´asica de procesos, memoria y dispositivos

Los m´odulos espec´ıficos:

definen el comportamiento final del SO

complementan al micron´ucleo creando un SO completo

se suelen implementar mediante procesos servidores

Juan Piernas C´anovas Tema 2. Arquitecturas de Sistemas OperativosN´ucleos monol


´ıticos

Organizaci´on modular

Organizaciones estratificadas o por capas

N´ucleos extensibles o micron´ucleos

Sistemas operativos para sistemas distribuidos

Bibliograf´ıa

Caracter´ısticas de los micron´ucleos

M´aquinas virtuales

Exokernels

Modelos cliente-servidor

El sistema operativo Mach

Ventajas de una organizaci´on micron´ucleo

1 Uniformidad de interfaces: los procesos solicitan cualquier

servicio enviando un mensaje

2 Extensibilidad: es f´acil a˜nadir nuevos servicios

3 Flexibilidad: el producto final es totalmente configurable


4 Transportabilidad: basta con cambiar algunas partes del

micron´ucleo

5 Fiabilidad: un peque˜no micron´ucleo puede probarse de un

modo muy riguroso

6 Soporte para sistemas distribuidos: los mensajes se pueden

enviar entre procesos locales y remotos

7 Soporte para SSOO orientados a objetos: mediante alg´un

modelo de componentes

Juan Piernas C´anovas Tema 2. Arquitecturas de Sistemas OperativosN´ucleos monol


´ıticos

Organizaci´on modular

Organizaciones estratificadas o por capas

N´ucleos extensibles o micron´ucleos

Sistemas operativos para sistemas distribuidos

Bibliograf´ıa

Caracter´ısticas de los micron´ucleos

M´aquinas virtuales

Exokernels

Modelos cliente-servidor

El sistema operativo Mach

Rendimiento de los micron´ucleos

El rendimiento es el caballo de batalla


Caracter´ısticas de la 1

generaci´on (Mach, Chorus,. . . )

IPC lento respecto a las llamadas al sistema

Gran n´umero de cambios de modo usuario/n´ucleo y de

espacios de direcciones

Micron´ucleos grandes (≈ 300 KB): muchos servicios dentro del

n´ucleo

Interfaces complejas (≈ 140 llamadas al sistema)

Caracter´ısticas de la 2

generaci´on (L4, exokernels,. . . )

IPC muy r´apido, tanto o m´as que una llamada al sistema

Micron´ucleos peque˜nos (≈ 12 KB)

Interfaces peque˜nas (≈ 7 llamadas al sistema)

Juan Piernas C´anovas Tema 2. Arquitecturas de Sistemas OperativosN´ucleos monol


´ıticos

Organizaci´on modular

Organizaciones estratificadas o por capas

N´ucleos extensibles o micron´ucleos

Sistemas operativos para sistemas distribuidos

Bibliograf´ıa
Caracter´ısticas de los micron´ucleos

M´aquinas virtuales

Exokernels

Modelos cliente-servidor

El sistema operativo Mach

Dise˜no de micron´ucleos

Un micron´ucleo debe incluir aquellas funciones b´asicas que

dependen directamente del hardware y que dan soporte a las

aplicaciones y los servidores: gesti´on de procesos y de memoria

de bajo nivel, IPC y gesti´on de interrupciones y E/S

Gesti´on de procesos

Micron´ucleo: cambio de contexto

Servidor: algoritmo de planificaci´on

Gesti´on de la memoria de bajo nivel

Micron´ucleo: trata los fallos de p´agina (parcialmente) y

establece las asociaciones p´agina–marco

Servidor: algoritmo de reemplazo de p´aginas y pol´ıtica de

protecci´on/compartici´on de los espacios de direcciones

Juan Piernas C´anovas Tema 2. Arquitecturas de Sistemas OperativosN´ucleos monol


´ıticos

Organizaci´on modular

Organizaciones estratificadas o por capas


N´ucleos extensibles o micron´ucleos

Sistemas operativos para sistemas distribuidos

Bibliograf´ıa

Caracter´ısticas de los micron´ucleos

M´aquinas virtuales

Exokernels

Modelos cliente-servidor

El sistema operativo Mach

Dise˜no de micron´ucleos

Comunicaci´on entre procesos

Micron´ucleo: gesti´on de mensajes, puertos y capacidades

Servidor: mensajes entre sistemas remotos

Gesti´on de interrupciones y E/S

Micron´ucleo: convierte int. en mensajes y proyecta puertos de

E/S en memoria

Servidor: atiende mensajes (int.) y gestiona dispositivos

Ejemplo de un hilo de manejador:

do

esperaPor(msg, emisor);

if (emisor == mi interrupcion hardware) {

leer/escribir puertos de E/S;

reiniciar interrupcion hardware;


{

else ...

while (true);

Juan Piernas C´anovas Tema 2. Arquitecturas de Sistemas OperativosN´ucleos monol


´ıticos

Organizaci´on modular

Organizaciones estratificadas o por capas

N´ucleos extensibles o micron´ucleos

Sistemas operativos para sistemas distribuidos

Bibliograf´ıa

Caracter´ısticas de los micron´ucleos

M´aquinas virtuales

Exokernels

Modelos cliente-servidor

El sistema operativo Mach

Tipos de micron´ucleos

Los n´ucleos extensibles o micron´ucleos los podemos clasificar,

a grandes rasgos, en 3 tipos:

m´aquinas virtuales

exokernels

modelos cliente-servidor

Se diferencian, principalmente, en los servicios proporcionados


por el micron´ucleo

Juan Piernas C

You might also like