Richard Stallman et la révolution du logiciel libre - Une biographie autorisée
temporelles » était plus exacte pour résumer le problème et fournit
une explication technique de la manière dont ces erreurs temporelles peuvent gravement handicaper les performances d’un système d’exploitation : « Les erreurs temporelles se produisent dans
un système asynchrone où des tâches parallèles devraient en principe pouvoir se dérouler dans n’importe quel ordre. Or, un ordre
particulier amène des problèmes. Imaginez qu’un programme A
fasse une tâche X, et qu’un programme B une tâche Y, où X et
Y sont toutes deux de courtes tâches de routine qui examinent
et mettent à jour une même structure de données. Presque toujours, l’ordinateur exécutera X avant Y ou bien Y avant X, et
il n’y aura donc aucun problème. En de rares occasions, par pur
hasard, l’ordonnanceur laissera le programme A s’exécuter jusqu’à
mi-parcours de X, puis lancera B qui effectuera Y. Ainsi, la tâche Y
sera accomplie tandis que X n’est faite qu’à moitié. Comme ces
processus mettent à jour la même structure de données, il y aura
des interférences. Par exemple, peut-être X aura-t-il déjà examiné
la structure de données et ne verra-t-il pas qu’il y a eu une modification, qui causera un échec non reproductible. Cette erreur
ne peut en effet être reproduite, car elle dépend de facteurs aléatoires (c’est-à-dire à quel moment l’ordonnanceur décide d’exécuter
quel programme et sur quelle durée). Le meilleur moyen d’éviter
ce genre d’erreur est d’utiliser un verrou pour s’assurer que X et
Y ne se déroulent jamais au même moment. Les programmeurs de
systèmes asynchrones connaissent bien l’importance générale des
verrous, mais parfois, la nécessité d’un verrou à un certain endroit
ou sur une certaine structure de données peut leur échapper. Le
programme connaît alors une erreur de synchronisation. »
Avec le temps et le succès grandissant de GNU associé à Linux, il devint évident que le projet GNU devait prendre le train
en marche, sans attendre l’achèvement de Hurd. En outre, la communauté entourant GNU/Linux présentait certaines faiblesses.
Certes, Linux s’était vu doté de la licence GPL, mais ainsi que
212
Précédent

- 235/358

Suivant