Question

Je cherchais sur la façon dont le travail tordu et de Node.js et je suis essayer de comprendre exactement comment le système d'exploitation des supports d'E / S opérations à l'aide callbacks.

Je comprends qu'il est bien parce que nous avons besoin de moins de discussions parce que nous ne sommes pas besoin d'avoir bloqué les threads en attente pour les opérations d'E / S. Mais quelque chose doit appeler la fonction de rappel une fois que le E / S est terminée.

Comment cette mise en œuvre par le système d'exploitation?

Était-ce utile?

La solution

Une approche est d'avoir le système d'exploitation joindre des informations sur toute personne en attente d'un rappel à la structure de données pertinentes, telles que l'équivalent en noyau du descripteur de fichier que vous d'attente pour une notification de lecture au sujet. Quand quelque chose arrive à ce descripteur de fichier, le système d'exploitation scanne les serveurs pour voir si doit être notifié. S'ils le devraient, il le fait. Vous pouvez lire une mise en œuvre de cette papier de citron introduction mécanisme de kqueue de FreeBSD . Voir en particulier la section 6, "Mise en œuvre", les paragraphes 3 et 4, "Activité sur Source de l'événement" et "livraison".

Autres conseils

Ceci est résolu dans OS en utilisant "installations de notification d'événements E / S / interfaces", par exemple epoll , sondage, kqueue ou sélectionnez.

Jetez un oeil à adroite, et surtout son java.nio. channels.Selector est le chemin de nio java pour fournir une abstraction pour cela.)

disclaimer: im une adroite committer

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top