Professional Documents
Culture Documents
Makefile
Crea un fitxer Makefile per compilar tots els programes, usant regles independents para cadascun.
Inclou una regla “clean” per eliminar tots els executables, fitxers objecte i/o fitxers temporals. Els
programes només s’han de compilar si i només si s’ha actualitzat algun dels fitxers de codi font.
1. search.c
Implementa el codi "search.c" que accepta 2 paràmetres d'entrada seguint el següent format:
El programa busca la primera aparició de “num” (podem assumir que és un nombre d’un únic dígit)
dins de la cadena de caràcters “cadena_nums”. En el cas que “cadena_nums” tingui un caràcter que
no és un dígit, el programa finalitzarà retornant el valor “-1”. Aquest valor també és el que retornarà
si no troba “num” dins de la cadena. En cas que l’execució sigui correcta (és a dir, “num” es pot
trobar dins de “cadena_nums” i aquest només té dígits) llavors mostrarà un missatge per pantalla
indicant el número que s’ha trobat, la posició dins “cadena_nums” en la que està i finalitza l’execució
retornant aquesta posició.
Un exemple d’execució seria: “#>./search 1 341256” retornaria “2”, ja que està en la tercera posició
de “cadena_nums”.
2. search_con.c
Implementa el codi “search_con.c” que accepta paràmetres d’entrada amb el següent format:
el programa crearà, de manera concurrent, tants processos fill com “numX” tingui. En l’exemple
anterior, serien 3 processos fill. Cada procés fill mutarà per executar “./search” del “numX” que li
pertoqui dins “cadena_nums” (aquesta és única per tots els processos fill). El procés pare
monitoritzarà la finalització de cada fill, de tal manera que quan acabi, mostrarà un missatge dient:
el procés fill <PID> ha trobat “numX” en la posició Y
on <PID> és el PID del procés fill que ha finalitzat, “numX” el nombre que busca, i “Y” la posició
que ha retornat al finalitzar. En cas que hagi succeït algun dels casos d’error, el missatge seria:
el procés fill <PID> no ha pogut trobar “numX”
NOTA: en cas d’error, veuràs que quan “search” retorna “-1”, el procés pare obté el valor “255”.
SIMLAB 1
3. search_sec.c
Copia el codi de l’exercici anterior i renombra’l a “search_sec.c”. Fes els canvis que consideris
oportuns per a què ara l’esquema de creació i execució dels processos fill sigui seqüencial.