Temps partagé
Le temps partagé ou pseudo-parallélisme[1], est une approche permettant de simuler le partage par plusieurs utilisateurs de temps processeur. Il ne faut pas le confondre avec le terme de multitâche : un système peut être multitâche sans être à temps partagé (par exemple s'il dispose de pilotes effectuant des tâches de fond asynchrones) ; il a également existé quelques systèmes de temps partagé qui n'étaient pas multitâches : le processeur divisait simplement son temps en tranches fixes.
Histoire
Les premiers ordinateurs étant très coûteux, on chercha à les utiliser efficacement en les partageant. La machine était en effet souvent inoccupée pendant quelques centaines de milliers de cycles, en attente des entrées de l'utilisateur par l'intermédiaire d'un périphérique, d'une lecture ou écriture sur disque, etc.
Il a été alors suggéré qu'une même machine pouvait, pendant les « temps morts » d'un utilisateur, en servir d'autres de façon à rentabiliser son usage.
Cette solution n'était pas suffisante pour concevoir un système à temps partagé réellement fonctionnel. Pour pouvoir fournir des services intéressants aux utilisateurs, le système a aussi besoin de se comporter correctement lorsque des processus multiples ne se mettent que rarement en pause (gros codes de calcul, par exemple), le matériel devant alors fournir un moyen d'interrompre un processus pour donner de temps en temps la main à un autre.
Description
Le concept de temps partagé a d'abord été décrit par Bob Bemer en 1957, dans un article de la revue Automatic Control Magazine. Le projet MAC (Multi Access Computer), dirigé par John McCarthy au MIT, fut une des premières (voire la première) implémentation. Plusieurs autres suivirent.
Après la démonstration du système Compatible Time Sharing System (CTSS) en , puis du DTSS, les principes avaient montré leur efficacité. En particulier parce que ce système inspira le système d'exploitation de Multics, du SDS Sigma 7, et enfin parce que plusieurs de ces principes furent utilisés par Ken Thompson pour créer la première version qu'il appela UNIX, à la suite d'une proposition de Brian Kernighan.
Christopher Strachey est parfois crédité de l'invention du temps partagé. Toutefois, ce qu'il décrit est plus proche du multitâche. Temps partagé se réfère à l'utilisation d'un ordinateur par plusieurs utilisateurs, tandis que multitâche évoque plus largement le déroulement simultané de processus multiples sans accorder d'importance spéciale au nombre d'utilisateurs.
Notes et références
- Méthodes de programmation systèmes, sur le site desvigne.org, consulté le .