miércoles, 15 de mayo de 2013

CUESTIONARIO


1.- Define diferencia entre programación secuencial y concurrente
Concurrente: en esta se tiene más de una lógica de ejecución, es decir,  cuando un programa realice determinada función.
Secuencial: Son procesos que se ejecutan una tras otra
2.- Este término es utilizado para indicar un programa único en el que puede ver más de un contexto de ejecución activo simultáneamente
R= Concurrencia
3.- Menciona los 5 estados de una Hebra
Ejecución, en espera y bloqueado

4.- Explica el término de condición de competencia aplicable a una Hebra

Permite a los hilos suspender su ejecución y abandonar el procesador hasta que alguna porción de un código compartido sea satisfecho.

5.-  Explica cómo funciona el término de exclusión mutua para un hilo

Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.6.- Menciona cuales son las características de los procesos concurrentes.

7.- Cuales son los métodos que se utilizan en java para controlar los estados de una ebra (hilo)

Nuevo
Un hilo nuevo es uno que se ha creado y que está esperando su arranque para pasar al estado de preparación. Se crea con el operador "new".  Ejemplo:
Thread hiloInicial = new Thread (new hilosRunnable ("Hilo Primario", 3));

En preparación
Se denomina "hilo detenido", pues se encuentra listo para ejecutarse en espera del método "start", que lo arranque.

En Ejecución
Pasa a este estado después de arrancado mediante la "start", método que busca en la clase el método run () implementado para hacer correr el hilo. Se denomina "hilo vivo", y cuando el método isAlive () de la clase Thread devuelve "true" significa que está en estado de ejecución. Ejemplo:
if (objetoHilo.IsAlive == true)

Bloqueado
Esta situación se da cuando ha sucedido un evento que suspende la ejecución del hilo. JAVA utiliza dos métodos para bloquear un hilo: sleep () y wait (), que deriva de la clase Object. Es decir dormido y esperando:

·         Dormido
En este caso, el hilo no hace nada. Esto quiere decir que no utiliza la UCP. Es un método estático y se le llama pasando como argumento los milisegundos que el hilo permanecerá bloqueado. Opera sobre el hilo que se encuentra en actual ejecución. Ejemplo:
Thread.sleep (milisegundos);

·         Esperando
Acá se utiliza el método wait (), que pasará a estado de preparado utilizando los métodos notify () o notifyAll (), de la clase Object.

Muerto
Una vez terminado el método run() el hilo pasa a estado "muerto", en forma natural. En este estado, ya no es posible arrancar nuevamente el hilo. Habría que construir un nuevo objeto Thread y enviarle el comando "start".

Menciona los conceptos de:

aThreand
Intercambian entre si mensajes con información y mensajes de sincronismo. Representa un proceso individual ejecutándose en un sistema.

bYield
Este método hace que el intérprete cambie de contexto entre el hilo actual y el siguiente hilo ejecutable disponible. Es una manera de asegurar que los hilos de menor prioridad no sufran inanición.

cSleep
Mueve a la hebra del estado en ejecución a un estado bloqueado, donde espera una interrupción del temporalizador de intervalo. Ponga el hilo a dormir durante milisegundos y transcurridos esos dicho hilo volverá a estar disponible para su ejecución.

  Start
Indica al intérprete de java que cree un contexto de hilo del sistema y comience a ejecutarlo. Hay que tener precaución de no llamar el método start más de una vez sobre el hilo determinado.

eRun
Constituye el cuerpo de un hilo en ejecución. Este es el único método del interfaz Runnable. Es llamado por el método start después de que el hilo apropiado del sistema se haya inicializado.

f)     Stop
Provoca que el hilo se detenga de manera inmediata. Una forma más elegante de detener el hilo es utilizar alguna variable que ocasione que el método run termine de manera ordenada.

gSuspend
Toma el hilo y provoca que se detenga su ejecución sin destruir el hilo de sistema subyacente, ni el estado del hilo anteriormente en ejecución.

hResume
Se utiliza para revivir un hilo suspendido. No hay garantía de que el hilo comience a ejecutarse inmediatamente, ya que puede haber un hilo de mayor prioridad en ejecución actualmente.

i)     Runnable
Forma habitual de crear hilos.

No hay comentarios:

Publicar un comentario