Архитектура современных операционных систем
25 3. Корневой каталог просматривается в поисках элемента, содержаще- го каталог с именем d1. 4. Из этого элемента извлекается номер индексного дескриптора для каталога d1. 5. Из ТИД извлекается индексный дескриптор d1 и определяется мас- сив адресов его размещения. 6. Каталог d1 просматривается в поисках элемента с именем f1. 7. Из элемента каталога извлекается номер индексного дескриптора f1. После нахождения индексного дескриптора f1 он копируется в СТД и счет- чик увеличивается на 1. При повторном открытии другим процессом этого файла счетчик увеличиться на 1. Хранение индексного дескриптора f1 в СТД ускоряет процесс работы с массивом размещения. Через определенные проме- жутки времени система синхронизирует индексный дескриптор СТД и индекс- ный дескриптор тома. 8. После того, как в СТД создан элемент для файла, создается соответ- ствующий элемент в СТФ и в него помещаются: Указатель Чтения/Записи, ре- жим доступа к файлу (R/W), счетчик использования и ссылка на соответствую- щий элемент в СТД. 9. В ТОФ процесса создается элемент, ссылающийся на соответству- ющий элемент в СТФ, и в качестве описателя открытого файла возвращается номер элемента в ТОФ. 10. Если файл открывают несколько процессов, то создается 1 элемент в СТД и несколько (по количеству процессов) записей в СТФ. Счетчик в СТФ необходим, если процесс порождает дочерний процесс, который наследует ука- затели файлов родительского процесса. 11. Каждое закрытие файла приводит к уменьшению счетчика в СТФ на 1. Элементы из СТФ удаляются, когда счетчик равен 0. Аналогично и в таб- лице СТД, каждое закрытие файла уменьшает счетчик на 1. При счетчике рав- ном 0 индексный дескриптор переписывается на том, и только после этого эле- мент удаляется из СТД.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy