Professional Documents
Culture Documents
Simlab1 G11
Simlab1 G11
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.