Question

Si 2 descripteurs de fichiers ont été dupped au même fichier (à savoir 506 et STDOUT), va invoquer le nettoyage de close(506) l'objet associé à la fois et rendre inutilisable STDOUT? Ou est-ce noyau Implémenter référence comptant pour ses fichiers?

Était-ce utile?

La solution

Le noyau implémente le comptage de référence, de sorte que l'objet du noyau ne soit pas fermé jusqu'à ce que tout le fichier poignées pointant vers elle sont fermés.

Autres conseils

compteurs de référence sont largement utilisés à l'intérieur du noyau pour éviter les conditions de course en raison de l'attribution simultanée et la libération d'une ressource. Un compteur de référence est juste un compteur de atomic_t associé à une ressource spécifique, comme une page de mémoire, un module ou un fichier. Le compteur est atomiquement augmenté lorsqu'un chemin de contrôle du noyau commence à utiliser la ressource, et il diminue lorsqu'un chemin de contrôle du noyau se termine en utilisant la ressource. Lorsque le compteur de référence devient nul, la ressource n'est pas utilisé, et il peut être libéré si nécessaire.

Vous pouvez prendre soin de voir si vous voulez regarder à travers cette pour avoir un aperçu de la mise en œuvre de comptage de référence du noyau Linux.

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