Universidad Tecnológica Centroamericana Ingeniería en Sistemas Computacionales Sistemas Operativos II Prof.: Ing. Egdares Futch H. Proyecto Individual #1 Primeros pasos en la programación concurrenteMotivación La programación concurrente se refiere a las técnicas y herramientas de programación que trabajan en procesos paralelos. En la actualidad, se ha materializado la posibilidad de tenercomputadoras con multiprocesadores en el escritorio, y se continuará evadiendo la ley de Moore por medio de más paralelismo en el hardware. Por lo anterior, es necesario estudiar en Sistemas Operativosestos temas, especialmente por el empate con el tema de gestión de procesos y manejo de los recursos del CPU. Descripción Este proyecto está orientado a dar los primeros pasos en programaciónconcurrente, por medio de las librerías de Pthreads de Linux. El proyecto está escrito en forma de laboratorio, en el cual se deben anotar los pasos realizados y los efectos de los cambios que el alumno realiza.Paso 1 Ingrese el código siguiente en su computadora en un archivo llamado bubble.c, compílelo y ejecútelo. Es un clásico Bubble Sort:
#include #include #define N 100 int array[N]; void swap(int*a,int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } int bubble(int a[],n) { int i,j; for (i = n ; i >= 0 ; i--) for (j = 1 ; j a[j]) swap(&a[j-1],&a[j]);
} int main(void) { int h; for (h = 0; h
> 24; for (h=0 ; h < N ; h++) printf("%d ",array[h]); puts(""); bubble(array,N); for (h=0 ; h < N ; h++) printf("%d ",array[h]); }
a) Modifique el programa para quecuente y reporte el número de intercambios que se hace. b) Con la modificación anterior, haga pruebas de cuántos intercambios ocurren para 10, 100, 1,000 y 10,000 elementos. Haga una gráfica (puede serde Excel) de estos puntos e interprete los resultados obtenidos, incluyendo algunos puntos intermedios. Comente acerca de los tiempos. Paso 2 Ahora vamos a ver si es posible mejorar el rendimiento...
Leer documento completo
Regístrate para leer el documento completo.