Processus et multi-tâche.

Multi-thread

Photo by Solen Feyissa on Unsplash

Contexte historique

Les années 1960 ont constitué un tournant pour les système d'exploitation. Dans le cadre du projet MAC au MIT (Massachusset Institute of Technology), le système d'exploitation CTTS est publié en 1961. C'est l'un des tout premiers système d'exploitation à temps partagé, permettant à plusieurs utilisateurs d'utiliser un ordinateur en même temps. C'est une déclinaison du multitâche apparu peu de temps avant, et c'est cette apparente simultaneité dans l'exécution des programmes qui a permis de se diriger vers l'informatique moderne.

En effet, si l'on prend l'exemple du smartphone, cet ordinateur que l'on a dans la poche, alors que nous regardons une vidéo, il va suivre les antennes relais et se synchroniser avec, écouter s'il y a un appel téléphonique ou des SMS qui arrive, vérifier les nouveaux courriers électroniques, mettre à jour les notifications des différents réseaux sociaux,etc. Il y a toute une myriade de processus qui s'éxécute de façon «simultanée».

Le MIT s'assoocia aux laboratoires BELL et à General Electric pour créer Multics qui était un système innovant, héritant de CTTS, et était l'un des premier système d'exploitation avec système de fichier hiérarchique, temps partagé, multitâche préemptif, multiutilisateur, avec une prise en compte de la sécurité. La première version sortit en 1965.

En 1969, les laboratoires BELL sortirent du projet et deux de leurs plus brillants informaticiens, Ken THOMPSON et Dennis RITCHIE , qui avaient travaillé sur le projet MULTICS en conçurent une version simplifiée (ils considéraient MULTICS inutilement complexe) qu'ils nommèrent initialement UNICS puis UNIX. L'informatique moderne était née !

Contexte informatique

Le multitâche et le temps partagé sont les deux moteurs qui rendent nos outils informatiques si réactifs et intuitifs. Au niveau du noyau, l'ordonnanceur est chargé de gérer la répartition du temps de processeur entre les différentes tâches. Il est une des pièces du complexe processus de gestion des processus.

Le multi-tâche est capital dans les systèmes d'exploitation modernes. Outre les différents services qui tournent de façon concurrente en arrière plan, il faut imaginer qu'un bon nombre de processus "écoutent", sont en attente d'entrée. Un service de journal système existe dans pratiquement tous les OS de nos jours. Un seveur web va passer pour beaucoup, une grande partie de son temps à attendre des requêtes. Si on utilise un traitement de texte, il va passer la majeure partie de son temps à attendre que l'utilisateur appuie sur une touche. Entre deux frappes de touches il se passe au moins 100ms, et un ordinateur fait plusieurs milliards d'opérations par seconde.

Principe de l'ordonnanceur

Nous allons voir quels sont les différents outils à notre disposition pour visualiser les processus, les gérer, les créer et même les tuer !