Recueil de travaux pratiques de SE2 Lakhdar Loukil Mustapha Mokaddem Université

Recueil de travaux pratiques de SE2 Lakhdar Loukil Mustapha Mokaddem Université Oran 1 Département d’informatique Année universitaire: 2020-2021 1 Contents 1 Commandes Linux pour afficher des informations sur les processus 3 1.1 La commande ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1 Liste des processus du système . . . . . . . . . . . . . . . . . . . 3 1.1.2 Liste complète des processus . . . . . . . . . . . . . . . . . . . . 4 1.1.3 Liste des processus d’un utilisateur spécifique . . . . . . . . . . 5 1.1.4 Liste des processus par nom ou par PID . . . . . . . . . . . . . 5 1.1.5 Tri des processus par utilisation du CPU et de la mémoire . . . 6 1.2 La commande pstree . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 La commande top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Le pseudo-système de fichiers /proc . . . . . . . . . . . . . . . . . . . . 10 1.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Les fonctions systèmes getpid(), getppid() 12 3 Les fonctions systèmes fork(), wait() et exec() 12 3.1 La fonction fork() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Les fonctions systèmes wait() et waidpid() . . . . . . . . . . . . . . . 14 3.3 Les fonctions exec() . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4 Le multithreading 24 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2 Les threads POSIX (Pthreads) . . . . . . . . . . . . . . . . . . . . . . . 25 4.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5 Les mutex et les sémaphores 29 5.1 Les mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.3 Les sémaphores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.4 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6 Les variables de condition 41 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2 Initialisation d’une variable de condition . . . . . . . . . . . . . . . . . 41 6.3 Opérations sur une variable de condition . . . . . . . . . . . . . . . . . 41 6.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 7 Références bibliographiques 47 2 1 Commandes Linux pour afficher des informations sur les processus Le système d’exploitation Linux dispose d’un ensemble de commandes permettant de récupérer des informations sur les processus qui s’exécutent dans une machine Linux. Il existe en particulier les commandes ps, pstree et top. Il existe également le pseudo- système de fichiers /proc qui fournit une interface aux structures de données du kernel et en particulier aux processus du système. 1.1 La commande ps La commande ps permet d’afficher des informations sur une sélection de processus actifs du système. La sélection des processus et les informations affichées dépendent des options fournies à la commande. Sans options, ps sélectionne et affiche les processus de l’utilisateur courant et associés au terminal dans lequel la commande est invoquée: laloukil@laloukil:~$ ps PID TTY TIME CMD 2636 pts/9 00:00:00 bash 2649 pts/9 00:00:00 ps La commande ps possède de nombreuses options (voir le manuel de la commande pour plus de détails). Nous donnons, dans ce qui suit, quelques options utiles. 1.1.1 Liste des processus du système Pour lister tous les processus du système, on utilise l’option -e ou -A. laloukil@laloukil:~$ ps -e PID TTY TIME CMD 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:01 rcu_sched 8 ? 00:00:00 rcuos/0 9 ? 00:00:00 rcuos/1 10 ? 00:00:00 rcuos/2 11 ? 00:00:00 rcuos/3 12 ? 00:00:00 rcu_bh ..... Les champs affichés pour chaque processus sont: PID (identifiant du processus), TTY (le terminal associé au processus, ? indique que le processus n’est pas rattachée à un terminal), TIME (temps CPU cumulé) et CMD (la commande qui a créé le processus). 3 1.1.2 Liste complète des processus L’option -f (full) permet d’afficher des champs (colonnes) supplémentaires pour un processus. Les colonnes additionnelles affichées par l’option -f sont UID (identifiant de l’utilisateur), PPID (identifiant du processus père), C (rapport du temps d’utilisation du CPU sur le temps d’exécution) et STIME (date de démarrage du processus). L’option -f peut être combinée avec d’autres options pour afficher des colonnes addi- tionnelles. Exemple: laloukil@laloukil:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:24 ? 00:00:01 /sbin/init root 2 0 0 19:24 ? 00:00:00 [kthreadd] root 3 2 0 19:24 ? 00:00:00 [ksoftirqd/0] root 5 2 0 19:24 ? 00:00:00 [kworker/0:0H] root 7 2 0 19:24 ? 00:00:01 [rcu_sched] root 8 2 0 19:24 ? 00:00:00 [rcuos/0] root 9 2 0 19:24 ? 00:00:00 [rcuos/1] root 10 2 0 19:24 ? 00:00:00 [rcuos/2] root 11 2 0 19:24 ? 00:00:00 [rcuos/3] ..... Remarque: Il est parfois utile de relier en pipe la commande ps avec la commande more, less ou grep pour prendre le temps de consulter les longues listes de processus (cas des commandes more et less) ou pour filtrer le résultat de la commande ps et n’afficher que les informations utiles (cas de la commande grep). Exemples: 1. ps en pipe avec more affiche la liste des processus par page. Pour défiler la liste par ligne (resp. par page), appuyer sur la touche Entree (resp. Barre d’espacement): laloukil@laloukil:~$ ps -A | more 2. ps en pipe avec less permet de défiler la liste les processus vers le haut et vers le bas à l’aide des touches Haut et Bas du clavier. Pour quitter la commande, il suffit d’appuyer sur la touche Q: laloukil@laloukil:~$ ps -A | less 3. La commande suivante permet de vérifier si le processus firefox est en cours d’exécution: 4 laloukil@laloukil:~$ uploads/Industriel/ operating-systems2-handout.pdf

  • 9
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager