jueves, 15 de octubre de 2015

Unidad 3 Procesos y procesadores en sistemas operativos distribuidos.




3.1 CONCEPTOS BÁSICOS PROCESOS Y PROCESADORES

Proceso: es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

• Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.

• Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.

• Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenido.

Procesador: es un circuito electrónico integrado que actúa como unidad central de proceso de un ordenador, proporcionando el control de las operaciones de cálculo. 

Los procesadores distribuidos se pueden organizar de varias formas:

• Modelo de estación de trabajo

• Modelo de la pila de procesadores

• Modelo híbrido


3.2. HILOS Y MULTIHILOS

Un hilo de ejecución, es una característica que permite a una aplicación realizar varias tareas concurrentemente.

Comparten una serie de recursos como el espacio de memoria, los archivos abiertos, situación de autenticación, etc.

Permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

SINCRONIZACION DE HILOS

Los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abiertos.

Cualquier modificación de un recurso desde un hilo afecta al entorno del resto de los hilos del mismo proceso.

Es necesario sincronizar la actividad de los distintos hilos para que no interfieran unos con otros o corrompan estructuras de datos.

VENTAJAS DE LA PROGRAMACION MULTIHILO

Es que los programas operan con mayor velocidad en sistemas de computadores con múltiples CPUs (sistemas multiprocesador o a través de grupo de máquinas) ya que los hilos del programa se prestan verdaderamente para la ejecución concurrente.

FORMAS DE MULTIHILO

Los sistemas operativos generalmente se implementan hilos de dos maneras:

Multihilo apropiativo: permite al sistema operativo determinar cuándo debe haber un cambio de contexto. La desventaja de esto es que el sistema puede hacer un cambio de contexto en un momento inadecuado, causando un fenómeno conocido como inversión de prioridades y otros problemas.

Multihilo cooperativo: depende del mismo hilo abandonar el control cuando llega a un punto de detención, lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.


3.3. MODELOS DE PROCESADORES

La historia de los microprocesadores comienza en 1971, con el desarrollo del procesador 4004 de Intel, para facilitar el uso de una computadora.

La época de los PC (personal computer), comenzó en 1978 junto con el procesador, 8086.

Los modelos de procesadores se han ido desarrollando de acuerdo a las necesidades de cada uno de los usuarios, los cuales pedían menores tiempos de respuesta, demandaban más capacidad de almacenamiento así como también, las posibilidades de compartir información de una manera mucho mas fácil y eficiente, es por eso que se desarrollaron tres modelos básicos, los de estación de trabajo, de pila de procesadores y los híbridos los cuales permitían hacer mejor uso de los recursos existentes.


3.3.1. MODELO DE ESTACION DE TRABAJO

El sistema consta de estaciones de trabajo (PC) dispersas conectadas entre sí mediante una red de área local (LAN).

Pueden contar o no con disco rígido en cada una de ellas

Los usuarios tienen:

· Una cantidad fija de poder de cómputo exclusiva.

· Un alto grado de autonomía para asignar los recursos de su estación de trabajo.



USO DE LOS DISCOS EN LAS ESTACIONES DE TRABAJO:

Sin disco:

Bajo costo, fácil mantenimiento del hardware y del software, simetría y flexibilidad.

Gran uso de la red, los servidores de archivos se pueden convertir en cuellos de botella.

Con disco:

• Disco para paginación y archivos de

• tipo borrador:

• Reduce la carga de la red respecto del

• caso anterior.

• Alto costo debido al gran número de discos necesarios.

Generalmente se considera que una estación de trabajo está “inactiva” cuando se dan ambas condiciones:

• Nadie toca el ratón o el teclado durante varios minutos.

• No se ejecuta algún proceso iniciado por el usuario.


3.3.2. MODELO DE PILA DE PROCESADORES

Se dispone de un conjunto de CPU que se pueden asignar dinámicamente a los usuarios según la demanda.

Los usuarios no disponen de estaciones de trabajo sino de terminales gráficas de alto rendimiento.

En general este modelo puede reducir significativamente el tiempo de espera al tener una sola cola de procesadores a repartir.

La capacidad de cómputo se puede gestionar de mejor forma si se tiene micros con mayores capacidades.


3.3.3 MODELO HÍBRIDO

Consta de estaciones de trabajo y una pila de procesadores. El sistema operativo permite más de un hilo por proceso.

El soporte de lenguaje de programación utiliza un hilo del núcleo para implementar un grupo de hilos de usuario. Proporciona flexibilidad y un máximo rendimiento potencial al programador de la aplicación.

El trabajo interactivo se ejecuta en cada estación de trabajo, y el no interactivo o más pesado en la pila de procesadores, obteniendo una respuesta más rápida, un diseño sencillo y un uso de los recursos adecuado.

VENTAJAS DE UN MODELO HÍBRIDO

• Recursos de procesamiento ajustados a las necesidades del usuario.

• Ejecución concurrente.

• Acceso a través de terminales (menor precio).

• Los usuarios utilizan estaciones de trabajo.

• Realizan trabajos interactivos en las estaciones de trabajo.


3.4 ASIGNACIÓN DE PROCESADORES

En todos los casos, se necesita cierto algoritmo para decidir cuál proceso hay que ejecutar y en qué máquina.

Para el modelo de estaciones de trabajo, la pregunta es cuándo ejecutar el proceso de manera local y cuándo buscar una estación inactiva.

Para el modelo de la pila de procesadores, hay que tomar una decisión por cada nuevo proceso.

Entonces, cada maquina puede tener un sistema de archivos auto contenido, con la posibilidad de montarlo o tener su sistema de archivos de otras maquinas. La idea aquí es que cada maquina esta auto contenida en lo fundamental y que el contacto con el mundo exterior sea limitado. Este sistema proporciona un tiempo de respuesta uniforme y garantizada para el usuario y pone poca carga en la red.

Plantea el problema de encontrar estaciones de trabajo inactivas en la red que puedan ejecutar procesos. Por lo cual las estaciones de trabajo deben de anunciar cuando no cuentan con una carga de trabajo asignada, así todas las demás estaciones toman nota de esto y lo registran.

IMPORTANCIA DE LA ASIGNACION

Existe un peligro potencial de que aparezcan condiciones de competencia si dos usuarios llaman al mismo tiempo al comando remote y ambos descubren que la misma maquina esta inactiva, ambos intentaran iniciar procesos al mismo tiempo.

Para detectar y evitar esta situación, el programa remote verifica la estación de trabajo inactiva, la cual si continua libre se elimina así misma del registro y da la señal de continuar, de esta manera quien hizo la llamada puede enviar su ambiente e iniciar el proceso remoto.

ESTRATEGIAS DE ASIGNACION DINAMICA

Las estrategias de asignación de procesadores se dividen en:

• No migratorias:Una vez colocado un proceso en una máquina permanece ahí hasta que termina.

• Migratorias: Un proceso se puede trasladar aunque haya iniciado su ejecución. Permiten un mejor balance de la carga pero son más complejas.

• Centralizadas o Distribuidas: Existe un coordinador central

• Óptimas o Subóptimas: Busca la mejor asignación o una que sea aceptable.

• Locales o Globales: Tiene en cuenta estado de la máquina local o estado del sistema

ESTRATEGIAS DE ASIGNACION ESTATICA

• Asignar procesos de una aplicación paralela a procesadores minimizando el tiempo de ejecución total: Debe buscar equilibrio entre paralelismo (uso de distinto procesador) y minimizar coste de comunicaciones (uso del mismo procesador)

• No solución óptima aunque muy estudiado. Dificultades en:Estimar coste de comunicacionesy Cómo reflejar que un proceso no ejecuta igual en todos procesadores

• Distintos modelos de paralelismo dependiendo de herramienta de programación paralela utilizada. Dos modelos típicos:Modelo basado en precedencia de procesos (cobegin-coend). Modelo basado en procesos que se comunican

ALGORITMOS DE ASIGNACION

Los algoritmos de asignación intentan optimizar algo:

• Uso de las CPU:Maximizar el número de ciclos de CPU que se ejecutan para trabajos de los usuarios. Minimizar el tiempo de inactividad de las CPU.

• Tiempo promedio de respuesta:Minimizar no los tiempos individuales de respuesta sino los tiempos promedio de respuesta.

• Tasa de respuesta:Minimizar la tasa de respuesta, que es el tiempo necesario para ejecutar un proceso en cierta máquina dividido por el tiempo que tardaría en cierto procesador de referencia.



3.4.1. MODELOS Y ALGORITMOS CON SUS ASPECTOS DE DISEÑO E IMPLEMENTACION


Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución.

Los principales aspectos son: algoritmos determinísticos v/s heurísticos; centralizados v/s distribuidos, optimos v/s suboptimos; locales v/s globales; iniciados por el emisor v/s iniciados por el receptor.



3.5. COPLANIFICACION

Toma en cuenta los patrones de comunicación entre los procesos durante la planificación.

Debe garantizar que todos los miembros del grupo se ejecuten al mismo tiempo.

Cada procesador debe utilizar un algoritmo de planificación ROUND ROBIN.

Se emplea una matriz conceptual donde: Las filas son de espacios de tiempo.



3.6 TOLERANCIA A FALLOS

Es la propiedad que permite a un sistema continuar operando adecuadamente en caso de una falla en alguno de sus componentes.

Ante una falla, otro componente o un procedimiento especial de respaldo pueden tomar el control para subsanar o amortiguar los efectos del fallo.

Para que un sistema distribuido pueda ser tolerante a fallos, se ocupan las siguientes características:

DISPONIBILIDAD:Un sistema con alta disponibilidad es aquel que puede trabajar en cualquier tiempo.

CONFIABILIDAD:Un sistema con alta confiabilidad, es aquel que funciona por largos periodos de tiempo sin fallo alguno.

SEGURIDAD:Se refiere a la situación en la que un sistema falla temporalmente, no pasa nada grave, algunos de esos sistemas fallan, pueden traer consecuencias catastróficas.

MANTENIMIENTO:Se refiere a que tan rápido puede ser reparado un sistema.

Un sistema con alto grado de mantenimiento es aquel, que puede evitar o reparar fallas automáticamente.

CLASIFICACION DE FALLOS

FALLOS TRASCENDENTALES:Son aquellos fallos que aparecen una vez y después desaparecen aun cuando la misma operación se repite.

FALLOS INTERMITENTES:Son aquellos fallos que aparecen una vez y después desaparecen y después vuelven a aparecer y continua el ciclo.

FALLOS PERMANENTES: Son aquellos fallos que aparecen y no desaparecen hasta que el componente erróneo es remplazado o es arreglado el problema.

MODELOS DE FALLOS




3.7 SISTEMAS DISTRIBUIDOS DE TIEMPO REAL

Son aquellos que interactúan con el mundo exterior donde el tiempo es un factor importante.

CARACTERÍSTICAS

*Se activan por evento o por tiempo.

*Su comportamiento debe ser predecible.

*Deben ser tolerantes a fallas.

*La comunicación en estos sistemas deben de ser de alto desempeño.


CLASIFICACIÓN


SISTEMA DE TIEMPO REAL SUAVE.El tiempo real suave significa que no existe problema si se rebasa un tiempo límite.

Ejemplo de Sistema de Tiempo Real Suave: Conmutador telefónico.


SISTEMA DE TIEMPO REAL DURO.Es aquel en el que un tiempo límite no cumplido puede resultar catastrófico.

Ejemplo de Sistema De Tiempo Real Duro: Alarma sísmica.


3.8. SISTEMAS OPERATIVOS DISTRIBUIDOS EN TIEMPO REAL.

Un sistema computacional distribuido está formado por varios elementos de procesamiento autónomos que cooperan en un objetivo común o para lograr una meta común, al hablar de funcionamiento en tiempo real hacemos referencia a que las aplicaciones tienes varios nodos dispersos que realizan operaciones complejas en un marco de soncronía con una margen de error de fracciones de segundo. Un Sistema en Tiempo real proporciona un tipo de transparencia equivalente a la proximidad física, de tal suerte que un cluster permite a un grupo de usuarios remotos y separados físicamente, interactuar y trabajar como si estuvieran en la misma habitación y teóricamente, en una misma computadora.

En un sistema distribuido hay ciertos factores que cobran especial importancia:

Soporte del lenguaje: el desarrollo de un programa distribuido se facilita en gran medida si el lenguaje y su entorno de programación soportan el particionado, la configuración, asignación y reconfiguración de la aplicación distribuida, junto a un acceso independiente de la ubicación de los recursos remotos.
Fiabilidad: disponer de varios procesadores permite que la aplicación sea tolerante a fallos; si bien, la aplicación deberá ser capaz de explotar esta redundancia. 

El disponer de varios procesadores también introduce la posibilidad de que aparezcan fallos distintos a los que aparecen en un sistema monoprocesador. 

Algoritmos de control distribuidos: La presencia de paralelismo real en la aplicación, procesadores físicamente distribuidos, y la posibilidad de que fallen los procesadores y los elementos de proceso, implica la necesidad de nuevos algoritmos para el control de los recursos.
Planificación con tiempos límite (deadlines): cuando los procesos son distribuidos, los algoritmos óptimos para un procesador dejan de serlo. Se precisan nuevos algoritmos.



3.9. BALANCEO DE CARGA EN SISTEMAS DISTRIBUIDOS


El balance o balanceo de carga es un concepto usado en informática que se refiere a la técnica usada para compartir el trabajo a realizar entre varios procesos, ordenadores, discos u otros recursos. Está íntimamente ligado a los sistemas de multiprocesamiento, o que hacen uso de más de una unidad de procesamiento para realizar labores útiles.
El balance de carga se mantiene gracias a un algoritmo que divide de la manera más equitativa posible el trabajo, para evitar los así denominados cuellos de botella.

Balance de carga en servidores web
Uno de los principales problemas de los mayores sitios web en Internet es cómo gestionar las solicitudes de un gran número de usuarios. Se trata de un problema deescalabilidad que surge con el continuo crecimiento del número de usuarios activos en el sistema.
Este servicio se puede brindar tanto con un enrutador como con una computadora con dos placas de red y software específico.
Hay balanceadores de carga tipo round-robin (uno a uno) y por pesos (que son capaces de saber cuál de los nodos está más libre y lanzarle la petición). El más conocido esLVS, sin embargo hay otros, como el Red Hat Piranha.

No hay comentarios:

Publicar un comentario