lunes, 29 de abril de 2013

cuestionario hilos


CUESTIONARIO

NOMBRE: DIANA ALEJANDRA SEGUNDO SÀNCHEZ

 

1.- Define diferencia entre programación secuencial y concurrente

PROGRAMACIÒN SECUENCIAL: conjunto de declaraciones de datos e instrucciones ejecutables escrito en un lenguaje de programación. Estas instrucciones deben ejecutarse, una de otra, siguiendo una secuencia determinada por un algoritmo, para resolver cierto problema. Un proceso es la ejecución de un programa secuencial en un sistema informático.

PROGRAMACIÒN CONCURRENTE: es un conjunto de teorías, métodos y herramientas, cuyo objetivo primordial es la construcción y verificación de programas formados por múltiples actividades que se ejecutan concurrentemente para llevar a cabo una cierta tarea.


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: PROGRAMA PARALELO


3.- Menciona los 5 estados de una hebra

R: LISTO,  EJECUCIÒN,  PROCESO


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

R: 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 como funciona el término de exclusión mutua para un hilo

R: 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 hebra (hilo)

Nuevo

R: 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

R: Se denomina "hilo detenido", pues se encuentra listo para ejecutarse en espera del método "start", que lo arranque. 

 

En Ejecución

R: 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étodoisAlive () 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 ()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". 

 


8.- Menciona los conceptos de:
a) Threand

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

 
b)  Yield

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.

 
c) Sleep

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

    d) 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.

 
e) Run

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.

 
g) Suspend

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.


   h) Resume

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