đ„ïž Gestion des processus et des ressources
Question centrale : Comment un processeur peut-il exĂ©cuter simultanĂ©ment les instructions de plusieurs programmes alors qu'il dispose d'un nombre limitĂ© de cĆurs ?
Réponse : Grùce aux systÚmes d'exploitation multitùches et leur mécanisme d'ordonnancement.
1. Le systĂšme d'exploitation (SE)
Définition : Ensemble des programmes qui pilotent les composants de l'ordinateur (disque dur, écran, processeur, mémoire) et servent d'interface entre les applications et le matériel.
Composants du noyau (kernel) :
đ Ordonnanceur
Décide quel programme s'exécute à un instant donné
đŸ Gestionnaire mĂ©moire
Répartit la RAM entre les programmes
đ SystĂšme de fichiers
Définit le stockage sur les supports physiques
đ Pile rĂ©seau
Implémente les protocoles (TCP/IP...)
2. Les processus
Processus : Programme en cours d'exécution, identifié par un numéro unique (PID). Il possÚde son propre compteur ordinal, ses registres et ses variables.
Un processus comprend :
- Mémoire allouée : code, données, pile et tas
- Ressources : fichiers ouverts, connexions réseau
- Registres CPU : valeurs sauvegardées lors des interruptions
Ătats d'un processus :
| Ătat |
Description |
| Nouveau |
En cours de création |
| PrĂȘt |
Peut ĂȘtre exĂ©cutĂ©, attend son tour dans la file |
| En exécution |
En train de s'exécuter sur le processeur |
| En attente |
Interrompu, attend un événement externe (E/S, mémoire...) |
| Terminé |
Terminé, libération des ressources en cours |
3. Mécanismes clés
đ Interruption
Mécanisme permettant de stopper l'exécution d'un programme pour exécuter une tùche plus prioritaire. Les interruptions d'horloge se déclenchent à intervalles réguliers (ex: toutes les 100ns) et permettent l'exécution concurrente.
âïž Commutation de contexte
L'ordonnanceur interrompt un processus et sauvegarde son état (contexte) dans le PCB (Process Control Block), puis restaure le contexte d'un autre processus.
Ătapes :
- Un processus P1 est en cours d'exécution
- Interruption d'horloge
- Le gestionnaire sauvegarde le contexte de P1
- L'ordonnanceur choisit un autre processus Pn
- Restauration du contexte de Pn
- Pn s'exécute
4. Algorithmes d'ordonnancement
đ Tourniquet (Round Robin)
Chaque processus reçoit le CPU à tour de rÎle pendant un quantum de temps fixe
â Avec prioritĂ©s
L'ordre dépend de la priorité de chaque processus
⥠Plus court d'abord
Exécute d'abord les processus les plus courts
đ„ FIFO
Premier arrivé, premier servi (ex: file d'impression)
5. Programmation concurrente
Exécution concurrente : Deux processus s'exécutent de maniÚre concurrente si leurs intervalles de temps d'exécution ont une partie commune.
ExĂ©cution parallĂšle : Deux processus s'exĂ©cutent au mĂȘme instant (nĂ©cessite plusieurs processeurs).
đ Exclusion mutuelle (Mutex)
ProblÚme : Plusieurs processus accédant à une ressource partagée (fichier, variable) peuvent causer des incohérences.
Solution : Utiliser un verrou pour rendre l'accÚs exclusif. Un processus doit acquérir le verrou avant d'accéder à la ressource, puis le libérer aprÚs utilisation.
Illustration : AccÚs concurrent à un compteur partagé
â SANS exclusion mutuelle (ProblĂšme)
â RĂ©sultat : Compteur = 43 au lieu de 45 â Race condition !
â
AVEC exclusion mutuelle (Solution)
â
Principe : Un seul processus à la fois accÚde à la section critique. Les autres attendent que le verrou soit libéré.
Code avec verrou (pseudocode)
verrou.acquérir() // Début section critique
v â compteur
compteur â v + 1
verrou.libérer() // Fin section critique
â ïž Interblocage (Deadlock)
Situation oĂč des processus concurrents s'attendent mutuellement, bloquant toute progression.
Illustration classique : l'interblocage Ă l'intersection
Exemple avec processus et ressources
Les 4 conditions de Coffman (nécessaires à l'interblocage) :
- Exclusion mutuelle : Au moins une ressource en accĂšs exclusif
- Rétention et attente : Un processus détient une ressource et attend une autre
- Non-prĂ©emption : Une ressource ne peut ĂȘtre retirĂ©e de force
- Attente circulaire : P1 attend P2, P2 attend P3... Pn attend P1
⥠Approche des SE modernes : Ne pas essayer d'éviter les interblocages, mais les détecter et les résoudre quand ils surviennent.
6. Points clés à retenir
- Les SE multitùches permettent l'exécution concurrente de plusieurs programmes
- L'ordonnanceur détermine quel processus s'exécute à chaque instant
- La commutation de contexte permet d'interrompre et reprendre les processus
- L'accĂšs aux ressources partagĂ©es doit ĂȘtre contrĂŽlĂ© (verrous, exclusion mutuelle)
- Les interblocages sont détectés grùce aux 4 conditions de Coffman
- Les threads partagent la mémoire du processus parent, contrairement aux processus
đĄ L'essentiel : Les systĂšmes d'exploitation orchestrent l'exĂ©cution de multiples processus sur des ressources limitĂ©es, garantissant performance et cohĂ©rence grĂące Ă l'ordonnancement et la gestion des ressources partagĂ©es.