Сетевые операционные системы


         

Структура file содержит такие поля,


Структура file содержит такие поля, как:

  • flag - определение режима открытия (только для чтения, для чтения и записи и т.п.);

  • struct vnode * f_vnode - указатель на структуру vnode (заменивший по сравнению с s5 указатель на inode);

  • offset - смещение в файле при операциях чтения/записи;

  • struct cred * f_cred - указатель на структуру, содержащую права процесса, открывшего файл (структура находится в дескрипторе процесса);

    а также указатели на предыдущую и последующую структуру типа file, связывающие все такие структуры в список.



    Рис. 5.9. Связь процесса с его файлами

    Связь структур процесса с системным списком структур file показан на рисунке 5.9.

    В отличие от структур типа file структуры типа vnode заводятся операционной системой для каждого активного (открытого) файла в единственном экземпляре, поэтому структуры file могут ссылаться на одну и ту же структуру vnode.

    Структуры vnode не связаны в какой-либо список. Они появляются по требованию в системном пуле памяти и присоединяются к структуре данных, которая инициировала появление этого vnode, с помощью соответствующего указателя. Например, в случае структуры file в ней используется указатель f_vnode на соответствующую структуру vnode, описывающую нужный файл. Аналогично, если файл связан с образом процесса (то есть это файл, содержащий выполняемый модуль), то отображение сегмента памяти, содержащего части этого файла, осуществляется посредством указателя vp (в структуре segvn_data) на vnode этого файла.

    Все операции с файлами в UNIX System V Release 4 производятся с помощью связанной с файлом структуры vnode. Когда процесс запрашивает операцию с файлом (например, операцию open), то независимая от типа файловой системы часть ОС передает управление зависимой от типа файловой системы части ОС для выполнения операции. Если зависимая часть обнаруживает, что структуры vnode, описывающей нужный файл, нет в оперативной памяти, то зависимая часть заводит для него новую структуру vnode.

    Для ускорения доступа к файлам в UNIX System V Release 4 используется механизм быстрой трансляции имен файлов в соответствующие им ссылки на структуры vnode.Этот механизм основан на наличии кэша, хранящего максимально 800 записей о именах файлов и указателях vnode.


    Содержание  Назад  Вперед