Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции_операционные системы (Информатики)

.pdf
Скачиваний:
57
Добавлен:
06.06.2015
Размер:
3.81 Mб
Скачать

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

В логической организации файловой системы обязательно выделяется хотя бы один каталог – корневой (главный, основной),

который содержит все остальные каталоги.

Каталог может содержать другой каталог, который называется

подкаталогом. По отношению к подкаталогу каталог, содержащий его, называется надкаталогом, или родительским каталогом. Таким образом, формируется древовидная иерархическая структура – дерево каталогов (рис. 7.1).

Рис. 7.1. Файловая система. Дерево файлов и каталогов.

В разных каталогах могут содержаться файлы с одним и тем же именем. Поэтому, чтобы однозначно определить файл,

необходимо указать полное имя файла – маршрут (путь) к этому файлу, т.е. перечислить все каталоги, ведущие к этому файлу. При указании пути к файлу каталоги отделяются друг от друга специальным символом (в Windows это «\», в Linux – «/»). Так, file1

корневого каталога (рис. 7.1) имеет полное имя: /file1, а file1

каталога Dir4: /Dir2/Dir4/file1.

Во многих ОС введено понятие текущего каталога – тот каталог, который пользователь открывает для работы, к файлам и

91

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

каталогам текущего каталога можно обращаться по имени, не указывая путь, так как система знает, где их искать. Точно также от текущего каталога можно указать путь к файлу, содержащемуся в одном из подкаталогов текущего каталога, так образуется

относительное имя (путь к файлу относительно текущего каталога).

Так, если текущим является каталог Dir2, то Dir4/file1 –

относительный путь к file1 от Dir2.

7.2. Разнообразие файловых систем

Каким образом логическая организация файловой структуры будет воплощена на физическом носителе (жестком или оптическом диске, флешке и др.) зависит от конкретной файловой системы. В

каждой операционной системе этот вопрос решается по-своему.

Поэтому существует большое количество файловых систем.

Некоторые из них поддерживаются различными ОС, например, FAT

(сейчас, в основном, используется для хранения данных на флешках небольшой емкости), UDF (для оптических дисков), поэтому данные с этих носителей могут быть прочитаны любой ОС. Как правило,

для организации хранения данных на жестком диске каждая ОС использует свою файловую систему, которая не обязательно поддерживается другими ОС. Например, в Linux поддерживаются

такие файловые системы как XFS, RaiserFS, JFS, EXT3, но эти

файловые системы не поддерживаются в Windows, поэтому данные

(файлы) перечисленных файловых систем не могут быть прочитаны в Windows.

Выбор того, какая файловая система будет использоваться,

осуществляется

при

форматировании

диска.

Перед

форматированием

 

операционная

система

перечисляет

92

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

поддерживаемые файловые системы и предлагает пользователю

выбрать одну из них.

7.3. Геометрия диска. Разделы и таблица разбиения диска

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

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

На каждой стороне каждой пластины размечены тонкие концентрические кольца – дорожки (traks). Количество дорожек зависит от типа диска. Дорожки нумеруются начиная с 0 от внешнего края к центру. Совокупность таких дорожек одного радиуса, расположенных одна под другой на всех поверхностях всех пластин называется цилиндром (cylinder).

Каждая дорожка разбита на сектора (sectors) фиксированного размера, часто сектора называют блоками (blocks). Во многих ОС размер сектора равен 512 байт. Количество секторов на разных дорожках одинаково. Сектор – наименьшая адресуемая единица обмена данными диска с оперативной памятью.

Для того чтобы записать (считать) информацию на диск, надо

"позиционировать головку", т. е. указать контроллеру, в какой сектор эту информацию записать. Адрес сектора состоит из номера цилиндра, номера считывающей головки (или дорожки) и

порядкового номера сектора на дорожке.

Операционная система при работе с диском может использовать собственную единицу дискового пространства –

93

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

кластер (cluster). Минимальный размер кластера совпадает с размером сектора – 512 байт. Многие операционные системы увеличивают размер кластера, как правило, чем больше размер диска, тем больше размер кластера.

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

Различают низкоуровневое, или физическое форматирование диска,

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

Считывание и запись информации на диске производится кластерами. В зависимости от размера файла, который нужно записать, выделяется необходимое количество кластеров на диске.

Например, для файла 3700 байт при размере кластера 1024 байта будет выделено 4 кластера, причем один будет использован лишь частично, однако записать в этот кластер данные другого файла уже нельзя. Кластер целиком принадлежит только одному файлу.

При записи файла на диск файловая система определяет, какие кластеры свободны и начинает туда запись данных (они не обязательно расположены последовательно на диске). То есть файл,

записанный на диск, представляет совокупность кластеров,

файловая система хранит служебную информацию о том, в какие кластеры записан файл (адреса кластеров). В служебных областях файловой системы хранятся сведения о самой файловой системе, о

том, какой кластер к какому файлу относится, какие кластеры

94

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

свободны, какие испорчены, размеры, названия и другие атрибуты элементов файловой системы.

Первые версии MS-DOS не могли обеспечить доступ к большим дискам (а объемы дисков росли быстрее, чем возможности

DOS). Поэтому физические диски в Intel-системах стали разбивать на разделы. Каждый раздел жесткого диска воспринимается ОС как отдельный физический диск. Это дает возможность установить на компьютер разные операционные системы, нужно только каждую систему устанавливать в отдельный раздел.

Чтобы ОС знала адрес начала каждого раздела, в начало жесткого диска размещается таблица разбиения диска на разделы

(partition table). Эта таблица находится в MBR (Master Boot Record –

главная загрузочная запись), расположенной в самом первом секторе жесткого диска.

Таблица разделов содержит 4 записи по 16 байт для 4

разделов, которые называют первичными. Именно поэтому диск можно разделить не более чем на четыре первичных раздела.

Когда выяснилось, что четырех разделов для больших дисков мало, были изобретены логические разделы. Для организации логических разделов один из первичных разделов объявляется

расширенным (дополнительным), и в нем создаются логические разделы. Расширенные разделы сами по себе не используются, они могут лишь хранить логические разделы. Каждый расширенный раздел имеет свою таблицу разбиения на разделы. Число логических разделов в принципе не ограничено. Однако все-таки ограничения существуют и зависят от операционной системы и типа жесткого диска.

95

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Рис. 7.2. Деление диска на разделы.

Процедура разбиения диска на разделы осуществляется специальной программой fdisk или ее усовершенствованными аналогами. При установке ОС, обычно пользователю дается возможность определить, на какие разделы необходимо разделить диск, а после этого выбрать какие файловые системы устанавливать в каждый раздел. Разделы форматируются, и только после этого производится установка операционной системы.

7.4. Методы выделения файлам дискового пространства.

Файловые системы отличаются способом связывания файлов с кластерами диска. В ОС используется несколько методов выделения файлу дискового пространства.

Непрерывное размещение.

Самый простой способ выделить для файла непрерывную последовательность кластеров диска. При непрерывном расположении файл характеризуется адресом (первым кластером файла) и длиной (в кластерах). Файл, начинающийся с кластера k,

занимает затем кластеры k+1, k+2, ... k+n-1. 96

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

Чтобы определить местонахождение файла, нужно найти его первый кластер. Метод обеспечивает хорошую производительность,

т.к. целый файл может быть считан за одну дисковую операцию.

Отрицательные стороны данного метода:

сильная фрагментация диска, в процессе эксплуатации занятые области соседствуют с небольшими свободными участками и становится затруднительным поиск для нового файла подходящего по размеру свободного участка диска;

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

Связный список кластеров.

Метод распределения кластеров в виде связного (связанного)

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

Расположение файла в этом случае можно задать адресом (номером)

первого кластера, остальные кластеры будут найдены «по цепочке».

Рис. 7.3. Связный список кластеров.

Внешняя фрагментация для данного метода отсутствует.

Любой свободный кластер может быть использован для удовлетворения запроса на создание файла. И нет необходимости

97

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

декларировать размер файла в момент создания, файл может

неограниченно расти.

Недостатки метода:

затруднен доступ к произвольному месту в файле, для поиска нужного кластера нужно осуществить несколько обращений к диску, последовательно считывая кластеры, которые стоят в списке до искомого, выборка данных из файла может потребовать много времени;

низкая надежность метода: наличие дефектного кластера в списке приводит к потере информации в остаточной части файла;

для указателя на следующий кластер нужно выделить место, указатель занимает несколько байтов от кластера.

Связный список индексов.

Для усовершенствования предыдущего способа указатели на следующий кластер файла переносятся из каждого файлового кластера в специальную индексную таблицу, расположенную на диске, которая называется таблицей размещения файла FAT (file allocation table). Этой схемы придерживаются многие ОС (MS-DOS, OS/2 и др.)

Файлу также выделяется память в виде связаного списка,

однако ссылки на следующие кластеры хранятся отдельно в специальной таблице. В записи каталога, где записаны характеристики файла, сохраняется номер первого кластера. С

каждым кластером связывается индекс. Индексы располагаются в отдельной области диска – в специальной таблице, которая содержит значения индексов для всех кластеров диска. Если кластер свободен – его индекс равен нулю. Если кластер занят, то значение его индекса содержит адрес следующего кластера файла. Если

98

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

кластер является последним в файле, то значение его индекса сигнализирует о конце файла (EOF). Адрес начала файла обычно сохраняется в служебных данных каталога, содержащего этот файл.

Рис. 7.4. Таблица индексов FAT и файлы в виде связного списка кластеров.

Минусом этого метода может быть необходимость поддержки в памяти этой довольно большой таблицы.

Перечень номеров кластеров (индексные узлы).

Одним из часто используемых способов задания физического расположения файла на диске заключается в перечислении всех кластеров, которые занимает этот файл. Поэтому с каждым файлом связывается маленькая таблица, называемая индексным узлом (i- node) или индексным дескриптором, в которой перечисляются атрибуты и адреса кластеров файла.

Каждый файл имеет свой собственный индексный блок,

который содержит адреса кластеров данных файла. В каталоге,

которому принадлежит файл, содержится запись, относящаяся к

99

Фрагмент учебника «Операционные системы, сети и интернеттехнологии» С.А.Жданов, Н.Ю.Иванова, В.Г.Маняхина, С.Н.Мягков.

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

Индексирование поддерживает прямой доступ к файлу, без ущерба от внешней фрагментации.

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

100