jueves, 20 de septiembre de 2012

TIPOS DE RPC Y PARAMETROS


ONC-RPC (Open Network Computing - Remote Procedure Call)
Esta implementación fue desarrollada  inicialmente por Sun Microsystem y está disponible en la gran mayoría de los sistemas  UNIX. La especificación de ONC-RPC versión 2 está descrita en la RFC 1831 (Agosto,  1995). La RFC 1832 provee la descripción de XDR (Agosto, 1995). Ambas pueden ser  obtenidas en el sitio http://www.rfc-editor.org.
ONC-RPC cuenta con los siguientes componentes:
• rpcgen, un compilador que toma la definición de la interfaz de un  procedimiento remoto y genera el “stub” del cliente y el “stub” del servidor.
• XDR (eXternal Data Representation),  un estándar para la descripción y codificación de datos que garantiza portabilidad entre sistemas de arquitecturas  diferentes.
• Una librería que maneja todos los detalles.

DCE Remote Procedure Call
DCE Remote Procedure Call o bien DCE RPC es un sistema de llamada a procedimiento remoto del conjunto de software OSF DCE. DCE / RPC, la abreviatura de "Distributed Computing Environment / Remote Procedure Calls ", es el sistema de llamada a procedimiento remoto desarrollado para el entorno de la informática distribuida (DCE). Este sistema permite a los programadores escribir software distribuido como si fuera todos los que trabajan en el mismo equipo, sin tener que preocuparse por el código de red subyacente.1
DCE RPC no debe confundirse con DCE el cual es un conjunto de servicios que incluye DCE RPC, además de otras cosas como CDSDCE DFS.
DCE RPC fue encargado por la fundación Open Software Foundation. Una de las compañías clave que contribuyeron fue Apollo.



Distributed Component Object Model

Distributed Component Object Model (DCOM), en español Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. Ha sido abandonada en favor del framework .NET.
La adición de la "D" a COM fue debido al uso extensivo de DCE/RPC, o más específicamente la versión mejorada de Microsoft, conocida como MSRPC.
En términos de las extensiones que añade a COM, DCOM tenía que resolver los problemas de
§  Aplanamiento - Serializar y deserializar los argumentos y valores de retorno de las llamadas a los métodos "sobre el cable".
§  Recolección de basura distribuida, asegurándose que las referencias mantenidas por clientes de las interfaces sean liberadas cuando, por ejemplo, el proceso cliente ha caído o la conexión de red se pierde.
Uno de los factores clave para resolver estos problemas es el uso de DCE/RPC como el mecanismo RPC subyacente bajo DCOM. DCE/RPC define reglas estrictas en cuanto al aplanamiento y a quién es responsable de liberar la memoria.
DCOM fue uno de los mayores competidores de CORBA. Los defensores de ambas tecnologías sostenían que algún día serían el modelo de código y servicios sobre Internet. Sin embargo, las dificultades que suponía conseguir que estas tecnologías funcionasen a través de cortafuegos y sobre máquinas inseguras o desconocidas, significó que las peticiones HTTP normales, combinadas con los navegadores web les ganasen la partida. Microsoft, en su momento intentó y fracasó anticiparse a esto añadiendo un transporte extra HTTP a DCE/RPC denominado "ncacn_http" (Connection-based, over HTTP).



      Parámetros de valor y referencia

La primera es que, en C, los parámetros pueden llamarse por valor o por referencia. Un parámetro por valor, como fd o nbytes, solo se copia a la pila como se muestra en la figura A(b). Para el procedimiento que recibe la llamada, un parámetro por valor es tan sólo una variable local ya iniciada. El procedimiento llamado podría modificarla, pero esto no afecta el valor de la variable original en el procedimiento que hizo la llamada.


Un parámetro por referencia en C es un apuntador a una variable (es decir, la dirección de la variable), en lugar del valor de la variable. En la llamada a read, el segundo parámetro es un parámetro por referencia, puesto que en C los arreglos siempre se transfieren por referencia. Lo que se introduce en realidad a la pila es la dirección del arreglo de caracteres. Si el procedimiento llamado utiliza este parámetro para guardar algo en el arreglo de caracteres, esto sí modifica el arreglo en el procedimiento que hizo la llamada. La diferencia entre los parámetros llamados por valor o por referencia es importante para RPC, como veremos más adelante.

lunes, 17 de septiembre de 2012

DEFINICIONES



Clasificación de los sistemas operativos


Se pueden clasificar los sistema operativos, partiendo de este punto de vista, en on line (o  interactivos) y off line (o batch o por lotes). Como ejemplo de los primeros ya hemos comentado los sistemas de tiempo compartido, los sistemas interactivos son útiles, entre otros, en entornos de desarrollo de programas, de procesamiento de textos y de ejecución de programas interactivos.
Un ejemplo de los segundos son los sistemas por lotes. Los sistemas batch se caracterizan porque una vez introducida una tarea en el ordenador, el usuario no mantiene contacto alguno con ella hasta que finaliza su ejecución.

 Respecto al número de usuarios

Si se tiene en cuenta el número de usuarios se puede hablar de sistemas monousuario y multiusuario (o multiacceso). En los primeros se puede acceder al ordenador mediante un único terminal, frente a los varios terminales de acceso simultáneo que permiten los segundos.
Ejemplos de sistemas operativos monousuario son MS DOS y CP/M. Un ejemplo de sistema multiusuario es UNIX.

Atendiendo al uso que quieran dar los usuarios al ordenador, los sistema operativos se pueden dividir en sistemas de propósito específico y sistemas de propósito general.
Un ejemplo de sistema de propósito específico es un sistema de tiempo real, estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempo breve un gran número de sucesos, en su mayoría externos al ordenador. Ejemplos de tales aplicaciones incluyen control industrial, equipamiento telefónico conmutado, control de vuelo y simulaciones en tiempo real.
Los sistemas de propósito general se caracterizan por tener un gran número de usuarios trabajando sobre un amplio abanico de aplicaciones. Se suelen dividir en dos grandes grupos: los de lotes y los de tiempo compartido Sin embargo, existen sistemas que compaginan el tiempo compartido con procesos por lotes.

Los ordenadores con más de una CPU se clasifican en multiprocesadores y en sistemas distribuidos (o multicomputadores). En un multiprocesador los procesadores comparten memoria y reloj (son síncronos). En un sistema distribuido tenemos varios procesadores con su propia memoria, además, no están sincronizados. Los sistemas operativos que controlan un multiprocesador son distintos a los empleados en los sistemas distribuidos.

Ejemplos de Sistemas Distribuidos

  • Solaris
  • Mach
  • Chorus
  • Amoeba

Clasificaciones del Hardware de los SOD

MPP:
• Es un gran sistema de procesamiento paralelo con una  arquitectura que no comparte nada.
• Consiste en cientos de elementos de procesamiento los cuales están interconectados por  un Switch o red de alta velocidad.
• Cada nodo puede tener una variedad de componentes de hardware, pero generalmente   consisten de una memoria central y de uno o varios procesadores.

SMP:
• Poseen desde 2 a 64 procesadores y pueden ser considerados como una arquitectura que comparte todo.
• En estos sistemas todos los procesadores comparten todos los recursos globales  disponibles (bus del sistema, memoria, sistemas de I/O, etc.);
• Una copia sencilla del Sistema Operativo corre en estos sistemas.

CC-NUMA:
• Es un sistema multiprocesador escalable.
• Como en SMP, cada procesador en un sistema CC-NUMA tiene una vista global de toda la memoria.
• Este tipo de sistema consigue su nombre (NUMA) a partir de los tiempos no uniformes que le toma para acceder ya sea a la parte memoria más cercana, así como a la más remota.

Sistemas Distribuidos:

• Pueden ser considerados redes convencionales de computadores independientes.
• Los mismos tienen múltiples imágenes del sistema, a partir de que cada nodo tiene su propio sistema operativo, y
• Cada máquina individual en un sistema distribuido puede ser, por ejemplo, una combinación de MPPs, SMPs, Clusters, Grids y computadoras individuales.

Cluster:

• Una colección de estaciones de trabajo o PCs que están conectadas mediante alguna tecnología de red.
• Para fines de computación paralela estas PCs o estaciones de trabajo estarán conectadas mediante una red de muy alta velocidad.
• Un cluster trabaja como una colección integrada de recursos y pueden tener una imagen simple del sistema abarcando todos sus nodos.

Grid:

• Un gran conjunto de Sitios que están conectadas mediante una red global de alta velocidad
(10 Gb/s) que tienen una alta capacidad de procesamiento (entre 1000 a 10000 GFLOPS)
y un gran capacidad de almacenamiento (entre 1000 a 10000 TB)
• Los Sitios interconectados utilizan Procesamiento Distribuido y P2P (Peer to Peer Architecture) con desarrollos de SW novedosos adicionales con interfaces estándar abiertas.
• Utiliza nuevas técnicas de Autoadministración, auto escalabilidad y auto reparación (tolerante a fallas)



Diferencia entre sistema operativo distribuido, un sistema operativo multiprocesador y un sistema operativo de red.

La diferencia fundamental de un sistema distribuido  con los sistemas en red es que la ubicación del recurso es transparente a las aplicaciones y usuarios, por lo que, desde este punto de vista, no hay diferencia con un sistema de tiempo compartido.




Diferencia entre un sistema operativo distribuido y un sistema distribuido

Existe una diferencia vital entre los sistemas operativos distribuidos y los sistemas distribuidos. Podríamos llamar a un Sistema Distribuido una capacidad del Sistema operativo Distribuido, es decir: Un sistema distribuido es la relación que existe entre una computadora independiente y un servidor de archivos o dispositivos compartidos. Cada computadora ejecuta sus programas en su memoria propia haciendo uso de su único

miércoles, 5 de septiembre de 2012

Investigación de Conceptos


1.- Sistema Operativo Distribuido: Es una serie de computadoras que comparten recursos, comunican y coordinan sus acciones únicamente mediante el paso de mensajes.

·     2.-  Sistema de Archivos Distribuido: Es una implementación distribuida del clásico modelo de tiempo compartido de un sistema de archivos, donde varios usuarios comparten archivos y almacenan recursos.
·     3.-  Sistema Distribuido Basado en Web: Su arquitectura no es diferente a los de otros sistemas distribuidos, los SO basados en la web están organizados como arquitecturas cliente-servidor relativamente simples.
·     4.- Sistemas Basados en Objetos Distribuidos: En estos sistemas la noción de un objeto desempeña un rol fundamental al establecer la transparencia de la distribución. Diseñar e implementar sistemas distribuidos que se estructuren como colecciones de componentes modulares (objetos) que puedan ser manejados fácilmente y organizados en capas para ocultar la complejidad del diseño. 

martes, 4 de septiembre de 2012

Ventajas y Desventajas de SO Distribuidos


Que es un SO Distribuido...?

Con estos sistemas, pueden saber que hay multiplicidad de estaciones y equipos en la red, pero no necesitan conocerlos explícitamente, ellos solamente saben que hay recursos en la red y conocen su nombre o identificador, de tal forma que pueden acceder a ellos de igual manera que acceden a los recursos locales, sin tener que conectarse en ningún caso a la maquina propietaria para utilizar el recurso

Ventajas

Mayor confiabilidad:
  • Al distribuir la carga de trabajo en muchas máquinas, la falla de una de ellas no afectara a las demás:
  • La carga de trabajo podría distribuirse.
  • Si una máquina se descompone:
  • Sobrevive el sistema como un todo.


 La posibilidad del crecimiento incremental o por incrementos:
  • 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.
Comunicación entre personas: que puedan comunicarse fácilmente las personas.

Flexibles en el reparto de carga: Pues permite destinar estaciones de trabajo a la realización de trabajos batch, por ejemplo, dejando así libres más estaciones para usuarios.


Desventajas 

El software: ya que el diseño, implantación y uso del software distribuido presenta numerosos inconvenientes.

La mayor complejidad: que se requiere para garantizar una coordinación adecuada entre localidades.


Redes de comunicación: se puede saturar, puedes perder mensajes.

Seguridad: pues si se consigue el acceso a la red(de la forma ilegal) se consigue  ya un acceso sencillo a una gran cantidad de información, lo cual requiere establecer unos mecanismos de acceso muy seguros.



Bibliografía