Архитектура операционной системы UNIX

         

СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ


В последней главе рассматривались внутренние структуры данных для файловой системы и алгоритмы работы с ними. В этой главе речь пойдет о системных функциях для работы с файловой системой с использованием понятий, введенных в предыдущей главе. Рассматриваются системные функции, обеспечивающие обращение к существующим файлам, такие как open, read, write, lseek и close, затем функции создания новых файлов, а именно, creat и mknod, и, наконец, функции для работы с индексом или для передвижения по файловой системе: chdir, chroot, chown, stat и fstat. Исследуются более сложные системные функции: pipe и dup имеют важное значение для реализации каналов в shell'е; mount и umount расширяют видимое для пользователя дерево файловых систем; link и unlink изменяют иерархическую структуру файловой системы. Затем дается представление об абстракциях, связанных с файловой системой, в отношении поддержки различных файловых систем, подчиняющихся стандартным интерфейсам. В последнем разделе главы речь пойдет о сопровождении файловой системы. Глава знакомит с тремя структурами данных ядра: таблицей файлов, в которой каждая запись связана с одним из открытых в системе файлов, таблицей пользовательских дескрипторов файлов, в которой каждая запись связана с файловым дескриптором, известным процессу, и таблицей монтирования, в которой содержится информация по каждой активной файловой системе.

Функции для работы с файловой системой

Возвращают дескрипторы файла Используют алгоритм nameiНазначают индексыРаботают с атрибутами файлаВвод-
вывод из файлаРаботают со структурой файловых системУправление деревьями

openopenstat     

creatcreatlinkcreatchownread  

dupchdirunlinkmknodchmodwritemountchdir

pipechrootmknodlinkstatlseekumountchown

closechownmountunlink     

 chmodumount     

Алгоритмы работы с файловой системой на нижнем уровнеnameiialloc ifreealloc free bmap 

iget iput bmap 

Алгоритмы работы с буферами

     getblk     brelse     bread     breada     bwrite    

<
Рисунок 5.1. Функции для работы с файловой системой и их связь с другими алгоритмами
На Рисунке 5. 1 показана взаимосвязь между системными функциями и алгоритмами, описанными ранее. Системные функции классифицируются на несколько категорий, хотя некоторые из функций присутствуют более, чем в одной категории:

  • Системные функции, возвращающие дескрипторы файлов для использования другими системными функциями;
  • Системные функции, использующие алгоритм namei для анализа имени пути поиска;
  • Системные функции, назначающие и освобождающие индекс с использованием алгоритмов ialloc и ifree;
  • Системные функции, устанавливающие или изменяющие атрибуты файла;
  • Системные функции, позволяющие процессу производить ввод-вывод данных с использованием алгоритмов alloc, free и алгоритмов выделения буфера;
  • Системные функции, изменяющие структуру файловой системы;
  • Системные функции, позволяющие процессу изменять собственное представление о структуре дерева файловой системы.

Comments:

Copyright ©

Содержание раздела