Aller au contenu

Discussion:Sémaphore (informatique)

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

-> Il y a une erreur dans le code de V(). Il ne faudrait incrémenter le sémaphore que si la liste est vide.

Cet article est excellent et exact... merci beaucoup à son auteur

Quel language?[modifier le code]

Je crois qu' il faudrait préciser quel language utilisent les exemples.

-> ne faudrait-il pas préciser quel langage de programmation utiliser, et donner quelques exemples ?


Non,

Il s'agit d'un concept d'algorithmie, il est donc indépendant d'un quelconque langage de programmation. Son implémentation dépend du système d'exploitation qui est le seul à devoir gérer les accès exclusifs (si les tâches sont correctement réparties, bien sûr).

Implémentation matérielle, vraiment ?[modifier le code]

L'article dit : « Pour pouvoir exister sous forme logicielle, ils nécessitent une implémentation matérielle (au niveau du microprocesseur), permettant de tester et modifier la variable protégée au cours d'un cycle insécable.» Or il me semble que des solutions purement logicielles existent, non (les algos listés dans Catégorie:Algorithme d'exclusion mutuelle) ? Dans Motorola 68000, il est aussi écrit : « A noter la présence de l'instruction TAS (Test And Set) qui permet de tester et modifier la valeur d'un octet en mémoire en une seule instruction non interruptible. Ce type d'instruction est indispensable pour implémenter les sémaphores ». Marc Mongenet 24 avril 2007 à 21:38 (CEST)[répondre]

Je plussoie. C'est pas pour rien que des gens se sont cassé la tête pour trouver des algorithmes d'exclusion mutuelle. Cela dit les mutex sont la plupart du temps implémentés de façon matérielle (car c'est beaucoup plus efficace) sur la plupart des systèmes.
Après Réflexion il semblerait qu'il n'y ait pas de solution purement logicielle pour implémenter les sémaphores. On peut bien entendu utiliser un mutex qui fait de l'attente active (comme l'algo de Peterson), mais pour relâcher le mutex et endormir le processus de façon atomique, je n'ai trouvé aucune solution logicielle.
Les systèmes multiprocesseurs interdisent une solution purement logicielle, il faut un verrou matériel sur le bus et un contrôle des caches interprocesseurs.
Par contre l'attente active est contournable depuis l'invention de l'APIC qui permet de générer des interruptions dans le système et de les récupérer pour réveiller un thread ou un processus.Ppignol (d) 5 septembre 2010 à 12:04 (CEST)[répondre]

Proberen et Verhogen[modifier le code]

Juste pour la petite anecdote, je suis étudiant en informatique, et en cours de système d'exploitation nous avons appelé les opérations P et V : Prendre et Vendre.

[Edit] Je suis un autre étudiant et nous utilisons le Français "Prendre" et "Verser", que je trouve être bien plus parlant que "Puis-je ?" et "Vas-y !".

Sémaphores obsolètes aujourd'hui vraiment?[modifier le code]

Bonjour! je suis étudiant en génie logiciel. Je ne suis pas vraiment d'accord avec le terme obsolète pour décrire les sémaphores aujourd'hui et je me permets d'ajouter que les sémaphores vont être préférés aux moniteurs lorsque nous voulons une plus grande liberté dans notre algorithme de synchronisation. Si, par exemple, vous voulez que 3 processus s'exécutent en même temps, mais que l'ordre d'exécution est toujours processus 1,2,3,1,2,3,1,2.... il est beaucoup plus simple d'utiliser des sémaphores que des moniteurs! Vous n'auriez qu'à utiliser 3 mutex, chaque processus faisant P(sonPropreMutex) et à la fin V(mutexDuProcessusSuivant), contrairement au moniteur où il serait nécessaire d'utiliser plusieurs conditions pour arriver au même résultat.

Aussi, à ma connaissance (j'aimerais me tromper, ça serait intéressant), les moniteurs ne sont implémentés que dans quelques langages et ne sont pas accessibles en C++ par exemple. Ce qui est une raison de plus pour dire que les sémaphores ne sont pas obsolètes. --Amuel1 (d) 8 décembre 2012 à 19:51 (CET)[répondre]

Référence morte[modifier le code]

Bonjour ! Je voudrais signaler que la 3e référence mène à une erreur 404. Je ne connais pas de page qui pourrait remplacer celle-ci, et je ne sais pas comment le signaler de manière appropriée.

Il existe {{lien brisé}} pour pointer vers une archive du site en attendant un remplaçant. JackPotte ($) 5 mai 2016 à 17:37 (CEST)[répondre]