Académique Documents
Professionnel Documents
Culture Documents
3. Les processus
Définition – Etats – Ordonnancement – IPC
Architecture des
ordinateurs Mémoire
Rappels
Architecture de base
Les mémoires
• leurs caractéristiques
• leur importance
• les opérations sur la mémoire
Contenu
Le processeur
• ses tâches
• son régistre accumulateur
Architecture de base
Cractéristiques des mémoires
Architecture de base
Les mémoires de masse
En effet, la mémoire vive est vide et le disque dur est inaccessible lors du
démarrage d’un ordinateur.
L’ordinateur ne peut donc compter que sur la mémoire morte pour lui
fournir les informations de configuration nécessaires au démarrage.
Architecture de base
La mémoire cache – Définition
le cache
Ecriture Lecture
Le processeur donne une Le processeur demande à la
valeur et une adresse, et la mémoire la valeur contenue à
valeur est stockée à l’emplacement dont il indique
l’emplacement indiqué. l’adresse.
Le processeur
5- Le contenu de
1- Le processeur 3- La valeur lue l’accumulateur est
lit et décode est rangée dans écrit en mémoire
l’instruction l’accumulateur à l’adresse de i.
2- Le processeur 4- L’unité de
demande à la traitement
mémoire le contenu (UAL) ajoute 5
de i. au contenu de
l’accumulateur
données
Unité de traitement
binaires Données
U.A.L.
Informations
codées en binaire
Unité d’Entrées/Sorties
Clavier Ecran
Le bus d’adresse
Il est composé de n fils ; on utilise donc des adresses de n bits. La mémoire peut
posséder au maximum 2n emplacements (adresses 0 à 2n - 1).
Liaison Processeur - Mémoire
Le bus de données
Lors d’une lecture, c’est la mémoire qui envoie un mot sur le bus (le contenu de
l’emplacement demandé)
Bus de données
bidirectionnel
Signaux de commandes
Le système nerveux de l’ordinateur
La carte-mère
L’horloge de l’ordinateur
Les fonctionnalités du SE
• Gestion de la mémoire
• Gestion du processeur
Contenu • Gestion des périphériques
• Gestion des fichiers
• Gestion des programmes en exécution
• Sécurité
• Supervision du système
Couche Logicielle
Système d’exploitation
Vue d’ensemble
Définition
• Gestion de la mémoire
• Gestion du processeur
• Gestion des périphériques
• Gestion des fichiers
• Gestion des programmes en exécution
• Sécurité
Les tâches • Supervision du système
La gestion de la mémoire
Désalloue le
Conserve des traces
Alloue le processeur processeur lorsqu'un
du processeur et de
(CPU) à un processus processus n'est plus
l’état du processus.
requis.
Le programme responsable de
cette tâche est appelé contrôleur
de trafic (trafic controller).
La gestion des périphériques
Décide quel
Conserve des traces Alloue l’appareil de Désalloue les
processus obtient
de tous les appareils manière efficace. appareils.
l’appareil.
Assure le suivi des Décide qui obtient Alloue les Désalloue les
informations. les ressources. ressources. ressources.
Job 1
LES SYSTÈMES
D’EXPLOITATION Leur objectif principal est d’autoriser
l'accès partagé à différentes ressources
RESEAU (fichiers, imprimantes, scanners, etc …)
entre plusieurs ordinateurs d'un réseau
(local, privé, ou autres ...)
Real Time System
LES SYSTÈMES
D’EXPLOITATION
POUR
ORDINATEUR
PERSONNEL
(WINDOWS, MAC
OS, LINUX)
Ces systèmes sont conçus pour fonctionner
sur des appareils mobiles spécifiques
(smartphone, tablettes, …)
1- La pile d’exécution
3- Texte
Activité en cours représentée par la valeur du compteur ordinal et le
contenu des registres du processeur
4- Données.
Prêt (Ready) :
Processus Le processus attend d'être affecté à un processeur.
Cycle de vie
Les processus prêts attendent que le processeur
leur soit alloué par le SE (son ordonnanceur) pour
pouvoir s'exécuter.
Le processus peut entrer dans cet état après le
démarrage ou lors de son exécution, interrompu
par le planificateur pour affecter le processeur à un
autre processus.
En exécution (Running) :
Une fois que le processus a été affecté à un
processeur par l’ordonnanceur du SE, l'état du
processus est configuré pour s'exécuter et le
Processus processeur exécute ses instructions.
Cycle de vie
Bloqué (Waiting) :
Le processus passe à l'état bloqué s'il doit attendre
une ressource, par exemple en attente d'une entrée
utilisateur ou en attente de la disponibilité d'un
fichier.
Terminé (Terminated)
Processus Une fois que le processus a terminé son exécution
Cycle de vie ou qu'il est arrêté par le système d'exploitation, il
passe à l'état terminé où il attend d'être supprimé
de la mémoire principale.
Processus
Cycle de vie
Le PCB est une structure de données gérée par le
système d'exploitation pour chaque processus.
1 Etat du processus : L’état actuel du processus, c’est-à-dire s’il est prêt, en cours d’exécution, en attente ou
peu importe.
2 PID (Processus IP) : Identification unique pour chaque processus dans le système d'exploitation.
4 Compteur Ordinal : Pointeur sur l'adresse de la prochaine instruction à exécuter pour ce processus.
5 Registres du CPU : Divers registres du CPU où certaines informations sont stockées et utiles lorsque le
processus est en exécution.
6 Informations d’ordonnancement : Priorité de processus et autres informations nécessaires pour
ordonnancer le processus.
7 Compteurs : Nombre de CPU utilisé pour l'exécution du processus, les délais, etc
Init
Terminal 1 Terminal n
shell
ls
Terminal 2
Processus
C
B
B
A B D
C C A
Temps →
D (b)
Modèle conceptuel de quatre processus (c)
(a) séquentiels indépendants Un seul programme est
actif à un instant donné
Multiprogrammation
de 4 programmes
Piqûre de l’informaticien
par une abeille
Exécution des instructions de la
recette pour la confection du gâteau Confectionner
un gâteaux
Informaticien PROGRAMMES
Recette
d’un gâteau
1. Initialisation du système
1. Initialisation du système
Une fois créé, le processus devra tôt ou tard s’arrêter pour diverses
raisons.
Arrêt normal Arrêt pour erreur Arrêt pour erreur fatale Le processus est arrêté
(volontaire) (volontaire) (involontaire) par un autre processus
(involontaire)
Arrêt du processus à la La survenue d’une erreur La survenue d’une erreur Appel système effectué
fin de l’execution de sa lors de la saisie d’un due à un bug du par un autre processus
tâche. mauvais paramètre. programme.
Lorsque l'état d'un processus est modifié, son PCB est dissocié de sa file
d'attente actuelle et déplacé vers sa nouvelle file d'attente d'état.
Ordonnancement des processus
Ready EXIT
Job Queue CPU
Queue Le processus est choisi pour
être exécuté par le processeur
Fin du processus
Le processus sollicite un
Le processus en a terminé périphérique d’E/S
avec le périphérique
I/O Waiting
I/O
Queue
…
Interruption ou en attente
Appel Système (I/AS) (Prêt)
chargement de l’état depuis PCB1
I/AS
exécution
en attente (Prêt)
sauvegarde de l’état dans PCB1
I/AS
…
en attente
chargement de l’état depuis PCB0 (Prêt)
I/AS
exécution
Les threads sont des entités planifiées pour leur exécution par le
processeur.
Etant donné qu’ils ont certaines propriétés des processus, les threads sont
parfois qualifiés de processus légers. (lightweight processes).
Les threads
On peut donc voir les processus sous un autre angle, en considérant leur
thread d’exécution (chemin d’exécution), que l’on se contente d’appelé
thread.
Le modèle de processus tel que nous l’avons vu jusqu’ici est fondé sur deux
concepts indépendants : le regroupement des ressources et l’exécution.
Un processus Un thread
Espace Utilisateur
Espace Noyau
Les threads
Espace Utilisateur
Espace Noyau
Les threads
Le fait que plusieurs threads s’exécutent au sein d’un même processus est
comparable au fait que plusieurs processus s’exécutent en parallèle au sein
d’un même ordinateur.
Les threads
Espace Utilisateur
Espace Noyau
3 problèmes principaux :
Pour ce qui est du passage de l’information, cela est aisé pour les threads
dans la mesure où ils partagent le même espace d’adressage commun.
5 prog.c
Processus A
6 prog.n
7 in=7
Processus B *
*
*
La Communication Inter Processus (IPC)
Les conditions de concurrence
Les résultats des tests sont souvent satisfaisants à première vue mais de
temps en temps, il se produit des situations curieuses et inexpliquées.
La Communication Inter Processus (IPC)
Quelle solution face aux conditions de concurrences ?
Trois autres conditions doivent être également réunies pour garantir cela.
La Communication Inter Processus (IPC)
Les sections critiques
Trois autres conditions doivent être également réunies pour garantir cela.
Eviter les
suppositions quant
Garantir
à la vitesse ou au
l’exclusion
nombre de
multuelle
processeurs mis en
œuvre.
Les IPC -
Les sections critiques
Aucun processus
Aucun processus
s’exécutant à
ne doit attendre
l’extérieur de sa
indéfiniment pour
section critique ne
pouvoir entrer
doit bloquer
dans sa section
d’autres
critique.
processus.
La Communication Inter Processus (IPC)
Les sections critiques
Processus B
T1 T2 T3 T4
Temps
Code du Producteur
Code du Consommateur
SEM
P(sem)
File d’attente des
processus (endormis)
V(sem) compteur
La Communication Inter Processus (IPC)
Les solutions aux problèmes de concurrences
Semaphore mutex;
mutex.compteur = 1; /* contrôle l’accès à la section critique */
mutex.wq_processus = initialiser (); /* initialisation à vide */
Semaphore full;
full.compteur = 0; /* compte les emplacement vides dans le tampon */
full.wq_processus = initialiser ();
Semaphore empty;
empty.compteur = N; /* compte les emplacements pleins */
empty.wq_processus = initialiser ();
La Communication Inter Processus (IPC)
Résolution du problème P/C avec les Sémaphores
void consumer(void){
int item;
while (true) { /* boucle sans fin */
P(&full); /* décrémente le décompte des emplacements pleins */
Priority Scheduling
Lorsqu’un nouveau processus est créé, son temps total est comparé au temps
restant du processus en cours. Si le nouveau processus est plus court que le
processus en cours, ce dernier est suspendu et le nouveau processus est lancé.
Pour éviter une telle situation, certains systèmes tiennent compte du propriétaire
du processus.
Ainsi, si deux utilisateurs ont droit à 50% du temps processeur, ils les obtiendront
quel que soit le nombre de processus qu’ils ont lancés.