SlideShare uma empresa Scribd logo
1 de 55
1
2
Caractéristiques des Processus
3
4
programme en cours
d’exécution
PROBLÈME: Un processeur ne peut
exécuter qu’une seule instruction à la fois.
BUT: Partager un (ou plusieurs)
processeur entre différents processus.
5
6
Il est possible de distinguer deux
types de processus
les processus utilisateurs.
les processus système
 a) Les processus système (daemons)
Processus qui sont lancés au démarrage du
système,
Ces processus ne sont sous le contrôle d’aucun
terminal et ont comme propriétaire l’administrateur du
système
b)Les processus utilisateurs :
o Ils correspondent à chaque exécution d’un
programme par l’utilisateur, le premier d’entre eux
étant l’interpréteur de commandes à la connexion.
Ces processus appartiennent à l’utilisateur et sont
généralement attachés à un terminal.
7
8
9
10
Quand un processus s’exécute, il change d
Chaque processus peut se trouver dans
Chacun des états suivantes :
Ses caractéristiques statiques c’est-à-
dire ne variant pas au cours de sa vie,
sont:
♦ Un numéro unique: PID (Process IDentifier),
♦ Un propriétaire déterminant les droits d’accès du
processus aux ressources : ouverture de
fichiers...
♦ Un terminal d’attache pour les entrées/sorties
11
Ses caractéristiques dynamiques sont:
12
13
L’ordonnanceur (scheduler) est le
module du SE qui s’occupe de
sélectionner le processus suivant
à exécuter parmi ceux qui sont
prêts.
14
A. Ordonnancement préemptif :
l’Ordonnanceur peut interrompre un processus en
cours d’exécution si un nouveau processus de
priorité plus élevée est inséré dans la file des
Prêts.
B. Ordonnancement coopératif :
Ordonnancement jusqu’à achèvement : le
processus élu garde le contrôle jusqu’à
épuisement du temps qui lui a été alloué même si
des processus plus prioritaires ont atteint la liste
des Prêts 15
A. L’algorithme FIFO (First In First Out)
 L'ordonnancement est fait dans l'ordre d'arrivée
 Le processus élu est celui qui est en tête de liste des
Prêts: le premier arrivé.
B. L’algorithme SJF (Shortest Job First)
 SJF choisit de façon prioritaire les processus ayant le
plus court temps d’exécution sans réellement tenir
compte de leur date d’arrivée. 16
C. L'algorithme du tournique
les processus sont rangés dans une file d'attente des
éligibles, le processeur est alloué successivement aux
différents processus pour une tranche de temps fixe Q
appelé Quantum.
D. L’algorithme HPF(Highest Priority First)
 L'attribution de priorité à chaque processus.
L'Ordonnanceur lance le processus prêt de priorité la
plus élevée.
 En cas de priorités égales on utilise l’algorithme FIFO
17
18
 A chaque création de processus, celui ci se
voit affecté trois canaux de communication :
 Entrée standard
 Sortie standard
 Sortie d'erreurs standard
19
Chacun des trois canaux se voit
affecter un nom de fichier et un
numéro :
20
Canal de
communication
Fichier Numéro logique
Entrée standard stdin 0
Sortie standard stdout 1
Sortie d'erreurs standard stderr 2
 Le fichier stdin :
 fichier à partir duquel le process va lire les données
nécessaires en entrée.
 Ouvert avec le numéro logique 0(file descriptor C)
 Par défaut associé au clavier
 Le fichier stdout :
 fichier dans lequel le process va écrire les messages qu'il
produit en sortie, dans le cas d'une exécution normale.
 ouvert avec le numéro logique 1 (file descriptor C)
 par défaut associé à l'écran
 Le fichier stderr :
 fichier dans lequel le process va écrire les messages d'erreur.
 ouvert avec le numéro logique 2 (file descriptor C)
 par défaut associé à l'écran
21
22
23
 L’ exécution de toute commande UNIX se termine
par l’envoi d’un code retour au processus père.
Celui-ci indique le bon déroulement ou non de la
commande.
 un code retour égal à:
 0 : indique un bon déroulement
 1 : indique une erreur de syntaxe
 2 : une erreur d’emploi de la commande.
 La variable $? du shell permet d’afficher le code
retour de la dernière commande exécuté
24
 La primitive FORK : permet la création dynamique
d'un nouveau processus qui s'exécute de manière
concurrente avec le processus qui l'a créé.
 Lors de l'exécution de l'appel système Fork, si les
ressources noyaux sont disponibles, le système
effectue les opérations suivantes :
 le système alloue une entrée à la table des processus
pour le nouveau processus
 le système alloue un PID unique au nouveau processus
 le système duplique le contexte du processus parent : le
code, les données, et la pile
 le système retourne au processus père le PID du
processus crée et au nouveau processus (le fils) la
valeur 0.
25
 Lors de cette création le processus fils hérite de
tous les attributs de son père sauf :
 l'identificateur de son père
 son propre identificateur
 les temps d'exécution du nouveau processus sont à
nuls.
 Notamment, le fils hérite de tous les descripteurs
de fichiers ouverts par son père et partage donc
ces fichiers avec lui.
26
 Un appel à la primitive EXIT provoque la
terminaison du processus effectuant l'appel avec un
code retour valeur.
 Un processus qui se termine passe dans l'état
zombi et reste dans cet état tant que son père n'a
pas pris en compte sa terminaison.
 Lorsqu'un processus se termine, le système
démantèle tout son contexte, sauf l'entrée de la
table des processus le concernant.
 Le processus père, par un appel à la primitive
WAIT, récupère la mort de son fils, cumule les
statistiques de celui-ci avec les siennes et détruit
l'entrée de la table des processus concernant son
fils défunt. Le processus fils disparaît
complètement.
27
 La communication entre le fils zombi et le père
s'effectue par le biais d'un signal transmis du fils
vers le père (signal SIGCHLD ou mort du fils). Si le
père n'attend pas la mort de son fils par un appel à
la primitive WAIT alors la table des processus n'est
pas libérée et il y a risque de saturation de cette
table.
 Un processus fils défunt reste zombi jusqu'à ce que
son père ait pris connaissance de sa mort. Un
processus fils orphelin, suite au décès de son père
(le processus père s'est terminé avant son fils) est
toujours adopté par le processus numéro 1 (INIT) et
non par son grand-père.
28
29
 un identificateur unique du processus (un entier) : le
PID
 l'état courant du processus (élu, prêt, bloqué)
 le contexte processeur du processus : la valeur du CO,
la valeur des autres registres du processeur
 le contexte mémoire : des informations mémoire qui
permettent de trouver le code et les données du
processus en mémoire centrale
 des informations diverses de comptabilisation pour les
statistiques sur les performances système
 des informations liées à l' ordonnancement du
processus.
 Le PCB permet la sauvegarde et la restauration du
contexte mémoire et du contexte processeur lors des
opérations de commutations de contexte .
30
31
32
 Un processus (ou le système) peut envoyer un signal à
un autre processus (commande ou appel kill) .Le
processus destinataire réagit instantanément (il
interrompt l'exécution de son programme, traite le
signal, et éventuellement reprend son exécution)
 Le système communique avec les processus à l’aide de
signaux. Un signal ne transporte pas d'information autre
que son numéro. Il existe quelques dizaines de signaux
distincts, définis par le système (kill -l pour obtenir la
liste)
 Par exemple:
 SIGKILL Termine le processus autoritairement
 SIGSTOP Met le processus en attente (sommeil)
 SIGCONT Reprend l'exécution d'un processus endormi
33
 Exemples de génération de signaux :
 Lorsqu'un fils se termine, un signal SIGCHLD est
envoyé à son père. Cependant, le père ne sait pas
lequel de ses fils s’est terminé.
 Lorsqu’un processus écrit à une adresse mémoire
invalide, un signal SIGSEGV est généré
 div. par 0 envoie le signal SIGFPE (Floating Point
Exception)
 Certaines touches entrainent l'envoi d'un signal :
 Ctrl+C Envoie SIGINT
 Ctrl+ Envoie SIGQUIT
34
35
 Le mode d’exécution par défaut
 Exécution synchrone
 Pour lancer l'exécution séquentielle de
plusieurs commandes sur la même ligne de
commande, il suffit de les séparer par le
caractère ;
36
 la combinaison de touches appropriée pour arrêter
l’exécution d’une commande en mode synchrone
est indiquée par la valeur du champ intr lorsque la
commande unix stty
37
 permet de rendre immédiatement le contrôle à
l’utilisateur
 On utilise le caractère & pour lancer une
commande en arrière-plan ( cmd &)
38
 Si le terminal est fermé, la commande en arrière
plan est interrompue automatiquement
 Solution: lancer la commande sous le contrôle de la
commande nohup (nohup nom_commande &)
39
 Commande at:
 Exécution d’une commande a un temps précis
40
41
 Commande ps
 permet de voir l'état des processus en cours d'exécution
sur une machine
 Syntaxe:
 ps [options]
 Rarement utilisé sans option
42
 Option:
 -e : affichage de tous les processus
 -f : affichage détaillé
 -x : permet de visualiser tout les processus actifs de
l'utilisateur courant
 -ax :permet de visualiser tous les processus de la
machine de tous les utilisateurs
 -aux : permet de visualiser affiche les utilisateurs
associés à chaque processus
 -u nom_utilisateur : affiche chaque processus associés
à utilisateur
 -p PID :affiche les informations sur un processus
 -t :affiche tout les processus liées a un terminal
43
44
 Permet d’afficher des informations en continu sur l’activité
du système
 Permet surtout de suivre les ressources que les processus
utilisent (quantité de RAM, pourcentage de CPU, la durée
de ce processus depuis son démarrage
45
 Commande kill
 pour arrêter un processus, on doit aussi tuer un
processus
 On doit connaître son PID (commande ps)
 Syntaxe:
• kill -9 PID
• kill PID
46
47
PRIORITÉ D’UN PROCESSUS
 Chaque processus se voit affecter une priorité qui
correspond à un numéro(entre -20 et 20).
 Lorsqu'une commande est lancée, le processus a
une priorité maximale.
 Plus le processus occupe de temps d’exécution
pour le processeur, plus son numéro de priorité
baisse, et moins le processus occupe de temps
d’exécution pour le processeur, plus son numéro de
priorité augmente.
 plusieurs processus peuvent être exécutes en
même temps
48
 La commande nice permet de diminuer la priorité
du processus :
 nice -n nombre (nom_processus)
 Exemple :
 nice -n -19 firefox
 Donc ici le Firefox va s'ouvrira avec une priorité très élevé.
 On peut aussi gérer la priorité sans commande de
ligne depuis le Moniteur système
49
 la commande renice permet de changer le facteur
de priorité en cours d'exécution de la commande,
en spécifiant le nouveau facteur de priorité et le
numéro de processus (PID) mais il faut se
connecter au tant qu’un root :
 Exemple :
 renice -10 (pid_processus)
 Remarque : on peut trouver le PID d'un processus
en cours d’exécution avec la commande (PIDOF
nom_de_processus)
50
51
 Fonctionnalité interne au shell
 Permet de gérer des tâches (processus) multiples
dans un même shell :
 suspension temporaire : le processus est arrêté jusqu'à
nouvel ordre
 arrêt définitif : le processus est terminé
 mise en arrière/avant plan : le processus reçoit l'entrée
clavier
 Un processus peut ignorer l'arrêt définitif, mais pas
la suspension
52
 Suspendre (stopper) un processus : Ctrl+z
 Arrêter (terminer) un processus : Ctrl+c (si le
processus est à l'avant plan)
 Voir la liste des processus du terminal (jobs) :
 jobs %n
 '+' est le job « courant »
53
 Mettre un job en arrière plan :
 bg %n
 nom_ps &
 Mettre un job en avant plan :
 fg %n
 nom_ps
 Lancer un job en arrière plan :
 nom_ps &
54
55
Merci pour
votre attention.

Mais conteúdo relacionado

Mais procurados

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveurAmeni Ouertani
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
Introduction_Reseau.ppt
Introduction_Reseau.pptIntroduction_Reseau.ppt
Introduction_Reseau.pptAmalHadri2
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vieHarun Mouad
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfInes Ben Hassine
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.pptPROFPROF11
 
Introduction aux réseaux locaux
 Introduction aux réseaux locaux Introduction aux réseaux locaux
Introduction aux réseaux locauxInes Kechiche
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Chapitre 1 LES SERVICES RESEAUX.pptx
Chapitre 1 LES SERVICES RESEAUX.pptxChapitre 1 LES SERVICES RESEAUX.pptx
Chapitre 1 LES SERVICES RESEAUX.pptxAymenAyari10
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 

Mais procurados (20)

Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Tp n 1 linux
Tp n 1 linuxTp n 1 linux
Tp n 1 linux
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Introduction_Reseau.ppt
Introduction_Reseau.pptIntroduction_Reseau.ppt
Introduction_Reseau.ppt
 
Normes IEEE
Normes IEEENormes IEEE
Normes IEEE
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
 
Cours java
Cours javaCours java
Cours java
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours 70 410-1
Cours 70 410-1Cours 70 410-1
Cours 70 410-1
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.ppt
 
Introduction aux réseaux locaux
 Introduction aux réseaux locaux Introduction aux réseaux locaux
Introduction aux réseaux locaux
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Chapitre 1 LES SERVICES RESEAUX.pptx
Chapitre 1 LES SERVICES RESEAUX.pptxChapitre 1 LES SERVICES RESEAUX.pptx
Chapitre 1 LES SERVICES RESEAUX.pptx
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 

Destaque

2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destaque (8)

ATL et SVG
ATL et SVGATL et SVG
ATL et SVG
 
Interfaces controlesbasededonné
Interfaces controlesbasededonnéInterfaces controlesbasededonné
Interfaces controlesbasededonné
 
Rapport pfe licence
Rapport pfe licenceRapport pfe licence
Rapport pfe licence
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Semelhante a Expose linux gestion des processus

Gestion des processus
Gestion des processusGestion des processus
Gestion des processusguebba sara
 
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromiseTarek MOHAMED
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unixwebreaker
 
La programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXLa programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXBen Hassen Hamdi
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfRihabBENLAMINE
 
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifsTechniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifsYann Rouillard
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 

Semelhante a Expose linux gestion des processus (20)

Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
Cours se chap3_2
Cours se chap3_2Cours se chap3_2
Cours se chap3_2
 
Cours se chap3
Cours se chap3Cours se chap3
Cours se chap3
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
 
Chapitre 5 Linux
Chapitre 5 LinuxChapitre 5 Linux
Chapitre 5 Linux
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
La programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIXLa programmation systéme en langage C sous UNIX
La programmation systéme en langage C sous UNIX
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
 
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifsTechniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
 
Ed2 corrige 2
Ed2 corrige 2Ed2 corrige 2
Ed2 corrige 2
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Linux Administrateur
Linux AdministrateurLinux Administrateur
Linux Administrateur
 
SdE 4 - Processus
SdE 4 - ProcessusSdE 4 - Processus
SdE 4 - Processus
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
 

Mais de Fatima Zahra Fagroud

Langage Dart : Partie 1 (Proposé par Google)
Langage Dart :  Partie 1 (Proposé par Google)Langage Dart :  Partie 1 (Proposé par Google)
Langage Dart : Partie 1 (Proposé par Google)Fatima Zahra Fagroud
 
Introduction générale au Framework Flutter
Introduction générale au Framework FlutterIntroduction générale au Framework Flutter
Introduction générale au Framework FlutterFatima Zahra Fagroud
 
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Fatima Zahra Fagroud
 
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )Fatima Zahra Fagroud
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Fatima Zahra Fagroud
 
Ateliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoAteliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoFatima Zahra Fagroud
 
Etude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BIEtude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BIFatima Zahra Fagroud
 
Récupération d’une Base De Données & Flashback Database
Récupération d’une Base De Données  & Flashback DatabaseRécupération d’une Base De Données  & Flashback Database
Récupération d’une Base De Données & Flashback DatabaseFatima Zahra Fagroud
 
Cycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologiesCycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologiesFatima Zahra Fagroud
 

Mais de Fatima Zahra Fagroud (19)

Langage Dart : Partie 1 (Proposé par Google)
Langage Dart :  Partie 1 (Proposé par Google)Langage Dart :  Partie 1 (Proposé par Google)
Langage Dart : Partie 1 (Proposé par Google)
 
Introduction générale au Framework Flutter
Introduction générale au Framework FlutterIntroduction générale au Framework Flutter
Introduction générale au Framework Flutter
 
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
Cours Algorithmique (Echange de valeurs, Expressions, structure de choix et s...
 
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
Cours Algorithmique : Tableaux (Déclaration , Saisie, Affichage et Tri )
 
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
Ateliers de base en Arduino (Carte Arduino Uno, Capteurs, Actionneurs))
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Ateliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduinoAteliers protypage d objets connectes via arduino
Ateliers protypage d objets connectes via arduino
 
Feu tricolore tuto
Feu tricolore tutoFeu tricolore tuto
Feu tricolore tuto
 
Etude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BIEtude comparative des fournisseurs de service BI
Etude comparative des fournisseurs de service BI
 
Récupération d’une Base De Données & Flashback Database
Récupération d’une Base De Données  & Flashback DatabaseRécupération d’une Base De Données  & Flashback Database
Récupération d’une Base De Données & Flashback Database
 
Rapid miner
Rapid miner Rapid miner
Rapid miner
 
Ibm bigsheets
Ibm bigsheetsIbm bigsheets
Ibm bigsheets
 
Angular
AngularAngular
Angular
 
Cycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologiesCycle de vie et méthodes de construction des ontologies
Cycle de vie et méthodes de construction des ontologies
 
Processus d’indexation
Processus d’indexationProcessus d’indexation
Processus d’indexation
 
Spring social
Spring socialSpring social
Spring social
 
Rapport TP Corrélation
Rapport TP CorrélationRapport TP Corrélation
Rapport TP Corrélation
 
Ionic
Ionic Ionic
Ionic
 
Ibm bluemix
Ibm bluemixIbm bluemix
Ibm bluemix
 

Expose linux gestion des processus

  • 1. 1
  • 3. 3
  • 4. 4 programme en cours d’exécution PROBLÈME: Un processeur ne peut exécuter qu’une seule instruction à la fois. BUT: Partager un (ou plusieurs) processeur entre différents processus.
  • 5. 5
  • 6. 6 Il est possible de distinguer deux types de processus les processus utilisateurs. les processus système
  • 7.  a) Les processus système (daemons) Processus qui sont lancés au démarrage du système, Ces processus ne sont sous le contrôle d’aucun terminal et ont comme propriétaire l’administrateur du système b)Les processus utilisateurs : o Ils correspondent à chaque exécution d’un programme par l’utilisateur, le premier d’entre eux étant l’interpréteur de commandes à la connexion. Ces processus appartiennent à l’utilisateur et sont généralement attachés à un terminal. 7
  • 8. 8
  • 9. 9
  • 10. 10 Quand un processus s’exécute, il change d Chaque processus peut se trouver dans Chacun des états suivantes :
  • 11. Ses caractéristiques statiques c’est-à- dire ne variant pas au cours de sa vie, sont: ♦ Un numéro unique: PID (Process IDentifier), ♦ Un propriétaire déterminant les droits d’accès du processus aux ressources : ouverture de fichiers... ♦ Un terminal d’attache pour les entrées/sorties 11
  • 13. 13
  • 14. L’ordonnanceur (scheduler) est le module du SE qui s’occupe de sélectionner le processus suivant à exécuter parmi ceux qui sont prêts. 14
  • 15. A. Ordonnancement préemptif : l’Ordonnanceur peut interrompre un processus en cours d’exécution si un nouveau processus de priorité plus élevée est inséré dans la file des Prêts. B. Ordonnancement coopératif : Ordonnancement jusqu’à achèvement : le processus élu garde le contrôle jusqu’à épuisement du temps qui lui a été alloué même si des processus plus prioritaires ont atteint la liste des Prêts 15
  • 16. A. L’algorithme FIFO (First In First Out)  L'ordonnancement est fait dans l'ordre d'arrivée  Le processus élu est celui qui est en tête de liste des Prêts: le premier arrivé. B. L’algorithme SJF (Shortest Job First)  SJF choisit de façon prioritaire les processus ayant le plus court temps d’exécution sans réellement tenir compte de leur date d’arrivée. 16
  • 17. C. L'algorithme du tournique les processus sont rangés dans une file d'attente des éligibles, le processeur est alloué successivement aux différents processus pour une tranche de temps fixe Q appelé Quantum. D. L’algorithme HPF(Highest Priority First)  L'attribution de priorité à chaque processus. L'Ordonnanceur lance le processus prêt de priorité la plus élevée.  En cas de priorités égales on utilise l’algorithme FIFO 17
  • 18. 18
  • 19.  A chaque création de processus, celui ci se voit affecté trois canaux de communication :  Entrée standard  Sortie standard  Sortie d'erreurs standard 19
  • 20. Chacun des trois canaux se voit affecter un nom de fichier et un numéro : 20 Canal de communication Fichier Numéro logique Entrée standard stdin 0 Sortie standard stdout 1 Sortie d'erreurs standard stderr 2
  • 21.  Le fichier stdin :  fichier à partir duquel le process va lire les données nécessaires en entrée.  Ouvert avec le numéro logique 0(file descriptor C)  Par défaut associé au clavier  Le fichier stdout :  fichier dans lequel le process va écrire les messages qu'il produit en sortie, dans le cas d'une exécution normale.  ouvert avec le numéro logique 1 (file descriptor C)  par défaut associé à l'écran  Le fichier stderr :  fichier dans lequel le process va écrire les messages d'erreur.  ouvert avec le numéro logique 2 (file descriptor C)  par défaut associé à l'écran 21
  • 22. 22
  • 23. 23  L’ exécution de toute commande UNIX se termine par l’envoi d’un code retour au processus père. Celui-ci indique le bon déroulement ou non de la commande.  un code retour égal à:  0 : indique un bon déroulement  1 : indique une erreur de syntaxe  2 : une erreur d’emploi de la commande.  La variable $? du shell permet d’afficher le code retour de la dernière commande exécuté
  • 24. 24
  • 25.  La primitive FORK : permet la création dynamique d'un nouveau processus qui s'exécute de manière concurrente avec le processus qui l'a créé.  Lors de l'exécution de l'appel système Fork, si les ressources noyaux sont disponibles, le système effectue les opérations suivantes :  le système alloue une entrée à la table des processus pour le nouveau processus  le système alloue un PID unique au nouveau processus  le système duplique le contexte du processus parent : le code, les données, et la pile  le système retourne au processus père le PID du processus crée et au nouveau processus (le fils) la valeur 0. 25
  • 26.  Lors de cette création le processus fils hérite de tous les attributs de son père sauf :  l'identificateur de son père  son propre identificateur  les temps d'exécution du nouveau processus sont à nuls.  Notamment, le fils hérite de tous les descripteurs de fichiers ouverts par son père et partage donc ces fichiers avec lui. 26
  • 27.  Un appel à la primitive EXIT provoque la terminaison du processus effectuant l'appel avec un code retour valeur.  Un processus qui se termine passe dans l'état zombi et reste dans cet état tant que son père n'a pas pris en compte sa terminaison.  Lorsqu'un processus se termine, le système démantèle tout son contexte, sauf l'entrée de la table des processus le concernant.  Le processus père, par un appel à la primitive WAIT, récupère la mort de son fils, cumule les statistiques de celui-ci avec les siennes et détruit l'entrée de la table des processus concernant son fils défunt. Le processus fils disparaît complètement. 27
  • 28.  La communication entre le fils zombi et le père s'effectue par le biais d'un signal transmis du fils vers le père (signal SIGCHLD ou mort du fils). Si le père n'attend pas la mort de son fils par un appel à la primitive WAIT alors la table des processus n'est pas libérée et il y a risque de saturation de cette table.  Un processus fils défunt reste zombi jusqu'à ce que son père ait pris connaissance de sa mort. Un processus fils orphelin, suite au décès de son père (le processus père s'est terminé avant son fils) est toujours adopté par le processus numéro 1 (INIT) et non par son grand-père. 28
  • 29. 29
  • 30.  un identificateur unique du processus (un entier) : le PID  l'état courant du processus (élu, prêt, bloqué)  le contexte processeur du processus : la valeur du CO, la valeur des autres registres du processeur  le contexte mémoire : des informations mémoire qui permettent de trouver le code et les données du processus en mémoire centrale  des informations diverses de comptabilisation pour les statistiques sur les performances système  des informations liées à l' ordonnancement du processus.  Le PCB permet la sauvegarde et la restauration du contexte mémoire et du contexte processeur lors des opérations de commutations de contexte . 30
  • 31. 31
  • 32. 32
  • 33.  Un processus (ou le système) peut envoyer un signal à un autre processus (commande ou appel kill) .Le processus destinataire réagit instantanément (il interrompt l'exécution de son programme, traite le signal, et éventuellement reprend son exécution)  Le système communique avec les processus à l’aide de signaux. Un signal ne transporte pas d'information autre que son numéro. Il existe quelques dizaines de signaux distincts, définis par le système (kill -l pour obtenir la liste)  Par exemple:  SIGKILL Termine le processus autoritairement  SIGSTOP Met le processus en attente (sommeil)  SIGCONT Reprend l'exécution d'un processus endormi 33
  • 34.  Exemples de génération de signaux :  Lorsqu'un fils se termine, un signal SIGCHLD est envoyé à son père. Cependant, le père ne sait pas lequel de ses fils s’est terminé.  Lorsqu’un processus écrit à une adresse mémoire invalide, un signal SIGSEGV est généré  div. par 0 envoie le signal SIGFPE (Floating Point Exception)  Certaines touches entrainent l'envoi d'un signal :  Ctrl+C Envoie SIGINT  Ctrl+ Envoie SIGQUIT 34
  • 35. 35
  • 36.  Le mode d’exécution par défaut  Exécution synchrone  Pour lancer l'exécution séquentielle de plusieurs commandes sur la même ligne de commande, il suffit de les séparer par le caractère ; 36
  • 37.  la combinaison de touches appropriée pour arrêter l’exécution d’une commande en mode synchrone est indiquée par la valeur du champ intr lorsque la commande unix stty 37
  • 38.  permet de rendre immédiatement le contrôle à l’utilisateur  On utilise le caractère & pour lancer une commande en arrière-plan ( cmd &) 38
  • 39.  Si le terminal est fermé, la commande en arrière plan est interrompue automatiquement  Solution: lancer la commande sous le contrôle de la commande nohup (nohup nom_commande &) 39
  • 40.  Commande at:  Exécution d’une commande a un temps précis 40
  • 41. 41
  • 42.  Commande ps  permet de voir l'état des processus en cours d'exécution sur une machine  Syntaxe:  ps [options]  Rarement utilisé sans option 42
  • 43.  Option:  -e : affichage de tous les processus  -f : affichage détaillé  -x : permet de visualiser tout les processus actifs de l'utilisateur courant  -ax :permet de visualiser tous les processus de la machine de tous les utilisateurs  -aux : permet de visualiser affiche les utilisateurs associés à chaque processus  -u nom_utilisateur : affiche chaque processus associés à utilisateur  -p PID :affiche les informations sur un processus  -t :affiche tout les processus liées a un terminal 43
  • 44. 44
  • 45.  Permet d’afficher des informations en continu sur l’activité du système  Permet surtout de suivre les ressources que les processus utilisent (quantité de RAM, pourcentage de CPU, la durée de ce processus depuis son démarrage 45
  • 46.  Commande kill  pour arrêter un processus, on doit aussi tuer un processus  On doit connaître son PID (commande ps)  Syntaxe: • kill -9 PID • kill PID 46
  • 47. 47
  • 48. PRIORITÉ D’UN PROCESSUS  Chaque processus se voit affecter une priorité qui correspond à un numéro(entre -20 et 20).  Lorsqu'une commande est lancée, le processus a une priorité maximale.  Plus le processus occupe de temps d’exécution pour le processeur, plus son numéro de priorité baisse, et moins le processus occupe de temps d’exécution pour le processeur, plus son numéro de priorité augmente.  plusieurs processus peuvent être exécutes en même temps 48
  • 49.  La commande nice permet de diminuer la priorité du processus :  nice -n nombre (nom_processus)  Exemple :  nice -n -19 firefox  Donc ici le Firefox va s'ouvrira avec une priorité très élevé.  On peut aussi gérer la priorité sans commande de ligne depuis le Moniteur système 49
  • 50.  la commande renice permet de changer le facteur de priorité en cours d'exécution de la commande, en spécifiant le nouveau facteur de priorité et le numéro de processus (PID) mais il faut se connecter au tant qu’un root :  Exemple :  renice -10 (pid_processus)  Remarque : on peut trouver le PID d'un processus en cours d’exécution avec la commande (PIDOF nom_de_processus) 50
  • 51. 51
  • 52.  Fonctionnalité interne au shell  Permet de gérer des tâches (processus) multiples dans un même shell :  suspension temporaire : le processus est arrêté jusqu'à nouvel ordre  arrêt définitif : le processus est terminé  mise en arrière/avant plan : le processus reçoit l'entrée clavier  Un processus peut ignorer l'arrêt définitif, mais pas la suspension 52
  • 53.  Suspendre (stopper) un processus : Ctrl+z  Arrêter (terminer) un processus : Ctrl+c (si le processus est à l'avant plan)  Voir la liste des processus du terminal (jobs) :  jobs %n  '+' est le job « courant » 53
  • 54.  Mettre un job en arrière plan :  bg %n  nom_ps &  Mettre un job en avant plan :  fg %n  nom_ps  Lancer un job en arrière plan :  nom_ps & 54

Notas do Editor

  1. Un processus a besoin de ressources matérielles: l’unité centrale, la mémoire centrale et l’accès à des périphériques d’entrées/sorties.
  2. Quand un processus est prêt à s’exécuter, il est mis en queue de la file d’attente des processus prêts. 3. Quand le processeur devient libre, il est alloué au processus se trouvant en tête de file d’attente des processus prêts. 4. Le processus élu relâche le processeur s’il se termine ou s’il demande une entrée sortie L’efficacité de cet ordonnanceur dépend principalement de la valeur du quantum Q: o Le choix d'un Q assez petit augmente le nombre de commutation. o Le choix d'un Q assez grand augmente le temps de réponse du système