sistemas operativos ii (2)

45
S.E.P S.E.S. D.G.E.S.T I N S T I T U T O T E C N O L Ó G I C O D E C A N C Ú N ALUMNO: Chávez Javier Roberto ASIGNATURA: “Sistemas Operativos II” PROFESOR: Raúl Ramírez Lozano TRABAJO: Unidad 2 LICENCIATURA EN INFORMATICA

Upload: robertochavez57

Post on 04-Jul-2015

1.058 views

Category:

Documents


0 download

DESCRIPTION

Contenido2.1 comunicación Sod .................................................................................................................................... 3 2.1.1.- Comunicación cliente/servidor sockets ...............

TRANSCRIPT

Page 1: Sistemas Operativos II (2)

S.E.P S.E.S. D.G.E.S.T

I N S T I T U T O T E C N O L Ó G I C O D E C A N C Ú N

ALUMNO:

Chávez Javier Roberto

ASIGNATURA:

“Sistemas Operativos II”

PROFESOR:

Raúl Ramírez Lozano

TRABAJO:

Unidad 2

CANCÚN QUINTANA ROO A 25 DE MAYO DE 2011

LICENCIATURA EN INFORMATICA

Page 2: Sistemas Operativos II (2)

Contenido

2.1 comunicación Sod.........................................................................................................................................3

2.1.1.- Comunicación cliente/servidor sockets...............................................................................................3

2.1.2.- Comunicación con RPC........................................................................................................................6

2.1.3.- Comunicación en grupo.......................................................................................................................8

2.1.4.- Tolerancia a fallos................................................................................................................................9

2.2.- Sincronización sistemas distribuidos..........................................................................................................9

2.2.1.- Relojes físicos....................................................................................................................................10

2.2.2.- Relojes Lógicos..................................................................................................................................10

2.2.3.- Usos de la sincronización, manejo de cache, comunicación en grupo, exclusión mutua elección transacciones atómicas e interbloqueo........................................................................................................13

2.3.- Nominación característica y estructuras..................................................................................................18

2.3.2.- Tipos de nombres usuario y de sistema.............................................................................................19

2.3.3.- Resolución y Distribución..................................................................................................................23

2.3.4.- Servidores y agentes de nombres......................................................................................................23

2.3.5.- Mapeo de direcciones.......................................................................................................................24

2.3.6.- Mapeo de rutas.................................................................................................................................24

2.3.7.- Modelo de Terry................................................................................................................................26

1

Page 3: Sistemas Operativos II (2)

Comunicación en los sistemas operativos distribuidos

La sincronización en sistemas de un único ordenador no requiere ninguna consideración en el diseño del sistema operativo, ya que existe un reloj único que proporciona de forma regular y precisa el tiempo en cada momento. Sin embargo, los sistemas distribuidos tienen un reloj por cada ordenador del sistema, con lo que es fundamental una coordinación entre todos los relojes para mostrar una hora única. Los osciladores de cada ordenador son ligeramente diferentes, y como consecuencia todos los relojes sufren un desfase y deben ser sincronizados continuamente. La sincronización no es trivial, porque se realiza a través de mensajes por la red, cuyo tiempo de envío puede ser variable y depender de muchos factores, como la distancia, la velocidad de transmisión o la propia saturación de la red, etc.

La comunicación entre procesos en sistemas con un único procesador 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.

Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado esa es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Características de los Sistemas Operativos distribuidos:

Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .

Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.

Objetivo clave es la transparencia. Generalmente proporcionan medios para la compartición global de recursos. Servicios añadidos: denominación global, sistemas de archivos distribuidos,

facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).

2

Page 4: Sistemas Operativos II (2)

2.1 comunicación Sod

La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos.

En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida.

En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse.

Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos.

Para los sistemas distribuidos en un área amplia, estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas.

Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la “llamada a un procedimiento remoto”.

También es importante considerar las posibilidades de comunicación entre grupos de procesos, no solo entre dos procesos.

Protocolos con Capas:

Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes.

2.1.1.- Comunicación cliente/servidor sockets

Origen de los socket tuvo lugar en una variante del sistema operativo Unix conocida como BSD Unix. En la universidad de Berkeley, en los inicios del Internet, pronto se hizo evidente que los programadores necesitarían un medio sencillo y eficaz para escribir programas capaces de intercomunicarse entre sí. Esta necesidad dio origen a la primera especificación e implementación de sockets.

Cliente-Servidor es el modelo que actualmente domina el ámbito de comunicación, ya que descentraliza los procesos y los recursos. Es un Sistema donde el cliente es una aplicación, en un equipo, que solicita un determinado servicio y existe un software, en otro equipo, que lo proporciona.

Los servicios pueden ser:

1) Ejecución de un programa.2) Acceso a una Base de Datos.

3

Page 5: Sistemas Operativos II (2)

3) Acceso a un dispositivo de hardware.

Solo se requiere un medio físico de comunicación entre las máquinas y dependerá de a la naturaleza de este medio la vialidad del sistema.

Solo se requiere un medio físico de comunicación entre las máquinas y dependerá de a la naturaleza de este medio la vialidad del sistema.

Definición de Socket: designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada.

Los sockets proporcionan una comunicación de dos vías, punto a punto entre dos procesos. Los sockets son muy versátiles y son un componente básico de comunicación entre interprocesos e intersistemas. Un socket es un punto final de comunicación al cual se puede asociar un nombre.

Para lograr tener un socket es necesario que se cumplan ciertos requisitos:

• Que un programa sea capaz de localizar al otro.• Que ambos programas sean capaces de intercambiarse información.

Por lo que son necesarios tres recursos que originan el concepto de socket

a) Un protocolo de comunicaciones, que permite el intercambio de octetos.

b) Una dirección del Protocolo de Red (Dirección IP, si se utiliza el Protocolo TCP/IP), que identifica una computadora.

c) Un número de puerto, que identifica a un programa dentro de una computadora. Con un socket se logra implementar una arquitectura cliente-servidor. La comunicación es iniciada por uno de los programas (cliente). Mientras el segundo programa espera a que el otro inicie la comunicación (servidor). Un Socket es un archivo existente en el cliente y en el servidor.

Si un socket es un punto final de un puente de comunicaron de dos vías entre dos programas que se comunican a través de la red, ¿Cómo funciona? Normalmente, un servidor funciona en una computadora específica usando un socket con un número de puerto específico. El cliente conoce el nombre de la maquina (hostname) o el IP, en la cual el servidor está funcionando y el número del puerto con el servidor está conectado.

Si el cliente lanza una demanda de conexión y el servidor acepta la conexión, este abre un socket en un puerto diferente, para que pueda continuar escuchando en el puerto original nuevas peticiones de conexión, mientras que atiende a las peticiones del cliente conectado. El cliente y el servidor pu8eden ahora comunicarse escribiendo o leyendo en sus respectivos sockets.

4

Page 6: Sistemas Operativos II (2)

Los tipos de socket definen las propiedades de comunicación visibles para la aplicación. Los procesos se comunican solamente entre los sockets del mismo tipo. Existen cinco tipos de sockets.

El Cliente actúa de la siguiente forma.

1) Establece una conexión con el servidor (Crea un socket con el servidor).

2) Mandar mensajes al servidor o Esperar un mensaje de él. (Consultas)

3) Esperar su respuesta o contestarle (existen casos en que este paso no es necesario).

4) Repetir los pasos 2 y 3 mientras sea necesario.

5) Cerrar la conexión con el servidor.

El servidor actúa así.

1) Inicializa un puerto de comunicación, en espera de clientes que intenten conectarse a él (Crea un serverSocket).

2) Una vez que se conecta alguien, crea un hilo de ejecución para este usuario mientras que el thread principal vuelve al paso 1. Esto comúnmente se hace para que el servidor pueda atender a varios clientes al mismo tiempo.

3) Se comunica con el cliente mediante el socket creado entre el cliente y él.

4) Espera que el cliente se vaya o lo bota el mismo servidor (Cierra el socket entre ellos) y elimina el thread de comunicación entre ellos.

Las propiedades de un socket dependen de las características del protocolo en el que se implementan. El protocolo más utilizado es TCP, aunque también es posible utilizar UDP o IPX. Gracias al protocolo TCP.

Los sockets tienen las siguientes propiedades:

I. Orientado a conexión. Se garantiza la transmisión de todos los octetos sin errores ni omisiones.

II. Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido.

Los tipos de socket definen las propiedades de comunicación visibles para la aplicación. Los procesos se comunican solamente entre los sockets del mismo tipo. Existen tres tipos básicos de sockets:

• Socket de flujo: da un flujo de datos de dos vías, confiable, y sin duplicados sin límites de grabación. El flujo opera en forma parecida a una conversación telefónica. El tipo

5

Page 7: Sistemas Operativos II (2)

del socket es SOCK_STREAM, el cual en el dominio de Internet usa TCP (Transmission Control Protocol).

• Socket de datagrama: Soporta un flujo de mensajes de dos vías. En un socket de datagrama podría recibir mensajes en diferente orden de la secuencia de la cual los mensajes fueron enviados. Los límites de grabación en los datos son preservados. Los sockets de datagrama operan parecidos a pasar cartas hacia adelante y hacia atrás en el correo. El tipo de socket es SOCK_DGRAM, el cual en el dominio de internet usa UDP (User Datagram Protocol).

• Socket de paquete secuencial: Da una conexión de dos vías, secuencial y confiable para datagramas de una longitud fija máxima. El tipo de socket es SOCK_SEQPACKET. No hay protocolo en Internet implementado para este tipo de socket.

Implementando un socket en java:

En un programa Cliente-Servidor un socket nos ayuda a representar las conexiones entre un programa cliente y uno servidor. En el lado del cliente se utiliza la clase Socket y en el del servidor el Server Socket para representar dichas conexiones.

Programa cliente:

El programa cliente se conecta a un servidor indicando el nombre de la máquina y el número puerto (tipo de servicio que solicita) en el que el servidor está instalado. Una vez conectado, lee una cadena del servidor y la escribe en la pantalla

Programa servidor:

El programa servidor se instala en un puerto determinado, a la espera de conexiones, a las que tratará mediante un segundo SOCKET. Ejemplo cada vez que se presenta un cliente, le saluda con una frase “Hola cliente N”. Este servidor sólo atenderá hasta tres clientes, y después finalizará su ejecución, pero es habitual utilizar ciclos infinitos (while (true)) en los servidores, para que atiendan llamadas continuamente. Tras atender cuatro clientes, el servidor deja de ofrecer su servicio.

2.1.2.- Comunicación con RPC

RCP (remote procedure call)

El mecanismo general para las aplicaciones cliente-servidor se proporciona por el paquete Remote Procedure Call (RPC). RPC fue desarrollado por Sun Microsystems y es una

6

Page 8: Sistemas Operativos II (2)

colección de herramientas y funciones de biblioteca. Aplicaciones importantes construidas sobre RPC son NIS, Sistema de Información de Red y NFS, Sistema de Ficheros de Red.

Un servidor RPC consiste en una colección de procedimientos que un cliente puede solicitar por el envío de una petición RPC al servidor junto con los parámetros del procedimiento. El servidor invocará el procedimiento indicado en nombre del cliente, entregando el valor de retorno, si hay alguno. Para ser independiente de la máquina, todos los datos intercambiados entre el cliente y el servidor se convierten al formato External Data Representation (XDR) por el emisor, y son reconvertidos a la representación local por el receptor. RPC confía en sockets estandard UDP y TCP para transportar los datos en formato XDR hacia el host remoto. Sun amablemente ha puesto RPC en el dominio público; se describe en una serie de RFCs.

La comunicación entre servidores RPC y clientes es un tanto peculiar. Un servidor RPC ofrece una o más colecciones de procedimientos; cada conjunto se llama un programa y es identificado de forma única por un número de programa. Una lista que relaciona nombres de servicio con números de programa se mantiene usualmente en /etc./rpc.

En la llamada remota toma 10 pasos.

Paso 1. En el primero de los cuales el programa cliente (o procedimiento) llama al procedimiento stub enlazado en su propio espacio de direcciones. Los parámetros pueden pasarse de la manera usual y hasta aquí el cliente no nota nada inusual en esta llamada ya que es una llamada local normal.

El stub cliente reúne luego los parámetros y los empaqueta en un mensaje. Esta operación se conoce como reunión de argumentos (parameter marshalling). Después que se ha construido el mensaje, se lo pasa a la capa de transporte para su transmisión

Paso 2. En un sistema LAN con un servicio sin conexiones, la entidad de transporte probablemente sólo le agrega al mensaje un encabezamiento y lo coloca en la subred sin mayor trabajo.

Paso 3. En una WAN, la transmisión real puede ser más complicada.

Cuando el mensaje llega al servidor, la entidad de transporte lo pasa al stub del servidor

Paso 4. Que desempaqueta los parámetros. El stub servidor llama luego al procedimiento servidor.

Paso 5. Pasándole los parámetros de manera estándar. El procedimiento servidor no tiene forma de saber que está siendo activado remotamente, debido a que se lo llama desde un procedimiento local que cumple con todas las reglas estándares. Únicamente el stub sabe que está ocurriendo algo particular.

Después que ha completado su trabajo, el procedimiento servidor retorna

7

Page 9: Sistemas Operativos II (2)

Paso 6. De la misma forma en que retornan otros procedimientos cuando terminan y, desde luego, puede retornar un resultado a un llamador. El stub servidor empaqueta luego el resultado en un mensaje y lo entrega a la interfaz con transporte.

Paso 7. Posiblemente mediante una llamada al sistema, al igual que en el paso 2. Después que la respuesta retorna a la máquina cliente.

Paso 8. La misma se entrega al stub cliente.

Paso 9. Que desempaqueta las respuestas. Finalmente, el stub cliente retorna a su llamador, el procedimiento cliente y cualquier valor devuelto por el servidor en el paso 6, se entrega al cliente.

Paso 10. El propósito de todo el mecanismo es darle al cliente (procedimiento cliente) la ilusión de que está haciendo una llamada a un procedimiento local. Dado el éxito de la ilusión, ya que el cliente no puede saber que el servidor es remoto, se dice que el mecanismo es transparente. Sin embargo, una inspección más de cerca revela algunas dificultades en alcanzar la total transparencia.

2.1.3.- Comunicación en grupo

La comunicación en grupo tiene que permitir la definición de grupos, así como características propias de los grupos, como la distinción entre grupos abiertos o que permiten el acceso y cerrados que lo limitan, o como la distinción del tipo de jerarquía dentro del grupo. Igualmente, los grupos han de tener operaciones relacionadas con su manejo, como la creación o modificación.

La comunicación se clasifica de acuerdo al número de usuarios a los que se les ha enviado el mensaje.

Broadcast o difusión forzada: un nodo emite todos los escuchan y solo contesta a quien va dirigido el mensaje

Multicast: se entrega el mensaje a todos los anfitriones HOST que están compuestos de ciertas características.

Unicast o pointcast: un nodo emite y otro recibe, solo escucha aquel a quien se dirigió el mensaje.

Una clasificación adicional es la realizada en base a grupos: Listas de destinarios: se tiene una lista de aquellos a los que se les enviara el

mensaje. Identificador de grupo: se forman grupos y el mensaje es dirigido solo a los miembros

de ese grupo.

8

Page 10: Sistemas Operativos II (2)

Predicador de pertenencia: se envía y otro recibe, solo escucha aquel a quien se dirigió el mensaje.

2.1.4.- Tolerancia a fallos

La difusión de los sistemas distribuidos incrementa la demanda de sistemas que esencialmente nunca fallen.

Los sistemas tolerantes a fallos requerirán cada vez más una considerable redundancia en hardware, comunicaciones, software, datos, etc.

La réplica de archivos sería un requisito esencial.

También debería contemplarse la posibilidad de que los sistemas funcionen aún con la carencia de parte de los datos.

Los tiempos de fallo aceptables por los usuarios serán cada vez menores.

2.2.- Sincronización sistemas distribuidos

En sistemas con una única CPU las regiones críticas, la exclusión mutua y otros problemas de sincronización son resueltos generalmente utilizando métodos como semáforos y monitores. Estos métodos no se ajustan para ser usados en sistemas distribuidos ya que invariablemente se basan en la existencia de una memoria compartida.

No es posible reunir toda la información sobre el sistema en un punto y que luego algún proceso la examine y tome las decisiones.

En general los algoritmos distribuidos tienen las siguientes propiedades:

• la información relevante está repartida entre muchas máquinas • los procesos toman decisiones basadas solamente en la información local disponible • debería poder evitarse un solo punto que falle en el sistema • no existe un reloj común u otro tiempo global exacto

Si para asignar un recurso de E/S un proceso debe recolectar información de todos los procesos para tomar la decisión esto implica una gran carga para este proceso y su caída afectaría en mucho al sistema.

Idealmente, un sistema distribuido debería ser más confiable que las máquinas individuales. Alcanzar la sincronización sin la centralización requiere hacer cosas en forma distinta a los sistemas operativos tradicionales.

9

Page 11: Sistemas Operativos II (2)

2.2.1.- Relojes físicos

El algoritmo de Lamport proporciona un orden de eventos sin ambigüedades, pero los valores de tiempo asignados a los eventos no tienen por qué ser cercanos a los tiempos reales en los que ocurren. En ciertos sistemas (ej. sistemas de tiempo real), es importante la hora real del reloj; Se precisan relojes físicos externos (más de uno).

Se deben sincronizar: Con los relojes del mundo real. Entre sí. La medición del tiempo real con alta precisión no es sencilla. Desde antiguo el tiempo se ha medido astronómicamente.

Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol, donde el tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el cielo.

El segundo solar se define como 1 / 86.400 de un día solar.

Como el período de rotación de la tierra no es constante, se considera el segundo solar promedio de un gran número de días.

Los físicos definieron al segundo como el tiempo que tarda el átomo de cesio 133 para hacer 9.192.631.770 transiciones.

Se tomó este número para que el segundo atómico coincida con el segundo solar promedio de 1958. La Oficina Internacional de la Hora en París (BIH) recibe las indicaciones de cerca de 50 relojes atómicos en el mundo y calcula el tiempo atómico internacional (TAI). Como consecuencia de que el día solar promedio (DSP) es cada vez mayor, un día TAI es 3 mseg menor que un DSP.

La BIH introduce segundos de salto para hacer las correcciones necesarias para que permanezcan en fase. El sistema de tiempo basado en los segundos TAI. El movimiento aparente del sol. Surge el tiempo coordenado universal (UTC). El Instituto Nacional del Tiempo Estándar (NIST) de EE. UU. Y de otros países: Operan estaciones de radio de onda corta o satélites de comunicaciones. Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada 0,5 mseg, etc.). Se deben conocer con precisión la posición relativa del emisor y del receptor: Se debe compensar el retraso de propagación de la señal. Si la señal se recibe por módem también se debe compensar por la ruta de la señal y la velocidad del módem. Se dificulta la obtención del tiempo con una precisión extremadamente alta.

2.2.2.- Relojes Lógicos

10

Page 12: Sistemas Operativos II (2)

Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj. Es un cronómetro consistente en un cristal de cuarzo de precisión sometido a una tensión eléctrica que:

Oscila con una frecuencia bien definida que depende de:

• Al forma en que se corte el cristal.• El tipo de cristal.• La magnitud de la tensión.

A cada cristal se le asocian dos registros:

• Registro contador.• Registro mantenedor.

Cada oscilación del cristal decremento en “1” al contador. Cuando el contador llega a “0”: Se genera una interrupción. El contador se vuelve a cargar mediante el registro mantenedor. Se puede programar un cronómetro para que genere una interrupción “x” veces por segundo. Cada interrupción se denomina marca de reloj. Para una computadora y un reloj:

No interesan pequeños desfasajes del reloj porque:

• Todos los procesos de la máquina usan el mismo reloj y tendrán consistencia interna.• Importan los tiempos relativos.

Para varias computadoras con sus respectivos relojes:

• Es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia.

• Habrá una pérdida de sincronía en los relojes (de software), es decir que tendrán valores distintos al ser leídos.

• La diferencia entre los valores del tiempo se llama distorsión del reloj y podría generar fallas en los programas dependientes del tiempo.

Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograrlo. Lamport señaló que la sincronización de relojes no tiene que ser absoluta:

Si 2 procesos no interactúan no es necesario que sus relojes estén sincronizados. Generalmente lo importante no es que los procesos estén de acuerdo en la hora, pero sí importa que coincidan en el orden en que ocurren los eventos. Para ciertos algoritmos lo que importa es la consistencia interna de los relojes:

• No interesa su cercanía particular al tiempo real (oficial).• Los relojes se denominan relojes lógicos.

11

Page 13: Sistemas Operativos II (2)

Los relojes físicos son relojes que:

• Deben ser iguales (estar sincronizados).• No deben desviarse del tiempo real más allá de cierta magnitud.

Para sincronizar los relojes lógicos, Lamport definió la relación ocurre antes de (happens-before):

• Sí “a” y “b” son eventos en el mismo proceso y “a” ocurre antes de “b”, entonces “a –> b” es verdadero.

“Ocurre antes de” es una relación transitiva: Si “a –> b” y “b –> c”, entonces “a –> c”.

• Si dos eventos “x” e “y” están en procesos diferentes que no intercambian mensajes, entonces “x –> y” no es verdadero, pero tampoco lo es “y –> x”:

Se dice que son eventos concurrentes.

Necesitamos una forma de medir el tiempo tal que a cada evento “a”, le podamos asociar un valor del tiempo “C(a)” en el que todos los procesos estén de acuerdo:

Se debe cumplir que:

Sí “a –> b” entonces “C(a) < C (b)”.

El tiempo del reloj, “C”, siempre debe ir hacia adelante (creciente), y nunca hacia atrás (decreciente).

El algoritmo de Lamport asigna tiempos a los eventos.

Consideramos tres procesos que se ejecutan en diferentes máquinas, cada una con su propio reloj y velocidad:

El proceso “0” envía el mensaje “a” al proceso “1” cuando el reloj de “0” marca “6”.

El proceso “1” recibe el mensaje “a” cuando su reloj marca “16”.

Si el mensaje acarrea el tiempo de inicio “6”, el proceso “1” considerará que tardó 10 marcas de reloj en viajar.

El mensaje “b” de “1” a “2” tarda 16 marcas de reloj.

El mensaje “c” de “2” a “1” sale en “60” y llega en “56”, tardaría un tiempo negativo, lo cual es imposible.

12

Page 14: Sistemas Operativos II (2)

El mensaje “d” de “1” a “0” sale en “64” y llega en “54”.

Lamport utiliza la relación “ocurre antes de”:

Si “c” sale en “60” debe llegar en “61” o en un tiempo posterior.

Cada mensaje acarrea el tiempo de envío, de acuerdo con el reloj del emisor.

Cuando un mensaje llega y el reloj del receptor muestra un valor anterior al tiempo en que se envió el mensaje:

El receptor adelanta su reloj para que tenga una unidad más que el tiempo de envío.

2.2.3.- Usos de la sincronización, manejo de cache, comunicación en grupo, exclusión mutua elección transacciones atómicas e interbloqueo

Memoria Caché

En los sistemas de archivos convencionales, el fundamento para la memoria caché es la reducción de la E/S de disco (lo que aumenta el rendimiento), en un SAD el objetivo es reducir el tráfico en la red. Esquema Básico, el concepto de memoria caché es sencillo, si los datos necesarios para satisfacer la solicitud de acceso no se encuentran en la memoria cache, se trae una copia de servicio al usuario y los accesos se llevan a cabo con la copia de memoria caché.

La idea es conservar allí los bloques de disco de acceso más reciente, para así manejar localmente los accesos repetidos a la misma información y no aumentar el tráfico de la red. Se utiliza una política de reemplazo (por ejemplo, la de utilización menos reciente) para limitar el tamaño de la memoria caché. Políticas de Actualización, la política empleada para escribir los bloques de datos modificados en la copia maestra del servidor tiene un efecto decisivo sobre la confiabilidad y el rendimiento del sistema. La política más sencilla consiste en escribir los datos directamente en el disco tan pronto se coloquen en una memoria caché. La ventaja de la escritura directa es su confiabilidad, ya que se pierde poca información si un sistema cliente falla. Sin embargo, esta política requiere que cada acceso de escritura espere hasta que se envíe la información al servidor, por lo que representa una escritura de escaso rendimiento. La memoria caché con escritura directa equivale a usar el servicio remoto para accesos de escritura y explotar la memoria cache únicamente para accesos de lectura. NFS proporciona el acceso de escritura directa.

Consistencia, una maquina cliente se enfrenta al problema de decidir si una copia de datos en memoria caché local es consistente con la copia maestra (y por tanto, puede usarse). Si la maquina cliente determina que sus datos en memoria caché están desfasados, ya no pueden

13

Page 15: Sistemas Operativos II (2)

servir para los accesos y hay que colocar en la memoria caché una copia actualizada de los datos. Existen dos enfoques para verificar la validez de los datos en memoria caché.

Enfoque iniciado por el cliente, el cliente inicia una comprobación de validez, en la cual se pone en contacto con el servidor y comprueban si los datos locales son consistentes con la copia maestra.

Enfoque iniciado por el servidor, el servidor anota, para cada cliente, las partes de los archivos que coloca en memoria cache, y cuando detecta una inconsistencia, debe reaccionar. Una posible fuente inconsistencia ocurre cuando dos clientes, que trabajan en modos conflictivos, colocan en memoria caché un archivo.

Comunicación en grupos (Algoritmos Para la Sincronización de Relojes)

Si una máquina tiene un receptor de UTC, todas las máquinas deben sincronizarse con ella. Si ninguna máquina tiene un receptor de UTC:

• Cada máquina lleva el registro de su propio tiempo.• Se debe mantener el tiempo de todas las máquinas tan cercano como sea posible. Se

supone que cada máquina tiene un cronómetro que provoca una interrupción “h” veces por segundo. Cuando el cronómetro se detiene, el manejador de interrupciones añade “1” a un reloj en software. El reloj en software mantiene un registro del número de marcas (interrupciones) a partir de cierta fecha acordada antes; al valor de este reloj se lo llama “C”.

Algoritmo de Cristian

Es adecuado para sistemas en los que:

• Una máquina tiene un receptor UTC, por lo que se la llama despachador del tiempo. • El objetivo es sincronizar todas las máquinas con ella. Cada máquina envía un

mensaje al servidor para solicitar el tiempo actual, periódicamente, en un tiempo no mayor que segundos. El despachador del tiempo responde prontamente con unr / 2 d mensaje que contiene el tiempo actual “CUTC”. Cuando el emisor obtiene la respuesta puede hacer que su tiempo sea “CUTC”. Un gran problema es que el tiempo no puede correr hacia atrás.

• “CUTC” no puede ser menor que el tiempo actual “C” del emisor. • La atención del requerimiento en el servidor de tiempos requiere un tiempo del

manejador de interrupciones.• También se debe considerar el tiempo de transmisión. El cambio del reloj se debe

introducir de manera global.• Si el cronómetro genera 100 interrupciones por segundo:

Cada interrupción añade 10 mseg al tiempo.

Para atrasar solo agregaría 9 mseg.

14

Page 16: Sistemas Operativos II (2)

Para adelantar agregaría 11 mseg.

La corrección por el tiempo del servidor y el tiempo de transmisión se hace midiendo en el emisor:

• El tiempo inicial (envío) “T0”.• El tiempo final (recepción) “T1”.• Ambos tiempos se miden con el mismo reloj. El tiempo de propagación del mensaje

será (T1 - T0) / 2. Si el tiempo del servidor para manejar la interrupción y procesar el mensaje es “I”:

• El tiempo de propagación será (T1 - T0 - I) / 2. Para mejorar la precisión:• Se toman varias mediciones. • Se descartan los valores extremos.• Se promedia el resto. El tiempo de propagación se suma al tiempo del servidor para

sincronizar al emisor cuando éste recibe la respuesta.

Algoritmo de Berkeley:

En el algoritmo de Cristian el servidor de tiempo es pasivo. En el algoritmo de Berkeley el servidor de tiempo activo. Realiza un muestreo periódico de todas las máquinas para preguntarles el tiempo con las respuestas:

Calcula un tiempo promedio.

Indica a las demás máquinas que avancen su reloj o disminuyan la velocidad del mismo hasta lograr la disminución requerida. Es adecuado cuando no se dispone de un receptor UTC.

Algoritmos con Promedio:

Los anteriores son algoritmos centralizados. Una clase de algoritmos descentralizados divide el tiempo en intervalos de re sincronización de longitud fija, El iésimo intervalo:

Inicia en “T0 + i R” y va hasta “T0 + (i + 1) R”.

“T0” es un momento ya acordado en el pasado.

“R” es un parámetro del sistema.

Al inicio de cada intervalo cada máquina transmite el tiempo actual según su reloj. Debido a la diferente velocidad de los relojes las transmisiones no serán simultáneas. Luego de que una máquina transmite su hora, inicializa un cronómetro local para reunir las demás transmisiones que lleguen en cierto intervalo “S”. Cuando recibe todas las transmisiones se ejecuta un algoritmo para calcular una nueva hora para los relojes. Una variante es promediar los valores de todas las demás máquinas. Otra variante es descartar los valores extremos antes de promediar (los “m” mayores y los “m” menores). Una mejora al algoritmo considera la corrección por tiempos de propagación.

15

Page 17: Sistemas Operativos II (2)

Varias Fuentes Externas de Tiempo

Los sistemas que requieren una sincronización muy precisa con UTC se pueden equipar con varios receptores de UTC. Las distintas fuentes de tiempo generaran distintos rangos (intervalos de tiempo) donde “caerán” los respectivos UTC, por lo que es necesaria una sincronización. Como la transmisión no es instantánea se genera una cierta incertidumbre en el tiempo. Cuando un procesador obtiene todos los rangos de UTC. Verifica si alguno de ellos es ajeno a los demás y de serlo lo descarta por ser un valor extremo.

• Calcula la intersección (en el tiempo) de los demás rangos.

• La intersección determina un intervalo cuyo punto medio será el UTC y la hora del reloj interno. Se deben compensar los retrasos de transmisión y las diferencias de velocidades de los relojes. Se debe asegurar que el tiempo no corra hacia atrás. Se debe re sincronizar periódicamente desde las fuentes externas de UTC.

Exclusión Mutua:

Cuando un proceso debe leer o actualizar ciertas estructuras de datos compartidas:

• Primero ingresa a una región crítica para lograr la exclusión mutua y garantizar que ningún otro proceso utilizará las estructuras de datos al mismo tiempo. En sistemas monoprocesadores las regiones críticas se protegen con semáforos, monitores y similares. En sistemas distribuidos la cuestión es más compleja.

Un Algoritmo Centralizado:

La forma más directa de lograr la exclusión mutua en un sistema distribuido es simular a la forma en que se lleva a cabo en un sistema monoprocesador. Se elige un proceso coordinador. Cuando un proceso desea ingresar a una región crítica. Envía un mensaje de solicitud al coordinador:

Indicando la región crítica.

Solicitando permiso de acceso.

• Si ningún otro proceso está en ese momento en esa región crítica: El coordinador envía una respuesta otorgando el permiso. • Cuando llega la respuesta el proceso solicitante entra a la región crítica. Si un proceso

pide permiso para entrar a una región crítica ya asignada a otro proceso: El coordinador no otorga el permiso y encola el pedido. Cuando un proceso sale de la región crítica envía un mensaje al coordinador para liberar su acceso exclusivo: El coordinador extrae el primer elemento de la cola de solicitudes diferidas y envía a ese proceso un mensaje otorgando el permiso, con lo cual el proceso queda habilitado para acceder a la región crítica solicitada. Es un esquema sencillo, justo y con pocos mensajes de control. La limitante es que el coordinador puede ser un cuello de botella

16

Page 18: Sistemas Operativos II (2)

y puede fallar y bloquear a los procesos que esperan una respuesta de habilitación de acceso.

Un Algoritmo Distribuido:

El objetivo es no tener un único punto de fallo (el coordinador central). Un ej. Es el algoritmo de Lamport mejorado por Ricart y Agrawala. Se requiere un orden total de todos los eventos en el sistema para saber cuál ocurrió primero. Cuando un proceso desea entrar a una región crítica: Construye un mensaje con el nombre de la región crítica, su número de proceso y la hora actual. Envía el mensaje a todos los demás procesos y de manera conceptual a él mismo. Se supone que cada mensaje tiene un reconocimiento. Si el receptor no está en la región crítica y no desea entrar a ella, envía de regreso un mensaje o.k. al emisor. Si el receptor ya está en la región crítica no responde y encola la solicitud. Si el receptor desea entrar a la región crítica pero aún no lo logró, compara. La marca de tiempo del mensaje recibido con, la marca contenida en el mensaje que envió a cada uno. La menor de las marcas gana. Si el mensaje recibido es menor el receptor envía un o.k. Si su propio mensaje tiene una marca menor el receptor no envía nada y encola el pedido. Luego de enviar las solicitudes un proceso: Espera hasta que alguien más obtiene el permiso. Cuando llegan todos los permisos puede entrar a la región crítica. Cuando un proceso sale de la región crítica: Envía mensajes o.k. a todos los procesos en su cola. Elimina a todos los elementos de la cola. La exclusión mutua queda garantizada sin bloqueo ni inanición. El número de mensajes necesarios por entrada es “2(n - 1)”, siendo “n” el número total de procesos en el sistema. No existe un único punto de fallo sino “n”. Si cualquier proceso falla no responderá a las solicitudes. La falta de respuesta se interpretará como negación de acceso: o Se bloquearán los siguientes intentos de los demás procesos por entrar a todas las regiones críticas. Se incrementa la probabilidad de fallo en “n” veces y también el tráfico en la red. Se puede solucionar el bloqueo sí. El emisor espera y sigue intentando hasta que regresa una respuesta o el emisor concluye que el destinatario está fuera de servicio. Otro problema es que se utilizará una primitiva de comunicación en grupo o, cada proceso debe mantener la lista de miembros del grupo, incluyendo los procesos que ingresan, los que salen y los que fallan. Se complica para gran número de procesos. Un importante problema adicional es que todos los procesos participan en todas las decisiones referentes a las entradas en las regiones críticas. Se sobrecarga el sistema. Una mejora consiste en permitir que un proceso entre a una región crítica con el permiso de una mayoría simple de los demás procesos (en vez de todos): Luego de que un proceso otorgó el permiso a otro para entrar a una región crítica, no puede otorgar el mismo permiso a otro proceso hasta que el primero libere su permiso.

Algoritmos de Elección:

Son los algoritmos para la elección de un proceso coordinador, iniciador, secuenciador, etc. El objetivo de un algoritmo de elección es garantizar que iniciada una elección ésta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.

17

Page 19: Sistemas Operativos II (2)

Transacciones Atómicas: Las técnicas de sincronización ya vistas son de bajo nivel:

El programador debe enfrentarse directamente con los detalles de:

• La exclusión mutua. • El manejo de las regiones críticas. • La prevención de bloqueos. • La recuperación de fallas.

Se precisan técnicas de abstracción de mayor nivel que:

• Oculten estos aspectos técnicos. • Permitan a los programadores concentrarse en los algoritmos y la forma en que los

procesos trabajan juntos en paralelo. • Tal abstracción la llamaremos transacción atómica, transacción o acción atómica. La

principal propiedad de la transacción atómica es el “todo o nada”: se hace todo lo que se tenía que hacer como una unidad o no se hace nada.

2.3.- Nominación característica y estructuras

Nominación:

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.

En un SAD transparente se agrega una nueva dimensión de abstracción, la ocultación de la ubicación de los archivos de la red. En un sistema de archivos convencionales la función de nominación produce como resultado un intervalo de direcciones en disco, en un SAD este intervalo crece para incluir la máquina específica en cuyo disco se almacena el archivo. Si se extiende un poco más el tratamiento de los archivos como abstracciones, llegamos a la posibilidad de réplicas de archivos. Dado un nombre de archivo, la correspondencia devuelve un conjunto de posiciones de las réplicas de este archivo. En esta abstracción se ocultan tanto la experiencia de copias como su ubicación.

Estructuras de Nominación:

Existen dos conceptos que hay que distinguir en relación con la correspondencia de nombres en un SAD.

18

Page 20: Sistemas Operativos II (2)

Transparencia de Nominación, El nombre de archivo no revela ningún indicio sobre de la ubicación del almacenamiento físico del archivo.

Independencia de Ubicación, No es necesario modificar el nombre de un archivo cuando cambia su ubicación en el almacenamiento físico.

Esquema de Nominación:

Hay tres enfoques principales para los esquemas de nominación en un SAD. En el enfoque más sencillo, 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. Por ejemplo, en Ibis, un archivo se identifica de manera única con el Nombre Anfitrión Local, donde nombre local es una ruta semejante a las de UNIX.

El segundo enfoque popularizado por el sistema de archivos de red (NFS, Network File System) de sun, ofrece una forma de unir directorios remotos a directorios locales, lo que da la apariencia a un árbol de directorios coherentes.

El tercer enfoque es la estructura más compleja y difícil de mantener en la NFS, ya que cualquier directorio se puede unir a cualquier árbol de direcciones locales y la jerarquía resultante puede estar poco estructurada.

2.3.2.- Tipos de nombres usuario y de sistema

Tipos de nombre de usuario:

En sentido general, un usuario es un conjunto de permisos y de recursos (o dispositivos) a los cuales se tiene acceso. Es decir, un usuario puede ser tanto una persona como una máquina, un programa, etc.

Usuario final: El usuario final de un producto informático (bien sea hardware o software), es la persona a la que va destinada dicho producto una vez que ha superado las fases de desarrollo correspondientes.

Normalmente, el software se desarrolla pensando en la comodidad del usuario final, y por esto se presta especial interés y esfuerzo en conseguir una interfaz de usuario lo más clara y sencilla posible.

Usuario registrado: Se denomina así a la persona que tiene derechos especiales en algún servicio de Internet por acreditarse en el mismo mediante un identificador y una clave de acceso, obtenidos con previo registro en el servicio, de manera gratuita o de pago. Normalmente, un usuario registrado tiene asignada una cuenta propia que mantiene información personalizada del usuario en el servidor, (como puede ser dirección de e-mail y espacio correspondiente). También puede dar acceso a ciertos

19

Page 21: Sistemas Operativos II (2)

contenidos no accesibles al público en general, como por ejemplo un usuario registrado en un periódico on-line con acceso por suscripción.

Usuario anónimo: Es usuario anónimo en informática aquel que navega en sitios web (o usa cualquier servicio de la red) sin autenticarse como usuario registrado. En algunos servicios en Internet se dispone de un modo de uso como usuario registrado y otro como usuario anónimo; normalmente, el usuario registrado goza de mayores privilegios.

El anonimato en Internet es uno de sus puntos fuertes, a la vez que motivo habitual de discusión. A los usuarios les gusta sentirse libres para expresarse, mientras que ciertos organismos quisieran un mayor control de todo el movimiento por la red para actuar con más eficacia contra la delincuencia online.

Usuario "beta tester": En el proceso de desarrollo de software, existe un usuario intermedio entre el desarrollador y el usuario final que se encarga de comprobar y testear que el programa trabaje de la forma prevista. La tarea de los Beta Testers es reportar errores al programador/desarrollador, y es en gran medida responsable de que el programa llegue al usuario final sin errores.

Tipos de nombre sistema

Sistemas operativos por servicios (visión externa). Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. Esta clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra: Por Número de Usuarios

Sistema operativo monousuario: Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.

En otras palabras los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se esté ejecutando.

Sistema operativo multiusuario: Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.

20

Page 22: Sistemas Operativos II (2)

En esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Por el número de tareas:

Sistema operativo mono tarea. Los sistemas mono tarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y mono tarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.

Los sistemas operativos mono tareas son más primitivos y, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una.

Sistema Operativo Multitarea. Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo.

Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero en el que solo se está procesando la aplicación que se encuentra en primer plano (la que ve el usuario. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicación está esperando información del usuario), y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo.

Un sistema operativo multitarea puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

Un sistema operativo multitarea se distingue por su capacidad para soportar la ejecución concurrente de dos o más procesos activos. La multitarea se implementa generalmente manteniendo el código y los datos de varios procesos simultáneamente en memoria y multiplexando el procesador y los dispositivos de E/S entre ellos.

21

Page 23: Sistemas Operativos II (2)

La multitarea suele asociarse con soporte hardware y software para protección de memoria con el fin de evitar que procesos corrompan el espacio de direcciones y el comportamiento de otros procesos residentes.

Por el número de procesadores:

Sistema operativo de uniproceso: Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.

Sistema operativo de multiproceso: Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente.

Asimétrica: Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos.

Simétrica: Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cual quiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.

Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto.

Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas mono proceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial.

22

Page 24: Sistemas Operativos II (2)

2.3.3.- Resolución y Distribución

La resolución es aquella parte de la regla de actuación que nos indica qué es lo que el SI debiera hacer en una determinada situación. Es uno o más conceptos cuya ejecución, realizada por los elementos físicos del sistema, produce un cambio en el entorno.

La distribución es el conjunto de medios empleados para permitir y asegurar el flujo de datos en un pc.

2.3.4.- Servidores y agentes 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.

23

Page 25: Sistemas Operativos II (2)

2.3.5.- Mapeo de direcciones

Para poder ejecutar instrucciones, si no sabemos en qué parte de la memoria estarán cargado, debemos tener un mecanismo de traducción de direcciones virtuales a reales. Para ello, se necesitan dos cosas. Primero, el compilador manejará una dirección base más un desplazamiento al referirse a las instrucciones. Segundo, el sistema operativo asignará como dirección base el número de página, al paginar al proceso. De esta manera, puede buscarse el inicio de una página en memoria, sumarle el desplazamiento y así obtener la dirección real de una instrucción. Nótese que en el diagrama se tiene una tabla de proceso y ahí mismo se maneja la dirección inicial de la tabla de páginas. En algunos sistemas operativos, estas dos tablas se manejan por separado.

La traducción de direcciones virtuales para segmentos se maneja de manera similar.

Existe un esquema adicional, paginación/segmentación, que es la combinación de ambos. La memoria se divide en marcos de página, idealmente más pequeños que el tamaño del marco de página en un sistema de paginación tradicional. Cada segmento está compuesto por cierto número de páginas. Es decir, el tamaño del segmento es un múltiplo del tamaño de página. Este esquema pretende sacar ventaja de los beneficios de los otros dos. Este mismo mecanismo de traducción de direcciones virtuales puede aplicarse en paginación/segmentación.

Recordemos que este mapeo debe efectuarse siempre, instrucción por instrucción ejecutada. Por ello, entre más rápido sea el mecanismo, mejor. Existe una manera de mejorar dicho mecanismo mediante hardware.

Una memoria asociativa es muy cara, pero permite buscar en toda la memoria en un mismo pulso de reloj. Implementando memoria asociativa, podemos traducir direcciones para páginas o segmentos.

Sin embargo, el utilizar memoria asociativa implica que el número de marcos de página y/o el número de segmentos, se ve limitado por el tamaño de la memoria asociativa. Es decir, no puede haber más marcos de página que número de celdas en la memoria asociativa. Por ello, hay sistemas operativos que manejan una combinación de ambos. Se cargan a memoria las páginas/segmentos más utilizados, y la traducción se utiliza de manera normal. Solamente en aquellos casos en los que no encontrara la página/segmento en la memoria asociativa, efectuaría la traducción directa. Para esa instrucción, haría un doble mapeo. Sin embargo, el principio de localidad nos asegura que esto no sucederá con frecuencia.

2.3.6.- Mapeo de rutas

Roadmapping (mapeo de rutas) 24

Page 26: Sistemas Operativos II (2)

El “Technology Roadmapping” o mapeo de rutas tecnológicas, es un método específicamente desarrollado para la realización de estudios de Prospectiva Tecnológica. El modelo se basa en las directrices dictadas por las necesidades del mercado ayudando a identificar, seleccionar y desarrollar con posterioridad las alternativas de tecnología necesarias para satisfacer un conjunto de necesidades de un producto.

Se trata de una prospectiva por objetivos que, entre otras funciones, ayuda a identificar necesidades y tecnologías, proporciona información necesaria en la toma de decisiones, identifica tecnologías críticas o vacías en tecnología que deben llenarse para poder desarrollar productos con desempeños específicos y analiza el proceso a través del tiempo.

¿Qué es el roadmap?

El Roadmap o “Mapeo de rutas” describe un ambiente futuro, los objetivos que pueden llegar a obtenerse con ese ambiente y los planes para lograr los objetivos planteados a través del tiempo. Explicita una estructura, o arquitectura, como una vía para el entendimiento de cómo las partes de un complejo sistema tecnológico encajan, interactúan y evolucionan. Así mismo, articula aplicaciones, desafíos tecnológicos y soluciones tecnológicas en forma conjunta y ayuda a establecer las prioridades para la consecución de los objetivos.

¿Qué es el roadmapping?

La mejor hoja de ruta es creada a partir de un trabajo en equipo, recibiendo las visiones y el conocimiento de un grupo de personas que llevan a cabo el plan de mapeo de rutas. El proceso de Roadmapping ayuda al equipo a reunir diversas perspectivas sobre todos los aspectos del ambiente y del plan. Así mismo ayuda al equipo a construir un consenso para llevar a cabo el plan de acción. El mapeo de rutas también es la base para la descripción de los objetivos.

Estructura del roadmapping:

El mapeo de rutas explicita campos de acción y permite trazar directrices para el planteamiento de acciones orientadas a responder o desarrollar completamente un conjunto de preguntas:

“Por qué – Qué – Cómo - Cuándo” elementos importantes para poder desarrollar planes y proyectos de acción en la dirección de los objetivos planteados y alcanzar las metas buscadas. La siguiente figura describe las cuatro partes de la arquitectura con base en un mapeo de rutas.

El mapeo de rutas puede ser construido comenzando con la definición de las principales necesidades del mercado para luego definir las tecnologías necesarias. (Prospectiva por entradas del mercado). Recíprocamente, al mapeo también puede comenzar con la definición de tecnologías claves y proseguir con los requerimientos del mercado que pueden ser satisfechos con esas tecnologías. (Prospectiva por entradas de tecnologías).

25

Page 27: Sistemas Operativos II (2)

2.3.7.- Modelo de Terry

Estudio del rendimiento de la factibilidad de nombramiento, el modelo de Terry

Los mensajes remitentes entre los procesos y objetos soportados por un sistema operativo precisa la presentación para el sistema operativo de los nombres de los objetos que los procesos quieren ganar acceso a. El problema es cómo localizar objetos nombrados. Esto está directamente conectado a la gerencia del espacio de nombre y las estructuras de la facilidad de nombramiento.

Como ha visto, acto de servidores de nombre como agentes obligatorios distribuidos que amarran el nombre de un objeto para una cierta cantidad de sus propiedades, incluyendo la posición del objeto. Algunos servidores de nombre pueden almacenar información acerca de los objetos particulares. Tales servidores de nombre se llaman las autoridades que nombra o servidores autoritarios de nombre para eso objetan. El problema es cómo distribuir servidores de nombre, esto es, que de las estructuras de una facilidad de nombramiento es el mejor.

Los criterios diferentes pueden ser tomados en cuenta al desarrollar la facilidad de nombramiento para sistemas de cómputo distribuidos. En la etapa de análisis de la estructura de facilidad de nombramiento, usaremos la mayor parte de importante de esos criterios, a saber actuación. Este criterio es importante para un ambiente distribuido porque que hay usualmente un número de redes interconectadas (lo mismo es cierto en caso de una red de área local conectando un número grande de computadoras personales y / o los puestos de trabajo, y los servidores diferentes), lo cual insinúa que el costo de comunicación entre clientes y servidores de nombre es el cuello de botella principal en localizar recursos remotos. En este caso, la actuación de averiguaciones del servidor de nombre es dominada por el número de servidores de nombre que deben ser a los que se ganó acceso y el costo de ganar acceso a esos los servidores de nombre.

Los factores que afectan la eficiencia con la cual el espacio de nombre puede ser manejado y el costo de recuperar información del servidor de nombre son:

El di denota el costo de ejecutar una averiguación en NS, éste costado depende de tales factores como el tamaño global de la base de datos mantenida por NSi, y la clase de instalaciones de la base de datos utilizaron. Se asume que se compone con el paso del tiempo. El cui es el costo de comunicar con NSi de cliente u, depende del sitio en el cual el

26

Page 28: Sistemas Operativos II (2)

cliente ejecuta, Este costo depende de tales factores como el número de portales de acceso atravesados, y la velocidad de líneas de transmisión.

El CUi especifica el costo completo de ganar acceso al servidor de nombre, NSi, remotamente de cliente u, y sea expresada por la siguiente fórmula:

El costo de recuperar la información del servidor de nombre acerca de un set de denominado así es que urce s depende de posición del cliente relativo a servidores diversos de nombre y la mezcla remisiva del cliente y puede ser expresado por la fórmula:

Donde Luk representa el coste total de poner en duda la información en partición de la base de datos dk, incluir el costo de localizar los datos deseados. Porque estamos interesados en el costo de recuperar la entrada del servidor de nombre de un objeto individual, ignoraremos los patrones de acceso del cliente en E (Lu) ‘concentrándose sólo en Luk.

Structures de la facilidad de nombramiento:

Las siguientes estructuras básicas de facilidad de nombramiento para los sistemas operativos distribuidos han sido identificadas por Terry (1984) e Indulska y Goscinski (1989):

Una facilidad centralizada de nombramiento una facilidad replegada de nombramiento una facilidad descentralizada de nombramiento una facilidad distribuida de nombramiento una facilidad jerárquica de nombramiento.

Nombre. El sistema (5) centralizado, – (6) - el sistema replegado, (7) el sistema descentralizado con división en los tipos del objeto, (1) completamente distribuyó sistema (2) recursos locales conocidos en cada nodo y el mensaje emitido por radio pasando para servidores del recurso en cada nodo, (3) distribuyó sistema (4) recursos locales conocidos en cada nodo, sistema con creces distribuido dirección del recurso determinó por una función de hashing que se definió sobre el set de identificadores del recurso, jerárquico -.

Ahora, describiremos estas estructuras de facilidad de nombramiento enfatizando evaluación de rendimiento. La presentación de estos temas se basa en la actuación que el modelo desarrolló por Terry, y también por Indulska y Goscinski.

Las instalaciones centralizadas de nombramiento

Una facilidad centralizada de nombramiento es implementada usando un servidor solo de nombre, lo cual mantiene una mesa o base de datos con tal que el nombre necesario para ocuparse de mapeos. Este sistema maneja un espacio plano de nombre donde los nombres son cadenas de caracteres no exhibiendo estructura. La base de datos del servidor de

27

Page 29: Sistemas Operativos II (2)

nombre es aumentada registrando servicios, va en procesión, pone a babor (los buzones) y otros detalles pertinentes que quieren ser públicamente sabidos. Los directorios del archivo pueden ser considerados como una causa especial de servicio de nombre. En este caso, Sk = NS. El servidor de nombre contiene que la colección completa de información aproximadamente toda nombró objetos en el ambiente distribuido. El costo de recuperación es simplemente Lk = C, dónde la C especifica el coste máximo de ganar acceso a servidor de nombre NS remotamente por la u más lejana del cliente.

La ventaja de esta estructura de nombramiento es su simplicidad, y la evitación de cualquier problema de incongruencia que se identificó en algunos sistemas con más que un servidor. Las desventajas son fiabilidad de punto bajo del sistema enteramente distribuido, y el tráfico grande los retrasos aéreos y largos en ganar acceso al servidor y antes de iniciar una transmisión orientada en servicio requerida.

Los sistemas replegados de nombramiento

Una facilidad replegada de nombramiento maneja un espacio plano de nombre también. Cada nodo de la computadora (el sitio) del sistema distribuido mantiene una copia de la base de datos con tal que los mapeos del nombre a la dirección necesarios para el sistema entero. En este caso, Sk = {NS1. . . , NSN } ‘ Porque cada servidor de nombre contiene una” colección completa ‘ De información aproximadamente toda nombró objetos (los recursos) del sistema distribuido, cualquier cliente puede interrogar el servidor de nombre físicamente más cercano, implícito aquí N Smain” que éste significa que el costo de recuperación es simplemente cañería maestra Lk = C.

Este sistema tiene las siguientes ventajas: Es muy rápido, que no tiene retrasos de levantes obligatorios de operación, el número de mensajes de orientes obligatorio es cero, y tiene fiabilidad alta. El problema mantienen consistencia entre copias, nombran problemas de materialización (si un proceso muere, entonces o un servicio se vuelve agotado) y requisitos grandes de memoria de cada nodo.

La entrada de la base de datos de nombre orientó descentralizó sistemas

Una entrada de la base de datos de nombre orientó descentralizó sistema también maneja un espacio plano de nombre, pero cada entrada del servidor de nombre es almacenada en algún sitio arbitrario. En este caso, Sk = { NS ¡ }. Tal solución para una estructura de facilidad de nombramiento insinúa que el almacenamiento y los problemas de consistencia, mencionadas en el acercamiento previo, son evitados. Ésta es la ventaja principal de esta estructura. El inconveniente de este sistema localiza los datos deseados, porque eso arruine necesite interrogar cada servidor de nombre. Por término medio, la mitad de servidores de nombre deben ser a los que se ganó acceso para recuperar información del objeto.

Dado que los saques de nombre son puestos en duda en la ordenación numérica, la recuperación costada es como sigue:

28

Page 30: Sistemas Operativos II (2)

Este sistema es valioso en términos de búsquedas del servidor de nombre.

Una modificación simple del citado anteriormente sistema es la facilidad distribuida de nombramiento. En este sistema cada nodo de la computadora (el sitio) mantiene una base de datos con tal que la dirección - nombre necesaria haciendo mapas para sus propios objetos locales (los procesos, los puertos, los servicios, los recursos). Este sistema requiere difundir en la red el nombre de un objeto pedido.

Ninguno de los sistemas descritos anteriormente es muy práctico para sistemas distribuidos grandes. La situación puede ser mejorada añadiendo estructura para el nombre de un objeto. Esta estructura debería reflejar la autoridad de la gerencia para el nombre.

Los sistemas descentralizados de nombramiento

Una facilidad descentralizada de nombramiento es implementada usando un número de servidores de nombre operando en los dominios estrictamente definidos. La estructura se agrega para el nombre de un objeto (resource’s) para reflejar la autoridad de la gerencia para el nombre. La siguiente convención de nombramiento puede ser usada:

El servidor (1) correcto de @ nombre de _ nombre, donde _ el servidor de nombre identifica el servidor de nombre esto es responsable para información directiva acerca del objeto, y _ el nombre (2) correcto sin ambigüedades identifica el objeto en el contexto de la autoridad que nombra.

Si los servidores de nombre son sin ambigüedades nombrados luego el nombre completo _ servidor correcto de @ nombre de _ nombre es globalmente inequívoco. La gerencia efectiva de tal espacio de nombre siguiendo esta convención de nombramiento requiere que cada servidor de nombre sabe la posición de otros servidores de nombre.

Hay avances diferentes para descentralizar un espacio de nombre:

La partición de discos (1) geográfica (el reconocimiento médico): Si el sistema está compuesto de redes de área local múltiples conectadas de por ahí cruzan s y portales de acceso, entonces es natural tener un servidor de nombre para cada red; Y La partición de discos (2) organizativa (funcional): La partición del sistema entero en los dominios puede estar hecha con base en organizaciones.

Básicamente dividieron en partes nombrando sistemas individuales mapeo existe entre particiones de la base de datos y servidores de nombre, esto es, = la N de kilobyte y Sk = { NSk }. Tal estructura requiere dos accesos para obtener la información acerca de un objeto dado (el recurso): Uno para hallar la autoridad que nombra y uno para ganar acceso a los datos. Sólo un acceso es menester cuando la información deseada de nombramiento es

29

Page 31: Sistemas Operativos II (2)

almacenada en el servidor primario de nombre, N Smain. El costo de búsqueda es expresado por la fórmula:

Organizacionalmente dividieron en partes nombrando sistemas las particiones de la base de datos corresponda a las organizaciones en vez de servidores de nombre. Cada servidor de nombre puede ser la autoridad para algún subconjunto de las organizaciones. En este caso los nombres toman la forma @ organización correcta de _ nombre en la cual la autoridad para asignar nombres es explícitamente reconocida. En este caso el servicio de nombre puede ser con holgura uso reconfigurado del beca la asignación de objeto nombres es independiente de la asignación de la responsabilidad para mantener información acerca de los objetos.

Consideremos los costos de búsqueda. Suponga, por el momento, que los datos de cada organización están bajo la dirección de un servidor solo de nombre al igual que con un espacio de nombre físicamente subdividido, Sk = { NSJ. Para eficazmente ganar acceso a información acerca de un objeto dado, cada servidor de nombre debería saber cuál servidor de nombre tiene responsabilidad para cada organización. Basadas en esta estructura, las averiguaciones del servidor de nombre pueden ser tramitadas en pasos dobles como en sistemas de nombramiento físicamente subdivididos.

El costo de búsqueda es expresado como sigue:

Dos recuperaciones de la base de datos son siempre precisadas desde que un servidor de nombre no puede determinar de todos modos es la autoridad para los datos deseados sin consultar la base de datos local. Si el servidor primario de nombre puede recuperar y puede devolver la entrada del servidor de nombre directamente al descubrir que es el sitio de almacenamiento para los datos deseados, entonces luego.

Una de las ventajas más importantes de un espacio de nombre de organizacional-Partición es la facilidad con la cual la información replegada de nombramiento puede ser acomodada. Esto quiere decir que la base de datos del servidor de nombre puede a medias ser redundante. Del punto de la gerencia de vista, la copia soportadora requiere que el algoritmo de búsqueda describió arriba esté extendido de tal manera en lo que se refiere a reconocer varios servidores autoritarios de nombre para cada organización en vez de uno responsable solo. Como consecuencia, cada servidor de nombre debería saber la colección completa de servidores autoritarios de nombre para cada organización, Sk. Un ejemplo de un sistema basado en este acercamiento es el sistema Grapevine (Birrell Et Al. 1982).

El costo de búsqueda del servidor de nombre viene bien

Esta fórmula fue desarrollada en la suposición que el servidor autoritario más cercano de nombre puede ser determinado con costo insignificante. El costo para un sistema con datos replegados debería estar menos del costo pues un sistema con espacio de nombre de organizacional-Partición desde que el servidor de nombre ganó acceso a por clientes

30

Page 32: Sistemas Operativos II (2)

diversos, N Smink puede diferir de cliente para el cliente, considerando en el caso previo cada cliente se ve forzado a ganar acceso al mismo servidor de nombre.

La influencia de la copia de datos puede ser ilustrada por un ejemplo muy simple. Deje la R ser número de materiales noticiosos, R~N, distribuido uniformemente, esto es, R servidores autoritarios de nombre está seleccionado al azar para cada partición de la base de datos. Doy por supuesto que los servidores de nombre son ordenados algo semejante que C<C para yo < la j y NS. = NS.. Esta suposición no insinúa cualquier pérdida de generalidad.

Los sistemas jerárquicos de nombramiento:

Una facilidad jerárquica de nombramiento es una extensión del sistema previo por nombres estructurados de dos partes extensibles para los nombres jerárquicos consistente en más que dos partes. Hay dos avances básicos: El número fijo de estratos, o una jerarquía arbitraria. Con gerencia jerárquica del espacio de nombre, los datos completos (Sk para toda k) de configuración del servidor de nombre no necesitan guardarse en cada servidor de nombre. Es suficiente que cada tienda del servidor de nombre lo suficientemente sólo información localizar los servidores autoritarios de nombre para el nivel de la parte superior de la jerarquía. Los servidores nivelados máximos de nombre deberían saber que los servidores autoritarios de nombre para el nombre espacian subárboles directamente bajo su control administrativo. Un análisis de estructuras jerárquicas de nombramiento puede ser realizado por recursivamente aplicar las técnicas para los nombres de dos partes. Considere un sistema usando los nombres de la forma _ nombre local: El dominio: La organización, esto es, una jerarquía con tres niveles.

31