Билеты (Graur) (1114773), страница 24
Текст из файла (страница 24)
Например:
1.UNIX был первой ОС, разработанной с помощью языка высокого уровня.
2. Элегантная и развитая система управления процессами.
3. Древовидная организация ФС. (Древовидная в общем случае, но есть средства нарушающие древовидность.) Такая организация – не абсолютное первенство UNIX, это было заимствовано из Maltix, однако UNIX - первая файловая система с древовидной организацией, которая получила широкое распространение.
4. Использование концепции файлов. Все представляется в виде файлов. Все работает через унифицированный интерфейс.
Организация ФС Unix
Файловая система операционной системы UNIX является примером многопользовательской иерархической файловой системой с трехуровневой организацией прав доступа к содержимому файлов.
Файл Unix – это специальным образом именованный набор данных, размещенный в файловой системе.
•обычный файл (regular file) – традиционный тип файла, содержащий данные пользователя. Интерпретация содержимого файла производится программой, обрабатывающей файл.
OC Unix трактует понятие файла шире традиционного. В частности, в системе в качестве файла рассматриваются:
•каталог (directory) – специальный файл, обеспечивающий иерархическую организацию файловой системы. С каталогом ассоциируются все файлы, которые принадлежат данному каталогу.
•специальный файл устройств (special device file) – cистема позволяет ассоциировать внешние устройства с драйверами и предоставляет доступ к внешним устройствам, согласно общим интерфейсам работы с файлами.
•именованный канал (named pipe) – специальная разновидность файлов, позволяющая организовывать передачу данных между взаимодействующими процессами;
•ссылка (link) – позволяет создавать дополнительные ссылки к содержимому файла из различных точек файловой системы; Они могут нарушать древовидность организации ФС.
•сокет (socket) – средство взаимодействия процессов в пределах сети ЭВМ.
ОС UNIX поддерживает широкий диапазон типов файлов. Каталог в ОСУ тоже файл.
Права доступа
Категории пользователей:
1. пользователь (владелец)
2. группа (всепользователи, которые принадлежат группе владельца за исключением самого владельца)
3. все пользователи системы (все пользователи системы, за исключением группы владельца и самого владельца.)
Права
1. на чтение
2. на запись
3. на исполнение (0исполняемым файлом может быть только файл полученный в результате сборки и ли командный файл.
Интерпретация этих прав зависит от типа файла.
Так для обычных файлов это традиционные права на чтение, запись данных файла и исполнение содержимого файла в качестве процесса.
Интерпретация прав доступа для других типов файлов может различаться.
Например, для файлов каталогов это:
право на чтение каталога – получение списка имен файлов;
право на исполнение каталога – получение дополнительной информации о файлах (т.е. тогда, когда требуется информация, большая чем имя файла), право на использование каталога в качестве текущего, возможность использования имени каталога внутри имени файла;
право на запись – возможность создания, переименования и удаления файла в каталоге.
Логическая структура каталогов
Все UNIX-системы имеют соглашения о логической структуре каталогов, расположенных в корне файловой системы. Это упрощает работу операционной системы, ее обслуживание и переносимость. Эти соглашения используются при работе почтовой системы, системы печати и т.д.
Содержимое основных каталогов:
Корневой каталог / является основой любой файловой системы ОС UNIX. Все остальные файлы и каталоги располагаются в рамках структуры, порожденной корневым каталогом, независимо от их физического положения на диске.
/unix - файл загрузки ядра ОС.
/bin - файлы, реализующие общедоступные команды системы.
/etc - в этом каталоге находятся файлы, определяющие настройки системы (в частности, файл passwd), а также команды, необходимые для управления содержимым подобных специальных файлов.
/tmp - каталог для хранения временных системных файлов. При перезагрузке системы не гарантируется сохранение его содержимого. Обычно этот каталог открыт на запись для всех пользователей системы.
/mnt - каталог, к которому осуществляется монтирование дополнительных физических файловых систем для получения единого дерева логической файловой системы. Заметим, что это лишь соглашение, в общем случае можно примонтировать к любому каталогу.
/dev - каталог содержит специальные файлы устройств, с которыми ассоциированы драйверы устройств. Каждый из файлов имеет ссылку на соответствующий драйвер и указание типа устройства (блок- или байт-ориентированные). Этот каталог может содержать несколько подкаталогов, группирующих специальные файлы по типам. Таким образом, имеется возможность легко добавлять и удалять новые устройства в систему.
/lib - здесь находятся библиотечные файлы языка Си и других языков программирования.
/usr - размещается вся информация, связанная с обеспечением работы пользователей. Здесь также имеется подкаталог, содержащий часть библиотечных файлов (/usr/lib), подкаталог /usr/users (или /usr/home), который становится текущим при входе пользователя в систему, подкаталог, где находятся дополнительные команды (/usr/bin), подкаталог, содержащий файлы заголовков (/usr/include), в котором, в свою очередь, подкаталог, содержащий include-файлы, характеризующие работу системы (например, signal.h - интерпретация сигналов).
Билет 50. Модель версии System V
Структура ФС
Файловая система Unix может занимать раздел диска (partition). Количество разделов на каждом диске, их размеры определяются при предварительной подготовке устройства (разметка). Unix рассматривает разделы как отдельные, независимые устройства.
Суперблок файловой системы содержит оперативную информацию о текущем состоянии файловой системы, а также данные о параметрах настройки, в частности:
•размер логического блока (512б, 1024б, 2048б);
•размер файловой системы в логических блоках (включая суперблок);
•максимальное количество индексных дескрипторов (определяет размер области индексных дескрипторов);
•число свободных блоков;
•число свободных индексных дескрипторов;
•специальные флаги;
•массив номеров свободных блоков;
•массив номеров свободных индексных дескрипторов;
•и др.
В ОП постоянно находится актуальная копия суперблока.
Область (пространство) индексных дескрипторов.
Индексный дескриптор – это специальная структура данных файловой системы, которая ставится во взаимно однозначное соответствие с каждым файлом.
Размер пространства индексных дескрипторов определяется параметром генерации файловой системы по количеству индексных дескрипторов, которые указаны в суперблоке.
Содержит:
1.Тип файла
2. права доступа к файлу
3. число имен каталогов ФС, ассоциированных с данным индексным дискриптором.
4. идентификатор владельца
5. размер файлда в байтах
6. время послдней модификации
7.Массив номеров блоков файлов
Блоки файлов.
Это пространство на системном устройстве, в котором размещается вся информация, хранящаяся в файлах и о файлах, которая не поместилась в предыдущие блоки файловой системы.
Работа с массивами номеров свободных блоков
В суперблоке файловой системы размещается массив номеров свободных блоков, этот массив является началом полного списка содержащего номера всех свободных блоков файловой системы.
Все свободные блоки ФС организованы в однонаправленный список, структурная организация которого следующая: 1-й элемент этого списка – это есть массив из Ν ссылок, которые размещаются в суперблоке. Ν зависит от конкретной ОС, пусть это будет 100. 0-й элемент этого массива есть номер блока из пространства блоков ФС, в котором находится продолжение этого списка. Соответственно 0-й элемент этого блока есть ссылка на следующий массив из Ν ссылок и т.д. ФС оперативно работает с этим массивом. Если в нем есть свободные места, то при освобождении блоков, они записываются на свободные места, если требуются новые блоки, то они выбираются из этого массива. Если массив исчерпывается, то информация берется из следующего блока. Если массив полностью заполнен, т.е. освобождается много блоков, то выбирается следующий свободный блок и этот массив скидывается на этот блок. Это достаточно важная информация, которая в каждый момент отражает состояние ФС.
Оперативный доступ к списку осуществляется посредством использования массива в суперблоке.
Работа с массивом свободных ИД
Массив номеров свободных индексных дескрипторов содержит оперативный набор номеров свободных индексных дескрипторов. Размер массива - Nиндекс.
При освобождении индексного дескриптора, если есть свободное место в массиве, то номер освободившегося индексного дескриптора записывается в соответствующий элемент массива. Если свободного места в массиве нет, то этот номер «забывается».
При запросе нового индексного дескриптора осуществляется поиск в массиве, если массив не пустой, то все в порядке, если массив пустой – происходит операция обновления его содержимого (происходит просмотр области индексных дескрипторов и занесение в массив обнаруженных свободных). Т.е. массив свободных индексных дескрипторов – это своеобразный буфер.
Индексные дескрипторы
Индексный дескриптор (ИД) – описатель файла, содержит все необходимые для работы с файлом служебные атрибуты.
Через ИД осуществляется доступ к содержимому файлов. Любое имя файла в системе ассоциировано с единственным ИД, но это соответствие неоднозначно. Т.е. ИД может соответствовать произвольное количество имен.
Структура индексного дескриптора:
•тип файла, права, атрибуты выполнения (если = 0, то ИД свободен);
•число имен, которые ассоциированы с данным ИД;
•идентификаторы владельца-пользователя, владельца-группы;
•размер файла в байтах;
•время последнего доступа к файлу;
•время последней модификации содержимого файла;
•время последней модификации ИД (за исключением времени доступа и времени модификации файла)
•массив номеров блоков файла.
Адресация блоков файла
Для простоты изложения будем считать, что размер блока равен 512 байт.
Размещение данных файла задается списком его блоков.
Это снимает проблемы непрерывных файловых систем, т.е. систем, где блоки файла располагаются последовательно. Таким образом реально блоки файла могут быть разбросаны по диску, но логически они образуют цепочку, содержащую весь набор данных.
Ключом, задающим подобное расположение служит массив номеров блоков файла, содержащий список из 13 номеров блоков на диске, хранящихся в ИД.
Первые десять указывают на десять блоков некоторого файла.
Если файл занимает более 10 блоков, то 11 элемент указывает на косвенный блок, содержащий до 128 адресов дополнительных блоков файла (это еще 70656 байт).
Большие файлы используют 12-ый элемент, который указывает на блок, содержащий 128 указателей на блоки, каждый из которых содержит по 128 адресов блоков файла.
Еще в больших файлах аналогично используется 13 элемент.