Vous êtes sur la page 1sur 8

Introducción:

Sin el software, una computadora no es más que una masa metálica sin
utilidad. Con el software, una computadora puede almacenar, procesar y
recuperar información, encontrar errores de ortografía en manuscritos,
tener aventuras e intervenir en muchas otras valiosas actividades para
ganar el sustento. El software para computadoras puede clasificarse en
general en dos clases: los programas de sistema, que controlan la
operación de la computadora en si y los programas de aplicación, los
cuales resuelven problemas para sus usuarios. El programa fundamental
de todos los programas de sistema es el sistema operativo (SO), que
controla todos los recursos de la computadora y proporciona la base sobre
la cual pueden escribirse los programas de aplicación.
Este trabajo hablara acerca de algunos procesos y métodos importantes
que cuentan los sistemas operativos a la hora de realizar una operación.

Sincronización entre Procesos en Ambientes Distribuidos:

Para que las tareas en ambientes distribuidos puedan ser ejecutadas, es


importante que se establezca un orden de las secuencias de las
operaciones de procesos tanto estricto como universal. Es de aquí de
donde surge la necesidad de que a la hora de ejecutar un proceso
distribuido, este se lleve a cabo al mismo tiempo con respecto a un
tiempo establecido. Es importante destacar que a la hora de mantener
una base de tiempo existen ciertos problemas tecnológicos pero a la vez
es más significante su propagación, para aquellos sistemas cuya función es
procesar grandes paquetes de datos a una alta velocidad, la sincronía
dependerá de la rapidez con la que las señales de semáforos sean
propagadas sobre todo cuando hay un intercambio de datos a grandes
velocidades que puedan afectar la sincronía en un pequeño periodo de
tiempo.
Esta sincronización puede ser definida como la forma estricta de un orden
parcial o total para cualquier evento que se vaya a realizar y es usado
para referirse a estos tres problemas distintos aunque relacionados entre
ellos:
 La sincronización entre emisor y receptor
 La especificación y control de la actividad común entre procesos
cooperativos
 La series de accesos concurrentes a objetos compartidos por
múltiples procesos.

Refiriéndose a los métodos utilizados en un sistema centralizado, el cual


usa semáforos y monitores; en un sistema distribuido se utilizan
algoritmos distribuidos que se encargan de la sincronización del trabajo
común entre procesos y monitoreo, mediante esquemas complejos que
cambian la semaforización simple de los S.O.

La sincronización de relojes en un sistema operativo distribuido consiste


en cada uno de los procesos que se llevaran a cabo, deben realizarse de
forma cronológica y respetando el orden de los eventos que se
encuentran en el sistema al mismo tiempo.

Algoritmos Para la Sincronización de Relojes:


Este algoritmo está basado en el uso del tiempo coordenado universal
(siglas en inglés, UTC), el cual es recibido por un equipo dentro del sistema
distribuido. Este equipo, denominado receptor de UTC, recibe a su vez
solicitudes periódicas del tiempo del resto de máquinas del sistema a cada
uno de los cuales les envía una respuesta en el menor plazo posible
informando el tiempo UTC solicitado, con lo cual todas las máquinas del
sistema actualicen su hora y se mantenga así sincronizado todo el sistema.
El receptor de UTC recibe el tiempo a través de diversos medios
disponibles, entre los cuales se menciona las ondas de radio, Internet,
entre otros.
Un gran problema en este algoritmo es que el tiempo no puede correr
hacia atrás:

 El tiempo del receptor UTC no puede ser menor que el tiempo de la


máquina que le solicitó el tiempo.
 El servidor de UTC debe procesar las solicitudes de tiempo con el
concepto de interrupciones, lo cual incide en el tiempo de atención.
 El intervalo de transmisión de la solicitud y su respuesta debe ser
tomado en cuenta para la sincronización. El tiempo de propagación
se suma al tiempo del servidor para sincronizar al emisor cuando
éste recibe la respuesta.

La sincronización de relojes en un sistema distribuido consiste en


garantizar que los procesos se ejecuten en forma cronológica y a la
misma vez respetar el orden de los eventos dentro del sistema. Para
lograr esto existen varios métodos o algoritmos que se programan
dentro del sistema operativo, entre los cuales tenemos:
a) Algoritmo de Lamport: Fue uno de los primeros algoritmos
establecidos para la sincronización de sistemas distribuidos y se
basa en la relación “Sucede antes” y se le agrega la utilización de los
mensajes entre computadoras como indicadores precisos de esta
relación. Es decir, un mensaje no se puede recibir sin enviarse y por
lo tanto si se tiene registro del envío de mensaje, se puede verificar
que haya coherencia con la definición de los envíos de mensajes
“antes de”. Para ello se definen los relojes lógicos.

b) Algoritmo de Cristian: Un sistema distribuido basado en el


algoritmo de Berkeley no dispone del tiempo coordenado universal
(UTC); en lugar de ello, el sistema maneja su propia hora. Para
realizar la sincronización del tiempo en el sistema, también existe
un servidor de tiempo que, a diferencia del algoritmo de Cristian, se
comporta de manera activa. Este servidor realiza un muestreo
periódico del tiempo que poseen algunas de las máquinas del
sistema, con lo cual calcula un tiempo promedio, el cual es enviado
a todas las máquinas del sistema a fin de sincronizarlo.
c) Algoritmo de Berkeley: Este algoritmo se basa en un reloj central,
este se encarga de medir las desviaciones de los relojes de todos los
elementos interconectados a la red y obliga a retrasarse a los
equipos que se encuentren adelantados y con su ajustes de
adelanto del reloj a los equipos retrasados, por su parte, el reloj
central se adapta al valor intermedio del promedio del reloj de
todos los equipos conectados a la red y establece una hora a la que
todos los equipos deben sincronizarse con sus respectivos ajustes
(adelantarse o atrasarse) es un algoritmo ideal para un caso en que
no existe un tiempo de referencia universal.

d) Reloj Físico: Son utilizados cuando se emplean una base de tiempo


universal. Sin útiles aplicaciones en el cual se llevan a cabo una serie
de eventos de forma simultaneas a alta velocidad, es decir, que no
hay recursos disponibles para organizar la sincronización. Es preciso
en estos casos de relojes físicos externos.

e) Relojes Lógicos: Este consiste en la creación de un sistema de


cambio de tiempo mediante una medición de las diferencias, de tal
forma que se crea que el tiempo universal se sustituye y se piense
que ahí existe un tiempo global auto-ajustable.

Repaso de la sección crítica y exclusión mutua

Sección Crítica: Se denomina sección crítica o región crítica a la


porción de código de un programa de ordenador en la que se accede a un
recurso compartido (estructura de datos o dispositivo) que no debe ser
accedido por más de un proceso o hilo en ejecución. La sección crítica por
lo general termina en un tiempo determinado y el hilo, proceso o tarea
sólo tendrá que esperar un período determinado de tiempo para entrar.
Se necesita un mecanismo de sincronización en la entrada y salida de la
sección crítica para asegurar la utilización en exclusiva del recurso, por
ejemplo un semáforo, monitores, el algoritmo de Dekker y Peterson, los
candados.
La característica más importante de este sistema es:
 Cuando un proceso se encuentra ejecutando código de la sección
crítica, ningún otro proceso puede ejecutar en su sección.
 Para resolver el problema de la sección crítica es necesario utilizar
algún mecanismo de sincronización que permita a los procesos
cooperar entre ellos sin problemas.
 Este mecanismo debe proteger el código de la sección crítica y su
funcionamiento básico es el siguiente: Cada proceso debe solicitar
permiso para entrar en la sección crítica mediante algún fragmento
de código, que se denomina de forma genérica entrada en la
sección crítica.
 Cuando un proceso sale de la sección crítica debe indicarlo
mediante otro fragmento de código, que se denomina salida de la
sección crítica. Este fragmento permitirá que otros procesos entren
a ejecutar el código de la sección crítica.

Exclusión Mutua: La exclusión mutua es la actividad que realiza el


sistema operativo para evitar que dos o más procesos ingresen al mismo
tiempo a un área de datos compartidos o accedan a un mismo recurso. En
otras palabras, es la condición por la cual, de un conjunto de procesos,
sólo uno puede acceder a un recurso dado o realizar una función dada en
un instante de tiempo.
En sistemas de multiprogramación con un único procesador, los procesos
se intercalan en el tiempo para dar la apariencia de ejecución simultánea.
Uno de los grandes problemas que nos podemos encontrar es que el
hecho de compartir recursos está lleno de riesgos.
Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable
global y ambos llevan a cabo tanto operaciones de lectura como de
escritura sobre dicha variable, el orden en que se ejecuten estas lecturas y
escrituras es crítico, puesto que se verá afectado el valor de la variable.
Algoritmo centralizado y Distribuido de la Exclusión Mutua:

Algoritmo Centralizado: Este algoritmo pertenece a los no basados en


tokens y es quizá el más fácil de implementar para crear la exclusión
mutua distribuida. En esta solución, cuando uno de los procesos quiera
acceder a la sección crítica, deberá enviar un mensaje de tipo REQUEST a
un servidor central que será el encargado de recibir todas las peticiones
de acceso y de ir concediendo los permisos a las distintas peticiones.
Cuando el proceso reciba el mensaje de permiso, podrá acceder a la
sección crítica y cuando acabe, deberá enviar un nuevo mensaje al
servidor central para avisar de que ha finalizado y ya se encuentra
disponible la sección crítica para otro proceso (mensaje de tipo RELEASE).

Ventajas de este algoritmo:


 Facilidad de implementación.
 La poca cantidad de mensajes que es necesario generar por cada
acceso (solamente 3).

En cuanto a las desventajas:

 Un fallo en el servidor central provocaría la caída del sistema


completo.
 Se pueden producir los llamados cuellos de botella, debidos a
numerosas peticiones por distintos nodos que pueden provocar que
el servidor central no sea capaz de procesar todas ellas y colapse.

Algoritmo Distribuido: En este tipo de algoritmos no existe un proceso


diferenciado que coordine el acceso a la región crítica, sino que se
implementa un protocolo que permite establecer un acuerdo entre los
procesos para decidir quién entra en la región crítica.
Ventajas de un algoritmo distribuido:
 Está libre de interbloqueos
 Libre de inanición.
Desventajas de un algoritmo distribuido:
 Existe n punto de fallas
 Si un nodo falla, el esquema completo colapsa
 Los procesos necesitan conocer la identidad de todos los otros
procesos en el sistema.

Elección de Leader:
es el proceso de designar un proceso único como organizador de alguna
tarea distribuida entre varias computadoras (nodos). Antes de comenzar
la tarea, todos los nodos de la red desconocen qué nodo servirá como el
"líder" (o coordinador ) de la tarea, o no podrán comunicarse con el
coordinador actual. Sin embargo, después de que se haya ejecutado un
algoritmo de elección de líder, cada nodo de la red reconoce a un nodo
particular y único como líder de tarea.

Algoritmo de Leader:
Los procesos conforman un anillo lógico, de tamaño conocido solo por el
último. Si bien al comienzo la numeración es continua, al morir los
procesos podrían quedar huecos. Los procesos que mueren no notifican a
nadie de su desaparición. Los procesos que se añaden, lo hacen al final del
anillo. Para hacer eso notifican al que antes era el último proceso.
Una red en anillo es una topología de gráfico conectado en la que cada
nodo está conectado exactamente a otros dos nodos, es decir, para un
gráfico con n nodos, hay exactamente n bordes que conectan los nodos.
Un anillo puede ser unidireccional, lo que significa que los procesadores
solo se comunican en una dirección (un nodo solo podría enviar mensajes
a la izquierda o solo los mensajes a la derecha), o bidireccional, lo que
significa que los procesadores pueden transmitir y recibir mensajes en
ambas direcciones (un nodo podría enviar mensajes a la izquierda y la
derecha).
Conclusión:
Luego de haber investigado y analizado se puede ver que existen muchos
procesos y algoritmos a la hora de establecer una conexión entre
computadoras ya sea por un sistema operativo centralizado o un sistema
operativo distribuido. Cabe destacar que estos métodos son importantes
para facilitar las conexiones de red y cada algoritmo cuenta con sus
ventajas y desventajas, depende de la necesidad que tenga el usuario,
para escoger cual es el método más óptimo para su operación.

Vous aimerez peut-être aussi