• Aucun résultat trouvé

Architecture & Syst` eme Travaux dirig´ es n

N/A
N/A
Protected

Academic year: 2022

Partager "Architecture & Syst` eme Travaux dirig´ es n"

Copied!
3
0
0

Texte intégral

(1)

Architecture & Syst` eme Travaux dirig´ es n

o

7

Exercice n o 1

Ecrire un programme qui lance la commande pass´ ´ ee en argument (avec une option). Par exemple, lance ls -l ex´ ecute ls -l. (On suppose par ailleurs que les commandes se situent dans le r´ epertoire /bin/.

Exercice n o 2

Expliquez pas-` a-pas comment s’ex´ ecute ce programme.

#include<stdio.h>

#include<unistd.h>

main () {

int x ; x=0 ;

pid t pidfils ; pidfils=fork() ; if (pidfils==0)

{ x=1 ; } else

prinf(‘‘x=%d\n’’,x) ; }

Exercice n o 3

Pour chacun des programmes suivants expliquez combien de hello ! sont affich´ es ` a l’´ ecran.

Donner ´ egalement le nombre de processus cr´ e´ es et dessiner l’arbre g´ en´ ealogique.

1. int main(){

fork() ;

printf(‘‘hello !\n’’) ; exit(0) ;}

2. int main (){

fork() ; fork() ;

prinf(‘‘hello !\n’’) ; exit(0) ;}

1

(2)

3. int main (){

fork() ; fork() ; fork() ;

prinf(‘‘hello !\n’’) ; exit(0) ;}

Exercice n o 4

Ecrire un programme qui lance un fils. Le fils doit afficher “ ´ C’est le fils qui parle ” puis

“ Mon pid est ... ” (les points de suspension doivent ´ evidemment ˆ etre remplac´ es par le pid du fils), et enfin “ Le pid de mon p` ere est ... ” (les points de suspension doivent ˆ etre remplac´ es par le pid du p` ere). Par ailleurs, le p` ere, lui, affiche successivement “ C’est le p` ere qui parle ”, “ Le pid de mon fils est ... ”, “ Mon pid est ... ” et enfin “ Le pid du grand-p` ere de mon fils, donc mon p` ere, est ... ”.

Exercice n o 5

Ecrire un programme qui cr´ ´ ee deux fils (fils1 et fils2). Le p` ere doit afficher “ je suis le p` ere ”, fils1 doit afficher “ je suis fils1 ” suivi de son pid, et idem pour fils2.

Exerice n o 6

Combien de hello ! imprime chacun des programmes ? Combien de processus sont cr´ e´ es ? Donner l’arbre g´ en´ ealogique.

1. int main { int i ;

for (i=0 ;i<2 ;i++) fork() ;

printf(‘‘hello !\n’’) ; exit(0) ;}

2. void process() { fork() ;

fork() ;

printf(‘‘hello !\n’’) ;}

int main () { process() ;

printf(‘‘hello !\n’’) ; exit(0) ;}

3. int main () { if(fork())

fork() ;

printf(‘‘hello !\n’’) ; exit(0) ; }

2

(3)

4. int main () { if (fork()==0) {

if (fork()) {

printf(‘‘hello !\n’’) ; } }

}

3

Références

Documents relatifs

Donner en utilisant avec pr´ ecision l’algorithme de triangulation du cours un syst` eme triangul´ e ayant les mˆ emes solutions que E. Trianguler ce syst` eme d’´ equations`.

Etape 2 ´ : Utilisons la deuxi` eme ´ equation pour faire monter l’ordre des suivantes... R´ esolvons le syst` eme

À ce niveau, deux fichiers PostScript sont créés : le premier est compacté (gzip) et rendu disponible sur le serveur, le second est créé en incluant les polices en format Type 1

[r]

[r]

• Finalement, on peut affirmer que les droites (CE) et (IJ) ne sont pas coplanaires.. La question revient à déterminer les coordonnées de L dans

On doit étudier le signe de f 0 pour en déduire les variations

La figure 5 présente une portion du circuit précédent, cette partie est dite « circuit de garde », elle prélève la tension de mode commun présente aux entrées de