SlideShare une entreprise Scribd logo
Institut Supérieur des Etudes Technologiques de Jendouba
Département Technologies de l’Informatique
2ème
année Licence Appliquée
Atelier Système 2 (Linux)
Amir Souissi
TP N° 5
Les Processus et leurs Communications
Objectifs
• Effectuer des commandes de gestion des processus et des tâches,
• Exécution des tâches en avant-plan et en arrière-plan (tâches de fond),
• Comprendre les canaux de communication standards utilisés par les processus des commandes shell,
• Utiliser les commandes avec les différents types de redirections,
• Comprendre la notion de tube (pipe) et son avantage par rapport à la redirection.
1) Les Processus
Un processus (ou tâche) est un programme (application) ou une commande en cours d’exécution. (chargé en
mémoire et exécuté).
ps : (processes snapshot) affiche les informations sur les processus actifs dans le shell.
Tester les options –a, -l, -x
Identification : PID (Processus IDentification). Un processus est connu par le système d’exploitation par un
numéro unique.
pidof <nomprocessus> : retourne le PID d’un processus.
Quel est le PID du processus du terminal et le PID du processus de la commande ps ?
Quel est le nom du processus du terminal ?
Utilisez pidof pour déterminer le PID du processus du terminal ?
Filiation : un processus est lancé par un autre processus. Notion de parenté père-fils. Il existe un processus
unique, à l’origine de tous les autres.
ps -f
Vérifiez à travers le PPID que le père du processus de la commande ps –f est le shell ?
pstree : permet d’afficher les processus sous forme d’arborescence et donc de voir leurs indépendance. Permet
aussi de connaitre le nom d’un processus.
Appartenance : un processus appartient à un utilisateur et à un groupe.
ps –u : tous les processus de l’utilisateur courant
ps –aux : tous les processus en cours ps -ef
Ressources système : chaque processus pouvant accéder à des ressources du type fichier, une table de fichiers
ouverts associée à chaque processus et mise à jour. (table des fichiers ouverts).
top : permet d’afficher les processus en cours d’exécution (en mise à jour constamment). Il permet aussi de
suivre les ressources consommées par les processus ?
A quoi peut bien être utile la commande top ?
Quel est le PID et le nom du processus père de tous les autres processus ?
Graphiquement, vous pouvez aussi gérer les processus par le programme « Moniteur Système » d’Ubuntu.
Etat de fonctionnement : à une date donnée, un processus ne peut être que dans l’un des états de
fonctionnement suivants : actif (running), en attente de ressources (waiting) , en sommeil (sleeping).
kill <signal> <pid> : permet de tuer un processus en cours d’exécution.
Exemple :
kill -9 7804 : Envoie le signal 9, ou KILL, au processus ayant le PID 7804 ce qui a pour effet de tuer le
processus.
Si la fermeture d’un programme nécessite une permission, alors précéder le kill par un sudo.
Killall permet de tuer le processus par son nom et non par son PID.
Lancer firefox puis fermer le par un kill puis par un killall ?
Pour tuer une commande en cours d’exécution on peut utiliser aussi un CTRL + C.
Exercice A : processus
1. Taper la commande gnome-terminal pour ouvrir un nouveau shell à partir de votre shell.
2. Vérifier le PID de chacun des deux shell. Vérifier qu’ils ont le même père.
3. Tuer le processus du premier terminal par un kill.
Travail en tâche de fond : un programme qui s’exécute en tâche de fond (arrière-plan ou
background) est un job. Si on ne perd pas la main sur le shell, alors c’est un job en arrière-plan.
Pour suspendre (arrêter, stopper) un job en tâche de fond on utilise un Ctrl+Z.
jobs : permet de connaitre le statut d’un job dans une session courante.
Taper jobs rien ne s’affiche
Lancer gedit à partir du shell le shell est en arrière-plan
Faites un Ctrl+Z gedit est suspendu en arrière-plan et le shell est en avant-plan
Taper jobs déterminer le numéro job et l’état du job du programme gedit
bg <numéro job> : envoyer un processus suspendu en arrière-plan (background)
fg <numéro job> : envoyer un processus d’arrière-plan en avant-plan (foreground)
Le symbole & lance la tâche en arrière-plan et sans que le shell ne perd la main. (Ceci n’est intéressant que
pour une tâche dont l’exécution est longue)
xeyes & firefox & : Lancer les programmes xeyes et firefox en arrière-plan.
Déterminer leurs états par la commande jobs. ([1] pour xeyes et [2] pour firefox)
Taper bg <numjob firefox> ( bg 2). (Firefox est déjà en arrière-plan)
Mettre le programme xeyes en avant-plan par la commande fg. On perd la main sur le shell : Ce
dernier devient en arrière-plan.
Pour reprendre la main sur le shell, taper Ctrl+Z pour suspendre xeyes ou Ctrl+C pour le tuer. Dans
les deux cas, le shell reprend la main (c-à-d devient en avant-plan)
Un job est identifié par un numéro unique renvoyé par la commande jobs. Ce numéro est repéré par le système
d’exploitation par le signe %. Kill %numjob : pour tuer le job
Exercice B : états des jobs
1. Lancer xeyes en arrière-plan. Taper jobs et déterminer son état.
2. Mettre xeyes en avant-plan par un fg. On perd la main sur le shell.
3. Suspendre (arrêter) xeyes par un Ctrl+Z. Taper jobs et déterminer son état.
4. Relancer xeyes en arrière plan par un bg. Taper jobs et déterminer son état.
5. Tuer xeyes par un kill par son numéro de job. Taper jobs et déterminer son état.
2) Les canaux de communication standard et les redirections
Le shell, ou interpréteur de commandes, sert d’interface entre l’utilisateur et la machine (en fait, les processus
en exécution).
Chaque processus utilise des canaux de communication définis par défaut, ou « canaux de communication
standards » (canaux d’entrées sorties par défaut).
Il existe trois canaux standards : ces canaux sont aussi appelés « fichiers » et portent un nom.
Entrée standard : stdin
Sortie standard : stdout
Sortie d’erreur standard : stderr
Par défaut, les canaux standards sont associés à des périphériques et portent un numéro (appelé « descripteur
de fichier ») :
Entrée standard : clavier numéro 0
Sortie standard : console numéro 1
Sortie d’erreur standard : console numéro 2
Il est possible de rediriger les flots d’informations (en entrée ou en sortie) vers des fichiers
(redirections).
Redirection en sortie :
Le résultat de l’exécution d’une tâche peut être envoyé vers un fichier à l’aide de >.
Si l’on souhaite ne pas détruire le fichier lors d’une nouvelle exécution, il faut effectuer une concaténation à
l’aide de >>.
Exemples : ls -l > liste.txt
ls -l >> liste.txt (avec concaténation)
Vérifier le résultat obtenu. Est-il nécessaire que le fichier « liste.txt » existe préalablement ?
Redirection en entrée :
Les données sont prise dans un fichier à l’aide de <.
Exemple : wc < liste.txt (wc = word count)
Quel est l’affichage obtenu? Interprétez le résultat de l’affichage.
Remarque : il n’est pas possible d’effectuer une redirection sur un éditeur de textes.
Redirection en entrée et en sortie :
Il est possible de lancer une commande en redirigeant simultanément l’entrée et la sortie.
Remarque : le shell traite la ligne de commande de la gauche vers la droite.
Exemple : wc < liste.txt > resultat.txt
Redirection du canal de sortie d’erreur standard :
Le canal stderr porte le numéro 2. On utilise donc la commande : 2>
Exemple : (le répertoire de travail ne doit pas contenir de répertoire nommé « ce_répertoire »)
Lancez successivement les commandes :
rmdir ce_repertoire
rmdir ce_repertoire/ 2> erreur.txt
Quelles sont les différences d’exécution entre ces deux commandes ?
Si vous ne voulez pas voir les messages d’erreur s’afficher à l’écran, ni en faire une copie dans un fichier
(politique de l’autruche) vous pouvez toujours les envoyer dans un trou noir :
Exemple : rmdir ce_repertoire 2> /dev/null
Redirection du canal de sortie standard ET du canal d’erreur standard:
Exemple : (ls –l ; rmdir ce_repertoire) > fichier 2>&1
Expliquez la syntaxe utilisée pour la redirection ?
Pourquoi a-t-on placé des parenthèses ? essayer la même commande sans parenthèses ?
Exercice C : Redirections
1. Enregistrez dans un fichier nommé « data.txt » les noms, les terminaux utilisés et les heures de connexion de
tous les utilisateurs actuellement connectés sur le système.
- Avec plusieurs lignes de commandes successives.
- Avec une seule ligne de commande.
2. A l’aide de la commande cat, créez directement à partir du clavier, deux fichiers texte d’une ligne chacun
nommés « abc.txt » et « def.txt ».
3. Expliquez les résultats obtenus par les commandes suivantes :
cat def.txt >> abc.xyz
cat def.txt >> def.txt
cat < def.txt >> abc.txt
3) Les tubes
On peut exécuter plusieurs commandes successivement de façon totalement indépendante. Cela s’obtient en
séparant les commandes les unes des autres par le symbole « ; » :
commande ; commande ; commande ; Exemple : ls ; whoami ; echo salut
Ces trois commandes vont s’exécuter les unes après les autres.
Cette fois le but est de faire exécuter les processus de manière concurrente (en parallèle) et communicant entre
eux par l’intermédiaire de zones mémoires temporaires c'est-à-dire prises sur la mémoire centrale.
En utilisant la méthode de redirection, afficher la liste des fichiers se trouvant dans le répertoire courant,
trié par nom et obtenir une visualisation page par page ?
C’est quoi l’inconvénient de cette méthode ?
La notion de pipe ou tube va résoudre les problèmes de création de fichiers intermédiaire et le temps
d’exécution. Un tube est symbolisé par le symbole « | » :
ls ~ | sort | more
Le système Linux assure la synchronisation de l’ensemble :
- Les 3 processus correspondant aux 3 commandes s’exécutent en parallèle.
- Chaque processus qui lit dans un tube se bloque lorsque le tube est vide.
- Chaque processus qui écrit dans un tube s’arrête lorsque le tube est plein.
Les tubes vont permettre, en enchainant des commandes de bases entre elles, de réaliser des traitements
économisant le recours à la programmation.
On peut sélectionner successivement certaines lignes d’un fichier (selon un motif défini), réaliser un tri sur le
fichier, supprimer éventuellement les doublons, ne garder que les 20 premiers.
En utilisant la méthode de redirection, donner la liste de commandes shell permettant de sélectionner
successivement certaines lignes d’un fichier (selon un motif défini), réaliser un tri sur le fichier, supprimer
éventuellement les doublons, ne garder que les 20 premières lignes.
Exécuter cette commande : grep http log | sort -n -k2 | uniq | head - 20
Cet exemple permet de traiter un fichier de journalisation, de ne sélectionner que les lignes comportant le mot
« http », de trier ce fichier selon la deuxième colonne (en numérique), de supprimer les doublons et enfin d’en
extraire les 20 premières lignes.
Exercice D :
Réaliser à l’aide de tube les opérations suivantes :
1. Compter le nombre de fichiers se trouvant dans le répertoire courant.
2. Compter le nombre d’utilisateurs connectés.
En utilisant le fichier /etc/passwd, donner la liste, classée par ordre alphabétique, des utilisateurs pouvant
travailler en Bash.

Contenu connexe

Tendances

Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
Ines Kechiche
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
Tbatou sanae
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
ENSET, Université Hassan II Casablanca
 
Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack
Ahmed Slim
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
Amir Souissi
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1
Stephen Salama
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
Lilia Sfaxi
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
Maya Medjdoub
 
Présentation cloud computing
Présentation cloud computingPrésentation cloud computing
Présentation cloud computing
Cynapsys It Hotspot
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
Lilia Sfaxi
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
Lilia Sfaxi
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiques
sarah Benmerzouk
 
Réseaux informatiques: Reseau Local LAN
Réseaux informatiques: Reseau Local  LANRéseaux informatiques: Reseau Local  LAN
Réseaux informatiques: Reseau Local LAN
Tunisie collège
 
Programmation réseau en JAVA
Programmation réseau en JAVAProgrammation réseau en JAVA
Programmation réseau en JAVA
Bachir Benyammi
 
Cloud presentation
Cloud  presentationCloud  presentation
Cloud presentation
Cynapsys It Hotspot
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
Amir Souissi
 
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
Borel NZOGANG
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
Heithem Abbes
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptx
kaoutarghaffour
 

Tendances (20)

Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack Mise en place d'une infrastructure basée sur OpenStack
Mise en place d'une infrastructure basée sur OpenStack
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
Présentation cloud computing
Présentation cloud computingPrésentation cloud computing
Présentation cloud computing
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Introduction aux réseaux informatiques
Introduction aux réseaux informatiquesIntroduction aux réseaux informatiques
Introduction aux réseaux informatiques
 
Réseaux informatiques: Reseau Local LAN
Réseaux informatiques: Reseau Local  LANRéseaux informatiques: Reseau Local  LAN
Réseaux informatiques: Reseau Local LAN
 
Programmation réseau en JAVA
Programmation réseau en JAVAProgrammation réseau en JAVA
Programmation réseau en JAVA
 
Cloud presentation
Cloud  presentationCloud  presentation
Cloud presentation
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
 
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING  PRIVÉ BASÉE SUR UN ...
ETUDE ET MISE EN PLACE D'UNE SOLUTION DE CLOUD COMPUTING PRIVÉ BASÉE SUR UN ...
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptx
 

Similaire à Tp n 5 linux

Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Gestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptxGestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptx
ssusercbaa22
 
s de base
s de bases de base
s de base
alimesbahi3
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
guebba sara
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
Souhaib El
 
Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processus
Fatima Zahra Fagroud
 
Linux Administrateur
Linux AdministrateurLinux Administrateur
Linux Administrateur
Open Source School
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
Sana Aroussi
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
FrancisRUKAN
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
UNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdfUNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdf
YassineZouin
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
Loic Yon
 
Formation python
Formation pythonFormation python
Formation python
Thierry Gayet
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
ISIG
 
Chap3 Le shell et les commandes.ffffffpptx
Chap3 Le shell et les commandes.ffffffpptxChap3 Le shell et les commandes.ffffffpptx
Chap3 Le shell et les commandes.ffffffpptx
adammoussaif360
 
Boot
BootBoot
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
Tarek MOHAMED
 
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
BoudarraWalid
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
RihabBENLAMINE
 
Tuto crontab
Tuto crontabTuto crontab
Tuto crontab
Winslo Nwan
 

Similaire à Tp n 5 linux (20)

Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
Gestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptxGestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptx
 
s de base
s de bases de base
s de base
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processus
 
Linux Administrateur
Linux AdministrateurLinux Administrateur
Linux Administrateur
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
UNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdfUNIX_SE4_2023 (1).pdf
UNIX_SE4_2023 (1).pdf
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
Formation python
Formation pythonFormation python
Formation python
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
Chap3 Le shell et les commandes.ffffffpptx
Chap3 Le shell et les commandes.ffffffpptxChap3 Le shell et les commandes.ffffffpptx
Chap3 Le shell et les commandes.ffffffpptx
 
Boot
BootBoot
Boot
 
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
 
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
 
Tuto crontab
Tuto crontabTuto crontab
Tuto crontab
 

Plus de Amir Souissi

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
Amir Souissi
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
Amir Souissi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
Amir Souissi
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
Amir Souissi
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
Amir Souissi
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donnees
Amir Souissi
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intents
Amir Souissi
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
Amir Souissi
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
Amir Souissi
 
Chapitre 2 elements graphiques android
Chapitre 2   elements graphiques androidChapitre 2   elements graphiques android
Chapitre 2 elements graphiques android
Amir Souissi
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement android
Amir Souissi
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
Amir Souissi
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
Amir Souissi
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
Amir Souissi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
Amir Souissi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
Amir Souissi
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
Amir Souissi
 

Plus de Amir Souissi (17)

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donnees
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intents
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 
Chapitre 2 elements graphiques android
Chapitre 2   elements graphiques androidChapitre 2   elements graphiques android
Chapitre 2 elements graphiques android
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement android
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
 

Dernier

Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
Michel Bruley
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 

Dernier (7)

Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 

Tp n 5 linux

  • 1. Institut Supérieur des Etudes Technologiques de Jendouba Département Technologies de l’Informatique 2ème année Licence Appliquée Atelier Système 2 (Linux) Amir Souissi TP N° 5 Les Processus et leurs Communications Objectifs • Effectuer des commandes de gestion des processus et des tâches, • Exécution des tâches en avant-plan et en arrière-plan (tâches de fond), • Comprendre les canaux de communication standards utilisés par les processus des commandes shell, • Utiliser les commandes avec les différents types de redirections, • Comprendre la notion de tube (pipe) et son avantage par rapport à la redirection. 1) Les Processus Un processus (ou tâche) est un programme (application) ou une commande en cours d’exécution. (chargé en mémoire et exécuté). ps : (processes snapshot) affiche les informations sur les processus actifs dans le shell. Tester les options –a, -l, -x Identification : PID (Processus IDentification). Un processus est connu par le système d’exploitation par un numéro unique. pidof <nomprocessus> : retourne le PID d’un processus. Quel est le PID du processus du terminal et le PID du processus de la commande ps ? Quel est le nom du processus du terminal ? Utilisez pidof pour déterminer le PID du processus du terminal ? Filiation : un processus est lancé par un autre processus. Notion de parenté père-fils. Il existe un processus unique, à l’origine de tous les autres. ps -f Vérifiez à travers le PPID que le père du processus de la commande ps –f est le shell ? pstree : permet d’afficher les processus sous forme d’arborescence et donc de voir leurs indépendance. Permet aussi de connaitre le nom d’un processus. Appartenance : un processus appartient à un utilisateur et à un groupe. ps –u : tous les processus de l’utilisateur courant ps –aux : tous les processus en cours ps -ef Ressources système : chaque processus pouvant accéder à des ressources du type fichier, une table de fichiers ouverts associée à chaque processus et mise à jour. (table des fichiers ouverts). top : permet d’afficher les processus en cours d’exécution (en mise à jour constamment). Il permet aussi de suivre les ressources consommées par les processus ? A quoi peut bien être utile la commande top ? Quel est le PID et le nom du processus père de tous les autres processus ? Graphiquement, vous pouvez aussi gérer les processus par le programme « Moniteur Système » d’Ubuntu.
  • 2. Etat de fonctionnement : à une date donnée, un processus ne peut être que dans l’un des états de fonctionnement suivants : actif (running), en attente de ressources (waiting) , en sommeil (sleeping). kill <signal> <pid> : permet de tuer un processus en cours d’exécution. Exemple : kill -9 7804 : Envoie le signal 9, ou KILL, au processus ayant le PID 7804 ce qui a pour effet de tuer le processus. Si la fermeture d’un programme nécessite une permission, alors précéder le kill par un sudo. Killall permet de tuer le processus par son nom et non par son PID. Lancer firefox puis fermer le par un kill puis par un killall ? Pour tuer une commande en cours d’exécution on peut utiliser aussi un CTRL + C. Exercice A : processus 1. Taper la commande gnome-terminal pour ouvrir un nouveau shell à partir de votre shell. 2. Vérifier le PID de chacun des deux shell. Vérifier qu’ils ont le même père. 3. Tuer le processus du premier terminal par un kill. Travail en tâche de fond : un programme qui s’exécute en tâche de fond (arrière-plan ou background) est un job. Si on ne perd pas la main sur le shell, alors c’est un job en arrière-plan. Pour suspendre (arrêter, stopper) un job en tâche de fond on utilise un Ctrl+Z. jobs : permet de connaitre le statut d’un job dans une session courante. Taper jobs rien ne s’affiche Lancer gedit à partir du shell le shell est en arrière-plan Faites un Ctrl+Z gedit est suspendu en arrière-plan et le shell est en avant-plan Taper jobs déterminer le numéro job et l’état du job du programme gedit bg <numéro job> : envoyer un processus suspendu en arrière-plan (background) fg <numéro job> : envoyer un processus d’arrière-plan en avant-plan (foreground) Le symbole & lance la tâche en arrière-plan et sans que le shell ne perd la main. (Ceci n’est intéressant que pour une tâche dont l’exécution est longue) xeyes & firefox & : Lancer les programmes xeyes et firefox en arrière-plan. Déterminer leurs états par la commande jobs. ([1] pour xeyes et [2] pour firefox) Taper bg <numjob firefox> ( bg 2). (Firefox est déjà en arrière-plan) Mettre le programme xeyes en avant-plan par la commande fg. On perd la main sur le shell : Ce dernier devient en arrière-plan. Pour reprendre la main sur le shell, taper Ctrl+Z pour suspendre xeyes ou Ctrl+C pour le tuer. Dans les deux cas, le shell reprend la main (c-à-d devient en avant-plan) Un job est identifié par un numéro unique renvoyé par la commande jobs. Ce numéro est repéré par le système d’exploitation par le signe %. Kill %numjob : pour tuer le job Exercice B : états des jobs 1. Lancer xeyes en arrière-plan. Taper jobs et déterminer son état. 2. Mettre xeyes en avant-plan par un fg. On perd la main sur le shell. 3. Suspendre (arrêter) xeyes par un Ctrl+Z. Taper jobs et déterminer son état. 4. Relancer xeyes en arrière plan par un bg. Taper jobs et déterminer son état. 5. Tuer xeyes par un kill par son numéro de job. Taper jobs et déterminer son état.
  • 3. 2) Les canaux de communication standard et les redirections Le shell, ou interpréteur de commandes, sert d’interface entre l’utilisateur et la machine (en fait, les processus en exécution). Chaque processus utilise des canaux de communication définis par défaut, ou « canaux de communication standards » (canaux d’entrées sorties par défaut). Il existe trois canaux standards : ces canaux sont aussi appelés « fichiers » et portent un nom. Entrée standard : stdin Sortie standard : stdout Sortie d’erreur standard : stderr Par défaut, les canaux standards sont associés à des périphériques et portent un numéro (appelé « descripteur de fichier ») : Entrée standard : clavier numéro 0 Sortie standard : console numéro 1 Sortie d’erreur standard : console numéro 2 Il est possible de rediriger les flots d’informations (en entrée ou en sortie) vers des fichiers (redirections). Redirection en sortie : Le résultat de l’exécution d’une tâche peut être envoyé vers un fichier à l’aide de >. Si l’on souhaite ne pas détruire le fichier lors d’une nouvelle exécution, il faut effectuer une concaténation à l’aide de >>. Exemples : ls -l > liste.txt ls -l >> liste.txt (avec concaténation) Vérifier le résultat obtenu. Est-il nécessaire que le fichier « liste.txt » existe préalablement ? Redirection en entrée : Les données sont prise dans un fichier à l’aide de <. Exemple : wc < liste.txt (wc = word count) Quel est l’affichage obtenu? Interprétez le résultat de l’affichage. Remarque : il n’est pas possible d’effectuer une redirection sur un éditeur de textes. Redirection en entrée et en sortie : Il est possible de lancer une commande en redirigeant simultanément l’entrée et la sortie. Remarque : le shell traite la ligne de commande de la gauche vers la droite. Exemple : wc < liste.txt > resultat.txt Redirection du canal de sortie d’erreur standard : Le canal stderr porte le numéro 2. On utilise donc la commande : 2> Exemple : (le répertoire de travail ne doit pas contenir de répertoire nommé « ce_répertoire ») Lancez successivement les commandes : rmdir ce_repertoire rmdir ce_repertoire/ 2> erreur.txt Quelles sont les différences d’exécution entre ces deux commandes ? Si vous ne voulez pas voir les messages d’erreur s’afficher à l’écran, ni en faire une copie dans un fichier (politique de l’autruche) vous pouvez toujours les envoyer dans un trou noir : Exemple : rmdir ce_repertoire 2> /dev/null Redirection du canal de sortie standard ET du canal d’erreur standard: Exemple : (ls –l ; rmdir ce_repertoire) > fichier 2>&1
  • 4. Expliquez la syntaxe utilisée pour la redirection ? Pourquoi a-t-on placé des parenthèses ? essayer la même commande sans parenthèses ? Exercice C : Redirections 1. Enregistrez dans un fichier nommé « data.txt » les noms, les terminaux utilisés et les heures de connexion de tous les utilisateurs actuellement connectés sur le système. - Avec plusieurs lignes de commandes successives. - Avec une seule ligne de commande. 2. A l’aide de la commande cat, créez directement à partir du clavier, deux fichiers texte d’une ligne chacun nommés « abc.txt » et « def.txt ». 3. Expliquez les résultats obtenus par les commandes suivantes : cat def.txt >> abc.xyz cat def.txt >> def.txt cat < def.txt >> abc.txt 3) Les tubes On peut exécuter plusieurs commandes successivement de façon totalement indépendante. Cela s’obtient en séparant les commandes les unes des autres par le symbole « ; » : commande ; commande ; commande ; Exemple : ls ; whoami ; echo salut Ces trois commandes vont s’exécuter les unes après les autres. Cette fois le but est de faire exécuter les processus de manière concurrente (en parallèle) et communicant entre eux par l’intermédiaire de zones mémoires temporaires c'est-à-dire prises sur la mémoire centrale. En utilisant la méthode de redirection, afficher la liste des fichiers se trouvant dans le répertoire courant, trié par nom et obtenir une visualisation page par page ? C’est quoi l’inconvénient de cette méthode ? La notion de pipe ou tube va résoudre les problèmes de création de fichiers intermédiaire et le temps d’exécution. Un tube est symbolisé par le symbole « | » : ls ~ | sort | more Le système Linux assure la synchronisation de l’ensemble : - Les 3 processus correspondant aux 3 commandes s’exécutent en parallèle. - Chaque processus qui lit dans un tube se bloque lorsque le tube est vide. - Chaque processus qui écrit dans un tube s’arrête lorsque le tube est plein. Les tubes vont permettre, en enchainant des commandes de bases entre elles, de réaliser des traitements économisant le recours à la programmation. On peut sélectionner successivement certaines lignes d’un fichier (selon un motif défini), réaliser un tri sur le fichier, supprimer éventuellement les doublons, ne garder que les 20 premiers. En utilisant la méthode de redirection, donner la liste de commandes shell permettant de sélectionner successivement certaines lignes d’un fichier (selon un motif défini), réaliser un tri sur le fichier, supprimer éventuellement les doublons, ne garder que les 20 premières lignes. Exécuter cette commande : grep http log | sort -n -k2 | uniq | head - 20 Cet exemple permet de traiter un fichier de journalisation, de ne sélectionner que les lignes comportant le mot « http », de trier ce fichier selon la deuxième colonne (en numérique), de supprimer les doublons et enfin d’en extraire les 20 premières lignes. Exercice D : Réaliser à l’aide de tube les opérations suivantes : 1. Compter le nombre de fichiers se trouvant dans le répertoire courant. 2. Compter le nombre d’utilisateurs connectés. En utilisant le fichier /etc/passwd, donner la liste, classée par ordre alphabétique, des utilisateurs pouvant travailler en Bash.