Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix лекции / lection3.ppt
Скачиваний:
12
Добавлен:
20.04.2015
Размер:
358.91 Кб
Скачать

Архитектура ОС UNIX

Буфер сверхоперативной памяти. Внутреннее представление файлов. Работа с файловой системой.

Контрольные вопросы

Изобразите архитектуру ядра системыПеречислите функции FS и PS ?

Какие информационные структуры ядро использует для работы с файлами?

Какие информационные структуры ядро использует для работы с процессами?

Из чего состоит контекст процесса?

Буфер

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

Подобно тому, как ядро должно заносить данные

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

работы с ними.

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

Заголовки буфера

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

Буфер состоит из 2 частей – области памяти и заголовка буфера.

1.Информация в буфере соответствует информации в одном логическом блоке ФС

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

3.Буфер представляет собой копию дискового блока в памяти

4.Один дисковый блок не может быть одновременно отображен в несколько буферов

Заголовок буфера

Состояние буфера:

буфер заблокирован

буфер содержит правильную информацию,

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

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

процесс ждет освобождения буфера.

Список свободных буферов

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

Все буферы попадают в список при загрузке системы.

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

Буферы в хеш-очередях

Когда ядро обращается к дисковому блоку, оно сначала ищет буфер с соответствующей комбинацией номеров устройства и блока.

Вместо того, чтобы просматривать всю область буферов, ядро организует из буферов особые очереди – хеш-очереди.

Буфер всегда находится в хеш-очереди, а в списке свободных буферов может быть, но может и отсутствовать!

Механизмы поиска буфера

1.Ядро обнаруживает блок в хеш-очереди, соответствующий ему буфер свободен.

2.Ядро не может обнаружить блок в хеш-очереди, поэтому оно выделяет буфер из списка свободных буферов.

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

4.Ядро не может обнаружить блок в хеш-очереди, а список свободных буферов пуст.

5.Ядро обнаруживает блок в хеш-очереди, но его буфер в настоящий момент занят.

1)

2)

3)

4)

5)

Соседние файлы в папке Unix лекции