Sunteți pe pagina 1din 31

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

SISTEMAS OPERATIVOS II

Pgina 1

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] INDICE

UNIDAD III

SISTEMAS OPERATIVOS II

Pgina 2

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

UNIDAD III PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS 3.1 PROCESOS Y PROCESADORES CONCEPTOS BASICOS

Un proceso es un programa en ejecucin. Estn formados 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 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.

la

Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso

SISTEMAS OPERATIVOS II

Pgina 3

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Todos los procesos tienen asociados un espacio de direcciones en memoria, registros y el contador de programas. Un programa para poderse ejecutar necesita estar en memoria principal.

Los procesos son sistema operativo.

dependientes

del

El espacio de direcciones se compone adems de direcciones para almacenar datos, cdigo, la pila y el heap (montculo). Toda la informacin de los procesos en los SO se guardan el PCB (Process Control Block) que es un arreglo o lista ligada que indica la descripcin de cada uno de los procesos. Los procesos tienen asignados un identificador de procesos (PID), el cual es la forma en que el SO trabaja con los procesos. La finalidad del administrador de procesos es realizar una buena administracin (planificacin) del tiempo de CPU.

Los procesos presentan tres estados bsicos: Ejecucin, Listo y Bloqueado. Un proceso est en ejecucin cuando tiene acceso real al tiempo de CPU. Un proceso est listo cuando se puede ejecutar, es decir, por algn motivo se suspendi para dejar ejecutar otro proceso Un proceso est bloqueado cuando est en espera de algn recurso (E/S) o de que ocurra un evento.

SISTEMAS OPERATIVOS II

Pgina 4

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Estos procesos pueden trabajar de manera cooperativa para la resolucin de un problema muy particular. Para ello necesitan comunicarse entre s y a lo que 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.

Modelo De Procesos Con Cinco Estados Ejecucin: si suponemos un computador con un nico procesador, entonces slo podr haber un proceso en este estado. Listo: proceso que est preparado para ejecutar, en cuanto se le d la oportunidad. Bloqueados: proceso que no puede ejecutar hasta que se produzca cierto suceso, como la terminacin de una operacin de E/S. Nuevo: proceso que se acaba de crear, pero que an no ha sido admitido por el sistema operativo en el grupo de procesos ejecutables. Terminado: un proceso que ha sido excluido del grupo de procesos ejecutables, porque se detuvo o porque fue abandonado por alguna razn

SISTEMAS OPERATIVOS II

Pgina 5

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Procesador Un procesador o mejor conocido como microprocesador es la unidad de hardware que se encarga de procesar los datos que estn almacenados en una computadora para producir cualquier tipo de informacin de inters para los usuarios. Un microprocesador se compone de una Unidad Lgica-Aritmtica (ALU) que se encarga de las operaciones bsicas dadas a travs de microprogramacin. Tambin se compone de una unidad de control encargada de la sincronizacin de todas las operaciones y de reas de almacenamiento principal llamadas registros y memoria cach. La problemtica principal es que existe una confusin muy amplia entre lo que es un sistema distribuido, un sistema multiprocesamiento, un sistema paralelo, etc.

SISTEMAS OPERATIVOS II

Pgina 6

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

3.2 Hilos y Multihilos

En sistemas operativos, un hilo de ejecucin o subproceso es la unidad de procesamiento ms pequea que puede ser planificada por un sistema operativo. Un hilo es una caracterstica que permite a una aplicacin realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecucin comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. Esta tcnica permite simplificar el diseo de una aplicacin que debe llevar a cabo distintas funciones simultneamente. Un hilo es bsicamente una tarea que puede ser ejecutada en paralelo con otra tarea. Los hilos de ejecucin que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecucin de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar stos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente. Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el estado de la CPU (incluyendo el valor de los registros). El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga activo. Cuando el proceso finaliza, todos sus hilos de ejecucin tambin han terminado. Asimismo en el momento en el que todos los hilos de ejecucin finalizan, el proceso no existe ms y todos sus recursos son liberados. Algunos lenguajes de programacin tienen caractersticas de diseo expresamente creadas para permitir a los programadores lidiar con hilos de ejecucin (como Java o Delphi). Otros (la mayora) desconocen la existencia de hilos de ejecucin y stos deben ser creados mediante llamadas de
SISTEMAS OPERATIVOS II Pgina 7

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

biblioteca especiales que dependen del sistema operativo en el que estos lenguajes estn siendo utilizados (como es el caso del C y del C++). Un ejemplo de la utilizacin de hilos es tener un hilo atento a la interfaz grfica (iconos, botones, ventanas), mientras otro hilo hace una larga operacin internamente. De esta manera el programa responde de manera ms gil a la interaccin con el usuario. Tambin pueden ser utilizados por una aplicacin servidora para dar servicio a mltiples clientes. Diferencias entre hilos y procesos Los hilos se distinguen de los tradicionales procesos en que los procesos son generalmente independientes, llevan bastante informacin de estados, e interactan slo a travs de mecanismos de comunicacin dados por el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. En muchos de los sistemas operativos que dan facilidades a los hilos, es ms rpido cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Este fenmeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen. Al cambiar de un proceso a otro el sistema operativo (mediante el dispatcher) genera lo que se conoce como overhead, que es tiempo desperdiciado por el procesador para realizar un cambio de contexto (context switch), en este caso pasar del estado de ejecucin (running) al estado de espera (waiting) y colocar el nuevo proceso en ejecucin. En los hilos, como pertenecen a un mismo proceso, al realizar un cambio de hilo el tiempo perdido es casi despreciable. Sistemas operativos como Windows NT, OS/2 y Linux (2.5 o superiores) dicen tener hilos "baratos", y procesos "costosos" mientras que en otros sistemas no hay una gran diferencia. Funcionalidad de los hilos Al igual que los procesos, los hilos poseen un estado de ejecucin y pueden sincronizarse entre ellos para evitar problemas de compartimiento de recursos. Generalmente, cada hilo tiene una tarea especfica y determinada, como forma de aumentar la eficiencia del uso del procesador. Estados de un hilo Los principales estados de los hilos son: Ejecucin, Listo y Bloqueado. No tiene sentido asociar estados de suspensin de hilos ya que es un concepto de proceso. En todo caso, si un proceso est expulsado de la memoria principal (ram), todos sus hilos debern estarlo ya que todos comparten el espacio de direcciones del proceso.
SISTEMAS OPERATIVOS II Pgina 8

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] Cambio de estados

UNIDAD III

Creacin: Cuando se crea un proceso se crea un hilo para ese proceso. Luego, este hilo puede crear otros hilos dentro del mismo proceso, proporcionando un puntero de instruccin y los argumentos del nuevo hilo. El hilo tendr su propio contexto y su propio espacio de la columna, y pasara a la final de los listos. Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea (salvando sus registros de usuario, contador de programa y punteros de pila). Ahora el procesador podr pasar a ejecutar otro hilo que est en la final de los Listos mientras el anterior permanece bloqueado. Desbloqueo: Cuando el suceso por el que el hilo se bloque se produce, el mismo pasa a la final de los Listos. Terminacin: Cuando un hilo finaliza se liberan tanto su contexto como sus columnas..

Ventajas de los hilos contra procesos Si bien los hilos son generados a partir de la creacin de un proceso, podemos decir que un proceso es un hilo de ejecucin, conocido como Monohilo. Pero las ventajas de los hilos se dan cuando hablamos de Multihilos, que es cuando un proceso tiene mltiples hilos de ejecucin los cuales realizan actividades distintas, que pueden o no ser cooperativas entre s. Los beneficios de los hilos se derivan de las implicaciones de rendimiento. 1. Se tarda mucho menos tiempo en crear un hilo nuevo en un proceso existente que en crear un proceso. Algunas investigaciones llevan al resultado que esto es as en un factor de 10. 2. Se tarda mucho menos en terminar un hilo que un proceso, ya que cuando se elimina un proceso se debe eliminar el BCP del mismo, mientras que un hilo se elimina su contexto y pila. 3. Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso 4. Los hilos aumentan la eficiencia de la comunicacin entre programas en ejecucin. En la mayora de los sistemas en la comunicacin entre procesos debe intervenir el ncleo para ofrecer proteccin de los recursos y realizar la comunicacin misma. En cambio, entre hilos pueden comunicarse entre s sin la invocacin al ncleo. Por lo tanto, si hay una aplicacin que debe implementarse como un conjunto de unidades de ejecucin relacionadas, es ms eficiente hacerlo con una coleccin de hilos que con una coleccin de procesos separados.

SISTEMAS OPERATIVOS II

Pgina 9

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] Sincronizacin de hilos

UNIDAD III

Todos los hilos comparten el mismo espacio de direcciones y otros recursos como pueden ser archivos abiertos. Cualquier modificacin de un recurso desde un hilo afecta al entorno del resto de los hilos del mismo proceso. Por lo tanto, es necesario sincronizar la actividad de los distintos hilos para que no interfieran unos con otros o corrompan estructuras de datos. Una ventaja de la programacin multihilo es que los programas operan con mayor velocidad en sistemas de computadores con mltiples CPUs (sistemas multiprocesador o a travs de grupo de mquinas) ya que los hilos del programa se prestan verdaderamente para la ejecucin concurrente. En tal caso el programador necesita ser cuidadoso para evitar condiciones de carrera (problema que sucede cuando diferentes hilos o procesos alteran datos que otros tambin estn usando), y otros comportamientos no intuitivos. Los hilos generalmente requieren reunirse para procesar los datos en el orden correcto. Es posible que los hilos requieran de operaciones atmicas para impedir que los datos comunes sean cambiados o ledos mientras estn siendo modificados, para lo que usualmente se utilizan los semforos. El descuido de esto puede generar interbloqueo. Formas de multihilos Los sistemas operativos generalmente implementan hilos de dos maneras:

Multihilo apropiativo: permite al sistema operativo determinar cundo 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 fenmeno conocido como inversin de prioridades y otros problemas. Multihilo cooperativo: depende del mismo hilo abandonar el control cuando llega a un punto de detencin, lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.

El soporte de hardware para multihilo se encuentra disponible desde hace relativamente poco tiempo. Esta caracterstica fue introducida por Intel en el Pentium 4, bajo el nombre de HyperThreading. Usos ms comunes Los usos ms comunes son en tecnologas SMPP y SMS para la telecomunicaciones aqu hay muchsimos procesos corriendo a la vez y todos requiriendo de un servicio.

SISTEMAS OPERATIVOS II

Pgina 10

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Trabajo interactivo y en segundo plano Por ejemplo, en un programa de hoja de clculo un hilo puede estar visualizando los mens y leer la entrada del usuario mientras que otro hilo ejecuta las rdenes y actualiza la hoja de calculo. Esta medida suele aumentar la velocidad que se percibe en la aplicacin, permitiendo que el programa pida la orden siguiente antes de terminar la anterior. Procesamiento asncrono Los elementos asncronos de un programa se pueden implementar como hilos. Un ejemplo es como los softwares de procesamiento de texto guardan archivos temporales cuando se est trabajando en dicho programa. Se crea un hilo que tiene como funcin guardar una copia de respaldo mientras se contina con la operacin de escritura por el usuario sin interferir en la misma. Aceleracin de la ejecucin Se pueden ejecutar, por ejemplo, un lote mientras otro hilo lee el lote siguiente de Estructuracin modular de los programas Puede ser un mecanismo eficiente para un programa que ejecuta una gran variedad de actividades, teniendo las mismas bien separadas mediante hilos que realizan cada una de ellas. Implementaciones Hay dos grandes categoras en la implementacin de hilos:

Hilos a nivel de usuario. Hilos a nivel de kernel.

Tambin conocidos como ULT (user level thread) y KLT (kernel level thread) Hilos a nivel de usuario (ULT) En una aplicacin ULT pura, todo el trabajo de gestin de hilos lo realiza la aplicacin y el ncleo o kernel no es consciente de la existencia de hilos. Es posible programar una aplicacin como multihilo mediante una biblioteca de hilos.

SISTEMAS OPERATIVOS II

Pgina 11

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

La misma contiene el cdigo para crear y destruir hilos, intercambiar mensajes y datos entre hilos, para planificar la ejecucin de hilos y para salvar y restaurar el contexto de los hilos. Todas las operaciones descritas se llevan a cabo en el espacio de usuario de un mismo proceso. El kernel continua planificando el proceso como una unidad y asignndole un nico estado (Listo, bloqueado, etc.). Ventajas de los ULT

El intercambio de los hilos no necesita los privilegios del modo kernel, porque todas las estructuras de datos estn en el espacio de direcciones de usuario de un mismo proceso. Por lo tanto, el proceso no debe cambiar a modo kernel para gestionar hilos. Se evita la sobrecarga de cambio de modo y con esto el sobrecoste u overhead. Se puede realizar una planificacin especfica. Dependiendo de que aplicacin sea, se puede decidir por una u otra planificacin segn sus ventajas. Los ULT pueden ejecutar en cualquier sistema operativo. La biblioteca de hilos es un conjunto compartido.

Desventajas de los ULT

En la mayora de los sistemas operativos las llamadas al sistema (System calls) son bloqueantes. Cuando un hilo realiza una llamada al sistema, se bloquea el mismo y tambin el resto de los hilos del proceso. En una estrategia ULT pura, una aplicacin multihilo no puede aprovechar las ventajas de los multiprocesadores. El ncleo asigna un solo proceso a un solo procesador, ya que como el ncleo no interviene, ve al conjunto de hilos como un solo proceso. Una solucin al bloqueo mediante a llamadas al sistema es usando la tcnica de jacketing, que es convertir una llamada bloqueante en no bloqueante.

Hilos a nivel de ncleo (KLT) En una aplicacin KLT pura, todo el trabajo de gestin de hilos lo realiza el kernel. En el rea de la aplicacin no hay cdigo de gestin de hilos, nicamente un API (interfaz de programas de aplicacin) para la gestin de hilos en el ncleo. Windows 2000, Linux y OS/2 utilizan este mtodo. Linux utiliza un mtodo muy particular en el que no hace diferencia entre procesos e hilos. Para Linux, si varios procesos creados con la llamada al sistema "clone" comparten el mismo espacio de direcciones virtuales, el sistema operativo los trata como hilos, y lgicamente son manejados por el kernel.

SISTEMAS OPERATIVOS II

Pgina 12

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] Ventajas de los KLT


UNIDAD III

El kernel puede planificar simultneamente mltiples hilos del mismo proceso en mltiples procesadores. Si se bloquea un hilo, puede planificar otro del mismo proceso. Las propias funciones del kernel pueden ser multihilo

Desventajas de los KLT

El paso de control de un hilo a otro precisa de un cambio de modo.

Combinaciones ULT y KLT Algunos sistemas operativos ofrecen la combinacin de ULTss y KLT, como Solaris,Ubuntu y Fedora. La creacin de hilos, as como la mayor parte de la planificacin y sincronizacin de los hilos de una aplicacin se realiza por completo en el espacio de usuario. Los mltiples ULT de una sola aplicacin se asocian con varios KLT. El programador puede ajustar el nmero de KLT para cada aplicacin y mquina para obtener el mejor resultado global. En un mtodo combinado, los mltiples hilos de una aplicacin se pueden ejecutar en paralelo en mltiples procesadores y las llamadas al sistema bloqueadoras no necesitan bloquear todo el proceso.

SISTEMAS OPERATIVOS II

Pgina 13

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

3.3 Modelos de Procesadores

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

3.3.1 El modelo de estacin de trabajo Consiste en un conjunto de estaciones de trabajo conectadas mediante una red local. En un momento dado, una estacin de trabajo est ocupada o bien no est siendo utilizada por ningn usuario. Decimos entonces que est ociosa. Algunas estaciones de trabajo tienen disco y otras no tienen disco. Estas ltimas conservan sus ficheros en el disco de otras estaciones, en las que ejecuta un servidor de ficheros. El servidor es accedido a travs de la red local. Las ventajas del modelo de estaciones de trabajo son varias. Por una parte, cada usuario tiene una potencia de clculo dedicada a l en exclusiva, lo que garantiza el tiempo de respuesta. Es posible utilizar aplicaciones grficas sofisticadas, ya que tienen acceso directo a un hardware grfico de altas prestaciones. Cada usuario tiene plena autonoma, de modo que puede utilizar los recursos de su mquina segn su propio criterio. El modelo tambin presenta inconvenientes. Uno de ellos es el descenso continuado de los precios de los procesadores. Pronto ser econmicamenta factible el que cada usuario disponga de diez UCP, e incluso cien. La pena es que deba adquirir cien estaciones de trabajo para aprovechar el precio del hardware. El otro es el de las estaciones de trabajo ociosas, ya que su potencia de clculo es desaprovechada. Los recursos de cmputo no estn bien gestionados. En ocasiones, algunos usuarios necesitan
SISTEMAS OPERATIVOS II Pgina 14

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

una estacin ms potente para ciertas aplicaciones mientras que si estas existen, tal vez estn ociosas. El primer problema, sin embargo, no es tal, ya que se soluciona construyendo estaciones de trabajo multiprocesador. Por ejemplo, a cada procesador puede asignrsele los trabajos arrancados desde una ventana dada.

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.

Uso de los discos en las estaciones de trabajo: Sin disco: Bajo costo, fcil mantenimiento del hardware y del software, simetra 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.

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?.
Pgina 15

SISTEMAS OPERATIVOS II

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Qu ocurre si regresa el poseedor de la mquina?. 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 y Controlados por el cliente. La localizacin de estaciones de trabajo en s no es problemtico, el problema radica en la sincronizacin de procesos entre las diferentes estaciones de trabajo.

Modelo de Pila de Procesadores Se dispone de un conjunto de cpu que se pueden asignar dinmicamente a los usuarios segn la demanda . Los usuarios no disponen de estaciones de trabajo sino de terminales grficas de alto rendimiento.

No existe el concepto de propiedad de los procesadores, los que pertenecen a todos y se utilizan compartidamente Este modelo basa su funcionamiento en la teora de colas. En general este modelo puede reducir significativamente el tiempo de espera al tener una sola cola de procesadores a repartir. La capacidad de cmputo se puede gestionar de mejor forma si se tiene micros con mayores capacidades.

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.

SISTEMAS OPERATIVOS II

Pgina 16

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] 3.4.- ASIGNACION DE PROCESADORES Asignacin de Procesadores

UNIDAD III

Son necesarios algoritmos para decidir cul proceso hay que ejecutar y en qu mquina Para el modelo de estaciones de trabajo:

Decidir cundo ejecutar el proceso de manera local y cundo buscar una estacin inactiva.

Para el modelo de la pila de procesadores:

Decidir dnde ejecutar cada nuevo proceso.

3.4.1 MODELOS Y ALGORITMOS CON SUS ASPECTOS DE DISEO E IMPLANTACIN. Modelos de Asignacin Generalmente se utilizan las siguientes hiptesis

Todas las mquinas son idnticas (o al menos compatibles en el cdigo); difieren a lo sumo en la velocidad. Cada procesador se puede comunicar con los dems. Las estrategias de asignacin de procesadores se dividen en:

No migratorias: Una vez colocado un proceso en una mquina permanece ah hasta que termina. Migratorias: Un proceso se puede trasladar aunque haya iniciado su ejecucin. Permiten un mejor balance de la carga pero son ms complejas. Los algoritmos de asignacin intentan optimizar algo:

Uso de las cpu: Maximizar el nmero de ciclos de cpu que se ejecutan para trabajos de los usuarios. Minimizar el tiempo de inactividad de las cpu. Tiempo promedio de respuesta:
SISTEMAS OPERATIVOS II Pgina 17

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

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 mquina dividido por el tiempo que tardara en cierto procesador de referencia.

Aspectos del Diseo de Algoritmos de Asignacin de Procesadores Los principales aspectos son los siguientes: Algoritmos deterministas vs. Heursticos. Algoritmos centralizados vs. Distribuidos. Algoritmos ptimos vs. subptimos. Algoritmos locales vs. Globales. Algoritmos iniciados por el emisor vs. Iniciados por el receptor.

Los algoritmos deterministas son adecuados cuando se sabe anticipadamente todo acerca del comportamiento de los procesos, pero esto generalmente no se da, aunque puede haber en ciertos casos aproximaciones estadsticas. Los algoritmos heursticos son adecuados cuando la carga es impredecible. Los diseos centralizados permiten reunir toda la informacin en un lugar y tomar una mejor decisin; la desventaja es que la mquina central se puede sobrecargar y se pierde robustez ante su posible falla. Generalmente los algoritmos ptimos consumen ms recursos que los subptimos, adems, en la mayora de los sistemas reales se buscan soluciones subptimas, heursticas y distribuidas. Cuando se va a crear un proceso se debe decidir si se ejecutar en la mquina que lo genera o en otra (poltica de transferencia): La decisin se puede tomar solo con informacin local o con informacin global.
SISTEMAS OPERATIVOS II Pgina 18

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Los algoritmos locales son sencillos pero no ptimos. Los algoritmos globales son mejores pero consumen muchos recursos. Cuando una mquina se deshace de un proceso la poltica de localizacin debe decidir dnde enviarlo: Necesita informacin de la carga en todas partes, obtenindola de: Un emisor sobrecargado que busca una mquina inactiva. Un receptor desocupado que busca trabajo.

Aspectos de la Implantacin de Algoritmos de Asignacin de Procesadores Casi todos los algoritmos suponen que las mquinas conocen su propia carga y que pueden informar su estado:

La medicin de la carga no es tan sencilla. Un mtodo consiste en contar el nmero de procesos (hay que considerar los procesos latentes no activos). Otro mtodo consiste en contar solo los procesos en ejecucin o listos. Tambin se puede medir la fraccin de tiempo que la CPU est ocupada. Otro aspecto importante es el costo excesivo en consumo de recursos para recolectar medidas y desplazar procesos, ya que se debera considerar el tiempo de CPU, el uso de memoria y el ancho de banda de la red utilizada por el algoritmo para asignacin de procesadores. Se debe considerar la complejidad del software en cuestin y sus implicancias para el desempeo, la correctez y la robustez del sistema. Si el uso de un algoritmo sencillo proporciona casi la misma ganancia que uno ms caro y ms complejo, generalmente ser mejor utilizar el ms sencillo. Se debe otorgar gran importancia a la estabilidad del sistema:

Las mquinas ejecutan sus algoritmos en forma asncrona por lo que el sistema nunca se equilibra. La mayora de los algoritmos que intercambian informacin:

Son correctos luego de intercambiar la informacin y de que todo se ha registrado. Son poco confiables mientras las tablas continan su actualizacin, es decir que se presentan situaciones de no equilibrio.

SISTEMAS OPERATIVOS II

Pgina 19

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Algoritmos de Asignacin de Procesadores Un Algoritmo Determinista Segn la Teora de Grficas Es aplicable a sistemas donde se conoce:

Requerimientos de CPU y de memoria de los procesos. Trfico promedio entre cada par de procesos.

Si el nmero de procesos supera al nmero de cpu:


Habr que asignar varios procesos a la misma cpu. La asignacin deber minimizar el trfico en la red.

El sistema se puede representar en una grfica con pesos:


Cada nodo es un proceso. Cada arco es el flujo de mensajes entre dos procesos.

El problema es encontrar la forma de partir la grfica en subgrficas sujetas a restricciones (ej.: de cpu y de memoria):

Los arcos que van de una subgrfica a la otra representan el trfico en la red. Cada subgrfica es una unidad de asignacin. El algoritmo debe buscar unidades de asignacin fuertemente acopladas: Trfico intenso dentro de la unidad de asignacin. Trfico escaso entre unidades de asignacin. Un Algoritmo Centralizado Es un algoritmo heurstico que a diferencia del anterior no precisa informacin anticipadamente. Es un algoritmo arriba-abajo (Mutka y Livny) centralizado porque un coordinador mantiene una tabla de usos: Contiene una entrada por estacin de trabajo inicializada en 0. Cuando ocurren eventos significativos se envan al coordinador mensajes para actualizar la tabla. Las decisiones de asignacin se basan en la tabla:

SISTEMAS OPERATIVOS II

Pgina 20

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Se toman cuando ocurren eventos de planificacin, tales como: se realiza una solicitud, se libera un procesador, el reloj produce una marca de tiempo. No se intenta maximizar el uso de la cpu. Se procura otorgar a cada usuario una parte justa del poder de cmputo. Cuando la mquina donde se crea un proceso decide que 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, la solicitud se niega y se registra. Si un usuario ejecuta procesos en mquinas de otros usuarios acumula puntos de penalizacin por segundo, lo que se registra en la tabla de usos. Si un usuario tiene solicitudes pendientes insatisfechas, se restan puntos de penalizacin. Si no existen solicitudes pendientes y ningn procesador est en uso, la entrada de la tabla de usos se desplaza un cierto nmero de puntos hacia el 0, hasta alcanzarlo. El movimiento de puntos hacia arriba y abajo da nombre al algoritmo.

Un puntaje positivo en una entrada de la tabla de usos indica que la estacin de trabajo relacionada es un usuario de los recursos del sistema. Un puntaje negativo significa que precisa recursos. Una puntuacin 0 es neutra. La heurstica utilizada para la asignacin de procesadores es la siguiente:

Cuando un procesador se libera gana la solicitud pendiente cuyo poseedor tiene la puntuacin menor. Un usuario que no ocupe procesadores y que tenga pendiente una solicitud durante mucho tiempo: Siempre vencer a alguien que utilice muchos procesadores. Se cumple con el principio de asignar la capacidad de manera justa. Un Algoritmo Jerrquico El algoritmo anterior no se adapta bien a los sistemas de gran tamao, pues el nodo central se convierte en un cuello de botella y en un nico punto de fallo. Una solucin son los algoritmos jerrquicos que:

Mantienen la sencillez de los centralizados. Se escalan mejor que los centralizados.


Pgina 21

SISTEMAS OPERATIVOS II

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Un mtodo consiste en organizar a los procesadores en jerarquas lgicas independientes de la estructura fsica:

Se establece un rbol jerrquico con distintos niveles. Para cada grupo de mquinas hay una mquina administradora: Mantiene un registro de las mquinas ocupadas y las inactivas. Cada procesador se comunica con un superior y un nmero reducido de subordinados: El flujo de informacin es controlable. En caso de falla de un equipo con funciones jerrquicas:

Lo puede reemplazar un subordinado: La eleccin la pueden hacer los subordinados, los pares jerrquicos del equipo fallado o el superior jerrquico del mismo.

Para disminuir la vulnerabilidad se puede tener en la cima del rbol jerrquico no uno sino un grupo de equipos; si alguno del grupo falla los restantes eligen a un subordinado para integrar el grupo superior. Las tareas se pueden crear en cualquier parte de la jerarqua y pueden requerir varios procesos, es decir varios procesadores. Cada administrador debe mantener un registro de sus equipos dependientes que estn disponibles. Si el administrador que recibe una solicitud determina que no tiene suficientes procesadores disponibles, transfiere la solicitud hacia arriba a su superior, quien tambin podra trasladarla hacia arriba nuevamente. Si el administrador determina que s puede satisfacer la solicitud:

Divide la solicitud en partes y la distribuye a los administradores subordinados a l. Los subordinados repiten esta operacin hasta llegar al nivel inferior. Los procesadores se sealan como ocupados y el nmero de procesadores asignados se informa hacia arriba. Un importante problema consiste en que podra haber varias solicitudes en distintas etapas del algoritmo de asignacin:

Puede conducir a estimaciones no actualizadas del nmero de procesadores disponibles (tambin pudieron salir de servicio algunos de los considerados disponibles). Podran presentarse situaciones de competencia, bloqueo, etc. en el intento de asignacin de procesadores.
SISTEMAS OPERATIVOS II Pgina 22

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] Un Algoritmo Distribuido Heurstico (Eager) Al crearse un proceso:

UNIDAD III

La mquina donde se origina enva mensajes de prueba a una mquina elegida al azar; pregunta si su carga est por debajo de cierto valor de referencia. Si la respuesta es positiva el proceso se enva a ese lugar. Si no, se elige otra mquina para la prueba. Luego de n pruebas negativas el algoritmo termina y el proceso se ejecuta en la mquina de origen. Un Algoritmo de Remates Utiliza un modelo econmico con:

Compradores y vendedores de servicios. 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 distintos procesadores caractersticas y servicios. pueden tener distintos precios segn sus

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 la enva a su primer opcin. Los procesadores:

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

SISTEMAS OPERATIVOS II

Pgina 23

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] 3.5 Coplanificacin

UNIDAD III

Se basa en el concepto de planificacin de un conjunto de tareas afines, llamado cuerpo de tareas. Los elementos individuales de un cuerpo de tareas tienden a ser pequeos y son, por lo tanto, parecidos a la idea de hilo. 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: Todos los procesadores ejecutan el proceso en el espacio Se deben mantener sincronizados los intervalos de tiempo Todos los miembros de un grupo se deben colocar en la misma n de espacio de tiempo pero en procesadores distintos.

3.6 Tolerancia a Fallos La tolerancia a fallos es un aspecto crtico para aplicaciones a gran escala, ya que aquellas simulaciones que pueden tardar del orden de varios das o semanas para ofrecer resultados deben tener la posibilidad de manejar cierto tipo de fallos del sistema o de alguna tarea de la aplicacin. Sin la capacidad de detectar fallos y recuperarse de estos, dichas simulaciones pueden no llegar a completarse. Es ms, algunos tipos de aplicaciones requieren ser ejecutadas en un entorno tolerante a fallos debido al nivel de seguridad requeridos. De cualquier forma, en ciertos casos debera haber algn modo de detectar y responder automticamente a ciertos fallos del sistema o al menos ofrecer cierta informacin al usuario en el caso de producirse un fallo. Las fallas se clasifican por lo general: TRANSITORIAS: Ocurren una vez y despus desaparecen. INTERMITENTE
Pgina 24

SISTEMAS OPERATIVOS II

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] Esta desaparece, reaparece, etc. PERMANENTE

UNIDAD III

Es aquella que continua existiendo hasta reparar el componente con el desperfecto. FALLAS DE SISTEMAS: La confiabilidad de un sistema es en particular importante en un Sistema distribuido, debido a la gran cantidad de componentes presentes, de ah la mayor posibilidad de que falle uno de ellos. Pero esto debe entenderse tambin como fallas del procesador, existen dos tipos de fallas del procesador: FALLA SALIENTES:

Un procesador que falla solo se detiene y no responde a las entradas subsecuentes ni produce ms entradas, excepto que anuncie que ya no est funcionando. FALLAS BIZANTINAS:

Un procesador que falla contina su ejecucin, proporcionando respuestas incorrectas a las preguntas, y posiblemente trabajando de manera maliciosa, para dar la impresin de que todo funciona de manera correcta aunque no sea as. 3.7 SISTEMAS DISTRIBUIDOS Y DE TIEMPO REAL Un sistema distribuido consiste en un conjunto de computadoras autnomas conectadas por una red y con soporte de software distribuido. Permite que las computadoras coordinen sus actividades y compartan los recursos de hardware, software y datos, de manera tal que el usuario percibe una nica facilidad de cmputo integrada aunque esta pueda estar implementada por varias mquinas en distintas ubicaciones. Los sistemas de tiempo real son aquellos que interactan con el mundo exterior donde el tiempo es un factor importante. CARACTERSTICAS. *Se activan por evento o por tiempo. *Su comportamiento debe ser predecible. *Deben ser tolerantes a fallas. *La comunicacin en los sistemas distribuidos de tiempo real debe de alto desempeo.

SISTEMAS OPERATIVOS II

Pgina 25

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

CLASIFICACIN. Los sistemas de tiempo real se clasifican en general en dos tipos dependiendo de lo serio de sus tiempos lmite y de las consecuencias de omitir uno de ellos. Estos son: 1. Sistemas de tiempo real suave: Significa que no existe problema si se rebasa un tiempo lmite. 2. Sistemas de tiempo real duro: Un tiempo lmite no cumplido es inaceptable, pues podra conducir la perdida.

SISTEMAS OPERATIVOS II

Pgina 26

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS]

UNIDAD III

Preguntas
1.- Qu es y cmo est formado un proceso? Es un programa en ejecucin y sesta formado por instrucciones destinada por el microprocesador, espacio de memoria, memoria de trabajo y elementos de planificacin. 2.- A qu se le denomina bifurcacin (fork)? Se le denomina al mecanismo por el cual un proceso crea otro proceso. 3.- Cules son los estados de los procesos? Nuevo, Ejecucin, Listo, Bloqueado y Terminado. 4.- Qu es un procesador? Un procesador o mejor conocido como microprocesador es la unidad de hardware que se encarga de procesar los datos que estn almacenados en una computadora para producir cualquier tipo de informacin de inters para los usuarios. 5.- Qu es un hilo de ejecucin? Es la unidad de procesamiento ms pequea que puede ser planificada por un sistema operativo. 6.- Qu comparten los hilos de ejecucin? Comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situacin de autenticacin, etc. 7.- Qu es propio de cada hilo? Lo que es propio de cada hilo es el contador de programa, la pila de ejecucin y el estado de la CPU (incluyendo el valor de los registros). 8.- Si uno hilo de ejecucin est activo, que sucede? El proceso sigue en ejecucin mientras al menos uno de sus hilos de ejecucin siga activo.

SISTEMAS OPERATIVOS II

Pgina 27

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] 9.- Qu pasa cuando un proceso finaliza?

UNIDAD III

Todos sus hilos de ejecucin tambin han terminado. Asimismo en el momento en el que todos los hilos de ejecucin finalizan, el proceso no existe ms y todos sus recursos son liberados. 10.- Cul es la diferencia entre hilos y procesos? Los hilos se distinguen de los tradicionales procesos en que los procesos son generalmente independientes, llevan bastante informacin de estados, e interactan slo a travs de mecanismos de comunicacin dados por el sistema. Por otra parte, muchos hilos generalmente comparten otros recursos de forma directa. 11.- A qu se debe que en muchos sistemas operativos sea ms fcil cambiar de un hilo a otro, que de un proceso a otro? Este fenmeno se debe a que los hilos comparten datos y espacios de direcciones, mientras que los procesos, al ser independientes, no lo hacen. 12.- Cmo funcionan los hilos? Generalmente, cada hilo tiene una tarea especfica y determinada, como forma de aumentar la eficiencia del uso del procesador. 13.- Cules son los estados de un hilo? Los principales estados de los hilos son: Ejecucin, Listo y Bloqueado. No tiene sentido asociar estados de suspensin de hilos ya que es un concepto de proceso. 14.- Qu sucede si un proceso es expulsado de la memoria RAM? Todos sus hilos debern estarlo ya que todos comparten el espacio de direcciones del proceso. 15.- Algunas ventajas de los hilos contra los procesos? Se tarda menos tiempo en crear hilos, cambiar entre hilos y terminarlos y aumenta la eficiencia de la comunicacin entre programas de ejecucin. 16.- Cules son los tipos de multihilos? Multihilos apropiativos y Cooperativos

SISTEMAS OPERATIVOS II

Pgina 28

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] 17.- Cules son los modelos de procesadores? De estacin de trabajo, pila de procesadores e hibrido. 18.- ?

UNIDAD III

SISTEMAS OPERATIVOS II

Pgina 29

[PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS] BIBLIOGRAFIA

UNIDAD III

Tanenbaum, Andrew (1996). Sistemas Operativos Distribuidos. Mxico, Prentice Hall

A. Tanenbaum, et al., Sistemas Operativos. Diseo e implementacin, 2da. Edicin, Prentice Hall, Mxico, 1998, ISBN: 970-17-0165-8.
Coulouris, G. et al., Distributed Systems, Concepts and Design, Second Edition, AddisonWesley, 1994.

Colouris, George, Dollimore, Jean, Kindberg, Tim (2001). Sistemas Distribuidos Conceptos y Diseo. 3a. Edicin. Espaa, Pearson AddisonWesley. http://antares.itmorelia.edu.mx/~jcolivar http://es.scribd.com/doc/20009715/03-Sistemas-Distribuidos-Procesadoresy-Procesos

SISTEMAS OPERATIVOS II

Pgina 30

S-ar putea să vă placă și