Faut ménager les papys... Alors, on va dire http....Envoyé par David.Schris
Faut ménager les papys... Alors, on va dire http....Envoyé par David.Schris
Pas de Wi-Fi à la maison : CPL
ben que crois-tu qu'est :Envoyé par David.Schris
C'est pas un protocole ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <body> <table width="100%" cellspacing="4"> <tr> <td align="center"> <table width="100%" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" cellspacing="11"> <tr> <td> <a href="http://www.developpez.com"><img src="images/logo.gif" alt="Accueil" /></a>
HTML est un PROTOCOLE de formattage de document, HTTP est un PROTOCOLE de communication, etc....
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Ben désolé pour la sémantique, mais pour moi une programmation évènementielle c'est une programmation où on saute d'un point à un autre en fonction des évènements....Envoyé par Médinoc
Donc une connection asynchrone sur un socket qui par signal appelle une fonction est dans ma définition un événement....
Ah bon ?? Pourquoi en un seul point ? Justement si les événements viennent de plusieurs sources, tu devrait pouvoir avoir plusieurs points (c'est d'ailleurs ce que j'ai dans mes applications : le XMainLoop pour la gestion des événements fenêtre, et une fonction DialogWithServers qui simultanément dans la même application gère les événements sockets)(et sans X, un fgets par exemple pour l'interrogateur de serveur (attente prochaine commande) en parallèle avec la gestion interrupt)....Envoyé par Médinoc
Envoyé par Médinoc
BON !!! Là on commence à parler sérieusement....
Et c'était bien ce que je disais au début du thread, en disant que il y a VRAIMENT une différence fondamentale entre les sockets U.X et les sockets Windows... (et que ça ne se résume à WSAStart)...
Envoyé par Médinoc
je suis d'accord avec toi, mais c'est la notion même d'avoir à introduire un id de fenêtre (même si elle n'est pas visible) qui me choque profondément..
(ce qui fait d'ailleurs que porter une énorme application telle que la mienne, dont le point central réside dans la possibilité de pouvoir faire ce qui est décrit ci-dessus, génère un casse-tête éthique , esthétique, et de programmation, car rien n'était prévu pour traverser les couches...)
Et c'est pour ça que je tenais à le porter à votre attention, car je n'ai pas l'impression que beaucoup en soit conscients...
non ça m'offense pas du tout ... Mais c'est bien ce que je voulais dire au début... Il y a comme une teinte Windows ET dans le langage ET dans la pensée.... Et comme je ne viens pas de ce monde, ça m'énerve juste un peu qu'on utilise ce genre de termes/logique comme si c'état normal et naturel, alors que c'est originaire et principalement utilisé dans ce monde....Envoyé par Médinoc
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Bah, non. HyperText Markup Language, n'a rien d'un protocole...Envoyé par souviron34
Par contre HyperText Transfert Protocole, est bel et bien un protocole utilisé pour transférer du HTML et dérivés (XHTML, etc.).
Pas de Wi-Fi à la maison : CPL
Là, il y a conflit, car je fais une différence entre programmation événementielle et programmation interruptible.Envoyé par souviron34
Pourtant, wikipédia semble de ton coté:Mais le fonctionnement interruptiple n'est pas aussi propre que de la "vraie" programmation événementielle.Envoyé par [url=http://en.wikipedia.org/wiki/Event-driven_programming]Wikipédia[/url]
Envoyé par [url=http://en.wikipedia.org/wiki/Signal_%28computing%29]Wikipédia[/url]De plus, ta fonciton DialogWithServer ne PEUT PAS s'exécuter simultanément si on ne parle pas de multi-thread.Envoyé par [url=http://en.wikipedia.org/wiki/SIGPOLL]Wikipédia: SIGIO/SIGPOLL[/url]
Par contre, elle peut être appelée par un signal et donc INTERROMPRE ta XMainLoop() à tout moment, même pendant le traitement d'un événement X.
Ce qui n'est pas possible sous Windows.
Là, je te rejoins.Envoyé par souviron34
Chaque thread sous Windows possède sa propre file de messages, et un message peut être destiné à une fenêtre ou au thread lui-même. Il n'est pas normal qu'un message réseau doive être destiné à une fenêtre.
PS: Pour moi, c'est le monde unix qui n'est pas normal, où les threads sont un bricolage par rapport aux processus au lieu d'être directement intégrés au kernel.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
RIEN ne s'exécute simultanément... C'est le scheduler qui gère ça..Envoyé par Médinoc
Alors là pas du tout d'accordEnvoyé par Médinoc
Comme tu le disais précedemment :
Et le fait qu'ils soient très fiers de cette "feature" dans la doc. montre que c'est une violation volontaire et délibérée de la manière de faire généralement acceptée (pour mémoire, les unixoides étaient le consensus généralement acceptés par l'ensemble des constructeurs.. sauf qui vous savez ;-) )Envoyé par Médinoc
Et contrairement à ce que tu disais plus haut, ça n'est pas une faiblesse.. C'est fait exprès...
Et comme je te le disais, jusquà vouloir porter sous Win. je n'ai jamais ni utilisé ni même entendu parler de la notion de thread...
Je ne rentrerais pas dans le débat des responsabilités, mais je pense qu'il faut bien être conscient pour tous les programmeurs qui s'occupent des sockets et créent des architectures que cette "feature" fait que l'on ne PEUT avoir une architecture fonctionnellement propre... C'est tout..
Et que c'est une déformation d'usage (pour ne pas dire plus) qui fait que l'on déporte sur d'autres systèmes une manière de faire qui n'était que propre à un système..
Enfin, pour Emmanuel et David, bien entendu que HTML est un langage, mais le principe est un protocole :
HTML est donc un protocole, par lequel un ensemble de signes est agréé....Le grand Robert :
(1923). Techn. Modèle des signes; liste de conventions (utilisée pour la correction, comme mode d'emploi).
Un langage (y compris le français ;-) est un protocole de communication...
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Envoyé par souviron34Alors là pas du tout d'accordVa dire ça aux proprios d'un serveur Win2003 à deux processeurs dual-core hyperthreadés (deux processeurs réels qui donnent huit processeurs virtuels). Avant Linux 2.6, tu n'avais qu'un seul processus, donc les avantages d'un multiprocesseur n'étaient pas exploitables. Depuis Linux 2.6, grâce à un astucieux bricolage appelé NPTL, tu as un processus PAR thread (et non l'inverse), qui permet d'utiliser le multiprocesseur pour un même "processus multithreadé". Pour les autres unixoïdes, je ne sais même pas si c'est implémenté...Et contrairement à ce que tu disais plus haut, ça n'est pas une faiblesse.. C'est fait exprès...
De plus, c'est toi qui a dit "simultanément" et en informatique, simultanément signifie "dans deux flots de contrôle parallèles" alors que ton exemple sur les signaux ne montre qu'un seul flot de contrôle, interrompu (et le mien un seul pas interrompu du tout) : Même sur un multiprocesseur, il n'y aura qu'un seul flot dans ton exemple unix comme dans mon exemple Windows.
Et le fait qu'ils soient très fiers de cette "feature" dans la doc montre que c'est une violation volontaire et délibérée de la manière de faire généralement acceptée (pour mémoire, les unixoides étaient le consensus généralement acceptés par l'ensemble des constructeurs.. sauf qui vous savez ;-) )Je ne rentrerais pas dans le débat des responsabilités, mais je pense qu'il faut bien être conscient pour tous les programmeurs qui s'occupent des sockets et créent des architectures que cette "feature" fait que l'on ne PEUT avoir une architecture fonctionnellement propre... C'est tout..Les sockets asynchrones étaient une extension des deux cotés. D'ailleurs, ta "bonne manière de faire" est maintenant dépréciée et une autre est conseillée...Et que c'est une déformation d'usage (pour ne pas dire plus) qui fait que l'on déporte sur d'autres systèmes une manière de faire qui n'était que propre à un système..
Si le kernel Windows ne supporte pas l'existant interruptible avec les signaux ou avec select(), un existant qui a les inconvénients déjà évoqués, autant faire mieux...Envoyé par Wikipédia: SIGIO/SIGPOLL
Et je rappelle que tu PEUX faire un serveur 100% sockets avec select() (là, ça devient du vrai événementiel)... Ils ont même rajouté le premier paramètre, inutile sous Windows et ch***t à obtenir sous unixoïde, uniquement pour la compatibilité...
Normal, sous Unixoïde, on ne parle pas de thread tant qu'on n'évoque pas le multithread. Sous un vrai OS, on parle de processus monothreadé ou multithreadé...Et comme je te le disais, jusquà vouloir porter sous Win. je n'ai jamais ni utilisé ni même entendu parler de la notion de thread...
FAUX. Le langage fait partie du protocole, mais n'est pas lui-même un protocole. Tu as perdu.Enfin, pour Emmanuel et David, bien entendu que HTML est un langage, mais le principe est un protocole :
HTML est donc un protocole, par lequel un ensemble de signes est agréé....
Un langage (y compris le français ;-) est un protocole de communication...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
C'est jouer sur les mots. HTML est un langage, HTTP est un protocole (comme leurs noms l'indiquent).Envoyé par souviron34
euhh...Envoyé par Médinoc
Wikipédia donne :
.....Langue
Un article de Wikipédia, l'encyclopédie libre.
Une langue est un système de signes linguistiques vocaux, graphiques ou gestuels qui permet la communication entre les individus.
Une définition linguistique de la langue précise que c'est un système de signes doublement articulés, c'est-à-dire que la construction du sens se fait à deux niveaux d'articulation. On trouve tout d'abord celui des entités signifiantes (morphèmes et lexèmes, ou monèmes) formant les énoncés puis celui des unités distinctives de sens (phonèmes) formant les unités signifiantes. Ces deux niveaux d'articulation déterminent les premiers niveaux de la description linguistique : phonologie, morphologie et syntaxe. André Martinet précise que l'ordre de description est nécessairement inverse de l'ordre de perception ou d'usage de la langue : la description commence par le deuxième niveau d'articulation (les phonèmes) pour aller vers le premier (la combinatoire des unités signifiantes).
Langue et langage
On distingue généralement la langue (système de signes) et le langage (faculté humaine mise en œuvre au moyen d'un tel système).
je rajouterais aussi :
Protocole
On désigne sous ce terme tout ce qui rend la communication possible ou plus aisée sans rapport avec le contenu de la communication elle-même.
Attendre une tonalité pour numéroter, demander à l'interlocuteur de se répéter, épeler son nom, s'entendre tacitement sur le moment où une communication sera considérée comme terminée font partie des protocoles.
La mise en œuvre d'un protocole demande la définition de normes élaborées.
....
http://fr.wikipedia.org/wiki/Protocole_de_communication
Dans les réseaux informatiques et les télécommunications, un protocole de communication est une spécification de plusieurs règles pour un type de communication particulier.
Initialement, on nommait protocole ce qui est utilisé pour communiquer sur une même couche d'abstraction entre deux machines différentes. Par extension de langage, on utilise parfois ce mot aussi aujourd'hui pour désigner les règles de communication entre deux couches sur une même machine.
Les protocoles de communication les plus utilisés sont les protocoles réseau.
Le concept [modifier]
Communiquer consiste à transmettre des informations mais tant que les interlocuteurs ne lui ont pas attribué un sens il ne s'agit que de données pas d'information. Les interlocuteurs doivent donc non seulement parler un langage commun mais aussi maitriser des règles minimales d'émission et de réception des données. C'est le rôle d'un protocole de s'assurer de tout cela. Par exemple dans le cas d'un appel téléphonique:
l'interlocuteur apprend que vous avez quelque chose à transmettre (Vous composez son numéro pour faire sonner son combiné) ;
il indique qu'il est prêt à recevoir (vous attendez qu'il décroche et dise "Allo") ;
il situe votre communication dans son contexte (« Je suis Christophe. Je t'appelle pour la raison suivante... ») ;
un éventuel destinataire final peut y être identifié (« Peux-tu prévenir Michel que... ») ;
le correspondant s'assure d'avoir bien compris le message (« Peux-tu me répéter le nom ? ») ;
les procédures d'anomalies soient mises en place (« Je te rappelle si je n'arrive pas à le joindre ») ;
les interlocuteurs se mettent d'accord sur la fin de la communication (« Merci de m'avoir prévenu »).
Cette métacommunication n'est autre que la mise en œuvre de protocoles.
Mais vous avez déjà implicitement observé un autre protocole, avec une autre couche de communication, en attendant d'avoir la tonalité pour composer le numéro de votre correspondant. Et les standards téléphoniques de départ et d'arrivée, pour leur part, se sont coordonnés entre eux aussi : autant de protocoles.
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Envoyé par Médinoc
Euhh... La parallèlisation multiprocesseurs existe depuis ... 20 ans ?? (et même en réseau)..
Il y a même un langage ( ) associé : le MPI.
http://www-unix.mcs.anl.gov/mpi/
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
MPI, c'est du MultiprocessUS s'il te plait (donc, c'est évident que ça marche sur du multiprocessEUR).
Il est plus intéressant de parler d'OpenMP, dont Wikipédia ne dit pas grand-chose de l'implémentation sous-jacente sur un système unixoïde, mais il y a fort à supposer que ce soit là encore basé sur du multiprocessus+mémoire partagée puisqu'il serait impossible de répartir le même processus sur différents processeurs sur un kernel unixoïde (cela équivaudrait à répartir le même thread sur différents processeurs sous Windows!)
Donc là encore, c'est du bricolage: On prend plusieurs processus et on les regroupe, plutôt que d'avoir un seul vrai processus multi-thread...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
euh là je te suis plus....
Compiler une application en la rendant parallèle gràce aux outils de compilation, j'appelle pas ça du multi-processus...
Je me souviens que Silicon (je n'ai plus la réference en tête pour l'instant) avait directement une variable système à mettre en tête des programmes qui était quelque chose comme NumCPU(NCpus) et ça sous leur version de Unix en 1992. ... Et directement à la compile le code était parallèlisé en fonction du nombres de CPU.
Et il me semble bien que VMS permettait ça en 1989 ...
Moi j'appelle ça du multi-processeurs, non ?
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Multi-processus, ça se voit selon ce que "voit" ou non le kernel pour une même application.
(sachant qu'un kernel unixoïde ne voit rien de plus petit qu'un processus).
- Si elle lui apparait comme un seul processus, c'est que soit elle est mono-threadée, soit elle fait sa tambouille dans son coin (et dans ce cas, impossible de la répartir sur plusieurs processeurs, puisque le kernel ne voit qu'une seule entité).
- Si elle apparait comme plusieurs processus, j'appelle ça du multiprocessus. Même si au niveau au-dessus, ça passe pour un "processus multi-thread", si pour le kernel c'est en réalité plusieurs processus, c'est du multiprocessus (même s'il est déguisé en multithread).
La question peut se poser aussi sous un noyau Windows selon les applications, mais lui peut voir trois choses différentes et non deux:
- Un seul processus monothreadé,
- Un seul processus multithreadé,
- Plusieurs processus, qu'ils soient monothreadés ou multithreadés.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager