Sunteți pe pagina 1din 2

Proyecto 1 - Procesos e Hilos

Sistemas Embebidos
Pontificia Universidad Javeriana
2015-II
Fecha de Entrega: Septiembre 8

Resumen
Los sistemas operativos nos presentan multiples servicios que facilitan la implementacion de aplica-
ciones complejas. En este proyecto se utilizaran Hilos (procesos) un concepto fundamental en Linux para
paralelizar tareas dentro de una misma aplicacion.

1. Descripcion del Problema


Objetivo Experimentar con las diferencias entre crear procesos y crear hilos en Linux y analizar sus ventajas
y limitaciones.

Escriba dos programas en C que genere el numero de Fibonacci n, donde n es (un numero natural)
recibido como entrada. En el primer programa, el numero es generado en un nuevo proceso; en el segundo
es generado en un nuevo hilo. Tome como referencia el ejercicio 3.15 (pg. 143) y 4.14 (pg. 175) del libro de
referencia en sistemas operativos [1].
Ud recibe como referencia un codigo fuente (fib.c) de un programa que calcula el n-esimo numero de
Fibonacci. No tiene la obligacion de usarlo, y solo se entrega como gua. Basado en [2].
Debera generar un conjunto de experimentos que le permitan diferenciar el overhead para los procesos y
los hilos con el objetivo de calcular los numeros de Fibonacci. Estas son algunas ideas que puede probar:

El numero es generado dentro de un solo hilo/proceso.

Multiples hilos/procesos son creados y calculan el numero de Fibonacci de manera cooperativa. Por
ejemplo, su programa puede tener dos parametros: n y k, donde k es un entero positivo. El programa
creara k hilos/procesos, donde cada proceso i (entre 0 y k 1) calcula el (n + 1)-esimo numero de
Fibonacci.

La salida del programa debe verse as:


hagar@laptop:~/test\$ ./fib-fork 10 3
Answer: 55 /*fib 10 process/thread nr.1*/
Answer: 89 /*fib 11 process/thread nr.2*/
Answer: 144 /*fib 12 process/thread nr.3*/
Para medir los tiempos de ejecucion, puede utilizar el comando time disponible dentro de las herramientas
de temporizacion. Se recomienda revisar la documentacion y ejemplos en POSIX Threads [3].

1
2. Entregables
Cada grupo debera entregar un informe presentando los detalles de las aplicaciones desarrolladas, las
condiciones lmite de uso y prueba, y la descripcion de la configuracion requerida para generar los resul-
tados del informe. Se deben presentar los resultados obtenidos, asegurar las condiciones lmite y analizar
detalladamente los resultados, encontrando las ventajas y posibles limitantes.

2.1. Informe
Los items a continuacion deben entregarse en la fecha lmite especificada:
Informe impreso siguiendo formato IEEE conferencia a una columna 1 .
Codigo fuente.

Makefile.
Archivo README explicativo del uso del programa (help file).

2.2. Instrucciones
Todos los archivos deben ser comprimidos.
Condiciones lmites deben probarse en el codigo.
La prueba de este codigo se hara sobre una BeagleBone Black corriendo la distribucion Debian.

En caso de errores, con base en el codigo y la documentacion se podra asignar credito parcial.

Referencias
[1] A. Silberschatz, P. Galvin, G. Gagne. Operating System Concepts. Wiley. 8th Edition. 2008.

[2] Prof. Adriana Iamnitchi - COP 6611: Graduate Operating Systems http://www.csee.usf.edu/ an-
da/cop6611
[3] POSIX Threads Programming: https://computing.llnl.gov/tutorials/pthreads/

1 http://www.ieee.org/conferences_events/conferences/publishing/templates.html

S-ar putea să vă placă și