Taux de multiprogrammation
# Taux de multiprogrammation

Le taux de multiprogrammation est le nombre de processus présents dans la mémoire d'un ordinateur à un instant donné. Les premiers ordinateurs ne pouvaient exécuter qu'un seul programme à la fois, ce taux était donc égal à 1 au maximum. C'était aussi le cas pour les premiers systèmes d'exploitation (MS-DOS ou CP/M par exemple) sur les premiers micro-ordinateurs. Actuellement tous les systèmes d'exploitation modernes supportent des taux de multiprogrammation importants. Néanmoins, certains superordinateurs peuvent toujours être contraints à respecter un taux de multiprogrammation très faible, d'autres, au contraire, ont un bon rendement uniquement si ce taux est relativement élevé.

Largement répandue depuis la troisième génération d'ordinateurs (à partir de 1965), la multiprogrammation est la possibilité offerte par un système d'exploitation de faire coexister plusieurs programmes simultanément en mémoire, et de mettre à profit les « temps morts » d'un programme (par exemple les opérations d'entrée-sortie) pour « faire avancer » les autres programmes.

On avait en effet constaté que 80-90 % du temps d'exécution d'un programme normal se passait en attente d'opérations d'entrée-sortie, relativement lentes (bandes magnétiques, cartes perforées, etc). Par la multiprogrammation, on rentabilisait donc beaucoup mieux les coûteux ordinateurs en profitant de ce temps, qui aurait été perdu en vain avec la monoprogrammation, pour faire tourner plusieurs programmes.

La multiprogrammation implique la nécessité de partager la mémoire de l'ordinateur entre plusieurs programmes, et de protéger la mémoire allouée à chacun d'eux des éventuels accès intempestifs des autres. Ceci a conduit au développement des techniques de partage de la mémoire : mémoire partitionnée, segmentée, paginée, mémoire virtuelle, etc.

La technique de temps partagé (time-sharing) est une amélioration de la multiprogrammation.

