Accueil🇫🇷Chercher

File (structure de données)

En informatique, une file dite aussi file d'attente (en anglais queue[alpha 1]) est un type abstrait basé sur le principe « premier entré, premier sorti » ou PEPS, désigné en anglais par l'acronyme FIFO (« first in, first out ») : les premiers éléments ajoutés à la file seront les premiers à en être retirés.

Description

First In First Out - Premier Entré Premier Sorti.

Le type décrit le fonctionnement d'une file d'attente : les premiers arrivés sont les premiers à sortir[1] (PEPS, FIFO en anglais pour First in, first out). Quand le dernier entré est le premier à sortir (DEPS, LIFO pour Last in, first out en anglais), c'est une pile (stack).

Les algorithmes utilisés pour suivre les stocks doivent être cohérents avec la méthode utilisée en gestion des stocks.

Une liste chaînée dont on n'utilise que les opérations ajouterQueue et retirerTête constitue une queue. Si la queue se base sur un tableau, la structure enregistre deux indices, l'un correspondant au dernier arrivé, l'autre au prochain à sortir[2].

Les queues servent à organiser le traitement séquentiel des blocs de données d'origines diverses.

La théorie des files d'attente, élaborée pour le dimensionnement des réseaux téléphoniques, relie le nombre d'usagers, le nombre de canaux disponibles, le temps d'occupation moyen du canal, et les temps d'attente à prévoir[3].

Limites de la méthode

Dans un logiciel informatique, l'avantage de cet ordonnancement réside dans sa relative simplicité ; cependant elle pénalise les processus à temps bref d'exécution : en effet, si on lance, à la suite d'un processus qui demande beaucoup de temps de calcul, une petite tâche (par exemple, dans un serveur qui ne gère qu'une imprimante, imprimer une page), la petite tâche devra attendre la fin de la tache qui demande beaucoup plus de temps (imprimer cent pages) avant de s'exécuter. À l'époque des machines à un seul processeur, c’était la technique la plus fiable pour être sûr d'effectuer les opérations dans un ordre logique[4].

Cet algorithme est également utilisé comme politique de remplacement des lignes de cache en raison de sa simplicité d'implémentation et de son faible coût. Néanmoins, il présente dans cet usage une anomalie connue sous le nom d'anomalie de Belady : augmenter le nombre d'étages de la file peut avoir un effet négatif sur la performance.

Applications

Ce type est utilisé par exemple :

  • en gĂ©nĂ©ral, pour mĂ©moriser temporairement des transactions qui doivent attendre pour ĂŞtre traitĂ©es ;
  • les serveurs d'impression, qui traitent ainsi les requĂŞtes dans l'ordre dans lequel elles arrivent, et les insèrent dans une file d'attente (dite aussi queue ou spool) ;
  • certains moteurs multitâches, dans un système d'exploitation, qui doivent accorder du temps-machine Ă  chaque tâche, sans en privilĂ©gier aucune ;
  • un algorithme de parcours en largeur utilise une file pour mĂ©moriser les nĹ“uds visitĂ©s ;
  • pour crĂ©er toutes sortes de mĂ©moires tampons (en anglais « buffers ») ;
  • En gestion des stocks les algorithmes doivent respecter la gestion physique des stocks pour assurer la cohĂ©rence physique/valorisation.

Primitives

Voici les primitives communément utilisées pour manipuler des files. Il n'existe pas de normalisation pour les primitives de manipulation de file. Leurs noms sont donc indiqués de manière informelle[1].

  • « Enfiler » : ajoute un Ă©lĂ©ment dans la file. Le terme anglais correspondant est enqueue.
  • « DĂ©filer » : renvoie le prochain Ă©lĂ©ment de la file, et le retire de la file. Le terme anglais correspondant est dequeue.
  • « La file est-elle vide ? » : renvoie « vrai » si la file est vide, « faux » sinon.
  • « Nombre d'Ă©lĂ©ments dans la file » : renvoie le nombre d'Ă©lĂ©ments dans la file.

Exemple en C#

Notes et références

  1. queue est le terme anglais emprunté au français, tandis que file désigne dans cette langue un fichier.
  1. Cf. Alfred Aho, John Hopcroft et Jeffrey Ullman (trad. J.-M. Moreau), Structures de données et algorithmes, Paris, InterÉditions, , 450 p. (ISBN 978-2-7296-0194-2), « Types de données abstraites élémentaires », p. 58-62
  2. Bachelet 2011.
  3. Michel Fleutry, Dictionnaire encyclopédique d'électronique : anglais-français, Paris, La maison du dictionnaire, , 1054 p. (ISBN 2-85608-043-X), p. 699 ; (en) R.L. Brewster, Telecommunications technology, Chichester, UK, Ellis Horwood, , p. 45.
  4. Cf. « Files d'attente », sur Université P. et M. Curie Paris -- Systèmes d'exploitation des ordinateurs

Voir aussi

Bibliographie

Articles connexes

Liens externes

  • Bruno Bachelet, « File d'attente », dans Structures de donnĂ©es, (lire en ligne)
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.