Physique-Chimie & NSI

Cours complets et originaux de Physique-Chimie & NSI

5-02. Gestion des processus

Rappels : rôles et fonctions d’un OS

Un système d’exploitation (OS, pour Operating System) est un ensemble de programmes qui réalise l’interface entre le matériel (hardware) et les applications (software) des utilisateurs.

Le système d'exploitation se présente à l'utilisateur via son interface (graphique ou en ligne de commande) et interagit avec le matériel via son noyau (kernel). Entre ces deux extrémités se trouvent plusieurs couches logicielles qui abstraient les complexités techniques.

Couches de l’utilisateur au matériel Utilisateur Systèmed’exploitation Matériel Application
De l’utilisateur au matériel

Un système d'exploitation remplit deux fonctions essentielles :

  1. Servir d'intermédiaire entre le matériel informatique et les logiciels : il crée une couche d'abstraction qui permet aux applications d'accéder aux ressources matérielles sans avoir à gérer leur complexité technique.
  2. Gérer efficacement les ressources de l'ordinateur : il organise le partage du processeur, de la mémoire centrale et des périphériques d'entrées-sorties entre les différents programmes qui s'exécutent simultanément.

Processus : création et ordonnancement

  • Décrire la création d’un processus, l’ordonnancement de plusieurs processus par le système.

Un processus est la représentation pour le système d'exploitation d'un programme en cours d'exécution ;

L'ordonnancement est la gestion de l'allocation du processeur par le système d'exploitation, c'est-à-dire le partage du processeur entre les différents processus.

Les processus

Un programme est vu différemment selon la perspective :

  • Sous forme statique : un programme est un fichier exécutable stocké en mémoire auxiliaire contenant des instructions et données ;
  • Sous forme dynamique : un processus est l'instance d'un programme en cours d'exécution, qui utilise activement des ressources système.

Une ressource est tout ce dont un processus a besoin pour s'exécuter : ressources matérielles (processeur, périphériques) ou logicielles (fichiers, variables).

Pour obtenir une ressource, un processus entre en concurrence avec d'autres demandes issues d'autres processus.

Bloc de contrôle de processus (PCB)

Au sein du système d'exploitation, le processus est représenté par une structure de données appelée bloc de contrôle de processus (PCB). Cette structure contient notamment :

  • un identificateur unique du processus (PID) ;
  • l'état courant du processus (prêt, élu, bloqué) ;
  • des informations sur l'exécution et les ressources utilisées ;
  • des données relatives à l'ordonnancement.

Le PCB permet au système d'exploitation de gérer et de suivre l'état de chaque processus.

Liste des processus en cours

Dans la console PowerShell de Windows, tapez la commande suivante :


			Get-Process | Format-Table -Property Id, ProcessName, CPU, WorkingSet -AutoSize
		

Cette commande affiche l'ID des processus, son nom, l’utilisation CPU et la mémoire utilisée.

Pour avoir une idée des ressources mémoire utilisées :


			Get-Process | Format-Table Id, ProcessName, CPU, WorkingSet, PagedMemorySize, PrivateMemorySize, VirtualMemorySize -AutoSize
		
  • WorkingSet : mémoire physique utilisée
  • PagedMemorySize : mémoire paginée
  • PrivateMemorySize : mémoire privée (non partagée)
  • VirtualMemorySize : espace d'adressage virtuel

Pour avoir des informations sur l'exécution :


			Get-Process | Format-Table Id, ProcessName, StartTime, TotalProcessorTime, UserProcessorTime, PrivilegedProcessorTime -AutoSize
		
  • StartTime : heure de démarrage du processus
  • TotalProcessorTime : temps total d'utilisation CPU
  • UserProcessorTime : temps passé en mode utilisateur
  • PrivilegedProcessorTime : temps passé en mode privilégié (noyau)

État d’un processus

Un processus est dit :

  • prêt lorsqu’il est en attente du processeur ;
  • élu lorsqu’il a obtenu le processeur et qu’il s’exécute ;
  • bloqué lorsqu’il attend une ressource autre que le processeur.

Lorsqu’un processus bloqué a obtenu la ressource qu’il attendait, il repasse dans l’état prêt car le processeur n’est pas forcément libre.

Différents états d’un processus prêt élu bloqué création attenteprocesseur exécution attenteressource fin déblocage élection blocage
Les différents états d’un processus

Exemple : imaginons un système d'exploitation qui gère trois processus simples :

  • P1 : un traitement de texte
  • P2 : un navigateur web
  • P3 : une application de calcul

Voici comment ces processus pourraient évoluer dans le temps :

Temps P1 P2 P3
t0 Élu Prêt Prêt
t1 Élu Prêt Prêt
t2 Bloqué (attend saisie) Élu Prêt
t3 Bloqué (attend saisie) Élu Prêt
t4 Bloqué (attend saisie) Bloqué (charge page) Élu
t5 Prêt (saisie reçue) Bloqué (charge page) Élu
t6 Prêt Prêt (page chargée) Élu
t7 Élu Prêt Prêt
t8 Élu Prêt Prêt
Explications

1. Au temps t0-t1 :

  • P1 (traitement de texte) est élu et s'exécute sur le processeur
  • P2 et P3 sont prêts, en attente du processeur

2. Au temps t2-t3 :

  • P1 devient bloqué car il attend une saisie utilisateur
  • P2 (navigateur) devient élu et commence à s'exécuter
  • P3 reste prêt

3. Au temps t4 :

  • P1 est toujours bloqué en attente de saisie
  • P2 devient bloqué car il attend le chargement d'une page web
  • P3 (application de calcul) devient élu et commence ses calculs

4. Au temps t5 :

  • P1 reçoit la saisie attendue et passe à l'état prêt (pas encore élu car P3 utilise le processeur)
  • P2 est toujours bloqué en attente du chargement
  • P3 continue d'être élu

5. Au temps t6 :

  • P1 reste prêt
  • P2 a terminé son chargement et devient prêt
  • P3 est toujours élu

6. Au temps t7-t8 :

  • L'ordonnanceur décide de redonner le processeur à P1 qui devient élu
  • P2 et P3 passent à l'état prêt

Ordonnancement

L’ordonnancement, c’est la fonction du système d’exploitation qui permet de choisir à un instant donné quel processus va s’exécuter. L’opération qui consiste à choisir ce processus est appelée opération d’élection.

L’ordonnancement peut être de différents types : par ordre de soumission, par tourniquet, par priorité (préemptive ou non), etc. Une priorité est un nombre entier positif qui donne le rang à chaque processus parmi l’ensemble des processus présents dans la machine.