Если в один и тот же файл были записаны два дескриптора файла (то есть 506
и STDOUT
), вызывается close(506)
очистка объекта, связанного с ними, и рендера STDOUT
непригодным к использованию? Или ядро реализует подсчет ссылок для своих файлов?Является ли ссылка ядра ядра ссылкой на объекты ядра?
ответ
Ядро реализует подсчет ссылок, поэтому объект ядра не закрывается до тех пор, пока все дескрипторы файла, указывающие на него, не будут закрыты.
Контрольные счетчики широко используются внутри ядра, чтобы избежать условий гонки из-за параллельного распределения и освобождения ресурса. Ссылочный счетчик - это просто счетчик atom_t, связанный с определенным ресурсом, таким как страница памяти, модуль или файл. Счетчик атомарно увеличивается, когда путь управления ядра начинает использовать ресурс, и он уменьшается, когда путь управления ядром заканчивается с использованием ресурса. Когда контрольный счетчик обращается в нуль, ресурс не используется, и при необходимости его можно отпустить.
Возможно, вам понравится, если вы хотите просмотреть this для обзора реализации подсчета ссылок ядра Linux.
Очень полезная бумага. Благодаря! –
- 1. Имеют ли ядра ядра ядра ядра такие же размеры основы, как ядра с запуском ядра?
- 2. Как взаимодействуют программы - ядро ядра ядра ядра ядра ядра
- 3. Использование ядра модуля ядра
- 4. Ошибка ядра ядра
- 5. Взаимодействие ядра и ядра
- 6. Система координат OpenGL ядра ядра ядра
- 7. Является ли Thread объектом ядра?
- 8. здание ядра ядра
- 9. Имеет ли FreeBSD 10.1 модули ядра/ядра ядра уже интегрированы?
- 10. Обновление данных ядра ядра
- 11. Сброс модуля ядра ядра
- 12. Оценка плотности ядра на основе ядра
- 13. . Мониторинг сетевого ядра ядра на linux-машинах
- 14. Сборка laravel из ядра ядра
- 15. Где исходный код ядра ядра?
- 16. Виртуального ядра против физического ядра
- 17. Сроки ядра cuda изнутри ядра?
- 18. символы ядра в модуле ядра
- 19. Объекты, отсутствующие в данных ядра
- 20. Как найти значение «HZ» из ядра ядра ядра Linux?
- 21. Linux функций ядра и модули ядра развитие
- 22. Запросы от дампа ядра ядра JVM
- 23. Патч для ядра ядра для ядра версии 3.3.8
- 24. Objective-c Прокрутка графика ядра ядра
- 25. Безопасность ядра уровня ядра с помощью SESSION_CONTEXT
- 26. RaspberryPi: snd_bcm2835 порт для ядра ядра
- 27. Является ли malloc() в пространстве ядра?
- 28. Restart IPython ядра запускается через «IPython ядра»
- 29. Является ли исполняемый файл ядра самонастраивающимся?
- 30. Где называется функция дескриптора ядра() ядра Symfony?
Я доверяю вам, я проголосовал за вас. Не могли бы вы предоставить источник документации для потомков? Это похоже на тип вопроса, который можно снова посетить. –
@San Jacinto: ссылка для 'dup (2)' и 'close (2)' вместе подразумевает подсчет ссылок; в частности * «Если fd - последняя копия конкретного файлового дескриптора, ресурсы, связанные с ним, освобождаются» *: http://linux.die.net/man/2/dup http://linux.die.net/ man/2/закрыть –
Awesome :) Спасибо. –