9. Coopération, préemption et mesures du temps
9.1 Multiprogrammation
Sur un seul cœur, une seule instruction de programme s'exécute à un instant précis. L'impression de simultanéité vient de l'alternance rapide entre les processus : le pseudo-parallélisme.
Dans un système coopératif, le programme conserve le CPU jusqu'à ce qu'il termine, se bloque ou cède volontairement la main. Un programme en boucle peut monopoliser la machine. Windows 3.x sert d'exemple historique.
Dans un système préemptif, une minuterie matérielle déclenche périodiquement une interruption. Le noyau reprend le contrôle indépendamment du bon vouloir du programme, exécute l'ordonnanceur et peut sélectionner un autre processus. Cela améliore réactivité et équité et empêche une application de geler tout le système simplement en refusant de céder le CPU.
9.2 Temps CPU et temps réel
- Temps CPU : durée pendant laquelle le processeur exécute réellement les instructions du processus.
- Temps réel / wall time : durée totale observée entre début et fin.
Le temps réel inclut préemptions, attentes d'E/S, blocages et files d'attente. Il est donc normalement supérieur ou égal au temps CPU pour une exécution simple. Une estimation fondée seulement sur le nombre d'instructions ne prédit pas nécessairement le délai observé dans un système chargé.