Está en la página 1de 104

Sistemas Operativos 2

Unidad 3. Procesos y procesadores en sistemas operativos distribuidos


MTI Elizabeth Razo

Temario
3.1. Conceptos bsicos de procesos y procesadores. 3.2. Mtodos de distribucin de carga (hilos, tareas, procesos). 3.3. Modelos de procesadores: de estacin de trabajo, de pila de procesadores, hbrido. 3.4. Asignacin de procesadores: modelo y algoritmos con sus aspectos de diseo e implantacin. 3.5. Coplanificacin. 3.6. Tolerancia a fallos: nivel proceso, nivel almacenamiento. 3.7. Esquemas de seguridad en sistemas distribuidos. 3.8. Sistemas operativos distribuidos en tiempo real. 3.9. Balanceo de carga en sistemas distribuidos.

Prctica para la Unidad 3. Planificacin de procesos por FIFO y el Round Robin

Planificacin FIFO, SJF, Round Robin


Para qu nos sirve la prctica? La simulacin nos permitir comprender el algoritmo de planificacin de procesos por FIFO, trabajo ms corto primero y turnos rotatorio o Round Robin. Cmo es la lgica? En la siguientes diapositivas

Planificacin: Primero en Llegar, primero en ser servido.


First In-First Out. Primero en entrar-primero en salir. Conocido como FCFS (First Come First Served). Este algoritmo emplea una cola de procesos, asignando un lugar a cada proceso por el orden de llegada. Cuando el proceso llega es puesto en su lugar en la cola despus del que lleg antes que l y se pone en estado de listo. Cuando un proceso comienza a ejecutarse no se interrumpe su ejecucin hasta que termina de hacerlo Planificacin de servicio por orden de llegada.

Planificacin: Ms corto primero no exclusivo


Su nombre es SJF (Shortest Job First). El proceso que se encuentra en ejecucin cambiar de estado voluntariamente, o sea, no tendr un tiempo de ejecucin determinado para el proceso. A cada proceso se le asigna el tiempo que usar cuando vuelva a estar en ejecucin, y se ir ejecutando el que tenga un menor tiempo asignado. Si se da el caso de que dos procesos tengan igual valor en ese aspecto emplea el algoritmo FCFS.

Planificacin Round Robin


Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum tambin se alterna el uso de la CPU. Este algoritmo presupone la existencia de un reloj en el sistema. Un reloj es un dispositivo que genera peridicamente interrupciones. Esto es muy importante, pues garantiza que el sistema operativo (en concreto la rutina de servicio de interrupcin del reloj) coge el mando de la CPU peridicamente. El cuantum de un proceso equivale a un nmero fijo de pulsos o ciclos de reloj. Al ocurrir una interrupcin de reloj que coincide con la agotacin del cuantum se llama al dispatcher (despachador).

Requerimientos
Se simularn 5 procesos, (P1, P2, P3, P4 y P5). Parmetros de entrada: Quantum, Tiempos de llegada y rfaga. Los resultados sern grficos, en una sola pantalla, cmo se van ejecutando los procesos en cada algoritmo, en una lnea de tiempo, en cada quantum.

Representacin grfica

Finaliza la prctica para la Unidad 3. Planificacin de procesos por FIFO, SCF y Round Robin

3.1. Conceptos bsicos de procesos y procesadores


Qu es un proceso? Es un programa en ejecucin. Un 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 ejecucin 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 contenidos. Otra informacin que permite al sistema operativo su planificacin.

Proceso
Cundo un programa se convierte en un proceso? Al ejecutarse necesitando estar en memoria principal, siendo administrado y llevado a ejecucin por el SO. Cmo la administra el sistema operativo? Existe un administrador de procesos el cual realiza una buena administracin (planificacin) del tiempo de CPU. ste utiliza: 1. El PCB (Process Control Block), un arreglo o lista ligada que indica la descripcin de cada uno de los procesos. 2. Un identificador de procesos (PID).

Proceso
Cules son los estados de los procesos?

Proceso
Las diferentes transiciones que pueden ocurrir entre los estados de los procesos son: a) NuevoListo: Al crearse un proceso pasa inmediatamente al estado listo. b) ListoEjecutando: En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar. c) EjecutandoListo: Ante una interrupcin que se genere, el proceso puede perder el recurso procesador y pasar al estado de listo. d) EjecutandoBloqueado: A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes(ejem.:genera un pedido de E/S). e) BloqueadoListo: Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos. f) Ejecutando-Terminado: Cuando el proceso ejecuta su ltima instruccin pasa al estado terminado. El sistema libera las estructuras que representan al proceso.

Proceso
Estados principales L(Listo) E(Ejecucin) y B(Bloqueado) Ejecucin: cuando tiene acceso real al tiempo de CPU.

Listo: cuando se puede ejecutar, es decir, por algn motivo se suspendi para dejar ejecutar otro proceso
Bloqueado: cuando est en espera de algn recurso (E/S) o de que ocurra un evento.

Proceso
Qu pasa si varios procesos estn trabajando sobre un fin comn, cmo se comunican? A nivel de SO se llama IPC (Inter Process Communication). La parte ms importante de la comunicacin entre procesos es sin duda la transferencia de mensajes entre los diversos procesos, sta puede llevarse acabo en base a dos primitivas, enviar y recibir, que se pueden aplicar a casi cualquier recurso como a los archivos (leer y escribir). La comunicacin entre procesos IPC se debe dar a travs del kernel del Sistema Operativo.

Procesador/Microcesador
Qu es? Es la unidad de HW que se encarga de procesar los datos que estn almacenados en una computadora para producir cualquier tipo de informacin de inters. Cmo est compuesto? 1. Unidad Lgica-Aritmtica (ALU). Encargada de las operaciones bsicas dadas a travs de microprogramacin. 2. Unidad de control (UC). Encargada de la sincronizacin de todas las operaciones y de reas de almacenamiento principal llamadas registros y memoria cach. 3. Memoria. Ah se guarda toda la informacin, registros, etc. que ayudarn a realizar las tareas de la ALU y UC.

Procesador/Microcesador
Esquema de los componentes:

Reflexin: Diferencia entre sistema multiprocesamiento, multincleo, paralelo y distribuido.

Clasificacin de los procesadores


Recordando Unidad 1, taxonoma de Flynn:
SISD (Single Instruction Single Data): monoprocesadores. SIMD (Single Instruction Multiple Data): procesadores vectoriales, como algunas computadoras \poderosas" de hace un par de decadas o algunas placas de video. MISD (Multiple Instruction Single Data): Poco Comun. A veces, para tolerancia a fallos MIMD (Multiple Instruction Multiple Data): sistemas distribuidos y paralelos en general.

Clasificacin de los procesadores


Los multiprocesadores: son sistemas que tienen ms de un Procesador o CPU, en los que se ejecutan ms de un proceso, realmente de modo simultneo, cada uno en un procesador diferente, se dividen en: Sistemas fuertemente acoplados o sistemas paralelos.
Poseen dos o ms procesadores de uso general similares y de capacidades comparables. Constan de un conjunto de procesadores comparten una memoria principal comn y reloj. Se encuentran bajo el control integrado de un sistema operativo. La comunicacin se realiza por medio de la memoria compartida. Sus principales usos son aplicaciones cientficas

En general, un sistema paralelo puede emular" a uno distribuido. Un sistema distribuido no comparten ni memoria ni el reloj.

3.2. Mtodos de distribucin de carga (hilos, tareas, procesos).


Qu es la concurrencia? El trmino concurrencia indica que se tienen dos o ms procesos al mismo tiempo en el mismo lugar; esto no implica que se estn ejecutando al mismo tiempo (paralelismo). Reflexin. Cmo se dara la concurrencia en un sistema monoprocesador?

Concurrencia
Cmo se clasifica la concurrencia? Concurrencia inherente: Hay sistemas que en los que forzosamente se dan actividades simultneas. Ej. GUI; red de cajeros automticos; etc. Concurrencia potencial: Hay sistemas o problemas que se pueden resolver de forma secuencial, pero en los que se puede aprovechar la concurrencia p.ej. para aumentar el rendimiento. Ej. multiplicar dos matrices, ordenar un vector

Tipos de procesos
Procesos padre. Es el creador de procesos subordinados o En multitarea, tanto el padre como el hijo se ejecutan concurrentemente. Proceso hijo. (Proceso pesado) Es un programa en ejecucin, con valores propios, informacin de estado, heredados del padre. Proceso hilo. (Proceso ligero) Posee ligera informacin de estado, similar comportamiento a los procesos. Proceso Init. Es el proceso de arranque init, es el primer proceso que se ejecuta en el sistema, es el ms importante, del que dependen el resto de todos los dems procesos. En el arranque de GNULinux, el ncleo ejecuta init. Este programa, ahora como proceso, cargar los subprocesos necesarios para la puesta en marcha del sistema.

Tipos de procesos
Procesos hurfanos: Cuando un proceso padre muere antes que el proceso hijo, este proceso queda hurfano y es adoptado por el proceso init. Procesos zombies: Un proceso que termina no puede abandonar el sistema hasta que su padre acepte su cdigo de retorno. Si el proceso padre ya est muerto, es adoptado por el proceso init'' el cual siempre acepta los cdigos de retorno de sus hijos. Sin embargo, si el proceso padre est vivo pero nunca ejecuta un wait(), el cdigo de retorno del proceso nunca ser aceptado y tal proceso se convierte en zombie. Un proceso zombie no tiene ni cdigo, ni stack, ni datos, pero continua habitando en la tabla de procesos.

Procesos hijos vs. Procesos hilos


Semejanzas: Los hilos operan, en muchos sentidos, igual que los procesos. Pueden estar en uno o varios estados: listo, bloqueado, en ejecucin o terminado. Tambin comparten la CPU. Slo hay un hilo activo (en ejecucin) en un instante dado. Un hilo dentro de un proceso se ejecuta secuencialmente. Cada hilo tiene su propia pila y contador de programa. Pueden crear sus propios hilos hijos. Diferencias: Los hilos, a diferencia de los procesos, no son independientes entre s. Como todos los hilos pueden acceder a todas las direcciones de la tarea, un hilo puede leer la pila de cualquier otro hilo o escribir sobre ella. Aunque pueda parecer lo contrario la proteccin no es necesaria ya que el diseo de una tarea con mltiples hilos tiene que ser un usuario nico. Cada hilo consta de instrucciones y estado de ejecucin, y el proceso consta de ms elementos (explicado en previas diapositivas).

Procesos hijos vs. Procesos hilos


Ventajas de los hilos sobre los procesos. Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear un nuevo proceso. Se tarda mucho menos tiempo en terminar un hilo que un proceso. Se tarda mucho menos tiempo en conmutar entre hilos de un mismo proceso que entre procesos. Los hilos hacen ms rpida la comunicacin entre procesos, ya que al compartir memoria y recursos, se pueden comunicar entre s sin invocar el ncleo del SO.

Ejemplos de uso de los hilos: Trabajo interactivo y en segundo plano: En un programa de hoja de clculo, un hilo podra estar leyendo la entrada del usuario y otro podra estar ejecutando las rdenes y actualizando la informacin. Procesamiento asncrono: Se podra implementar, con el fin de protegerse de cortes de energa, un hilo que se encargar de salvaguardar el buffer de un procesador de textos una vez por minuto. Estructuracin modular de los programas: Los programas que realizan una variedad de actividades se pueden disear e implementar mediante hilos.

Procesos hijos vs. Procesos hilos


Proceso Hijo Manejados por el SO Independientes de otros procesos Proceso Hilo Manejados por los procesos Relacionados con otros hilos del mismo proceso.

Memoria privada, se necesitan mecanismos de comunicacin para compartir informacin.


Tienen su propia pila, registros, datos y texto

Memoria compartida con el resto de hilos que forman el proceso.


Comparten atributos con sus procesos padres.

Toman un largo tiempo para Se crean y destruyen crearse y destruirse. rpidamente Se crean mediante el uso de fork(). Se crean mediante el uso de sproc().

Creacin de procesos (Ejemplo C en linux)


fork: En el momento de la llamada a fork el proceso hijo: - Es una copia exacta del padre excepto el PID. - Tiene las mismas variables y ficheros abiertos. - Las variables son independientes (padre e hijo tienen distintas memorias).

3.3. Modelos de procesadores: de estacin de trabajo, de pila de procesadores, hbrido.


En un sistema distribuido, con varios procesadores, un aspecto fundamental del diseo es cmo se les utiliza. Los procesadores distribuidos se pueden organizar de varias formas: Modelo de estacin de trabajo. Modelo de la pila de procesadores. Modelo hbrido.

Modelo: Estacin 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 rgido en cada una de ellas. Los usuarios tienen: Una cantidad fija de poder de cmputo exclusiva. Un alto grado de autonoma para asignar los recursos de su estacin de trabajo

Modelo: Estacin de trabajo (Esquema)

Uso de los discos en las estaciones de trabajo


Sin disco: Bajo costo, fcil mantenimiento del hardware y del software, simetra (una estacin de trabajo es tan buena como cualquier otra) y flexibilidad. Gran uso de la red, los servidores de archivos se pueden convertir en cuellos de botella. Con disco: Disco para paginacin y archivos de tipo borrador: Reduce la carga de la red respecto del caso anterior. Alto costo debido al gran nmero de discos necesarios.

Uso de los discos en las estaciones de trabajo


Los aspectos clave en el uso de las estaciones de trabajo inactivas son:
Cmo encontrar una estacin de trabajo inactiva?. Cmo lograr que un proceso remoto se ejecute de forma transparente?. Qu ocurre si regresa el poseedor de la mquina?.

Cmo encontrar una estacin de trabajo inactiva?


Generalmente se considera que una estacin de trabajo est inactiva cuando se dan ambas condiciones: Nadie toca el ratn o el teclado durante varios minutos. No se ejecuta algn proceso iniciado por el usuario. Los algoritmos para localizar las estaciones de trabajo inactivas se pueden dividir en dos categoras:
Controlados por el servidor. Cuando se publica en algn servidor de archivos o BD su disponibilidad y de ah se lee para saber que es una estacin inactiva. Controlados por el cliente. Cuando se enva a todos los nodos de la red este mensaje y cada nodo administra a qu nodo inactivo pedir ayuda.

Cmo encontrar una estacin de trabajo inactiva?


Dnde est la complejidad? El problema radica en la sincronizacin de procesos entre las diferentes estaciones de trabajo, qu pasa si 2 procesos encuentran desocupada a una mquina y la quieren utilizar?.

Modelo: Pila de procesadores


Es el modelo que utiliza la lgica de que en un cuarto de mquinas se apilen los procesadores y se les asigne de manera dinmica a los usuarios segn la demanda.

Terminales grficas. A los usuarios se les dan terminales grficas de alto rendimiento.
No existe el concepto de propiedad. Los usuarios obtienen tanto CPU como sea necesario, durante periodos cortos, despus selo regresara a la pila, de modo que otros usuarios puedan disponer de ellos; siguiendo la teora de colas.

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

Modelo: Pila de procesadores

Modelo: Hbrido
Combina las mejores caractersticas del modelo de estacin de trabajo y de pila de procesadores teniendo un mejor desempeo en las bsquedas y mejor uso de los recursos. La desventaja es el ser ms cara que las dos anteriores. Cmo funciona? El trabajo iterativo se lleva a cabo en las estaciones de trabajo, con una respuesta garantizada. Las estaciones inactivas no se utilizan, facilitando el diseo. Todos los procesos no interactivos se ejecutan en la pila de procesadores, as como todo el cmputo pesado en general. Ventajas Proporciona respuesta interactiva ms rpida, uso eficiente de recursos y un diseo sencillo.

3.4. Asignacin de procesadores: modelo y algoritmos con sus aspectos de diseo e implantacin.
En qu nos ayudan la asignacin de procesadores? En el SOD, en decidir en qu proceso se va a ejecutar y en qu mquina. Por ejemplo: Para el modelo de Estaciones de Trabajo Cundo ejecutar el proceso de manera local y cundo buscar una estacin inactiva?. Para el modelo de pila de procesadores En cada nuevo proceso debemos preguntarcundo ejecutar el proceso de manera local y cundo buscar una estacin inactiva?.

Modelos de Asignacin
Las estrategias de asignacin de procesadores se dividen en: 1. No migratoria. Al crearse un proceso, se toma una decisin de dnde colocarlo. Una vez colocado en una mquina, el proceso permanece ah hasta que termina. NO se puede mover. 2. Migratorios. Un proceso se puede trasladar aunque haya iniciado su ejecucin.

Reflexin. Cul permite un mejor balanceo de cargas?, Cules son ms complejas?

Objetivos de los algoritmos de asignacin


Deben preocuparse por: 1. Maximizar el uso de la CPU. Evitar a todo costo el tiempo inactivo del CPU. 2. Minimizacin del tiempo promedio de respuesta.

3. Minimizacin de la tasa de respuesta, que es la cantidad de tiempo necesaria para ejecutar un proceso en cierta mquina, dividido entre el tiempo que tardara en ejecutarse en cierto procesador de referencia, no cargado.

Aspectos de diseo
El diseador del SD debe pensar si implementar algoritmos con estos criterios: 1. Algoritmos determinas vs. Heursticos. Conocemos el comportamiento de los procesos?. 2. Algoritmos centralizados vs. distribuidos. Queremos recolectar toda la informacin en un lugar para tomar una mejor decisin?. 3. Algoritmos ptimos vs. subptimos. Intentamos encontrar la mejor asignacin, o slo una que sea aceptable?. 4. Algoritmos locales vs. Globales. Poltica de transferencia. 5. Algoritmos iniciados por el emisor vs. iniciados por el receptor. Poltica de localizacin.

Poltica de localizacin (emisor vs. Receptor)

Ejemplo: Un algoritmo centralizado - ArribaAbajo


Un coordinador mantiene una tabla de uso, con una entrada por cada estacin de trabajo personal, con un valor inicial a 0. Cuando ocurren eventos significativos, se pueden enviar mensajes al coordinador para actualizar la tabla. Las decisiones de asignacin se basan en esta tabla. Cundo se toman estas decisiones? 1. Cuando se realiza una solicitud. 2. Se libera un procesador. 3. El reloj hace una marca de tiempo.

(No intenta maximizar el uso de CPU, slo da a las estaciones una parte justa del poder de cmputo).

Ejemplo: Un algoritmo centralizado - ArribaAbajo


Cuando se va a crear un proceso y la mquina donde se crea decide que el proceso se debe ejecutar en otra parte, le pide al coordinador de la tabla de usos que le asigne un procesador. Si existe uno disponible y nadie ms lo desea, se otorga el permiso. Si no existen procesadores libres, la solicitud se niega por el momento y se toma nota de ella.

Valores en la tabla de uso: - Positiva. Indica que la estacin de trabajo es un usuario de los recursos del sistema. - Negativo. Necesita recursos. - Cero. Es neutra.

Diagrama de ejemplo

Ejemplo: Un algoritmo de remates


Utiliza un modelo econmico con: 1. Compradores y vendedores de servicios. 2. Precios establecidos por la oferta y la demanda. Los procesos deben comprar tiempo de CPU. Cada procesador anuncia su precio mediante un archivo que todos pueden leer (es el precio pagado por el ltimo cliente). Los procesadores pueden tener distintos precios segn sus caractersticas y servicios.

Ejemplo: Un algoritmo de remates


Cuando un proceso desea iniciar un proceso hijo:
Verifica si alguien ofrece el servicio que necesita. Determina el conjunto de procesadores que pueden prestar sus servicios. Selecciona el mejor candidato segn precio, rapidez, relacin precio/desempeo, tipo de aplicacin, etc. Genera una oferta y le enva su primer opcin.

Los procesadores:
Renen las ofertas recibidas y eligen una. Informan a los ganadores y perdedores. Ejecutan los procesos. Actualizan los precios.

3.5. Coplanificacin
Los planificadores no importando su complejidad deben respetar los siguientes elementos: equidad, eficiencia, tiempo de respuesta, retorno, volumen de produccin. Generalmente cada procesador hace su planificacin local (si tiene varios procesos en ejecucin) independientemente de lo que hacen los otros procesadores. La planificacin independiente no es eficiente cuando se ejecutan en distintos procesadores un grupo de procesos:
Relacionados entre s. Con una gran interaccin entre los procesos.

Se necesita una forma de garantizar que los procesos relacionados entre s iniciarn juntos. La comunicacin dentro de los grupos debe prevalecer sobre la comunicacin entre los grupos.

Algoritmos de planificacin
1. El algoritmo de round robin 2. Planificacin por prioridad 3. Colas mltiples:
-Planificacin dentro de cada cola: Cada cola puede utilizar su propia poltica de planificacin, de acuerdo a la clase de procesos que acoge, la cual puede ser usando diferentes algoritmos (FCFS, Round Robin, etc.). -Planificacin entre colas: 1. Se le asigna una prioridad (P) a cada cola. 2. Se le asigna un Quantum de CPU a cada cola, que se reparte entre los procesos de cada cola.

4. Primero el trabajo ms corto 5. Planificacin garantizada.


-Se realizan promesas (tiempos que realmente un proceso se debi de haber ejecutado), despus de determinado tiempo se checan estas proporciones, y si no es as, entonces se ejecuta primero el proceso con la promesa menos cumplida (1 cumplida, 0.5 promesa la mitad no cumplida, 2 promesa cumplida el doble de tiempo).

Algoritmos de planificacin
6. Planificacin por lotera
Se les reparte a cada proceso un boleto de lotera, cuando la CPU comienza a ejecutar se realiza el sorteo, aquel que tenga el boleto sacado, entra. El bsico trata a todos por iguales, y una variacin, implica repartirles ms boletos a aquellos procesos que tienen ms importancia.

En los Sistemas Distribuidos, generalmente cada micro hace su propio administracin local. Despus de tener un modelo de procesamiento y de un algoritmo de asignacin de procesadores, el siguiente gran reto es la administracin conjunta de los tiempos de uso de CPU de los procesos de forma global.

Ousterhout Coplanificacin (Paralelismo)


Ousthout (1982) propuso varios algoritmos con base en un concepto llamado coplanificacin, el cual toma en cuenta los patrones de comunicacin entre los procesos durante la planificacin para garantizar que todos los miembros de un grupo se ejecutan al mismo tiempo. Algoritmo Toma en cuenta los patrones de comunicacin entre los procesos durante la planificacin. Debe garantizar que todos los miembros del grupo se ejecuten al mismo tiempo. Se emplea una matriz conceptual donde:
Las filas son espacios de tiempo. Las columnas son las tablas de procesos de los procesadores.

Cada procesador debe utilizar un algoritmo de planificacin Round Robin.

Ousterhout - Coplanificacin
Cada procesador debe utilizar un algoritmo de planificacin Round Robin:
Todos los procesadores ejecutan el proceso en el espacio 0 durante un cierto perodo fijo. Todos los procesadores ejecutan el proceso en el espacio 1 durante un cierto periodo fijo, etc.

Se deben mantener sincronizados los intervalos de tiempo. Todos los miembros de un grupo se deben colocar en el mismo nmero de espacio de tiempo pero en procesadores distintos.

Ousterhout - Coplanificacin

Qu diferencia hay entre un sistema distribuido y uno paralelo?


Los objetivos de la programacin en paralelo de acuerdo con son: Reducir el tiempo de procesamiento utilizado por un algoritmo convencional Reducir la complejidad del algoritmo
Y en un sistema distribuido se trata de aprovechar mejor el hardware.

Qu es el paralelismo?
El paralelismo es la realizacin de varias actividades al mismo tiempo que tienen una interrelacin. El cmputo paralelo es la ejecucin de ms de un cmputo (clculo) al mismo tiempo usando ms de un procesador.
Objetivo: Reducir al mnimo el tiempo total de cmputo, distribuyendo la carga de trabajo entre los procesadores disponibles.

Clasificacin del paralelismo


Homoparalelismo:
Se da cuando el trabajo realizado por el algoritmo puede ser descompuesto en tareas idnticas (homogneas), cada una es una porcin del trabajo total. Por ejemplo, los lazos o ciclos compuestos de un nmero finito de iteraciones. En este caso todos los pedazos se ejecutaran y terminaran al mismo tiempo y solo tendrn dos puntos de sincronizacin, al inicio y al final.

Clasificacin del paralelismo


Heteroparalelismo: Es posible cuando el trabajo realizado por el
algoritmo puede ser distribuido en tareas diferentes, siendo cada tarea una porcin del algoritmo total. Por ejemplo, cualquier algoritmo con mltiples componentes independientes. En este caso solo tendrn un punto de sincronizacin al inicio de las tareas y posteriormente terminaran a diferentes tiempos dependiendo del tamao de los pedazos.

Cmo hacer que se sincronicen las mquinas en paralelo?


Tecnologa:
a) PVM: Parallel Virtual Machine Brinda rutinas en lenguajes C y en Fortran para procesos como paso de mensajes asincrnicamente y para el control de procesos. Adems de ofrecer un paralelismo escalable, entre otras muchas ventajas. b) MPI: Message Passing Interface Es una definicin estndar para envo de mensajes, permitiendo el uso de memoria compartida distribuida. Ejemplo de MPI: http://es.scribd.com/doc/45167244/Hola-Mundo-en-MPI-Linux

Cundo paralelizar?
Necesidad de respuesta inmediata de resultados. Al
ejecutar varias veces un programa en una mquina secuencial con diferentes datos de entrada, donde cada tiempo de ejecucin es considerable (horas o das), es inapropiado o costoso esperar tanto tiempo para volver a realizar otra ejecucin, afectando notablemente el desempeo de su mquina.

Problema de Gran Reto. Al tener un problema de clculo cientfico


intensivo que demandan grandes recursos de cmputo (CPU, memoria, disco), la frase "divide y vencers" tiene un significado ms amplio. Las tareas se dividen entre varios procesadores, se ejecutan en paralelo y se obtiene una mejora en la relacin costo - desempeo.

Elegancia de programacin. El programador escribe un algoritmo


paralelo aunque no se justifique ni por tiempo ni por uso intensivo de otros recursos.

Cmo debe de ser el estilo de programacin?


1. Tareas independientes,
por ejemplo, que existan ciclos for o do independientes, y rutinas o mdulos independientes. De tal forma que no existan dependencias de datos que dificulten la paralelizacin.

2. Detectar zonas donde se efecta la mayor carga de trabajo y que por lo tanto consumen la mayor parte de tiempo de ejecucin. Existen herramientas que permiten obtener una
perspectiva o perfil del programa. Por ejemplo, existen las bsicas, desde el profiler de un navegador hasta Origin 2000, en donde existen una amplia variedad de herramientas para llevar a cabo estas tareas, tanto herramientas que ofrece el mismo sistema de Origin 2000: SpeedShop, Perfex, etc como herramientas de dominio pblico que se pueden descargar e instalar: JumpShot, UpShot, Vampir, Paradyn, PAPI, etc

3.6. Tolerancia a fallos


La tolerancia a falla en sistemas con multiprocesamiento puede lograrse a travs de una buena sincronizacin entre procesos (IPC). Los IPC de POSIX son: cola de mensajes, tuberas, semforos y memoria compartida (discutida en la siguiente unidad)
Los IPC se ejecutan a nivel de kernel y no a nivel de usuario.

Tuberas
Las tuberas nos permiten redireccionar el flujo de salida de un proceso para ser la entrada de otro. A nivel de comandos se puede realizar con el operador | (pipe). Por ejemplo ls l | more, hace que la salida del comando ls sea la entrada de more, por lo que se ver pantalla por pantalla la informacin. Por un extremo de la tubera se lee, y por el otro se escribe. Ya depende de la lgica del programa ubicar que lado escribe y que lado lee. En general, primero se escribe y luego se lee. Se utiliza la biblioteca unistd.h*

Tuberas
Cmo usarlas? Para escribir en una tubera se realiza lo siguiente: write(tuberia[1], mensaje, strlen(mensaje)+1). Para leer: read(tuberia[0], mensaje, MAX) Las tuberas no son bidireccionales, slo van en un sentido, pero se pueden utilizar dos tuberas para pasar mensajes en ambas direcciones.
Cmo es su ejecucin? Se trabajan igual que un archivo slo que se bloquea cuando un proceso escribe en la tubera.

Colas de mensajes
La filosofa de las colas de mensajes es similar a las tuberas, pero con mayor versatilidad. Una cola es una estructura de datos gestionada por el kernel, en la cual varios procesos pueden escribir sobre ella. El sincronismo para evitar colisin lo realiza el kernel. En linux un programa C utiliza: 1. int msgget (key_t, int), funcin con que creamos la cola y nos devuelve un identificador para la misma. Para meter un mensaje en la cola, se utiliza la funcin msgsnd (int, struct msgbuf *, int, int)
El primer parmetro entero es el identificador de la cola obtenido con msgget().

Clasificacin de fallos

Clasificacin de fallos
Falla de procesos: cuando la ejecucin arroja un resultado incorrecto, los procesos provocan que el sistema se desve de las especificaciones y el proceso puede suspender su progreso. Ejemplos de errores que causan la falla de los procesos son los interbloqueos, tiempo expirado, violacin de proteccin, error en la entrada provista por el usuario, violaciones de consistencia (puede ocurrir si se emplea la tcnica de control de concurrencia optimista).
Falla del sistema: ocurre cuando el procesador falla en la ejecucin. Esto es causado por errores de software y problemas de hardware (como errores de CPU, falla en la memoria principal, falla en el bus, falla de energa, etc.). En el caso de una falla de sistema, el sistema es detenido y reiniciado en un estado correcto. El estado correcto puede estar en algn estado predefinido o en un estado anterior (punto de revisin) del sistema guardado en un almacenamiento no voltil.

Clasificacin de fallas de sistema


Falla de amnesia: ocurre cuando se reinicia el sistema en un estado predefinido, y no depende del estado del sistema antes de la falla. No se conoce el estado que tena el sistema antes de la falla.
Falla de amnesia parcial: ocurre cuando se reinicia el sistema y se conoce parte del estado que presentaba antes de ocurrir la falla. Tambin se predefine un estado inicial para fallas. Falla de pausa: ocurre cuando el sistema se reinicia al mismo estado en que se encontraba antes de la falla. Falla de aborto (halting): ocurre cuando un sistema nunca se reinicializa.

Clasificacin de fallas de sistema


Falla en medio de almacenamiento secundario: es cuando los datos almacenados no pueden ser accedidos (cualquiera de sus partes o en su totalidad). La causa de esta falla normalmente es provocada por error de paridad, dao de las cabezas lectoras, partculas de polvo depositadas en el medio. En caso de una falla en el medio de almacenamiento secundario, sus contenidos se encuentran alterados y deberan ser reconstruidos desde una versin del archivo, que se toma del registro histrico de actividades del archivo. Solucin: Para tolerar una falla del medio de almacenamiento secundario, el sistema puede ser configurado con un sistema de discos espejos. Un sistema de disco espejo generalmente son dos discos fsicamente independientes que se comunican con la memoria y/o con el CPU a travs de controladores y buses independientes. Esto hace que el almacenamiento de datos en un disco sea la imagen del otro. As, un sistema puede tolerar fallas de un disco de subsistema.

Clasificacin de fallas de sistema


Falla en los medios de comunicacin: una falla de un medio de comunicacin, ocurre cuando un sitio no puede comunicarse con otro sitio operacional de la red. Esto es ocasionado por la falla del nodo de conmutacin y/o por los enlaces de comunicacin del sistema. La falla de un nodo de conmutacin incluye la falla del sistema y la falla de almacenamiento secundario, por otro lado, la falla de enlace incluye una ruptura fsica y ruido en los canales de comunicacin.

Soluciones
1. Recuperacin de error hacia atrs. Lgica: Un proceso es restaurado a un estado anterior con la esperanza de que el estado anterior est libre de errores. Los puntos en la ejecucin de un proceso en los cuales los procesos pueden ser restaurados ms tarde se conocen como puntos de recuperacin. Se dice que un punto de recuperacin es recuperado cuando el estado actual de un proceso es remplazado por el estado del proceso en el punto de recuperacin. Una recuperacin hecha a nivel de proceso es simplemente un subconjunto de acciones necesarias para recuperar el sistema completo. En la recuperacin del sistema, todos los procesos que fueron activados necesitan ser restaurados a sus respectivos puntos de recuperacin y los datos modificados (en el almacenamiento secundario) por los procesos necesitan ser restaurados a su estado apropiado.

Soluciones / Almacenamiento estable


Para la solucin de recuperacin de error hacia atrs necesitamos implementar el almacenamiento estable, requiriendo: 1. Duplicar informacin en varios dispositivos de almacenamiento no-voltil con modos de fallo independientes. 2. Actualizar informacin de una manera controlada que asegure que podamos recobrar datos estables despus de una falla, incluso si hay falla durante la recuperacin.

Soluciones
Cmo funcionara esta solucin con el almacenamiento estable? La mquina esta conectada a un sistema de almacenamiento secundario y a un sistema de almacenamiento estable. Cuando un proceso accesa a un objeto dato almacenado en un medio secundario, el objeto dato es trado a la memoria principal, si ste no se encuentra ya en la memoria. Si el acceso es una operacin escribir, la copia del objeto en la memoria principal es actualizada. El objeto dato es eventualmente actualizado cuando la copia del objeto en la memoria principal es liberado al disco por el esquema de paginacin o cuando el proceso de actualizacin del objeto termina. El almacenamiento estable es usado para almacenar los registros histricos y los puntos de recuperacin. El contenido de ambos, almacenamiento secundario y almacenamiento estable pueden sobrevivir a las fallas del sistema.

Enfoque basado en la operacin


En el enfoque basado en la operacin, todas las modificaciones que son hechas al estado de un proceso son registrados con suficiente detalle, as los estados previos del proceso pueden ser restaurados dando marcha atrs a todos los cambios hechos al estado. El registro de la actividad del sistema es conocido como registro histrico.

Como un entorno basado en transacciones donde las transacciones modifican una base de datos. En tal ambiente es deseable tener la capacidad de comprometer o deshacer las modificaciones realizadas por una transaccin. El comprometer (commit) es una accin la cual indica que el proceso o la transaccin de actualizacin se ha completado con xito, y por lo tanto los cambios hechos a la base de datos pueden ser permanentes. Incluso antes de comprometer una transaccin, si se modific pudo haber sido registrada en la base de datos por el esquema de paginacin. Por lo tanto, si una transaccin no ha sido comprometida, la actualizacin de la base de datos podr deshacerse. Por otro lado, si una parte de la base de datos se pierde por un error de medio de almacenamiento, debera ser posible reconstruir esa parte.

Enfoque basado en el estado


En el enfoque basado en estado, para la recuperacin, el estado completo de un proceso es guardado cuando se establece un punto de verificacin y la recuperacin de un proceso involucra reincorporarle el estado guardado y reiniciar la ejecucin del proceso desde ese estado. Al proceso de guardado del estado tambin se le conoce como tomar un punto de verificacin. El punto de recuperacin, en los que se encuentra un punto de verificacin a menudo se le refiere como punto de revisin. Al proceso de restauracin de un proceso a un estado anterior se le refiere como rolar al procesos hacia atrs (rolling back), y el proceso de reiniciar la ejecucin en un estado anterior consume tiempo de CPU y retarda la terminacin del proceso, es preferible retroceder a un estado ms reciente tanto como sea posible. Por lo tanto, se acostumbra establecer muchos puntos de revisin.

3.7. Esquemas de seguridad en sistemas distribuidos


En la actualidad, la seguridad informtica ha adquirido gran auge, dadas las cambiantes condiciones y las nuevas plataformas de computacin disponibles. La posibilidad de interconectarse a travs de redes, ha abierto nuevos horizontes que permiten explorar ms all de las fronteras de la organizacin. Esta situacin ha llevado a la aparicin de nuevas amenazas en los sistemas computarizados. Las polticas de seguridad informtica (PSI) surgen como una herramienta organizacional para concientizar a cada uno de los miembros de la organizacin sobre la importancia y la sensibilidad de la informacin y servicios crticos que favorecen el desarrollo de la organizacin y su buen funcionamiento, debiendo trabajar en esquemas como:
Confidencialidad. Integridad. Autenticidad. No repudio. Disponibilidad de los recursos y de la informacin. Consistencia Control de acceso. Auditora.

3.7. Esquemas de seguridad en sistemas distribuidos


Confidencialidad. Consiste en proteger la informacin contra la lectura no autorizada explcitamente. Incluye no slo la proteccin de la informacin en su totalidad, sino tambin las piezas individuales que pueden ser utilizadas para inferir otros elementos de informacin confidencial. Integridad. Es necesario proteger la informacin contra la modificacin sin el permiso del dueo. La informacin a ser protegida incluye no slo la que est almacenada directamente en los sistemas de cmputo sino que tambin se deben considerar elementos como respaldos, documentacin, registros de contabilidad del sistema, trnsito en una red, etc. Esto comprende cualquier tipo de modificacin:
Causadas por errores de HW y/o SW. Causadas de forma intencional. Causadas de forma accidental.

Autenticidad. En cuanto a telecomunicaciones se refiere, la autenticidad garantiza que quien dice ser X es realmente X. Es decir, se deben implementar mecanismos para verificar quin est enviando la informacin.

3.7. Esquemas de seguridad en sistemas distribuidos


No-repudio. Ni el origen ni el destino en un mensaje deben poder negar la transmisin. Quien enva el mensaje puede probar que, en efecto, el mensaje fue enviado y viceversa. Disponibilidad de los recursos y de la informacin. De nada sirve la informacin si se encuentra intacta en el sistema pero los usuarios no pueden accesarla. Por tanto, se deben proteger los servicios de cmputo de manera que no se degraden o dejen de estar disponibles a los usuarios de forma no autorizada. La disponibilidad tambin se entiende como la capacidad de un sistema para recuperarse en caso de un problema. Consistencia. Se trata de asegurar que el sistema siempre se comporte de la forma esperada, de tal manera que los usuarios no encuentren variantes inesperadas. Control de acceso a los recursos. Consiste en controlar quin utiliza el sistema o cualquiera de los recursos que ofrece y cmo lo hace. Auditora. Consiste en contar con los mecanismos para poder determinar qu es lo que sucede en el sistema, qu es lo que hace cada uno de los usuarios y los tiempos y fechas de dichas acciones.

Qu ataques esperamos?
Negacin del servicio (denial of service o DoS). Tipo de ataque cuya meta fundamental es la de negar el acceso a un recurso determinado o a sus propios recursos, como: Tentativas de floodear (inundar) una red, evitando de esta manera el trfico legtimo de datos de la misma Tentativas de interrumpir las conexiones entre dos mquinas evitando, de esta manera, el acceso a un servicio. Tentativas de evitar que una determinada persona tenga acceso a un servicio, Tentativas de interrumpir un servicio especfico a un sistema o a un usuario. SOLUCIN(ES). Colocar access lists en los routers. Instalar patches al sistema operativo contra flooding de TCP SYN. Invalidar cualquier servicio de red innecesario o no utilizado. Implementar el sistema de cuotas a nivel del sistema operativo (disk quotas) para los logins.

Qu ataques esperamos?
Cracking de passwords. El objetivo inicial consiste en entrar al server. Para ello, se procede como si se tratase de una mquina remota (telnet). Pero, debido a que se permite el acceso a mltiples usuarios, los sistemas (UNIX) nos solicitarn un nombre de identificacin acompaado de una clave (/etc/password). SOLUCIN(ES). Forzar a que los usuarios introduzcan contraseas con caracteres especiales y de longitud mayor a 8 caracteres.

Qu ataques esperamos?
E-mail bombing y spamming. El email boombing consiste en enviar muchas veces un mensaje idntico a una misma direccin, saturando el mailbox del destinatario. El spamming enva el e-mail a centenares o millares de usuarios e, inclusive, listas de inters.
Nota. Existe el email spoofing, que altera la identidad de la cuenta que enva el email, logrando que sea ms difcil determinar quin est enviando realmente el mail.

SOLUCIN(ES). Identificar la fuente del e-mail bomb/spam y configurar el router para evitar el acceso de los paquetes entrantes de esa direccin, colocando un access list en el puerto 25 (SMTP) del tipo established para esa direccin.

Qu ataques esperamos?
TFTP (Trivial File Transport Protocol TFTP). Es un mecanismo sencillo de transferencia de archivos basado en UDP. Este protocolo no tiene autenticacin, constituyendo un problema potencial de seguridad. Es usado frecuentemente para atacar estaciones de trabajo.
$ tftp victima.com.ar Tftp> get /etc/password /tmp/passwd Received 4670 Bytes in 0.8 seconds tftp > quit

SOLUCIN(ES). No habilitar el tftp a menos que sea estrictamente necesario. Si se necesita, verificar que est correctamente configurado, para enviar slo los archivos correctos a slo los clientes autorizados.

Qu ataques esperamos?
Telnet. Telnet permite el acceso de terminal a un sistema. Si se realiza, debe ser sobre telnet seguro, pero la mayora se conecta por telnet; por lo tanto, colocando un sniffer el cracker puede saber qu contrasea y usuario (sino es que la sesin completa) se transfiri.

SOLUCIN(ES). Contar con un dispositivo programado mediante una clave secreta (challenge). El sistema que acepta el login enva un challenge, que el usuario digita en su dispositivo. Esto le devuelve la contrasea adecuada para el cdigo challenge enviado, siendo vlido slo para esa sessin.

Qu ataques esperamos?
Los comandos r (rlogin/rsh). Estos comandos permiten el acceso a una mquina remota sin ingresar password porque:
La conexin se origina en un puerto TCP privilegiado. El usuario y la mquina cliente deben ser listados en la mquina server como socios autenticados. La mquina cliente y direccin IP deben coincidir, estando listadas en el server.

El cracker utiliza tcnicas para entrar al sistema y, una vez adentro, obtener acceso a mquinas de confianza de la primera mquina hackeada.

SOLUCIN(ES). No tener disponibles estos servicios en sistemas accesibles directamente en internet. Programar un cron que se ocupa que los archivos .rhosts estn con los permisos en orden.

Qu ataques esperamos?
Seguridad en NetBIOS. Windows utiliza el protocolo NetBIOS (Network Basic Input Output System). Este protocolo a su vez debe ir sobre otro de inferior nivel que puede ser: NetBEUI, IPX/SPX, TCP/IP. Permite que un usuario, cualquiera de la red accesa a discos compartidos de la instalacin de NBT (NetBIOS/TCP) en Windows 95 contiene bugs que lo hacen vulnerables a ataques del tipo WinNUKE, o como el OOB (Out of Band) bug. SOLUCIN(ES). Los puertos utilizados por el servicio de NBT deben ser MUY cuidadosamente filtrados en el router que vincula la LAN con internet.

Herramientas comerciales
Herramienta TCP-WRAPPERS Descripcin Dominio pblico, desarrollado por Wietse Venema. Protege a los sistemas de conexiones no deseadas a determinados servicios de red, permitiendo a su vez ejecutar comandos ante determinadas acciones de manera automtica. Dominio pblico, desarrollado por la Unidad de Texas. Genera trazas referentes a servicios basados en IP (TCP, UDP) e ICMP, as como trfico en la red (los programas pueden ejecutarse en modo promiscuo) que pudiera ser sospechoso y que indicara un posible ataque a una mquina (por la naturaleza del trfico). Monitorea la red buscando ciertos protocolos con actividad inusual, como conexiones tftp, vrfy, expn, rpcinfo, mountd, etc. Detecta cambios en los patrones de uso de la red, que ayudan a sospechar sobre lo que est pasando. Audita el trfico IP que se produce en la red, mostrando las conexiones del tipo indicado que descubre. Imprime cabeceras de los paquetes que pasan por una interfaz de red. Chequea mquinas conectadas en red y genera informacin sobre el tipo de maquina, qu servicios de cada mquina y avisa de algunos fallos de seguridad que tengan dichas mquinas.

NETLOG

ETHERSCAN NSTAT ARGUS TCPDUMP Security Administrator Tool for Analyzing Networks

3.8. Sistemas operativos distribuidos en tiempo real.


Los sistemas de tiempo real interactan con el mundo exterior de una manera que implican al tiempo. Cuando aparece un estmulo, el sistema responde a ste de cierta manera y antes de cierto momento lmite. Si entrega la respuesta correcta, pero despus del lmite de tiempo, se considera que el sistema est fallando. Se caracterizan porque los procesos tienen que ejecutar en instantes predeterminados. Son sistemas para poder ejecutar satisfactoriamente tareas que han de completarse en un plazo prefijado de tiempo (ej. sistemas de control industrial, sistemas multimedia, sistemas de misin crtica).

Clasificacin de los sistemas en tiempo real


Crtico (rgido) (de tiempo real duro): para tareas que siempre deben cumplir los plazos de terminacin. Adecuados para la industria. Muy simples, incompatibles con tiempo compartido, memoria virtual, etc. No crtico (flexible) (de tiempo real suave): intentan cumplir los plazos, pero no los garantizan al 100%. Adecuados para multimedia, etc. Los tipos de tiempo pueden ser: Los de plazo fijo se ejecutan una vez en un instante determinado. Los peridicos se ejecutan cada cierto tiempo. Nota. Los sistemas en tiempo real crticos tienen asignada una franja de tiempo que no pueden rebasar.

Caractersticas principales
Suelen tener pocos procesos en estado de listo a fin de que no se retrase la ejecucin de los mismos. Se introducen retardos en la ejecucin, como puede ser la memoria virtual, puesto que la paginacin puede producir retrasos inadmisibles para el proceso. Los STR son altamente tolerante a fallas manejados por el sistema.

Ejecucin de una tarea en un sistema real

Aspectos de diseo
Sincronizacin del reloj. Deben mantener la misma hora. Con varias computadoras, cada una con su propio reloj local, la sincronizacin de los relojes es un aspecto fundamental. Sistemas activados por eventos vs. Sistemas activados por el tiempo.
En un sistema de tiempo real activado por eventos, cuando ocurre un evento significativo en el mundo exterior, es detectado por algn sensor, lo que entonces provoca que el CPU conectado tenga una interrupcin. Entonces estn controlados por las interrupciones. Qu pasa cuando varios eventos ocurren a la vez? Riesgo de sobrecargar el sistema. En un sistema de tiempo real activado por tiempo, ocurre una interrupcin del reloj cada cierto tiempo. En cada marca de reloj, los sensores muestrean y actores se controlan. No hay ms interrupciones que las marcas de reloj.

Predictibilidad. Su comportamiento debe ser predecible, que el sistema cumple con todos sus tiempos lmite, incluso con carga pico.

Aspectos de diseo
Tolerancia a fallas. Ms estricta para muchos sistemas (hospitales, vehculos, plantas de energa, etc.). Las soluciones clsicas, como rplica activa son utilizadas siempre y cuando no utilicen mucho tiempo, adems es necesario siempre prever el PEOR DE LOS ESCENARIOS. Soporte del lenguaje. Debe ser fcil expresar el trabajo como coleccin de tareas pequeas (procesos ligeros) que puedan planificarse de manera independiente, sujetos a la precedencia definida por el usuario y las restricciones de exclusin mutua. El lenguaje debe disearse de modo que se pueda calcular el tiempo mximo de ejecucin de cada tarea en el momento de su compilacin. (No while infinitos, for con parmetros constantes, no recursin, etc.).

Aspectos de diseo
Comunicacin en tiempo real. Ethernet no es aceptable como protocolo, porque no proporcionan una cota superior (tiempo de transmisin), es decir, si una mquina quiere enviar un paquete puede chocar con una o ms mquinas, esperando todas las mquinas un tiempo aleatorio. LAN con anillo de fichas si es aceptable porque puede garantizar que un paquete urgente llegue a cualquier parte del sistema, aceptando la variacin de trama con prioridades, o el protocolo TDMA (Time Division Multiple Access donde cada procesador tiene su propio espacio para mensajes).

Aspectos de diseo
Comunicacin en tiempo real. Ethernet no es aceptable como protocolo, porque no proporcionan una cota superior (tiempo de transmisin), es decir, si una mquina quiere enviar un paquete puede chocar con una o ms mquinas, esperando todas las mquinas un tiempo aleatorio. LAN con anillo de fichas si es aceptable porque puede garantizar que un paquete urgente llegue a cualquier parte del sistema, aceptando la variacin de trama con prioridades, o el protocolo TDMA (Time Division Multiple Access donde cada procesador tiene su propio espacio para mensajes).

Planificacin de tiempo real


Se programan con frecuencia como coleccin de pequeas tareas (hilos), con: Funciones bien definidas Tiempo de ejecucin con cota tambin bien definida. Los algoritmos de planificacin de tiempo real se pueden caracterizar mediante los parmetros: Tiempo real duro vs. Tiempo real suave. Planificacin con prioridad vs. Sin prioridad. Dinmico vs. Esttico. Centralizado vs. Descentralizado.

Planificacin de tiempo real


Los algoritmos de tiempo real deben garantizar que se cumple con todos los tiempos lmites. Los de tiempo suave pueden vivir con un mtodo del mejor esfuerzo. La planificacin con prioridad permite suspender una tarea de manera temporal al llegar una con mayor prioridad. Sin prioridad ejecuta cada tarea hasta terminarla. Los algoritmos dinmicos toman las decisiones de planificacin durante su ejecucin. Los algoritmos estticos toman las decisiones de antemano, antes de la ejecucin. Los algoritmos centralizados, una mquina recoge toda la informacin y toma todas las decisiones, o la descentralizada, en donde cada procesador toma sus decisiones.

3.9. Balanceo de carga en sistemas distribuidos.


El balanceo de carga es la manera en que las peticiones de Internet son distribuidas sobre una fila de servidores. Existen simples (balanceo de rutas): Round Robin (repartiendo todas las peticiones que llegan de Internet entre el nmero de servidores disponibles para dicho servicio) y tambin puede ser por reglas NAT. Hasta complejos: Clster. Los equipos que reciben las peticiones, recogen informacin en tiempo real, de la capacidad operativa de los equipos y la utilizan para enrutar dichas peticiones individualmente al servidor que se encuentre en mejor disposicin de prestar el servicio adecuado. Clasificacin de los balanceadores de carga: Hardware: tales como routers y switches que incluyen software de balanceo de carga preparado para ello. Software: que se instalan en el back end de los servidores.

Round Robin

Desventaja con ruteador en el round robin: Hay forma de saltearse el balanceo introduciendo la IP pblica. Qu pasa con las reglas NAT si se cae el ruteador principal?

Clster

Qu pasa si se cae el balanceador de cargas 1?

Generaciones de los balanceadores de carga


1G 1. La primera generacin puede detectar el rendimiento del servidor via "passive polling", lo que significa que el balanceador de carga mide el tiempo de respuesta de los servidores y por ello tiene una idea de cmo estn funcionando. De nuevo, tampoco se tiene en cuenta la variedad (caractersticas especiales, core duo) de servidores empleados. 2. Slo descubre que los servidores tienen un problema despus de que se producen retrasos o, en el peor de los casos, cuando los servidores estn completamente cados.

2G 1. El balanceador de carga continuamente realiza peticiones de datos de cada servidor en la granja de servidores para monitorizar sus condiciones y direccionar las peticiones de los clientes hacia el servidor que se encuentre ms disponible y en mejor estado para responder a dichas peticiones. Los parmetros solicitados, dependen del producto utilizado. Normalmente se emplea la utilizacin de la CPU del servidor, el uso de memoria y el nmero de conexiones abiertas. 2. Posee funciones de mensajera, informando si los servidores estn fuera de servicio, y si es as, cundo sern devueltos a produccin. La mayora de los servidores "revividos" pasan un perodo de prueba durante el cul no se llenan completamente de peticiones. Se puede incluso desconectar los servidores para repararse o para realizar el mantenimiento, a travs del mtodo de "apagado progresivo". El servidor, a partir de ese momento, no acepta nuevas peticiones pero permanece activo hasta que las transacciones de comercio electrnico y las descargas que se estn produciendo finalicen.

Generaciones de los balanceadores de carga

2G 3. Normalmente la segunda generacin de balanceadores de carga hardware se vende en parejas, es decir, dos equipos iguales. Uno de ellos es la unidad activa y el segundo la unidad de repuesto o de back up. Una unidad de back up en modo stand by (en espera) con una misma direccin IP y MAC significa que incluso cuando el balanceador se ve afectado por un incidente como puede ser un fallo de cableado, fuego o error humano, hay una unidad de repuesto pre-configurada que pasa a ser operacional de forma inmediata .

Generaciones de los balanceadores de carga

Algunos balanceadores de carga


Linux Virtual Server (LVS). Es una solucin para gestionar balance de carga en sistemas Linux. Es un proyecto de cdigo abierto iniciado por Wensong Zhang en mayo de 1998. El objetivo es desarrollar un servidor Linux de alto rendimiento que proporcione buena escalabilidad, confiabilidad y robustez usando tecnologa clustering. Y en la plataforma para Windows Server se tiene al ISA Server (Microsoft Internet Security and Accelaration Server). Existen softwares para el balance de carga, como "Wingate" en donde se pueden aadir dos redes y no es tan dificil de configurar.

Bibliografa
Aguas, N. (2009) Procesos y Procesadores en Sistemas Distribuidos. Cruz, E. y Garca O. (2003). Paralelizacin en la Supercomputadora Cray Origin 2000. Recuperado el 1 de octubre de 2012, de http://dinamica1.fciencias.unam.mx/DinamicaNoLineal/Proyectos/Supercomputo/Paralelizacion.pdf Colouris, G. , Dollimore, J., & Kindberg, T. (2001). Sistemas Distribuidos Conceptos y Diseo. 3a. Edicin. Espaa, Pearson Addison-Wesley. Tanenbaum, Andrew (1996). Sistemas Operativos Distribuidos. Mxico, Prentice Hall. Tanenbaum, A., et al., Sistemas Operativos. Diseo e implementacin, 2da. Edicin, Prentice Hall, Mxico, 1998, ISBN: 970-17-0165-8. Tanenbaum, Andrew, Van Steen, Maarten (2006). Distributed Systems Principles and Paradigms. Estados Unidos, Pearson Prentice Hall. Senn, J., Anlisis y Diseo de Sistemas de Informacin, 2da. Edicin, McGraw-Hill, Mxico, 1992, ISBN: 968-422991-7. Vogelmann, E. (2007). Seguridad de sistemas distribuidos. Recuperado el 30 de octubre de 2012, de: http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/seguridadsistemasdistribuidos.pdf Wacked, H. (Septiembre 9, 2000). Qu es el balanceo de carga?. Recuperado el 1 de noviembre de 2012, de : http://www.idg.es/computerworld/%C2%BFQue-es-el-balanceo-de-carga?/seccion-ges/articulo-111063 }

También podría gustarte