(j'ai pas dit DANS LE NOYAU, j'ai dit en MODE NOYAU)
euh... tu m'expliques là ? j'suis pas le seul à pas comprendre ce que tu entends par là... Par définition, le noyau c'est ce qui s'exécute en mode noyau....
comment un IPC peut coûter moins cher qu'un appel système alors que l'IPC ajoute des instructions par rapport à l'appel système
Parce que le noyau et le serveur spécialisé étant tous les deux plus simples et plus compacts, l'empreinte sur le cache, les problèmes de pile, ... sont réduits. Avoir un gros noyau oblige à compliquer le code à base de locks, ... qui coûtent chers en terme de performance.
De plus, les serveurs sont beaucoup plus facilement préemptibles et multithreadés que le code noyau, ce qui donne aussi un gain de performances, surtout sur les machines multi-processeurs.
Mais surtout, le plus important ce n'est pas le gain sur le RPC ou le syscall lui-même, ce sont toutes les autres optimisations qui sont possibles avec un système à base de micro-noyau, comme le 0-copy (cf mon post plus haut), la possibilité pour les programmes de gérer eux-mêmes leur mémoire virtuelle (ou au moins d'utiliser une VM qui leur convient, puisqu'il n'y a pas de VM optimale), ou bien l'optimisation des IPCs qui existent déjà. Trouve moi un seul noyau monolithique où tu peux choisir la VM et le scheduler que tu veux utiliser ? Sur un système à base de micro-noyaux, tu peux même avoir plusieurs VM et plusieurs schedulers pour des applications différentes. Et là, le gain de perf peut être énorme.
[^] # Re: linux a 11 ans, momment de changer d'air!
Posté par Gaël Le Mignot . En réponse à la dépêche Bitkeeper, RMS et PLONK.. Évalué à 1.
euh... tu m'expliques là ? j'suis pas le seul à pas comprendre ce que tu entends par là... Par définition, le noyau c'est ce qui s'exécute en mode noyau....
comment un IPC peut coûter moins cher qu'un appel système alors que l'IPC ajoute des instructions par rapport à l'appel système
Parce que le noyau et le serveur spécialisé étant tous les deux plus simples et plus compacts, l'empreinte sur le cache, les problèmes de pile, ... sont réduits. Avoir un gros noyau oblige à compliquer le code à base de locks, ... qui coûtent chers en terme de performance.
De plus, les serveurs sont beaucoup plus facilement préemptibles et multithreadés que le code noyau, ce qui donne aussi un gain de performances, surtout sur les machines multi-processeurs.
Mais surtout, le plus important ce n'est pas le gain sur le RPC ou le syscall lui-même, ce sont toutes les autres optimisations qui sont possibles avec un système à base de micro-noyau, comme le 0-copy (cf mon post plus haut), la possibilité pour les programmes de gérer eux-mêmes leur mémoire virtuelle (ou au moins d'utiliser une VM qui leur convient, puisqu'il n'y a pas de VM optimale), ou bien l'optimisation des IPCs qui existent déjà. Trouve moi un seul noyau monolithique où tu peux choisir la VM et le scheduler que tu veux utiliser ? Sur un système à base de micro-noyaux, tu peux même avoir plusieurs VM et plusieurs schedulers pour des applications différentes. Et là, le gain de perf peut être énorme.