miércoles, 15 de mayo de 2013

HILO2


UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO
CENTRO UNIVERSITARIO ATLACOMULCO
  

INGENIERIA EN COMPUTACION


TIPOS DE SISTEMAS OPERATIVOS

USO DE HILOS

2do PARCIAL


LIC.ELIZABETH EVANGELISTA
YABIN GONZAGA LOPEZ



8° SEMESTRE
ICO – 14


ATLACOMULCO MEXICO, MAYO 2013.
Elabora 1 programa utilizando 4 hebras, dónde utilices números aleatorios entre 1-10000, la primera hebra hará la suma de x+y; la hebra 2 x-y; la hebra 3 x (*) y; la 4 hebra x/y.


Como se observa, en la imagen las operaciones se realizan con números aleatorios.

lunes, 13 de mayo de 2013

Hilo 1



UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO
CENTRO UNIVERSITARIO ATLACOMULCO



INGENIERIA EN COMPUTACION


TIPOS DE SISTEMAS OPERATIVOS

USO DE HILOS

2do PARCIAL


LIC.ELIZABETH EVANGELISTA
YABIN GONZAGA LOPEZ



8° SEMESTRE
ICO – 14


ATLACOMULCO MÉXICO, MAYO 2013.
EJERCICIO #1
Elaborar un programa utilizando 2 hilos, dónde la hebra 1 haga la suma de los números del 1-25000; la segunda hebra hará la suma de 25001-50000; presentar los resultados en pantalla.
RESULTADO:



Como se puede observar en la imagen de arriba, primero se ejecuta un hilo y después el otro, así se realiza el proceso de manera mas fácil; el resultado se realizo con otro rango de números diferentes a los establecidos en el programa, esto con la finalidad de comprobar que realmente funcionan los hilos.

miércoles, 8 de mayo de 2013

PRIORIDAD Y SECCION CRITICA


UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO
CENTRO UNIVERSITARIO ATLACOMULCO



INGENIERIA EN COMPUTACION


TIPOS DE SISTEMAS OPERATIVOS

SECCION CRITICA Y PRIORIDAD
2do PARCIAL


LIC.ELIZABETH EVANGELISTA
YABIN GONZAGA LOPEZ



8° SEMESTRE
ICO – 14


ATLACOMULCO MEXICO, MAYO 2013.




PROPÓSITO :
El docente determinara mediante la ejecución de un caso práctico en java de las principales  diferencias entre los conceptos de prioridad y sección critica aplicables a los sistemas operativos.
Procedimiento
Ejecutará los programas y elabora un cuadro comparativo de las principales diferencias que identifiques durante y después de la ejecución del código fuente y define con tus propias palabras los conceptos de sección crítica y prioridad.
Diferencia entre sección crítica y prioridad

Seccion critica
prioridad
Se llama sección crítica
a los segmentos de código dentro de un programa que acceden a zonas de memoria comunes desde distintos threads que se ejecutan  concurrentemente

El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro y fuera de la sección crítica. La sección crítica se utiliza por lo general cuando un programa multihilo actualiza múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a esos datos.
El scheduler determina el thread que debe ejecutarse en función de la prioridad asignada a cada uno de ellos. El rango de prioridades oscila entre 1 y 10. La prioridad por defecto de un thread es Thread.NORM_PRIORITY, que tiene asignado un valor de 5. Hay otras dos variables estáticas disponibles, que son Thread.MIN_PRORITY, fijada a 1, y Thread.MAX_PRIORITY, aque tiene un valor de 10.
El método getPriority() puede utilizarse para conocer el valor actual de la prioridad de un thread.
Java tiene un Planificador (Scheduler), una lista de procesos, que muestra por pantalla todos los hilos que se están ejecutando en todos los programas y decide cuáles deben ejecutarse y cuáles deben encontrarse preparados para su ejecución. Hay dos características de los hilos que el planificador tiene en cuenta en este proceso de decisión.
·         La prioridad del hilo (la más importante).
·         El indicador de demonio (que pasaremos a explicar en los siguientes apartados).
MAX_PRIORITY (= 10): es el valor que simboliza la máxima prioridad.
MIN_PRIORITY (= 1): es el valor que simboliza la mínima prioridad.
NORM_PRIORITY (= 5): es el valor que simboliza la prioridad normal, la que tiene la hebra creada durante el arranque de la máquina virtual y que se encarga de ejecutar la función main().


RESULTADO DE LA EJECUCION DEL PROGRAMA DE PRIORIDAD
RESULTADO DE LA EJECUCION DEL PROGRAMA DE SECCION CRITICA



FIBONACCI


UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO
CENTRO UNIVERSITARIO ATLACOMULCO



INGENIERIA EN COMPUTACION


TIPOS DE SISTEMAS OPERATIVOS

SERIE DE FIBONACCI
2do PARCIAL


LIC.ELIZABETH EVANGELISTA
YABIN GONZAGA LOPEZ



8° SEMESTRE
ICO – 14


ATLACOMULCO MEXICO, MAYO 2013.

SE EJECUTA EL PROGRAMA DE FIBONACCI CON UNA SERIE DEL 1-100.
LO QUE HACE LE FIBONACCI ES SUMAR EL NUMERO ANTERIOR AL  ACTUAL  Y ASI SUCESIVAMENTE (1+1=2+1=3+2…)
A CONTINUACION, SE MUESTRA EL CODIGO UTILIZADO
package seriefibunacci;
public class Seriefibunacci {
    public static long fib(int n) {
if (n <= 1) return n;
else return fib(n-1) + fib(n-2);
}
    public static void main(String[] args) {
        int N = 100;
for (int i = 1; i <= N; i++)
System.out.println(i + ": " + fib(i));         // TODO code application logic here
    }
}
Y AQUÍ SE MUESTRA SU EJECUCION:

COMO SE PUEDE OBSERVAR, LA EJECUCIÓN AUN NO TERMINA PORQUE EL PROGRAMA ESTA PREDETERMINADO A 100 VECES, LO QUE SIGNIFICA QUE SE SUMARA 100 VECES Y APENAS VA EN LA EJECUCIÓN NUMERO 48, DESPUÉS DE ESTE NUMERO DE EJECUCIONES, LA FORMA DE PROCESAR ESTE CÓDIGO, LA MAQUINA TARDA CADA VEZ MAS EN CADA EJECUCIÓN PARA DETERMINAR EL SIGUIENTE RESULTADO, SI LO HARÍA, PERO EL TIEMPO DE EJECUCIÓN SERIA MUCHO; PARA ESTO SE UTILIZAN LOS HILOS LOS CUALES SON PROCESOS DE PROCESOS, ES DECIR, SON SUBPROCESOS.



CUESTIONARIO


UNIVERSIDAD AUTONOMA DEL ESTADO DE MEXICO
CENTRO UNIVERSITARIO ATLACOMULCO



INGENIERIA EN COMPUTACION


TIPOS DE SISTEMAS OPERATIVOS

CUESTIONARIO
2do PARCIAL


LIC.ELIZABETH EVANGELISTA
YABIN GONZAGA LOPEZ



8° SEMESTRE
ICO – 14


ATLACOMULCO MEXICO, MAYO 2013.

                1.- DIFERENCIA ENTRE PROGRAMACION SECUENCIAL Y PROGRAMACION CONCURRENTE
PROGRAMACION SECUENCIAL
PROGRAMACION CONCURRENTE
Hasta ahora se ha trabajado con programas secuenciales
–Se ejecuta paso a paso
Son deterministas: si se ejecutan varias veces en las mismas condiciones, en diferentes equipos, da los mismos resultados

En lo que sigue se trata de programación concurrente
En cada momento puede haber varios fragmentos en ejecución más o menos simultánea
Dos ejecuciones, en las mismas circunstancias, pueden producir resultados diferentes

2.- ESTE TERMINO ES UTLIZAIDO EN LA PROGRAMACION CONCURRENTE PARA INDICAR UN PROGRAMA UNICO EN EL QUE PUEDE HABER MAS DE UN CONTEXTO DE EJECUCIÓN ACTIVOS SIMULTANEAMENTE?
àCONCURRENCIA: SIMULTANEIDAD DE 2 SUCESOS
GALACISMO POR COMPETENCIA, RIVALIDAD
3.- MENCIONA LOS 5 ESTADOS DE UNA HEBRA
àCREACION,BLOQUEO,DESBLOQUEO Y TERMINACION.
4.-EXPLICA COMO FUNCIONARIA EL TERMINO DE EXCLUSION MUTUA PARA UN HILO?
àPARA QUE LAS HEBRAS ACCEDAN A LOS RECURSOS DE FORMA CONTROLADA DE MODO QUE UNA HEBRA SEA DUEÑA DE UN RECURSO EN UN DETERMINADO MOMENTO.EL LENGUAJE JAVA INDICA LA EJECUCION EN EXCLUSION MUTUA. PARA ESO, TANTO EL COMPILADOR COMO LA MAQUINA VIRTUAL TRABAJAN DE MANERA CONJUNTA, PARA QUE LA EXCLUSION SE LLEVE A CABO.
JAVA PERMITE 2 MODOS DE SINCRONIZACIÓN
1.- METODOS SINCRONIZADOS
2.- METODOS DE CLASE (STATIC)
5.-CARACTERISTICAS DE LOS PROCESOS CONCURRENTES?
àVARIOS FRAGMENTOS EN EJECUCION
à2 EJECUCIONES CASI IGUALES GENERAN DISTINTOS RESULTADOS
6.-METODOS QUE UTILIZA JAVA PARA CONTROLAR LOS ESTADOS DE UNA HEBRA
START, SLEEP, JOIN,YIELD
7.-CONCEPTOS
THREAD:
àUNICO FLUJO DE CONTROL DENTRO DE UN PROGRAMA LLAMADO CONTEXTO DE EJECUCION, POR QUE CADA THREAD TIENE RECURSOS PROPIOS.
YIELD:
àMUEVE AL THREAD DESDE EL ESTADO DE CORRIENTE AL FINAL DE LA COLA DE PROCESOS EN ESPERA POR LA CPU
SLEEP:
àPONE A DORMIR UN THREAD POR UN TIEMPO MINIMO ESPECIFICADO
START:
àUSADO PARA INICIAR EL CUERPO DE LA THREAD DEFINIDO POR EL METODO RUN
RUN:
àINDICA TODO LO QUE EL HILO EN SU VIDA: SECUENCIA DE ACCIONES CICLO DENTRO DE UN FOR
STOP:
àDETIENE LA EJECUCION D E LA THREAD NO IMPORTANDO CONSIDERACION ALGUNA
SUSPEND:
àPARA TEMPORALMENTE LA EJECUCION DE UN THREAD
RESUME:
àREACTIVA UN THREAD SUSPENDIDA
RUNABLE:
àPROPORCIONA LA CAPACIDAD DE AÑADIR LA FUNCIONALIDAD DE UN HILO O UNA CLASE, SIMPLEMENTE IMPLEMENTADO LA INTERFAZ