Path: csiph.com!eternal-september.org!feeder.eternal-september.org!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!proxad.net!feeder1-2.proxad.net!cleanfeed2-b.proxad.net!nnrp4-2.free.fr!not-for-mail Date: Sun, 9 Aug 2015 10:04:20 +0200 From: Laurent Bloch To: Yliur , Laurent Bloch , Pascal Obry Newsgroups: fr.comp.lang.ada,fr.comp.algorithmes Subject: Re: Traduction pour "concurrency, concurrent programming" Message-ID: <20150809100420.2ce98018@beatrix> In-Reply-To: <20150806044303.44f31fc6@free.fr> References: <20150805190632.7a2cf248@beatrix> <20150806044303.44f31fc6@free.fr> X-Newsreader: Claws Mail 3.9.3 (GTK+ 2.24.23; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lines: 94 Organization: Guest of ProXad - France NNTP-Posting-Date: 09 Aug 2015 10:04:20 CEST NNTP-Posting-Host: 88.190.64.166 X-Trace: 1439107460 news-2.free.fr 3179 88.190.64.166:33283 X-Complaints-To: abuse@proxad.net Xref: csiph.com fr.comp.lang.ada:1319 fr.comp.algorithmes:579 Merci ! Je me résoudrai donc à « concurrent », bien qu'il présente l'inconvénient de véhiculer des connotations ignorées de son homonyme anglais. Cordialement ! Le jeudi 06 août 2015 Yliur a écrit ceci : > Le Wed, 5 Aug 2015 19:06:32 +0200 > Laurent Bloch a écrit : > > > Bonjour, > > > > Voici une question qui me semble adaptée aux groupes auxquels > > je l'adresse : comment traduire en français "concurrency, concurrent > > programming" ? Quelle distinction avec parallélisme, > > multiprogrammation, multi-tâche ? > > > > Merci de toute suggestion ! > > Étant donné que les définitions ne sont pas unifiées, ni en anglais ni > en français, pas évident de fixer des traductions ou des termes. > > Quelques éléments en vrac : > > - Multi-tâches est un terme que j'ai surtout vu employé dans le > cadre des systèmes d'exploitation, plutôt pour décrire le fait > qu'ils savent gérer ces tâches que pour traiter la manière dont > elles-mêmes sont programmées. > > - D'un autre côté "tâche" peut décrire assez bien des "trucs à > réaliser" par un programme (issu d'un découpage : les tâches > pouvant être exécutées en séquence, en parallèle, ...). Mais je > ne me souviens pas avoir vu le terme "multi-tâches" pour un > programme parallélisé. > > - Je me souviens d'un article qui choisissait une distinction > intéressante entre concurrence (le fait que deux tâches aient > besoin d'accéder aux mêmes ressources [processeur exclu ici]) et > parallélisme (le fait d'exécuter des bouts de code en parallèle). > Ici on imagine un programme découpé en "tâches", qui peuvent être > concurrentes ou non (deux tâches peuvent avoir besoin d'accéder à > une structure de données commune par exemple, ou à un fichier > commun...). Cette notion de concurrence était indépendante du > fait que les tâches soient exécutées ou non en parallèle. C'est > juste un découpage conceptuel du programme. Les tâches peuvent > être exécutées les unes à la suite des autres (par exemple une > fonction appelle les fonctions correspondant aux tâches, ou > simplement le code est écrit tout à la suite dans une fonction > unique) ou en parallèle (dans plusieurs fils d'exécution > séparés). Dans le cas d'exécution parallèle de tâches > concurrentes, des mécanismes sont nécessaires pour éviter les > ennuis. > > - On pourrait aussi dire que le temps du processeur est une > ressource partagée et que s'il y a plusieurs tâches elles sont > potentiellement concurrentes par rapport à cette ressource. Le > parallélisme serait alors le fait d'exécuter des tâches > réellement en parallèle : plutôt le fait d'avoir plusieurs cœurs > et/ou processeurs et de les utiliser que le simple fait d'avoir > plusieurs fils d'exécution. Une distinction peut-être moins > intéressante, si on s'intéresse surtout aux problèmes > d'interactions entre les tâches. D'autant que du coup elles sont > toutes concurrentes. > > - Il me semble aussi avoir lu un article qui parlait de > programmation concurrente et concourante, la première traitant de > tâches qui ont des problèmes de concurrences d'accès à certaines > ressources, la seconde le simple fait que l'exécution ait lieu en > même temps (ou potentiellement en même temps, donc utiliser des > fils d'exécution suffit pour que la programmation soit > concourante dans cette définition me semble-t-il, peu importe > qu'il y ait un ou plusieurs cœurs pour exécuter les tâches > réellement en parallèle). > > D'autres définitions ici (programmation concurrente "disjointe" ou > non) : > https://fr.wikipedia.org/wiki/Programmation_concurrente > > Donc pour répondre plus précisément à ta question : "concurrence" et > "programmation concurrente" semblent adaptés. Avec distinction entre la > concurrence et le parallélisme si la concurrence représente le fait que > des tâches aient des conflits potentiels d'accès à des ressources > (indépendamment du fait qu'on les exécute réellement en parallèle ou > non) et le parallélisme représente le fait d'exécuter des tâches en > parallèle ou potentiellement en parallèle (que les tâches soient > concurrentes ou non). > -- Laurent Bloch -- Université Paris-Dauphine -- +33 6 03 12 16 97