
- •Конспект лекций по курсу «Операционные системы», (1 семестр , часть 1)
- •Занятие 1.Введение
- •Занятие 2.Прерывания, многозадачность
- •Занятие 3.Работа с памятью
- •Занятие 4.Процессы
- •Занятие 5.Потоки. Многопроцессорные системы
- •Занятие 6.Микроядро.
- •Занятие 7.Устройства ввода-вывода. Dma.
- •Занятие 8.Буферизация операций ввода-вывода
- •Циклическая буферизация
- •Занятие 9.Структура hdd.
- •Занятие 10.Файловая система
- •Смешанный – состоят из записей разной длины с разным количеством полей:
- •Последовательный – состоит из записей одинаковой длины с одинаковым количеством и размеров полей.
- •Непрерывный
- •Цепочечный
- •Индексированный
- •Битовые таблицы ( маска)
- •Список свободных блоков
- •Цепочки свободных блоков
- •Индексирование
- •Занятие 11. Инсталяция windows
- •Запуск инсталляции
- •Занятие 12.Загрузка windows
- •Занятие 13.Загрузочный файл boot.Ini
- •Загрузочные файлы
- •Файл Boot.Ini
- •Занятие 14.Диск аварийного восстановления
- •Занятие 15.Консоль восстановления
- •Консоль восстановления
- •Занятие 16.Адресация и доступ к разным типам памяти
- •Основная и верхняя память.
- •Менеджеры памяти
Занятие 10.Файловая система
Файловая система – это часть операционной системы, которая управляет выводом и чтением с диска данных – файлов. Существуем множество разных файловых систем, которые размещают файлы на диске разными способами, но на размещение и скорость записи-считывания файла влияет его тип.
Типы файлов:
Файлы могут иметь различную логическую организацию, которая влияет на их обработку перед выводом или вводом. Файлы могут быть в виде простого потока битов или байтов или состоять из логических частей – записей. Каждая запись – это логически отдельная информация ( например. записи о работниках фирмы: каждая запись об одном работнике). Запись состоит из полей. Поле – это минимальная логическая часть записи ( например, запись о каждом работнике состоит из: поля имени, поля должности, поля года рождения и.т.д.).
Файлы, состоящие из записей могут быть 4 типов:
Смешанный – состоят из записей разной длины с разным количеством полей:
п |
п2 |
п3 |
п
запись1
запись2
запись3
запись4
запись5 |
п2 |
п3 |
п4 |
п1 |
п2 |
п1 |
п2 |
п3 |
п1 |
п2 |
п3 |
п4 |
Для поиска нужной записи приходится перебирать все записи последовательно, пока не будет считана нужная. При этом, для вычисления адреса следующей записи нужно сначала считать предыдущую.
Последовательный – состоит из записей одинаковой длины с одинаковым количеством и размеров полей.
п1 |
п2 |
п3 |
п1 |
п2 |
п3 |
п1 |
п2 |
п3 |
... |
запись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
индекс основной файл
Индексный – аналогичен индексно- последовательному, но создается индекс не по одному ключевому полю, а по нескольким полям создается несколько файлов-индексов. Каждый индекс отсортирован по своему ключу. Для поиска нужной записи, сначала выполняется поиск в одном из индексов ( в зависимости от запроса на поиск), а затем выполняется прямое обращение к записи в основном файле.
Прямого доступа - этот файл состоит из уже отсортированных записей по определенному ключевому полю. Такая сортировка выполняется при каждом изменении файла ( добавление. удаление или корректировка записей) и называется хэшированием. После сортировки, все записи упорядочены так, что для обращения к нужной записи, ее адрес сразу вычисляется по искомому значению и выполняется прямое обращение к записи по ее адресу ( без перебора всех предыдущих)
Формирование блоков из записей файла
Перед выводом на диск записи файла должны упаковаться в блоки и наоборот, после чтения блоков с диска, из них должны извлекаться записи. Чем дольше размер блока, который выводится на диск , тем быстрее выполняются операции чтения и записи его на диск, однако перед выводом и при ввода блок помещается в буфер диска т.е в оперативную память, следовательно, увеличение блока влечет за собой уменьшение доступной оперативной памяти. Поэтому разработчики ОС находят оптимальный размер блока ( достаточно большой для быстроты вывода, но достаточно маленький для размещения в буфер).
Файлы, состоящие из простого набора байтов или битов, разбиваются на блоки для записи на дисковое устройство простым способом: в каждый блок помещается часть байтов ( битов), какую по максимуму можно в блоке разместить.
Файлы, состоящие из записей могут разбиваться на блоки разными способами. Так как записи файла как правило меньше блока, то существует несколько способов формирования блоков из записей:
из целого числа записей – это возможно только, если записи фиксированной длины
из записей переменной длины с образованием пустот – записи помещаются в блок до тех пор, пока они помещаются целиком. Остальная часть места в блоке остается пустой. Это приводит к перерасходу места на диске
из записей переменной длины без образования пустот. При укладке записей в блоки, запись, которая не помещается, разбивается на 2 части. Одна часть помещается (сколько поместится) в один блок, а вторая в следующий.
Методы размещения блоков информации на диске.