Subido por Juarez soluciones

PracticaHilos

Anuncio
Practica 1. Simulación de hilos
Universidad Autónoma De Ciudad
Juárez
Rodolfo Cardenas
Mat 71769
Ingeniería En Sistemas
Computacionales
Sistemas Operativo Distribuidos
Unidad II
Procesos e Hilos “Threads”
Prof. Noé Ramón Rosales Morales
Índice
Introducción……………………………………………...………..2
Practica 1. Simulación de hilos………………………………….3
Evidencia...………………………………………………………...4
Evidencia...………………………………………………………...5
Conclusión…………………………………………………………6
Referencias Bibliográficas……………………………………….7
1
Introducción
Un proceso es una instancia de un programa, en otras palabras, es un programa en
ejecución. En un sistema con varios procesadores o al menos un procesador con
varios núcleos, cada proceso puede tener varios hilos de ejecución (threads) que
forman parte de la tarea del proceso y la llevan a cabo en paralelo.
Así que, para diferenciar el concepto de proceso e hilo, podemos decir que un
proceso recibe el nombre de proceso pesado, mientras que un hilo recibe el nombre
de proceso ligero, ya que solo forma una parte pequeña del proceso pesado.
El término multihilo hace referencia a la capacidad de un SO para mantener varios
hilos de ejecución dentro del mismo proceso.
Práctica 1. Simulación de hilos
Realizar el reporte correspondiente anote las observaciones concernientes a la
comparación de los programas con hilos y sin hilos, conteste las siguientes
preguntas y anoten sus conclusiones del equipo.
¿Cual ofrece más eficiencia? Y explique por qué.
Programar con hilos ofrece más eficiencia, debido a que permite realizar
múltiples tareas al mismo tiempo a diferencia de programar sin hilos, ya
que este último realiza las tareas de modo secuencial.
¿Cual ofrece mayor grado de dificultad para programar la simulación, el de con hilos
o el sin hilos?
Programar la simulación con hilos ofrece mayor grado de di ficultad, ya
que es necesario tener previo conocimiento básico de lo que es un hilo y
como es que se crea en cierto lenguaje, en nuestro caso fue C#, sin
embargo, abunda la información del tema en internet.
¿Cuál lenguaje es más apropiado para la programación concurrente?
Ada ya que es uno de los pocos lenguajes que provee estructuras
embebidas para programación concurrente y provee herramientas para
diseño de software de seguridad crítica y proyectos grandes que
requieran portabilidad y mantenimiento.
Occam porque es un lenguaje de procesamiento paralelo diseñado por un
equipo en INMOS en conjunto con el diseño del procesador transputer, y
basado en CSP. Este lenguaje incorpora soporte para un grano muy fino,
hilos de ejecución fáciles de usar y un ampl io soporte de ambientes
multiprocesadores. Este puede ser usado con sistemas de memoria
compartida o distribuida.
Evidencia
En esta imagen observamos la ejecución del proceso de ordenamiento de 30,000
números aleatorios; en este proceso se aplicaron los algoritmos de ordenamiento
Burbuja, Quick y Shell de modo secuencial por lo que podemos observar un
incremento en el tiempo en ejecución. Además, podemos observar que a pesar de
que no se implementaron hilos en esta función, la carga de trabajo del proceso se
distribuye en los procesadores del equipo.
En esta imagen podemos observar la ejecución del programa realizado en múltiples
hilos, correspondientes a los algoritmos de ordenamiento Burbuja, Quick y Shell de
30,000 números aleatorios, por lo que podemos notar que el tiempo en ejecución
de cada hilo es mucho menor que el tiempo en ejecución del proceso en modo
secuencial.
Conclusión
En conclusión, pudimos consolidar nuestro concepto de proceso e hilo, así como,
pudimos comprobar, que el implementar múltiples hilos, en vez de ejecutar un
proceso pesado, nos dará mayor eficiencia en cuestión de tiempo, y con esto darle
mayor fluidez, por así decirlo, a un programa (proceso).
Referencias Bibliográficas
Velázquez D., Procesos e Hilos, s.f., http://systope.blogspot.mx/2012/05/procesose-hilos.html.
López
D.,
Procesos
Vs
Hilos,
3
de
http://systope.blogspot.mx/2012/05/procesos-e-hilos.html.
mayo
del
2012,
Descargar