• Non ci sono risultati.

Programmation Système TP 5 : processus, signaux

N/A
N/A
Protected

Academic year: 2021

Condividi "Programmation Système TP 5 : processus, signaux"

Copied!
1
0
0

Testo completo

(1)

Programmation Système TP 5 : processus, signaux

Juliusz Chroboczek Khouloud Zine Elabidine

22 octobre 2012

Exercice 1 (Utilisation de processus multiples).

1. Écrivez une fonction premier qui teste si l’entier passé en paramètre est premier en util- isant l’algorithme naïf. Écrivez un programme qui utilise cette fonction pour afficher la liste des entiers de la forme 2n− 1 qui sont premiers, pour n allant de 1 à 31.

2. Modifiez votre programme pour que chaque appel à premier se fasse dans un processus séparé ; vous utiliserez la valeur de retour du processus pour indiquer si l’entier était premier.

3. Modifiez votre programme pour qu’il garantisse que l’affichage des résultats se fait dans l’ordre croissant ; vous utiliserez pour cela un appel à waitpid avec un premier paramètre non nul.

Exercice 2 (Gestionnaires de signaux).

1. Écrivez un programme qui exécute le corps d’une boucle vide un milliard de fois.

2. Modifiez votre programme pour qu’il ne s’interrompe pas lorsqu’on appuie sur ^C. Com- ment peut-on faire pour l’interrompre ?

3. Sous certains Unix historiques, le gestionnaire de signal est désinstallé lorsqu’il est invoqué la première fois. Quels problèmes cela pose-t-il ? Modifiez votre programme pour qu’il réinstalle le gestionnaire de signal lorsqu’il entre dans le gestionnaire. Quelle condition critique existe dans votre programme ?

4. Modifiez votre programme pour qu’il affiche la valeur du compteur de boucle lorsqu’on appuie sur ^C, puis continue son exécution. (Indication : il n’est pas correct d’utiliser stdio dans un gestionnaire de signal.)

Exercice 3 (Signaux et processus multiples). Écrivez un programme qui crée 2 fils dont chacun exécute un appel à sleep(10) et attend qu’ils terminent tous deux. Que se passe-t-il si vous appuyez sur ^C pendant son exécution ? Si vous tuez le processus père à l’aide de la commande kill ? (Indication : pstree est votre ami.)

Modifiez votre programme pour que tous les fils terminent immédiatement lorsque l’on tue le père à l’aide de la commande kill.

1

Riferimenti

Documenti correlati

Una delle caratteristiche di questi prontuari deve essere quella di mettere bene in evidenza le differenti epidemiologie delle situazioni cliniche: da quella delle

•The systematic literature review points up the importance and potential of ultrasonography in the management of psoriatic arthritis and psoriasis but it also underlines the need of

In effetti, la “legge Leonetti” era stata approvata a seguito del decesso di Vincent Humbert (settembre 2003), ma seppur avesse portato a scelte etiche e

Naturally, just like the principle of least action and Lagrangian mechanics are equivalent to Newton’s equation of motion, this novel variational approach should constitute a way

In this respect Polyakov loop correlators turn out to be a perfect tool to study these effects, since as the temperature increases these higher order corrections become rather

Modifiez cat2 pour qu’il concatène dans ce fichier les divers fichiers qui lui sont donnés à la suite sur la ligne de commande..

Écrivez un programme qui crée deux processu, un père qui affiche à l’aide de l’appel système write la chaîne "Je suis le père\n", et un fils qui affiche la chaîne

Modifiez votre programme pour que, une fois la commande exécutée, il affiche comment elle s’est terminée — soit Terminaison normale avec résultat n, soit Tuée par le signal n,