Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций 1 сем ос.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
457.73 Кб
Скачать

Занятие 10.Файловая система

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

Типы файлов:

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

Файлы, состоящие из записей могут быть 4 типов:

  1. Смешанный – состоят из записей разной длины с разным количеством полей:

п 1

п2

п3

п

запись1

запись2

запись3

запись4

запись5

1

п2

п3

п4

п1

п2

п1

п2

п3

п1

п2

п3

п4

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

  1. Последовательный – состоит из записей одинаковой длины с одинаковым количеством и размеров полей.

п1

п2

п3

п1

п2

п3

п1

п2

п3

...

запись1

запись1

запись1

...

  1. Индексно-последовательный - все записи расположены в файле последовательно в произвольном порядке, но кроме основного файла создается файл – индекс, в котором отсортированы по ключевому полю записи, состоящие из двух полей: одно поле содержит ключевое поле из основного файла ( по которому выполнена сортировка) , а другое поле содержит адрес записи в основном файле.

Для поиска нужной записи выполняется быстрый поиск в файле-индексе ( быстрый – т.к. записи отсортированы), а затем по адресу из этого файла сразу определяется адрес нужной записи в основном файле.

ключ1

з апись3:

запись1:

ключ5

п2

п3

п4

ключ2

з апись6:

запись2:

ключ6

п2

п3

п4

ключ3

з апись4:

запись3:

ключ1

п2

п3

п4

ключ4

з апись5:

запись4:

ключ3

п2

п3

п4

ключ5

запись1:

запись5:

ключ4

п2

п3

п4

ключ6

запись2:

запись6:

ключ2

п2

п3

п4

индекс основной файл

  1. Индексный – аналогичен индексно- последовательному, но создается индекс не по одному ключевому полю, а по нескольким полям создается несколько файлов-индексов. Каждый индекс отсортирован по своему ключу. Для поиска нужной записи, сначала выполняется поиск в одном из индексов ( в зависимости от запроса на поиск), а затем выполняется прямое обращение к записи в основном файле.

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

Формирование блоков из записей файла

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

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

Файлы, состоящие из записей могут разбиваться на блоки разными способами. Так как записи файла как правило меньше блока, то существует несколько способов формирования блоков из записей:

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

  2. из записей переменной длины с образованием пустот – записи помещаются в блок до тех пор, пока они помещаются целиком. Остальная часть места в блоке остается пустой. Это приводит к перерасходу места на диске

  3. из записей переменной длины без образования пустот. При укладке записей в блоки, запись, которая не помещается, разбивается на 2 части. Одна часть помещается (сколько поместится) в один блок, а вторая в следующий.

Методы размещения блоков информации на диске.