Upload
frank-del-porte-perez
View
10
Download
4
Embed Size (px)
DESCRIPTION
kjhjg
Citation preview
INSTITUTO TECNOLÓGICO SUPERIOR DE CINTALAPA
Ing. Informática
Sistemas operativos II
Catedrático:
Reynol farrera roque
2.3. NOMINACION: CARACTERISTICAS Y ESTRUCTURAS TIPOS DE
NOMBRES, RESOLUCION Y DISTRIBUCION SERVIDORES Y
AGENTES DE NOMBRES
2.4. Comunicación DE PROCESOS ATRAVES DEL PASO DE
MENSAJES
Integrantes:
Francisco Javier del porte Pérez
Suni Alexis Zavala García
Isidro medina Tamayo
Williams García Nataren
Jordán Emmanuel molina lázaro
Geidy Merari Castellanos Romero
5° semestre grupo “F”
27 de agosto del 2015
2.3 Nominación: características y estructuras, tipos de
nombres, resolución y distribución, servidores y agentes de
nombres.
Una de las tareas más relevantes en la operación de S.O.D. es la
administración de recursos, que se presentan estructurados en plataformas o
catálogos de servicios y aplicaciones. Las fronteras entre plataformas de
trabajo son muy relativas, pero imponen restricciones porque las prestaciones
del sistema operativo operan siempre en el direccionamiento de bajo nivel, y al
trasladar su servicio a un ambiente distribuido tenemos que diferenciar cada
entidad para que puedan compartir los recursos, (por ejemplo en
procesamiento paralelo). Entonces el direccionamiento normal del S.O. puede
extenderse a un ambiente de red mediante una capa de software que etiqueta
los identificadores de recursos nombres que pueden ser o no simbólicamente
más significativos, pero que establecen un conjunto de elementos del sistema
con reglas particulares en una nomenclatura. Este conjunto y sus reglas
constituyen un pequeño universo llamado Dominio. El uso de etiquetas en un
dominio es un elemento creador de contexto, que nos ayudará a localizar y
transparentar el acceso a los recursos, logrando la conectividad de entidades y
la transparencia de localización.
Una de las soluciones más efectivas para el direccionamiento de conjuntos de
recursos en plataformas es el concepto del dominio, ya que permite establecer
un marco de conectividad entre entidades similares; visto así el dominio es una
región simbólica de prestación de servicios. El muy conocido DNS (Domain
Name System) de Internet es en esencia proveedor de un mecanismo de
enrutamiento IP para conexiones remotas, pero aplicado a los S.O.D.
constituye además un mecanismo de direccionamiento y enrutamiento para
recursos dispersos en una topología. Visto desde un punto de vista muy
estricto el dominio se implementa con la agregación de un campo extra a las
tramas de los de un paquete o datagramas. La simplicidad de usar una cadena
de caracteres para identificar un recurso, esta compensada por enorme
significado que tienen los nombres de dominio, porque los recursos a los que
apuntan son oficiales, únicos y están organizados en jerarquías que no
permiten ambigüedades o inconsistencias; por ejemplo el dominio:
Identifica de manera oficial un sitio web del gobierno del estado de Michoacán
en México, de tal suerte que ninguna otra entidad en el mundo puede reclamar
ese mismo dominio. Si se usan otros prefijos como .com, .net.edu, la
identificación de los elementos previos es igualmente válida. La novedad del
sistema DNS es que tiene varias jerarquías que operan todas de manera
conjunta-excluyente, sin ninguna regla semántica que no sea el lenguaje
natural, cuya validez es interpretada solo por el usuario que lee el nombre de
dominio. Por ejemplo el nombre:
Es correcto sintácticamente y el sistema DNS lo puede usar sin ningún
problema, pero identifica un recurso imposible o inexistente; y usuario
competente se percataría inmediatamente de su invalidez. Lo curioso es que
en la www un nombre de dominio DNS es un nombre de un servidor con ruta
de archivo en una cadena de caracteres y su procesamiento involucra sólo una
delgada capa de software de direccionamiento llamada ARP y RARP (Address
Resolution Protocolo y Reverse ARP). Esto nos muestra que DNS puede
direccionar recursos en archivos remotos y que su servicio es útil e interactúa
con muy diversas aplicaciones, lo cual es prueba de la relevancia del tema en
otros sistemas similares como los S.O.D.
Los servidores DNS permiten acceder a un dominio en Internet entre los
millones existentes al traducir fragmentos de texto a direcciones IP con
recursos por default según el servicio (directorio HTTPD, servicio SMTP/POP3,
login a FTP, TELNET, etc.); de manera similar un S.O.D. convierte los
nombres en recursos de bajo nivel, pero su operación es distinta en esencia, ya
que DNS es un servicio con su propio protocolo, mientras que un sistema de
nominación para una S.O.D. es toda una nomenclatura de servicios que puede
abarcar desde la capa física hasta la capa de aplicación, no obstante que
puede implementarse mediante un servidor DNS. DNS es un modelo cliente-
servidor de dos capas, por eso cuando un servidor requiere una conversión de
otro dominio remoto, comienza la búsqueda a través de uno o varios
Servidores DNS contiguos hasta encontrar una respuesta positiva o negativa.
Esto implica la existencia de un algoritmo con una política de enrutamiento de
solicitudes y por lo tanto un esquema simple de distribución de carga, algo que
también debe tomarse en cuenta si el S.O.D. maneja cierta complejidad en sus
recursos.
El sistema de nombres es entonces una tabla de recursos y su punto de
acceso hacia objetos. Los sistemas de nombres deben de almacenarse en un
repositorio de datos proveyendo interfaces de acceso, que implican estructuras
abstractas como los servicios de directorios, los cuales permiten compartir
información más allá de la frontera de las redes locales. Los nombres pueden
enfocarse a ser más compactos, más significativos (llave compuesta) y por lo
tanto más simples de localizar y administrar, o pueden diseñarse para ser más
entendibles a los humanos; sin importar lo anterior deben permitir localizar los
objetos desde cualquier punto y/o servicio de la red sin importar su ubicación
física o lógica.
En términos simples, un nombre es equivalente a la noción de clases y
herencia múltiple en Programación Orientada a Objetos, lo cual garantiza
consistencia, formalidad y completitud; La característica principal de un sistema
de nombres es que no debe presentar ambigüedades, cada nombre se refiere
a uno y sólo un recurso en el sistema. Existen tipos de nombres para tipos de
recursos, como vimos en DNS, por lo que es importante que éstos guarden una
jerarquía, que corresponde a la arquitectura de la red. Entonces un sistema de
nombres en un S.O.D. deberá crear etiquetas para:
Identificadores de puertos y procesos.
Nombres textuales de servicios.
Identificadores de recursos.
Nombres de archivos.
Direcciones físicas y lógicas de redes.
Objetos y librerías de clase.
Especificaciones para acceder a un recurso que es solicitado por un
proceso.
Rutas de archivos compartidos, variables de entorno global y funciones
remotas.
Conexiones y usuarios.
ESTRUCTURAS DE NOMBRES
La nominación es una correspondencia entre objetos de datos lógicos y físicos.
Por ejemplo, los usuarios tratan con objetos de datos lógicos representados por
nombre de archivos, mientras que el sistema manipula bloques de datos físicos
almacenados en las pistas de los discos. Generalmente un usuario se refiere a
un archivo utilizando un nombre, el cual se transforma en un identificador
numérico de bajo nivel, que a su vez se corresponde con bloques en disco.
Esta correspondencia multinivel ofrece a los usuarios la abstracción de un
archivo, que oculta los detalles de cómo y dónde se almacena el archivo en
disco, pero implica el manejo de una estructura semántica que si bien no
requiere de ser perfecta, debe ser consistente y formal para permitir la
escalabilidad en el recurso.
Una noción importante es que el sistema de nombres debe tener una
estructura, generalmente una jerarquía, que representa las capas estratificadas
donde residen los recursos de la red. Puesto que tenemos que direccionar
objetos diversos, desde programas, máquinas, sesiones, procedimientos
remotos, procesos, servicios, los identificamos de manera jerárquica de
acuerdo a las capas de software que tenemos que atravesar para llegar a ese
recurso.
Hay por lo menos cuatro principios básicos que una convención de
nombramiento debe satisfacer:
1. Generalidad - Una convención de nombramiento debe poder nombrar una
variedad de entidades en diversas aplicaciones tanto como en diversos
ambientes.
2. Múltiples definiciones de la misma entidad (alias) - porque una entidad puede
ser conocida por diversos nombres en diversos ambientes, la convención de
nombramiento debe permitir la característica de nombres múltiples y dejar el
problema de la resolución a algunos mecanismos de la conversión de
dirección.
3. Distribuible - Es probable que la convención de nombramiento se manifieste,
en una cierta forma, como directorio, ayudar a la validación y a la conversión de
direcciones conocidas. Los nombres de la base de datos se pueden fragmentar
entre los anfitriones de la red, basados posiblemente en la organización
geográfica o en los requerimientos de los usuarios.
4. Amigable al usuario - El usuario debe estar en una posición para deducir el
nombre de entradas del conocimiento que él posee. El convenio del
nombramiento no debe permitir ningún alcance para la interpretación incorrecta
de los nombres.
TIPOS DE NOMBRES
Hay tres enfoques principales para los esquemas de nominación, el enfoque
más sencillo consiste en que los archivos se nombran con una combinación del
nombre de su anfitrión y su nombre local, lo que garantiza un nombre único
dentro de todo el sistema. El segundo enfoque popularizado por el sistema de
archivos de red NFS (Network File System) de Sun Microsystems, ofrece una
forma de unir directorios remotos a directorios locales, lo que da la apariencia a
un árbol de directorios monolítico. El tercer enfoque utiliza la noción de que
cualquier directorio se puede unir a cualquier árbol de direcciones locales con
la jerarquía resultante que puede estar poco estructurada.
Hay que tener presente que la complejidad semántica de la estructura puede
balancearse hacia sistemas de nombres menos compactos pero más largos. Al
final hay que gastar ese recurso informático en espacio de almacenamiento o
tiempo de procesamiento (un algoritmo). La elección de un enfoque u otro nos
llevará igual a un esquema conceptual de nominación, por ejemplo usar
nombres de animales para los servidores. Ya que se busca evitar en lo posible
la ambigüedad, es deseable que ningún objeto tenga el mismo nombre que otro
objeto, sin importar que sean idénticos, deben ser inconfundibles. Las
primitivas de acceso a los servicios no se compilan y por lo tanto queda a las
capas de aplicación procesarlas (refinarlas o prepararlas) si esto es necesario,
por ejemplo para evitar fallas por errores.
Los nombres de ciertos recursos pueden ser absolutos o relativos dependiendo
de la importancia del domicilio de su ubicación, es una cuestión de rol, ya que
un nombré relativo cumple un rol definido en su contexto (root, anonymous,
invitado); mientras que un nombre absoluto no requiere necesariamente de
ello. Otro mecanismo de optimización es que los nombres pueden tener alias,
los cuales son otros nombres más compactos que se usan en contextos
específicos para hacer referencia al mismo objeto de forma más económica lo
que permite usar encabezados más pequeños en los mensajes relativos a los
recursos.
Algunas consideraciones generales para el uso de nombres son las siguientes:
a) Los identificadores se utilizan para una variedad amplia de propósitos, tales
como: referencia, localización, programación, manejo de recurso, control de
errores, sincronización, protección, y compartición de recursos.
b) Los identificadores (nombres; Nombres del usuario y de sistema, y puertos;
direcciones; y las rutas) existen en diversas formas en todos los niveles de la
arquitectura de un SD.
c) Los identificadores aparecen en diversas formas (convenientes para la gente
o las computadoras). Algunos son únicos dentro de un contexto global para el
sistema entero (Internet), otros son únicos solamente dentro de un contexto
local (red sencilla).
d) Los nombres pueden referir el objeto directa o indirectamente:
por un nombre o una dirección explícita
por la fuente
por el identificador del grupo
por la ruta de acceso
RESOLUCIÓN Y DISTRIBUCIÓN.
La resolución es el proceso de convertir un nombre hacia la ubicación real del
recurso, como mencionamos antes, esto nos obliga crear una tabla de
asociaciones de nombres lógicos con los recursos físicos. Aunque es un
trabajo simple, vale la pena considerarlo seriamente desde un punto de vista de
la cardinalidad; la cual surge de la necesidad de comunicar a cualquier recurso
con todos los demás.
Aunque el mecanismo es bastante sencillo, los S.O.D. requieren que en todo
momento el acceso a un recurso se controle y/o documente; por lo que en toda
transacción se registra el objeto y/o el usuario que accede al recurso
transparente. Esto funciona de manera natural en los servidores HTTP o en
sistemas UINIX, pero en un ambiente distribuido no existe de manera explícita
un control de transacciones ya que éstas están dispersas.
La distribución es el procedimiento por el cual un nombre puede difundirse a
través de todo el sistema y ser reconocido por cualquier entidad en cualquier
momento. El Sistema DNS hay una formación de servidores que corresponden
en jerarquía a los prefijos (.net, .org, .com, etc.) y que tienen como maestros a
los servidores del último prefijo (el que determina el país), son estos servidores
maestros los encargados de la distribución de nombres, pues cuando un
recurso no existe en un dominio menor, ellos se encargan de buscarlo. La
distribución puede ser es un proceso dinámico en aquellas aplicaciones cuyo
número de recursos sea tan grande que requiera parametrizarlos, o puede ser
necesaria si la aplicación distribuida contiene un catálogo de recursos
aplicaciones sujetos a disponibilidad.
AGENTES Y SERVIDORES DE NOMBRES.
En la actualidad, la ICANN está formalmente organizada como una corporación
sin fines de lucro y de utilidad pública. Está administrada por una Junta de
Directores, que está compuesta por seis representantes de las organizaciones
de apoyo, sub-grupos que se ocupan de las secciones específicas de las
políticas de ICANN en virtud de la competencia, ocho representantes
independientes del interés público general, seleccionados a través de un
Comité de Nominaciones que representa a todas las circunscripciones de la
ICANN, y el Presidente y Director Ejecutivo, nombrado por el resto de la Junta.
En la actualidad hay tres organizaciones de apoyo: la GNSO (Generic Names
Supporting Organization) se ocupa de la formulación de políticas sobre
dominios genéricos de nivel superior, ccNSO (Country Code Names Supporting
Organization) se ocupa de la elaboración de políticas relativas a códigos de
países en dominios de nivel superior, la ASO (Address Supporting
Organization) se ocupa de la formulación de políticas en direcciones IP.
ICANN también se basa en algunos comités consultivos para recibir
asesoramiento sobre los intereses y necesidades de los interesados que no
participen directamente en las organizaciones de apoyo. Entre ellos figuran el
Comité Asesor Gubernamental (GAC), que está integrado por representantes
de un gran número de gobiernos nacionales de todo el mundo; el ALAC (At-
Large Advisory Comité), que está integrado por representantes de
organizaciones de los distintos usuarios de Internet de todo el mundo; el
sistema DNS y TLG (Technical Liaison Group) compuesto por representantes
de otras organizaciones técnicas internacionales de Internet.
2.4. Comunicación de procesos a través del paso de mensajes.
Los procesos de un S.O. pueden comunicarse entre sí al compartir espacios de
memoria, ya sean variables compartidas o buffers, o a través de las
herramientas provistas por las rutinas de Comunicación Interprocesos.
Para comunicar procesos en un ambiente distribuido, además del uso de un
sistema de nombres de recursos, se necesita un esquema de comunicación
lógico que dé sentido a estas transacciones. El sistema operativo provee
mínimamente dos primitivas, enviar y recibir, normalmente
llamadas send y receive, pero tendrá que implementar un enlace de
comunicación entre los procesos. Este enlace puede ser unidireccional o
multidireccional según permita la comunicación en solo uno o en varios
sentidos, y dependiendo de la forma en que se dispara la comunicación.
Comunicación Síncrona.
Quien envía permanece bloqueado esperando a que llegue una respuesta del
receptor antes de realizar cualquier otro ejercicio.
Comunicación Asíncrona.
Quien envía continúa con su ejecución inmediatamente después de enviar el
mensaje al receptor.
Comunicación Persistente.
El receptor no tiene que estar operativo al mismo tiempo que se realiza la
comunicación, el mensaje se almacena tanto tiempo como sea necesario para
poder ser entregado.
Comunicación Transitoria.
El mensaje se descarta si el receptor no está operativo al tiempo que se realiza
la comunicación. Por lo tanto no será entregado.
Comunicación Directa.
Los primitivos enviar y recibir usan directamente el nombre del proceso con el
que se comunican. Por ejemplo:
enviar (mensaje, A) envía un mensaje al proceso A. Obsérvese que la primitiva
sólo debe especificar cuál va a ser ser el proceso Destino, ya que el proceso
fuente viene direccionado en la comunicación.
Las operaciones básicas Send y Receive se definen de la siguiente manera:
Send (P, mensaje); envía un mensaje al proceso P. Receive (Q, mensaje);
espera la recepción de un mensaje por parte del proceso Q.
Comunicación Indirecta.
Es aquella donde la comunicación está basada en un Gateway, enrutador,
puente o switch, ya que el emisor y el receptor están a distancia.
Comunicación Simétrica.
Todos los procesos pueden enviar o recibir. También establece una llamada
bidireccional para el caso de dos procesos.
Comunicación Asimétrica.
Un proceso puede enviar, los demás procesos solo reciben. También llamada
unidireccional o no interactiva. Es el esquema típico de algunos servidores de
Internet.
Comunicación con uso de buffers automático.
El transmisor se bloquea hasta que el receptor recibe el mensaje completo,
pero éste tiene capacidad para recibirlo aunque no esté listo para procesarlo.
La comunicación y sincronización en S.O.D. es más compleja y se establece en
canales lentos y menos confiables que los buses internos de una computadora,
lo que incorpora problemas como la pérdida de mensajes, la llegada de
datagramas desordenados, la heterogeneidad de los nodos y su diferente
rendimiento, etc.
La forma natural de comunicar y sincronizar procesos en los sistemas
distribuidos es mediante paso de
mensajes; los procesos intercambian mensajes mediante las primitivas que
además establecen una extensión de los semáforos en la que se transmite más
información en un contexto sincronizado.
Una de las ventajas de emplear mecanismos de comunicación y sincronización
basados en paso de mensaje
es la portabilidad de las soluciones programadas para diferentes arquitecturas
de computadoras, incluidos los sistemas con memoria compartida, otra ventaja
es que no existe el problema del acceso en exclusión mutua a datos
compartidos, ya que no hay contienda por el acceso al recurso, sino un fila en
espera.
Un sistema operativo o lenguaje de programación podría ofrecer herramientas,
algunas basadas en memoria compartida y otras basadas en la comunicación
mediante pasó de mensajes, por lo que podríamos llegar a tener un mismo
proceso o hilo que empleara las dos posibilidades. Los siguientes son aspectos
relevantes en el diseño de los sistemas de paso de mensajes:
1. Identificación en el proceso de comunicación.
2. Sincronización.
3. Características del canal (capacidad, flujo de datos, etc.).