Les performances des micros noyaux?
Il faut arrêter, on n'est plus au temps de Minix 1...
Il y a eu _beaucoup_ de progrès, la diminution de performance est négligeable.
En ce qui concerne les ressources partagées, cela me rappele un poste de Linus, qui casse le mythe de la simplicité d'un micro-noyau par rapport à un noyau monolithique:
The fundamental result of access space separation is that
you can't share data structures. That means that you can't
share locking, it means that you must copy any shared data,
and that in turn means that you have a much harder time
handling coherency. All your algorithms basically end up
being distributed algorithms.
And anybody who tells you that distributed algorithms
are "simpler" is just so full of sh*t that it's not even
funny.
Microkernels are much harder to write and maintain
exactly because of this issue. You can do simple
things easily - and in particular, you can do things where
the information only passes in one direction quite easily,
but anythign else is much much harder, because there is
no "shared state" (by design). And in the absense of shared
state, you have a hell of a lot of problems trying to make
any decision that spans more than one entity in the
system.
Sinon, il y a tout plein de méchanisme de synchronisation granulaires dans le noyau : spinlock_t, spinlock_bh, rw_lock_t, ...
Le problème c'est qu'on ne peut pas employer n'importe quoi n'importe où (interruption, softirq, etc).
[^] # Re: Et les micro noyaux type HURD ?
Posté par neologix . En réponse à la dépêche La fin du verrou global dans le noyau Linux ?. Évalué à 6.
Il faut arrêter, on n'est plus au temps de Minix 1...
Il y a eu _beaucoup_ de progrès, la diminution de performance est négligeable.
En ce qui concerne les ressources partagées, cela me rappele un poste de Linus, qui casse le mythe de la simplicité d'un micro-noyau par rapport à un noyau monolithique:
The fundamental result of access space separation is that
you can't share data structures. That means that you can't
share locking, it means that you must copy any shared data,
and that in turn means that you have a much harder time
handling coherency. All your algorithms basically end up
being distributed algorithms.
And anybody who tells you that distributed algorithms
are "simpler" is just so full of sh*t that it's not even
funny.
Microkernels are much harder to write and maintain
exactly because of this issue. You can do simple
things easily - and in particular, you can do things where
the information only passes in one direction quite easily,
but anythign else is much much harder, because there is
no "shared state" (by design). And in the absense of shared
state, you have a hell of a lot of problems trying to make
any decision that spans more than one entity in the
system.
Le reste ici : http://www.realworldtech.com/forums/index.cfm?action=detail&(...)
Sinon, il y a tout plein de méchanisme de synchronisation granulaires dans le noyau : spinlock_t, spinlock_bh, rw_lock_t, ...
Le problème c'est qu'on ne peut pas employer n'importe quoi n'importe où (interruption, softirq, etc).