Système d'exploitation (OS)
Histoire des systèmes d'exploitation⚓︎
L'OS en 3 idées clé⚓︎
L'OS expliqué en 3 minutes⚓︎
Emulateur d'OS (Linux, Windows 2000 et FreeDOS)⚓︎
Les processus⚓︎
Introduction⚓︎
Dans les années 1970 les ordinateurs personnels étaient incapables d'exécuter plusieurs tâches à la fois : il fallait attendre qu'un programme lancé se termine pour en exécuter un autre.
Les systèmes d'exploitations récents (GNU/Linux, macOS, iOS, Android, Windows, ...) permettent d'exécuter des tâches « simultanément ». En effet, la plupart du temps, lorsque l'on utilise un ordinateur, plusieurs programmes sont exécutés "en même temps" : par exemple, on peut très bien ouvrir simultanément un navigateur Web, un traitement de texte, un IDE Python, un logiciel de musique (sans parler de tous les programmes exécutés en arrière-plan) ...
Ces programmes en cours d'exécution s'appellent des processus. Une des tâches du système d'exploitation est d'allouer à chacun des processus les ressources dont il a besoin en termes de mémoire, entrées-sorties ou temps d'accès au processeur, et de s'assurer que les processus ne se gênent pas les uns les autres.
Pourtant, on rappelle qu'un programme n'est qu'une suite d'instructions machine exécutées l'une après l'autre par le processeur et qu'un processeur n'est capable d'exécuter qu'une seule instruction à la fois.
Pour rappel, voici les étapes d'exécution d'une instruction :
* L'instruction pointée par le pointeur d'instruction est chargée en mémoire.
* Le pointeur d'instruction est incrémenté vers l'adresse suivante.
* L'instruction est décodée.
* L'instruction est exécutée.
Comment est-il alors possible que plusieurs programmes soient exécutés en même temps ?
Le cycle « Récupérer-Décoder-Exécuter »⚓︎
Qu'est-ce qu'un processus ?⚓︎
Il ne faut pas confondre programme et processus :
- Un programme est un fichier binaire (on dit aussi un exécutable) contenant des instructions machines que seul le processeur peut comprendre.
- Un processus est un programme en cours d'exécution, autrement dit le phénomène dynamique lié à l'exécution d'un programme par l'ordinateur.
Ainsi, lorsque nous cliquons sur l'icône d'un programme (ou lorsque nous exécutons une instruction dans la console pour lancer un programme), nous provoquons la naissance d'un ou plusieurs processus liés au programme que nous lançons.
Un processus est donc une instance d'un programme auquel est associé :
- du code
- des données/variables manipulées
- des ressources : processeur, mémoire, périphériques d'entrée/sortie (voir paragraphe suivant)
Il n'est d'ailleurs pas rare qu'un même programme soit exécuté plusieurs fois sur une machine au même moment en occupant des espaces mémoires différents : par exemple deux documents ouverts avec un traitement de texte, ou trois consoles distinctes... qui correspondent à autant d'instances du même programme et donc à des processus différents.








