Processus
I. Le systĂšme d'exploitationâïž
OS
Le systĂšme dâexploitation, souvent appelĂ© OS ( Operating System ) est un ensemble de programmes qui permet dâutiliser les composants physiques dâun ordinateur pour exĂ©cuter toutes les applications dont lâutilisateur aura besoin.
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, 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.
Exemples
Windows, Mac OS, Ubuntu Mate sont des systĂšmes dâexploitation.
Attention, Linux nâest pas Ă proprement parlĂ© un OS , câest en fait le noyau de nombreux OS que lâon appelle des distributions Linux comme par exemple Gentoo, Debian, Linux Mint, Ubuntu, Fedora, RedHat âŠ
OS en bref
Les systÚme d'exploitation font le Lien entre monde applicatif (les applications) et monde matériel (les composants)
Le monde matériel
- la mémoire
- les processeurs (cerveaux, font des calculs)
- péripéhriques E/S (imprimantes, écran, clavier, souris, internet...)
Le monde applicatif
- C'est l'ensemble des programmes qui sont en activité à un instant donné.
- Dans un ordinateur, on a plusieurs applications qui s'exécutent simultanément. chacune exécute une tache.
- Les applications n'accÚdent pas aux éléments de l'ordinateur, elles communiquent seulement avec l'OS.
Les tĂąches de l'OS
Le systĂšme d'exploitation doit allouer Ă chacun des processus les ressources dont il a besoin en termes de mĂ©moire, entrĂ©es-sorties ou temps processeur, et de s'assurer que les processus ne se gĂȘnent pas les uns les autres.
Gestion de la mémoire
La mĂ©moire peut ĂȘtre vue comme un grand tableau disposant de âmotsâ repĂ©rĂ©s par des adresses. Si les applications Ă©crivaient directement dans la mĂ©moire, comme elles ne peuvent pas communiquer entre elles, voilĂ ce qui pourrait arriver :
Une application Ă©crit toto au mot 1
Une seconde application Ă©crit NSI au mĂȘme endroit
đą La seconde application a modifiĂ© une donnĂ©e dont l'application 1 a besoin....
La mémoire virtuelle à la rescousse
Au démarrage d'une application, L'OS crée un espace de mémoire virtuelle dédié à cette application.
L'application Ă©crit dans la mĂ©moire virtuelle. L'OS transfĂšre ensuite dans la vraie mĂ©moire et il mĂ©morise l'information : si l'application demande l'information Ă©crite au mot 1 de sa mĂ©moire virtuelle il sait oĂč trouver l'information dans la vraie mĂ©moire.
Ordonanceur
Le systÚme d'exploitation va attribuer les ressources, notamment l'accÚs au CPU. Si une application est bloquée (attente d'une donnée sur disque dur par exemple) l'OS attribue le CPU à une autre application.
AccĂšs aux ressources :
-
Les applications demandent à l'OS lorsqu'elle a besoin d'accéder à une les ressources (écran, CPU, fichier, etc...)
-
L'OS vĂ©rifie que l'application a les droits (voir, droits d'accĂšs aux fichiers par exemple) et attribue l'accĂšs ensuite. Cet accĂšs peut ĂȘtre de deux types :
- Privé : la ressource est attribuée et bloquée pour les autres applications, par exemple c'est le cas d'un accÚs en écriture dans un fichier.
- Libre : la ressource est attribuée mais reste disponible pour les autres applications, par exemple c'est le cas d'un accÚs en lecture dans un fichier.
A retenir : les trois rĂŽles de l'OS sont :
- gérer la mémoire
- ordonnanceur
- accĂšs aux ressources
II. Les processusâïž
Qu'est-ce qu'un processus ?
Un processus est une instance (tache) de programme en cours d'exécution sur un ordinateur. Il est caractérisé par :
- un ensemble d'instructions à exécuter - souvent stockées dans un fichier sur lequel on clique pour lancer un programme (par exemple firefox.exe)
- un espace mémoire dédié à ce processus pour lui permettre de travailler sur des données et des ressources qui lui sont propres : si vous lancez deux instances de firefox, chacune travaillera indépendamment l'une de l'autre.
- des ressources matérielles : processeur, entrées-sorties (accÚs à internet en utilisant la connexion Wifi).
En résumé
Un processus est un "programme" en cours dâexĂ©cution.
Attention
Il y a une diffĂ©rence entre programme et processus : le mĂȘme programme peut ĂȘtre lancĂ© plusieurs fois et donner naissances Ă des processus distincts.
Analogie avec le domaine de la musique
Programme ~ Partition
Processus ~ Musicien
Processeur ~ Instrument
Comment voir les processus sur son OS?âïž
Sur chaque OS, il y a des utilitaires en mode graphique (GUI) ou en mode console ( CLI ) pour observer les processus en cours dâexĂ©cution.
Exemples dâinterfaces graphiques ( GUI = Graphical User Interface )âïž
- Sous Windows 10, il y a le bien connu gestionnaire de tùches ( raccourci :
CRTL+MAJ+ECHAP
)
- Sous Ubuntu Mate, une distribution Linux, il y a par exemple Moniteur SystĂšme. (cf MENU puis Outils SystĂšme )
- Sous Kubuntu, une autre distribution Linux, il y a par exemple KsysGuard.
Exemples avec la console sous Linux (CLI= Command Line Interface)âïž
La commande top
permet d'afficher la liste des processus de maniĂšre dynamique ( la liste est rafraĂźchie toutes les 3 secondes)
Vie et mort des processusâïž
Différentes situations peuvent générer des processus :
- Double cliquer pour lancer un programme
- Ouvrir un onglet dans un navigateur
- Exécuter une commande dans une console
Ces processus vont devoir sâexĂ©cuter Ă tours de rĂŽle, pour gĂ©rer lâordre dâexĂ©cution le systĂšme dâexploitation va attribuer des Ă©tats aux processus.
Les Ă©tats d'un processus
Un processus peut donc se trouver dans différents états :
- nouveau (initialisation) : le processus vient d'ĂȘtre crĂ©Ă© mais n'existe pas encore qu'Ă l'Ă©tat de requĂȘte de processus en attendant d'ĂȘtre admis en tant que processus activable
- prĂȘt (en attente): le processus attend son tour pour prendre la main
- élu (en exécution) : le processus a accÚs au processeur pour exécuter ses instructions
- bloqué (endormi) : le processus attend qu'un événement se produise (saisie clavier, réception d'une donnée par le réseau ou le disque dur ...)
- terminé : le processus est désormais inactif car il a achevé sa tùche. Il sera détruit prochainement par le systÚme d'exploitation pour libérer de la place en mémoire. Il est parfois conservé pendant un temps à l'état terminé en attendant qu'une entrée/sortie s'achÚve ou que les données de ce processus soient exploitées par un autre. On parle alors de processus " zombie".
Ordonnancement des processus par l'OSâïž
L'ordonnanceur
Dans un systĂšme multitĂąches, plusieurs processus sont actifs simultanĂ©ment, mais un processeur simple coeur ne peut exĂ©cuter quâune instruction Ă la fois. Il va donc falloir partager le temps de processeur disponible entre tous les processus : c'est le travail de l'ordonnanceur (ou scheduler en anglais). Ce dernier a pour tĂąche de sĂ©lectionner le processus suivant Ă exĂ©cuter parmi ceux qui sont prĂȘts.
Un processus peut donc se trouver dans différents états :
Les chiffres 1, 2, 3 et 4 font référence à la figure ci-dessus.
1 : L'ordonnanceur choisit ce processus qui passe alors en mode élu ou exécution
2 : L'ordonnanceur passe la main Ă un autre processus. Le processus en cours s'arrĂȘte et passe en mode prĂȘt ou en attente
3 : AprÚs le 1. (et pas le 2) : le processus en cours attend un événement : saisie clavier, réception d'une donnée par le réseau ou le disque dur, clic de souris...
Il passe alors en mode bloqué ou endormi
4 : L'Ă©vĂ©nement attendu par le processus s'est produit. Le processus repasse en mode prĂȘt ou en attente, en attendant que l'ordonnanceur lui permette de s'exĂ©cuter.
đ”â ïžđ”
Il y a "attendre" ... et ... "attendre"
- Un processus qui "attend" un événement passe de l'état "élu" à l'état "bloqué".
- Un processus qui "attend" que l'ordonnanceur lui permette de s'exĂ©cuter est dans l'Ă©tat "prĂȘt" ou "en attente"
III. QCMâïž
Un processus est :
- un programme exécutable
- un logiciel
- une instance d'exécution d'un programme
- une instance d'exécution d'un programme
Un processus prĂȘt :
- est exécuté
- a été exécuté dans le processeur
- attend d'obtenir le processeur
- attend d'obtenir le processeur
Un processus en cours d'exécution est dit :
- Ă©lu
- bloqué
- prĂȘt
- actif
- Ă©lu
Un processus bloqué :
- ne peut pas s'exécuter
- a été exécuté dans le processeur
- attend d'obtenir le processeur
- a Ă©tĂ© exĂ©cutĂ© dans le processeur avant d'ĂȘtre bloquĂ©
- attend d'ĂȘtre dĂ©bloquĂ© par un Ă©vĂ©nement
Un programme peut ĂȘtre exĂ©cutĂ© :
- plusieurs fois Ă la suite par un mĂȘme processus
- plusieurs fois en mĂȘme temps par un mĂȘme processus
- par plusieurs processus différents
- par plusieurs processus différents
A un instant donné un processeur exécute :
- tous les processus prĂȘts
- le processus Ă©lu
- tous les processus d'un utilisateurs
- le processus Ă©lu