Учитываются ли ссылки на ядро Linux для объектов ядра?

StackOverflow https://stackoverflow.com/questions/2344705

  •  23-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top