Объекты ядра подсчета ссылок ядра Linux?

Если 2 дескрипторов файлов копировались в тот же файл (т.е. 506 и STDOUT), будет вызов close(506) очистка объект, связанный обоими и рендерингом STDOUT неприменимый? Или ядро реализует подсчет ссылок для своих файлов?

6
задан live2dream95 26 February 2010 в 20:45
поделиться

2 ответа

Ядро реализует подсчет ссылок, поэтому объект ядра не закрывается до тех пор, пока не будут закрыты все указатели файлов, указывающие на него.

7
ответ дан 8 December 2019 в 18:35
поделиться

Счетчики ссылок широко используются внутри ядра, чтобы избежать состояний гонки из-за одновременного выделения и высвобождение ресурса. Счетчик ссылок - это просто счетчик atomic_t, связанный с определенным ресурсом, таким как страница памяти, модуль или файл. Счетчик атомарно увеличивается, когда путь управления ядром начинает использовать ресурс, и уменьшается, когда путь управления ядром завершает использование ресурса. Когда счетчик ссылок становится нулевым, ресурс не используется, и при необходимости его можно освободить.

Возможно, вы захотите увидеть это, если захотите просмотреть это для обзора реализации подсчета ссылок ядра Linux.

6
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: