Está en la página 1de 4

Taller

- Indique las caractersticas principales de los Hilos de Ejecucin.


- Describa el modelo Boss/Woker y Pipeline para el diseo de programas multihilados.
- Defina que es una seccin critica.
- Que caractersticas debe poseer una solucin vlida para el problema de seccin crtica?
- Define el concepto de variables concurrentes y los problemas asociados.

CONCLUSIN
1. Caractersticas principales de hilos en ejecucin

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.

Se tarda mucho menos en terminar un hilo que un proceso, ya que su cuando se elimina
un proceso se debe eliminar el PCB del mismo, mientras que un hilo se elimina su contexto
y pila.

Se tarda mucho menos tiempo en cambiar entre dos hilos de un mismo proceso.

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 si 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.

2. Describa el modelo Boss/Woker y Pipeline para el diseo de programas multihilados.

Modelos de Implementacin Multithread

Modelo Boss-Worker

Un thread funciona como jefe, y asigna tareas al resto para que las ejecuten.

Cuando el thread empleado termina, puede mandar una notificacin al jefe informndole del
resultado final, y de que est preparado para otra tarea, o es el propio jefe el que realiza un
"polling" sobre los empleados.

Variacin: el modelo de colas: el jefe pone sus trabajos en una cola accesible por el resto de los
threads, y estos los van capturando y ejecutando. Ejemplo: pool de secretarias, donde el jefe
va poniendo en una cesta los documentos que han de ser pasados a mquina.
Modelo Work Crew

Un conjunto de threads trabaja en paralelo sobre una tarea.


La tarea se divide horizontalmente en piezas, y cada thread ejecuta una de ellas.

Ejemplo: gente limpiando un edificio.

Modelo Pipelining

La tarea se divide VERTICALMENTE en pasos, que deben ser ejecutados secuencialmente.


Cada thread ha de ejecutar un paso, y avisar al siguiente thread para que realice el siguiente.

Ejemplo: fbrica de ensamblaje de automviles.

3. Seccin crtica

En programacin concurrente, se define como a la porcin de cdigo de un programa de


computador el cual accede a un recurso compartido (estructura de datos dispositivo) que no
debe de ser accedido por ms de un hilo en ejecucin (thread). La seccin crtica por lo general
termina en un tiempo determinado y el hilo, proceso tarea solo tendr que esperar un
perodo determinado de tiempo para entrar. Se necesita de un mecanismo de sincronizacin
en la entrada y salida de la seccin crtica para asegurar la utilizacin exclusiva del recurso, por
ejemplo un semforo.

El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro y
fuera de la seccin crtica. La seccin crtica se utiliza por lo general cuando un programa
multihilo actualiza mltiples variables sin un hilo de ejecucin separado que lleve los cambios
conflictivos a esos datos. Una situacin similar, la seccin crtica puede ser utilizada para
asegurarse de que un recurso compartido, por ejemplo, una impresora, puede ser accedida
por un solo proceso a la vez.

La manera en como se implementan las secciones puede variar dependiendo de los diversos
sistemas operativos.

Slo un proceso puede estar en una seccin crtica a la vez.

4. Que caractersticas debe poseer una solucin vlida para el problema de seccin crtica?

Para demostrar que se trata de una solucin vlida al problema de la seccin crtica vamos se tiene
que comprobar que se cumplan las propiedades de exclusin mutua, progreso y espera limitada.

5. Define el concepto de variables concurrentes y los problemas asociados.

Definimos concurrencia como:


Dos o ms procesos decimos que son concurrentes, paralelos, o que se ejecutan
concurrentemente, cuando son procesados al mismo tiempo, es decir, que para ejecutar
uno de ellos, no hace falta que se haya ejecutado otro.
En sistemas multiprocesador, esta ejecucin simultnea podra conseguirse
completamente, puesto que podremos asignarle, por ejemplo, un proceso A al procesador
A y un proceso B al procesador B y cada procesador realizaran la ejecucin de su proceso.

Cuando tenemos un solo procesador se producir un intercalado delas instrucciones de


ambos procesos, de tal forma que tendremos la sensacin de que hay un paralelismo en el
sistema (concurrencia, ejecucin simultnea de ms de un proceso).

Ahora bien, est claro que en esto tenemos que tener en cuenta que mientras un proceso
est escribiendo un valor en una variable determinada, puede darse el caso que otro
proceso que es concurrente al primero vaya a leer o escribir en esa misma variable,
entonces habr que estudiar el caso en el que un proceso haga una operacin sobre una
variable (o recurso en general) y otro proceso concurrente a l realice otra operacin de tal
forma que no se realice correctamente. Para estudiar esto, y determinar el tipo de
operaciones que se pueden realizar sobre recursos compartidos se utilizan las condiciones
de Bernstein.

También podría gustarte