Multi-tâches et multi-threadé

RETOUR

Toutes les applications semblent s'exécuter simultanément, qu'elles soient relatives au système d'exploitation ou qu'elles aient été lancées par les utilisateurs.
Cela n'est pas véritablement le cas. L'ordinateur n'exécute qu'une application à tout instant, mais switche de manière très rapide entre elles par affectation successive de temps de calcul donnant l'impression qu'elles s'exécutent en même temps.

Deux types de multi-tâches:

  • Multitâche préemptif: Le système d'exploitation gère l'attribution des temps de calcul aux applications sans que celles-ci aient à s'occuper de quoi que ce soit (elles ne peuvent pas l'empêcher). Toute application peut fonctionner en multitâche dans ce cadre.

  • Multitâche non-préemptif: Les applications rendent elles-mêmes la main au système d'exploitation et gèrent leurs contextes d'exécution. Les applications doivent être conçues spécifiquement dans ce cadre, sinon le multitâche ne fonctionne pas.

Gestion du multitâche préemptif au sein de Windows.

Démon (deamon) : Application généralement liée au système d'exploitation fonctionnant en tâche de fond avec ou sans action à l'écran.
Nom du fichier exécutable généralement terminé par le caractère 'd' (Exemple : httpd, inetd, snbd, lpd, ...).

Thread : Un développeur peut concevoir une application sous la forme d'un programme maître P créant lui-même des sous-programmes SPi identiques ou non s'exécutant indépendamment et parallèlement au sein de la zone mémoire associée à P : des threads (processus léger).
L'un des intérêts des threads est que le père et ses fils partagent la même zone mémoire facilitant ainsi le partage d'informations entre eux (aucun contrôle, aucune impossibilité). Ceci peut aussi être un inconvénient car le système ne gère aucune protection des données -> possibilité d'anarchie.

Existence de priorités attribuées par le système d'exploitation (modifiables par l'administrateur) pour gérer l'ordonnancement de l'attribution de temps CPU aux applications et à leurs threads. Ces priorités sont primordiales pour le bon fonctionnement du système d'exploitation.