Aller au contenu

TNSI : OS - Processus & Ressources⚓︎

Contenus Capacités Attendues Commentaires
Gestion des processus
et des ressources
par un système d’exploitation.
Décrire la création d’un processus,
l’ordonnancement de plusieurs
processus par le système.
Mettre en évidence le risque
de l’interblocage (deadlock).
À l’aide d’outils standard, il
s’agit d’observer les processus
actifs ou en attente sur une
machine.
Une présentation débranchée
de l’interblocage peut être
proposée.

Problématique

Comment un Système d'Exploitation multitâche fait-il pour exécuter de nombreux programmes simultanément, alors que la machine ne possède qu'un seul et unique processeur, avec un nombre de coeurs très limités?

Introduction⚓︎

Dans les années \(1970\) les ordinateurs personnels n'étaient pas capables d'exécuter plusieurs tâches à la fois : on lancait un programme et on y restait jusqu'à ce que celui-ci plante ou se termine. Les OS - Operating System 🇬🇧 / SE - Systèmes d'Exploitation 🇫🇷 récents comme par ex. Linux, OSX ou Windows, permettent d'exécuter plusieurs tâches 🇫🇷 / tasks 🇬🇧 simultanément - ou du moins donnent l'illusion que celles-ci s'exécutent en même temps (pseudo-parallélisme). À un instant donné, il n'y a pas un mais plusieurs programmes qui sont en cours d'exécution sur un ordinateur : on les nomme des processus (lourds).

Un utilisateur manipule des processus tous les jours sans le savoir :

  • quand il (double-)clique sur l'icône d'un programme, il provoque la naissance d'un ou plusieurs processus liés au programme lancé
  • quand un programme ne répond plus, il peut visualiser les tâches actives (en Ligne de Commande sur Linux et sur MacOS, ou en lançant le gestionnaire de tâches sur Windows) pour tuer le processus posant problème

Par exemple, sur un même PC, en même temps, on peut trouver les processus suivants :

  • le navigateur Firefox télécharge un fichier, pendant que
  • un flux vidéo est en lecture sur VLC
  • Le traitement de texte LibreOffice Writer est en train d'être utilisé, lui-même décomposé en sous-tâches / sous-processus pouvant être lancées indépendamment les unes des autres. Ces sous-tâches sont souvent appelées des fils d'exécution / processus légers / threads. Par exemple :
    • une impression
    • une recherche textuelle
    • la création d'un sommaire

Notion de Processus⚓︎

Définition⚓︎

Processus (lourd)

Dans une machine donnée, un Processus 🇫🇷 / Process 🇬🇧 est un programme en train d'être exécuté. On dit aussi qu'un processus (dédié) est une instance d'exécution d'un programme. Un processus s'appelle quelquefois un processus lourd, ou tâche lourde.

Programme vs Processus⚓︎

Un programme se distingue de son exécution (processus) :

  • Un programme (par ex. un tableur comme Libre Office Calc) est un jeu d'instructions, chargé en mémoire de masse, susceptibles d'être exécutées. Ce n'est dans ce cas pas (encore) un processus.
  • Un programme exécuté devient un processus. Le lancement d'un programme entraîne des lectures/écritures de registres et d'une partie de la mémoire. Un processus dispose en outre de ressources propres (espaces mémoires, fichiers, accès au réseau, etc..). D'ailleurs un même programme peut être exécuté plusieurs fois sur une même machine au même moment, en occupant des espaces mémoire différents.

Exécution d'un Programme⚓︎

A son lancement, les instructions qui composent un programme sont chargées en mémoire de travail (RAM) et exécutées. Le programme devient ainsi un processus.

Imaginons qu'on lance une deuxième fois le même programme, sans avoir fermé le premier en cours d'exécution (par ex. pour éditer deux fichiers distincts dans un traitement de texte). Le même programme est recopié en mémoire, mais dans un autre endroit, puis il est de nouveau exécuté : on obtient ainsi une deuxième instance. On a alors en mémoire deux instances d'un même programme qui s'exécutent simultanément, mais chacune dans un processus différent (classiquement appelés P1 et P2)

Hérédité des Processus⚓︎

Processus Parents & Enfants

Un processus, qui sera dans ce cas appelé processus parent, peut créer un ou plusieurs processus, dits processus enfants

Références et Notes⚓︎