Операционная среда высокопроизводительных вычислительных систем

Файловая система UNIX

При подключении пользователя к удаленной системе он попадает в свой домашний каталог, являющийся частью единой файловой системы.

UNIX-подобные операционные системы поддерживают древовидную иерархическую структуру файлов и каталогов. При такой структуре представления данных на диске, каждый файл расположен в определенном хранилище данных – каталоге, каждый каталог вложен в какой-то другой каталог. В результате получается дерево, вершинами которого являются не пустые каталоги, а листьями файлы и пустые каталоги. Корень такого дерева называется корневым каталогом и обозначается специальным символом / (прямой слэш). Каждому элементу файловой системы соответствует имя, определяющее его положение в дереве файловой системы. Полным путем к файлу называется список всех вершин дерева файловой системы, начиная с корня, записанных слева направо и разделенных специальными символами разделителями /, которые необходимо пройти, чтобы добраться до файла. Полным именем файла называется полный путь к файлу плюс его имя.

Например: /export/home/oleg/cpp/prog1.c

Кроме понятия полный путь, в UNIX используется понятие относительного пути – это путь к каталогу или файлу от текущего каталога. Если мы находимся в домашнем каталоге пользователя oleg - /export/home/oleg, то относительный путь к тому же файлу будет cpp/prog1.c . Важно, чтобы первое имя в относительном пути (не начинающегося с символа /) было видно из текущего каталога.

Физически каталоги и файлы могут находиться на разных дисках или даже на разных компьютерах, но все равно они будут частью единой файловой системы. На рисунке ниже схематично представлена файловая система UNIX. Полное имя файла hosts.txt находящегося в каталоге с именем etc, выглядит так /etc/hosts.txt, а полный путь к нему /etc, в конце пути обычно знак разделителя не ставится.

server

Схема файловой системы UNIX

Процессы в ОС UNIX

В Unix системах под процессом понимается объект операционной системы, выполняющий код программы и имеющий свой собственный контекст: стек, набор страниц памяти, таблицу открытых файлов и уникальный номер (PID – сокращение от process ID), присвоенный ему системой. Из определения видно, что понятие процесс не тождественно понятию программа. Несколько процессов могут исполнять одну и ту же программу в одно и тоже время. Например, в системе есть одна копия программы tcsh, но может существовать много процессов исполняющих код этой программы, т.к. она запускается каждый раз при подключении нового пользователя к системе. Конфликтов между разными процессами, выполняющими код одной программы, не возникает, потому что каждый процесс имеет собственный контекст.

В момент загрузки системы запускается самый первый процесс с номером 1. Все остальные процессы являются потомками первого процесса. Для порождения процессов в ядре ОС Unix имеется специальный механизм fork (ветвление). Процесс, порожденный системным вызовом fork, называется дочерним процессом, а процесс его породивший - родительским процессом.

Все объекты ОС UNIX, как статические – файлы, так и динамические – процессы, являются собственностью какого-либо пользователя. Собственником системных объектов является суперпользователь root. Этот механизм позволяет организовать надежную и эффективную защиту объектов ОС UNIX. На практике это означает, что никто не может удалить процесс или файл какого-либо пользователя, кроме него самого или суперпользователя.

Назад    Вперед