Système d'exploitation
Commentaire de texte : Système d'exploitation. Recherche parmi 300 000+ dissertationsPar dissertation • 22 Juin 2013 • Commentaire de texte • 346 Mots (2 Pages) • 1 006 Vues
TD1 système d’exploitation 1er Partie : fork()
1./ Le PID du processus init est le numéro 1 le propriétaire du processus est le root.
2./ Le processus se dupliquant il existe à la fois un père et un fils, de ce fais ce sont 2 processus qui se lancent de plus le premier processus rentre dans le else if alors que le le second processus rentre dans le else, le première processus étant le père le second est le fils.
3./ quand on rajoute un «\n» le bonjour se retrouve sur le processus père et fils. À la place «bonjour fils» on a «fils».
4./ Le programme génère deux processus (PID 3450 et 3451). Le premier, le père, a pour PID 3450 et pour PPID 1. Le second, le fils, a pour PID 3451 et pour PPID 3450.
5./ si le processus père est tué alors le PPID du fils vaut 1, en effet il sera sans parent. 2ème Partie : wait()
6./ Ce programme lance deux processus : - Le premier compte de 1 à 50.
- Le second compte de 51 à 100.
7./ Les processus ne s’effectuent plus en même temps. la fonction wait() permet au processus père d’attendre jusqu’a la finalisation de l'exécution de ses fils.
3ème Partie : exec()
8./ il faut utilisé «execlp()» car elle permet d’utilisé la commande ls sans écrire le chemin absolu. De plus il ira chercher le chemin de la commande dans le PATH. Ou on peux aussi utilisé execl() mais il faut indiqué le chemin absolu de ls.
9./ Non fait.
compte rendu TD informatique
Préparé par NIAMATTOULLA Salman
I-C1
10./ for (i=1; i<=4; i++) {
pid = fork();
if (pid != 0) printf("%d\n", pid); }
Il y a 31 processus pendant l’exécution du programme, cependant seul 15 lignes s’affichent en effet on n’affiche les lignes des processus pères uniquement car on a comme condition pid != 0.
for (i=1; i<=4; i++) {
pid = fork();
if (pid == 0) break;
else printf("%d\n", pid);
}
il y a 4 lignes qui s’affichent.
for (i=0; i<=nb; i++) {
p = fork();
if (p < 0) exit(1); execlp("prog", "prog",NULL);
} wait(&status);
Pour chaque processus, il y en a 3 autres qui se crées à chaque fois.
...