Quoting postcard@???:
:Toutes ces optimisations ne change pas le fait qu'une technique
:client/serveur TCP/IP ou pipe reste, sauf erreur de ma part, des
:octets lances d'un cote par les applications clientes et interprete
:de l'autre cote par la couche application serveur (j'insiste sur le
:mot : interprete).
:
:Cela est forcement moins rapide qu'un appel direct de fonction.
Oui. C'est vrai.
C'est tout le probleme.
Note que c'est comme un appel systeme: quand tu fais un
char buf[1024];
read(0, buf, 1024);
en C, que se passe-t-il? Voici la chaine des appels (fictive):
read(0, buf, 1024);
syscall(SYS_READ, 0, buf, 1024);
TRAP
(passage en mode Kernel, on est dans le noyau mainteant)
TRAP handler
syscall()
syscall_fetch_args() -- rien si tous dans registre
read(args) -- args sous forme de tableau
... lecture dans tmp[] de nb_read octets...
copyout(tmp, buf, nb_read) -- frontiere U/K
Ca serait plus rapide d'appeler directement la fonction read() du kernel.
Je me demande bien pourquoi on s'embete avec toute ces contorsions!?
Raphael