Multiprogrammation est une technique de conception de système d'exploitation dans laquelle plusieurs programmes sont exécutés simultanément sur un ordinateur. Cela contraste avec la programmation unique, dans laquelle un seul programme est exécuté à la fois.
La multiprogrammation est rendue possible grâce à l'utilisation d'une unité de gestion de mémoire (MMU) , qui permet au système d'exploitation de répartir la mémoire disponible entre plusieurs programmes. Chaque programme reçoit sa propre partie de mémoire et la MMU garantit qu'aucun programme ne peut accéder à la mémoire d'un autre programme.
Pour que la multiprogrammation fonctionne efficacement, le système d'exploitation doit également fournir un mécanisme de planification les programmes afin qu’ils soient exécutés de manière équitable et efficace. Le planificateur utilise généralement un round-robin algorithme, qui donne à chaque programme une tranche de temps d’égale durée à exécuter. Lorsque la tranche de temps d'un programme est écoulée, elle est préemptée et le programme suivant dans la file d'attente a la possibilité de s'exécuter.
La multiprogrammation présente plusieurs avantages par rapport à la programmation unique. Premièrement, cela améliore le débit global du système, puisque plusieurs programmes peuvent être exécutés en même temps. Deuxièmement, cela réduit le temps pendant lequel un utilisateur doit attendre qu'un programme commence à s'exécuter, car le système d'exploitation peut basculer très rapidement entre les programmes. Troisièmement, il permet d'exécuter plusieurs programmes en même temps, même si certains programmes nécessitent plus d'E/S que d'autres.
Le principal inconvénient de la multiprogrammation est qu’elle peut augmenter la surcharge associée au système d’exploitation, puisque celui-ci doit gérer la mémoire et la planification de plusieurs programmes. Cependant, ces frais généraux sont généralement faibles et les avantages de la multiprogrammation dépassent de loin les coûts.
Voici un exemple simplifié du fonctionnement de la multiprogrammation :
1. Le système d'exploitation alloue une partie de la mémoire à chacun des programmes à exécuter.
2. Le système d'exploitation place le premier programme dans la file d'attente des programmes prêts.
3. La CPU exécute le premier programme pendant une tranche de temps d'une durée spécifiée.
4. Lorsque la tranche de temps est écoulée, le système d'exploitation préempte le premier programme et le place à la fin de la file d'attente des programmes prêts.
5. Le système d'exploitation place ensuite le programme suivant dans la file d'attente des programmes prêts en tête de la file d'attente et lui attribue une tranche horaire d'une durée spécifiée.
6. Le processus se répète jusqu'à ce que tous les programmes aient été exécutés.
|