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,