NSI Terminale : Architecture matérielle, système d’exploitation, réseaux Cha7_2 : Les processus
Publié le 24/06/2024
Extrait du document
«
NSI Terminale : Architecture matérielle, système d’exploitation, réseaux
Cha7_2 : Les processus
Objectifs pédagogiques :
⮚
Décrire la création d’un processus et l’ordonnancement de plusieurs processus par un système
⮚
Mettre en évidence le risque de l’interblocage (deadlock)
Toute machine est dotée d’un système d’exploitation qui a pour fonction de charger les programmes depuis la
mémoire de masse et de lancer leur exécution en leur créant des processus (process en anglais), de gérer l’ensemble
des ressources, de traiter les interruptions ainsi que les entrées-sorties et enfin d’assurer la sécurité globale du
système.
1.
Processus
Tous les systèmes d'exploitation "modernes" (Linux, Windows, MacOS, Android, iOS...) sont capables de gérer
l'exécution de plusieurs processus en même temps.
Mais pour être précis, cela n'est pas un réel "en même temps",
mais plutôt un "chacun son tour".
Pour gérer ce "chacun son tour", les systèmes d'exploitation attributs des "états"
au processus afin de les hiérarchiser.
1.1.Notion de processus
Un processus informatique (en anglais process), est défini par :
•
•
•
un ensemble d'instructions à exécuter (un programme) ;
un espace mémoire pour les données de travail ;
éventuellement, d'autres ressources, comme des descripteurs de
fichiers, des ports réseau, etc.
Un ordinateur équipé d'un système d'exploitation à temps partagé est
capable d'exécuter plusieurs processus de façon "quasi-simultanée".
S'il y
a plusieurs processeurs, l'exécution des processus est distribuée de façon
équitable entre chacun d’entre eux.
Un processus peut être vu comme quelque chose qui prend un certain
temps, donc qui a un début et (parfois) une fin.
Un processus peut se
rencontrer sous différents états.
Lorsqu’un processus est en train de s'exécuter, c’est-à-dire qu'il utilise les Diagramme d’état d’un processus
ressources du microprocesseur, on dit qu’il est dans l'état "élu".
Un processus qui se trouve dans l'état élu peut demander à accéder à une ressource pas forcément disponible
instantanément (typiquement lire une donnée sur le disque dur).
Le processus ne peut pas poursuivre son exécution
tant qu'il n'a pas obtenu cette ressource.
En attendant de recevoir cette ressource, il passe de l'état "élu" à l'état
"bloqué".
Activité Terminale NSI – Architectures matérielles, système d’exploitation et réseaux
1/17
Lorsque le processus finit par obtenir la ressource attendue, celui-ci peut potentiellement reprendre son exécution.
Cependant, bien que les systèmes d'exploitation permettent de gérer plusieurs processus "en même temps", il n’en
demeure pas moins qu’un seul processus peut se trouver dans un état "élu" (le microprocesseur ne peut "s'occuper"
que d'un seul processus à la fois).
Quand un processus passe d'un état "élu" à un état "bloqué", un autre processus
peut alors "prendre sa place" et passer dans l'état "élu".
Le processus qui vient de recevoir la ressource attendue ne
va donc pas forcément pouvoir reprendre son exécution tout de suite, car pendant qu'il était dans à état "bloqué" un
autre processus a "pris sa place".
Un processus qui quitte l'état bloqué ne repasse pas forcément à l'état "élu", il
peut, en attendant que "la place se libère" passer dans l'état "prêt" ("j'ai obtenu ce que j'attendais, je suis prêt à
reprendre mon exécution dès que la "place sera libérée"").
Le passage de l'état "prêt" vers l'état "élu" constitue l'opération "d'élection".
Le passage de l'état élu vers l'état
bloqué est l'opération de "blocage".
Un processus est toujours créé dans l'état "prêt".
Pour se terminer, un processus
doit obligatoirement se trouver dans l'état "élu".
Il est fondamental de bien comprendre que le "chef d'orchestre" qui attribue aux processus leur état "élu",
"bloqué" ou "prêt" est le système d'exploitation (OS – Operating System).
On dit que le système d’exploitation
gère l'ordonnancement des processus (un processus sera prioritaire sur un autre...).
Remarque : un processus qui utilise une ressource doit la "libérer" une fois qu'il a fini de l'utiliser afin de la rendre
disponible pour les autres processus.
Pour libérer une ressource, un processus doit obligatoirement être dans un état
"élu".
Un processus peut-être démarré par un utilisateur par l'intermédiaire d'un périphérique ou bien par un autre
processus : les applications des utilisateurs sont des ensembles de processus plus ou moins complexes.
Comme nous venons de le voir, Le système d'exploitation est chargé d'allouer les ressources (mémoires, temps
processeur, entrées/sorties) nécessaires aux processus et d'assurer que le fonctionnement d'un processus n'interfère
pas avec celui des autres (isolation).
Il peut aussi fournir une API (Application Programming Interface) pour
permettre la communication inter-processus (IPC).
Outre le multiplexage des ressources matérielles, le système peut contrôler l'accès des processus aux ressources
selon une matrice de droits (permissions d'accès) et également associer les processus aux utilisateurs, qui sont les
récipiendaires d'un ensemble de droits d'accès : un processus a les droits de l'utilisateur qui l'a démarré.
Un processus peut s'arrêter de plusieurs manières :
1.
2.
3.
4.
Arrêt normal (volontaire).
Arrêt pour erreur (volontaire).
Arrêt pour erreur fatale (involontaire).
Le processus est arrêté par un autre processus (involontaire).
La plupart des systèmes offrent la distinction entre processus lourd (tels que nous les avons décrits), qui sont a priori
complètement isolés les uns des autres, et processus légers (Threads en anglais), qui ont un espace mémoire (et
d'autres ressources) en commun.
Dans le cas de processus comportant plusieurs processus légers (ou suivant l'expression souvent utilisée
multi-thread) il existe un état du processeur (un contexte d'exécution) distinct pour chaque processus léger.
Activité Terminale NSI – Architectures matérielles, système d’exploitation et réseaux
2/17
1.2.Création d’un processus
Un processus peut créer un ou plusieurs processus à l'aide d'une commande système ("fork"
sous les systèmes de type Unix).
Imaginons un processus A qui crée un processus B.
On dira que
A est le père de B et que B est le fils de A.
B peut, à son tour créé un processus C (B sera le père
de C et C le fils de B).
On peut modéliser ces relations père/fils par une structure arborescente
(voir le schéma ci-contre).
Si un processus est créé à partir d'un autre processus, comment est créé le tout premier
processus ?
Sous un système d'exploitation comme Linux, au moment du démarrage de l'ordinateur un
tout premier processus (appelé processus 0 ou encore Swapper) est créé à partir de "rien" (il
n'est le fils d'aucun processus).
Ensuite, ce processus 0 crée un processus souvent appelé "init"
("init" est donc le fils du processus 0).
À partir de "init", les processus nécessaires au bon fonctionnement du système d’exploitation Linux sont créés (par
exemple les processus "crond", "inetd", "getty",...).
Puis d'autres processus sont créés à partir des fils de "init"...
Schéma de la création des processus de base sous Linux lors du lancement du système
Activité Terminale NSI – Architectures matérielles, système d’exploitation et réseaux
3/17
1.3.
Identification des processus
Chaque processus possède un identifiant appelé PID (Process Identification), ce PID est un nombre entier.
Le
premier processus créé au démarrage du système à pour PID 0, le second 1, le troisième 2...
Le système
d'exploitation utilise un compteur qui est incrémenté de 1 à chaque création de processus, le système utilise ce
compteur pour attribuer les PID aux processus.
Chaque processus possède aussi un PPID (Parent Process Identification).
Ce PPID permet de connaitre le processus
parent d'un processus (par exemple le processus "init" vu ci-dessus à un PID de 1 et un PPID de 0).
À noter que le
processus 0 ne possède pas de PPID (c'est le seul dans cette situation).
2.
Ordonnancement des processus
Dans un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale
en attente d’exécution.
Si plusieurs processus sont prêts, le système d’exploitation doit gérer l’allocation du
processeur aux différents processus à exécuter.
C’est l’ordonnanceur qui s’acquitte de cette tâche.
2.1.Notion d’ordonnancement
Le système d’exploitation d’un ordinateur peut être vu comme un ensemble de processus dont l’exécution est gérée
par un processus particulier : l’ordonnanceur (scheduler en anglais).
Un ordonnanceur fait face à deux problèmes principaux :
• le choix du processus à exécuter ;
• le temps d’allocation du processeur au processus choisi.
Un système d’exploitation multitâche est préemptif lorsque celui-ci peut arrêter (réquisition) à tout moment
n’importe quelle application pour passer la main à la suivante.
Dans les systèmes d’exploitation préemptifs on peut lancer plusieurs applications à la fois et passer de l’une à l’autre,
voire lancer une application pendant qu’une autre effectue un travail.
Il y a aussi des systèmes d’exploitation dits multitâches, qui sont en fait des « multi-tâches coopératifs ».
Quelle est
la différence ?
Un multitâche coopératif permet à plusieurs applications de fonctionner et d’occuper des plages mémoire, laissant le
soin à ces applications de gérer cette occupation, au risque de bloquer tout le système.
Par contre, avec un « multi-tâche préemptif », le noyau garde toujours le contrôle (qui fait quoi, quand et
comment), et se réserve le droit de fermer les applications qui monopolisent les ressources du système.
Ainsi les
blocages du système sont inexistants.
2.2.Objectifs de l’ordonnanceur d’un système multi-utilisateurs
Les objectifs d’un ordonnanceur d’un système multi-utilisateurs sont, entre autres :
• s’assurer que chaque processus en attente d’exécution reçoive sa part de temps processeur ;
• minimiser....
»
↓↓↓ APERÇU DU DOCUMENT ↓↓↓
Liens utiles
- Grand Oral NSI: Les réseaux sociaux numériques existeraient-ils en l’absence du web 2.0 ?
- Physique Chimie, Chapitre 2 terminale, analyse d'un système chimique
- Classe de terminale NSI Le contrôle de redondance cyclique La somme de contrôle
- Grand oral NSI: la voiture autonome la voiture de demain ?
- Grand Oral : récursivité et récurrence (maths/ NSI)