Mono-thread ou multi-thread
Posted in 2011
Translated from English by DrWatson — View original
Waouh, ça fait un moment que je n'ai pas travaillé sur Informix 5 :-) Dans Informix version 5, UNIX contrôlait tout. Pour chaque utilisateur qui se connectait, un processus était créé et UNIX gérait la commutation des processus. Il s'agit d'un modèle d'architecture mono-thread. En raison de la taille des serveurs à l'époque où cette version était disponible, un grand nombre d'utilisateurs ne pouvaient pas accéder au serveur en même temps, car le nombre de processus devenait très difficile à gérer et les performances s'en trouvaient dégradées. De manière générale, ce modèle ne passe pas bien à l'échelle avec de nombreux utilisateurs simultanés. Dans Informix Dynamic Server version 7 et ultérieure, les processus sont toujours utilisés par UNIX, mais ils sont devenus des processus virtuels et prennent en charge la commutation des threads. Il s'agit d'un modèle multi-thread, en place depuis la première version d'Informix Dynamic Server, la version 7. Dans ce cas, c'est le thread en cours d'exécution qui est chargé de céder la place au thread suivant prêt à s'exécuter dans la file d'attente (ready queue). Le thread en cours d'exécution effectue cette commutation lorsqu'il se met en attente (yield). Le thread en cours d'exécution cède la main dans l'une des situations suivantes : 1. Plus aucun travail à effectuer 2. En attente d'une ressource 3. En attente d'une E/S 4. Pour donner à un autre thread la possibilité de s'exécuter