Similar presentations:
Подсистема_ввода_вывода_Файловая_система
1. Тема 4: Подсистема ввода/вывода и файловые системы
4.1. Устройства ввода-вывода4.2. Основные функции подсистемы ввода/вывода
4.2.1. Организация параллельной работы
устройств ввода-вывода и процессора
4.2.2. Согласование скоростей обмена и
кэширование данных
4.2.3. Разделение устройств и данных между
процессами
Операционные системы
1
2. Тема 4: Подсистема ввода/вывода и файловые системы
4.2.4. Обеспечение логического интерфейса междуустройствами и остальной частью системы
4.2.5. Поддержка широкого спектра драйверов
4.2.6. Динамическая выгрузка и загрузка
драйверов
4.2.7. Поддержка нескольких файловых систем
4.2.8. Основные системные таблицы ввода-вывода
4.2.9. Поддержка синхронных и асинхронных
операций ввода-вывода
Операционные системы
2
3.
Тема 4: Подсистема ввода/выводаи файловые системы
4.3. Многослойная модель подсистемы
ввода/вывода
4.4. Файловая система
4.4.1. Основные понятия. Цели и задачи
файловой системы
4.4.2. Архитектура файловой системы
4.4.3. Организация файлов и доступ к ним
4.4.4. Каталоговые системы
4.4.5. Физическая организация файловой
системы
Операционные системы
3
4. 4.1. Устройства ввода-вывода
Типы устройств по функциональному назначению;1. Работающие с пользователем. Используются для связи с пользователем
компьютера (принтеры, дисплеи, клавиатура, манипуляторы (мышь,
джойстик и т. п.).
2. Работающие с компьютером. Используются для связи с электронным
оборудованием (диски, магнитные ленты, датчики, контроллеры,
преобразователи и т. п.).
3. Коммуникации. Используются для связи с удаленными устройствами
(модемы, адаптеры цифровых линий и др.).
Типы устройств по принципам функционирования:
1.
Блочные, хранящие информацию в виде адресуемых блоков фиксированного
размера и позволяющие работать с каждым блоком независимо от других
блоков ( дисковые устройства).
2.
Символьные, принимающие или предоставляющие поток символов без
какой-либо структуры (принтеры, модемы, сетевые карты).
Операционные системы
4
5. Различия в характеристиках устройств ввода-вывода
Скорость передачи данных (различия на несколько порядков).Применение. Один и тот же тип устройства может требовать различного
ПО и стратегии операционной системы (диск для хранения файлов
приложений и файла подкачки, терминал пользователя и
администратора).
Сложность управления (для принтера относительно простой интерфейс
управления, для диска – намного сложнее).
Единицы передачи данных. Данные могут передаваться блоками или
потоком байтов или символов.
Представление данных. Различные устройства используют разные схемы
кодирования данных, включая различную кодировку символов и
контроль четности.
Условия ошибок. Природа ошибок, способ сообщения о них, возможные
ответы резко отличаются от одного устройства к другому.
Операционные системы
5
6.
Gigabit EthernetГрафический
монитор
Жесткий диск
Ethernet
Оптический
диск
Сканер
Лазерный
принтер
Гибкий диск
Модем
Мышь
Клавиатура
101
102
103
104
105
Операционные системы
106
107
Бит в секунду
108 109
6
7.
Состав устройств ввода/выводаУстройства ввода-вывода обычно состоят из
электромеханической
и
электронной
частей.
Обычно их выполняют в форме отдельных модулей собственно устройство и контроллер (адаптер).
В ПК контроллер принимает форму платы,
вставляемой в слот расширения. Плата имеет
разъем, к которому подключается кабель, ведущий к
самому устройству.
Многие контроллеры способны управлять
двумя, четырьмя, и даже более, идентичными
устройствами.
Операционные системы
7
8.
Состав устройств ввода/выводаЕсли интерфейс между контроллером и
устройством является официальным стандартом
(ANSI, IEEE или ISO) или фактическим стандартом,
то различные компании могут выпускать отдельно
контроллеры и устройства, удовлетворяющие
данному интерфейсу.
Операционные системы
8
9.
Состав устройств ввода/выводаОперационные системы
9
10.
КонтроллерКаждый контроллер взаимодействует с
драйвером системным программным модулем,
предназначенным
для
управления
данным
устройством.
Для работы с драйвером контроллер имеет
несколько регистров, кроме того, контроллер может
иметь буфер данных, из которого операционная
система может читать данные, а также записывать
данные в него.
Каждому
управляющему
регистру
назначается номер порта ввода-вывода.
Операционные системы
10
11.
КонтроллерИспользуя регистры контроллера, ОС может
узнать состояние устройства (например, готово ли оно
к работе), а также выдавать команды управления
устройством (принять или передать данные,
включиться, выключиться и т. п.).
Операционные системы
11
12. 4.2. Основные функции подсистемы ввода-вывода
Основные компоненты: драйверы, файловая система,система прерываний, супервизор ввода-вывода
Драйверы управляют внешними устройствами.
В работе подсистемы ввода-вывода активно
участвует диспетчер прерываний. Основная
нагрузка диспетчера прерываний обусловлена
именно подсистемой ввода-вывода, поэтому
диспетчер прерываний иногда считают частью
подсистемы ввода-вывода.
Файловая система - это основное хранилище
информации в любом компьютере.
Операционные системы
12
13. 4.2. Основные функции подсистемы ввода-вывода
Она активно использует остальные частиподсистемы ввода-вывода.
Кроме того, модель файла лежит в основе
большинства
механизмов
доступа
к
периферийным устройствам.
Супервизор ввода-вывода – это компонентом
операционной системы, который управляет
вводом-выводом.
Операционные системы
13
14. 4.2. Основные функции подсистемы ввода-вывода
Самый главный принцип организации вводавывода в мультизадачных ОС
Любые операции по управлению вводомвыводом объявляются привилегированными и
могут выполняться только кодом самой
операционной системы.
Как правило, в режиме супервизора (режим
ядра)
выполнение
команд
ввода-вывода
разрешено, а в пользовательском режиме —
запрещено.
Операционные системы
14
15. 4.2. Основные функции подсистемы ввода-вывода
Самый главный принцип организации вводавывода в мультизадачных ОС
Обращение к командам ввода-вывода в
пользовательском
режиме
вызывает
исключение, и управление через механизм
прерываний передается коду операционной
системы.
Возможны и более сложные схемы, в которых
в ряде случаев пользовательским программам
может быть разрешено непосредственное
выполнение команд ввода-вывода.
Операционные системы
15
16. 4.2.1. Основные функции подсистемы ввода-вывода
1. Организация параллельной работы устройств вводавывода и процессора.2. Согласование скоростей обмена и кэширование данных.
3. Разделение устройств и данных между процессами.
4. Обеспечение удобного логического интерфейса между
устройствами и остальной частью системы.
5. Поддержка широкого спектра драйверов с возможностью
простого включения в систему нового драйвера.
6. Динамическая загрузка и выгрузка драйверов.
7. Поддержка нескольких файловых систем.
8. Поддержка синхронных и асинхронных операций вводавывода.
Операционные системы
16
17. 4.2.1. Основные функции подсистемы ввода-вывода
Основные задачи, возлагаемые на супервизор1. Модуль супервизора операционной системы , иногда называемый
супервизором задач, получает запросы от прикладных задач на
выполнение тех или иных операций, в том числе на ввод-вывод. Эти
запросы проверяются на корректность и, если они соответствуют
спецификациям и не содержат ошибок, то обрабатываются дальше. В
противном случае пользователю (задаче) выдается соответствующее
диагностическое сообщение о недействительности (некорректности)
запроса.
2. Супервизор ввода-вывода получает запросы на ввод-вывод от
супервизора задач или от программных модулей самой операционной
системы.
3.
Супервизор
ввода-вывода
вызывает
соответствующие
распределители каналов и контроллеров, планирует ввод-вывод
(определяет очередность предоставления устройств ввода-вывода
задачам, затребовавшим эти устройства). Запрос на ввод-вывод либо
тут же выполняется, либо ставится в очередь на выполнение.
Операционные системы
17
18. 4.2.1. Основные функции подсистемы ввода-вывода
Основные задачи, возлагаемые на супервизор4. Супервизор ввода-вывода инициирует операции ввода-вывода
(передает управление соответствующим драйверам) и в случае
управления вводом-выводом с использованием прерываний
предоставляет процессор диспетчеру задач с тем, чтобы передать его
первой задаче, стоящей в очереди на выполнение.
5. При получении сигналов прерываний от устройств ввода-вывода
супервизор идентифицирует эти сигналы и передает управление
соответствующим программам обработки прерываний.
6. Супервизор ввода-вывода осуществляет передачу сообщений об
ошибках, если таковые происходят в процессе управления
операциями ввода-вывода.
7. Супервизор ввода-вывода посылает сообщения о завершении
операции ввода-вывода запросившей эту операцию задаче и снимает
ее с состояния ожидания ввода-вывода, если задача ожидала
завершения операции.
Операционные системы
18
19. 4.2.2. Организация параллельной работы устройств ввода-вывода и процессора
Эволюция ввода – вывода1. Процессор непосредственно управляет периферийным устройством.
2. Устройство управляется контроллером. Процессор использует
программируемый ввод - вывод без прерываний (переход к абстракции
интерфейса ввода - вывода) – режим обмена с опросом готовности.
3. Использование контроллера прерываний. Ввод-вывод, управляемый
прерываниями – режим обмена с прерываниями.
4. Использование модуля (канала) прямого доступа к памяти. Перемещение
данных в память (из нее) без использования процессора.
5. Использование отдельного специализированного процессора вводавывода, управляемого центральным процессором.
6. Использование отдельного компьютера для управления устройствами
ввода-вывода при минимальном вмешательстве центрального
процессора.
Операционные системы
19
20.
Текущая команда программы1.Программируемый вводвывод без прерываний
Процессор посылает необходимые
команды
контроллеру
устройства
ввода-вывода и переводит процесс в
Вызов драйвера
состояние
ожидания
завершения
операции ввода-вывода. Контроллер
Запрос состояния контроллера
транслирует принятые команды в
ввода-вывода
сигналы управления устройством ввода
Не готов
вывода.
Проверка
После
выполнения
команды
состояния
Готов
Ошибка
устройством его контроллер выдает
сигнал готовности.
Получить слово от
контроллера ввода-вывода
Процессор (через драйвер устройства)
периодически проверяет состояние
Записать слово в память
устройства ввода вывода с целью
проверки завершения операций ввода
Нет
Да
вывода и готовности к принятию новой
Все выполнено ?
команды
Следующая команда
Недостаток: большие потери
20
процессорного времени
Операционные системы
Системный вызов для выполнения
операции ввода-вывода
21.
1. Программируемый ввод-вывод без прерыванийВ операционных системах Windows (и Windows 9х, и
Windows NT/ 2000) печать через параллельный порт
осуществляется не в режиме с прерываниями, как это
сделано в других ОС, а в режиме опроса готовности, что
приводит к 100-процентной загрузке центрального
процессора на все время печати.
При этом другие задачи, запущенные на исполнение,
выполняются исключительно за счет того, что упомянутые
операционные системы поддерживают вытесняющую
мультизадачность.
Операционные системы
21
22.
2. Ввод-вывод, управляемыйпрерываниями.
Текущая команда программы
Системный вызов для выполнения
операции ввода-вывода
Выполнение
других
Вызов драйвера. Передача
команды контроллеру.
действий
Запрос состояния контроллера
ввода-вывода
ПРЕРЫВАНИЕ
Не готов
Проверка
состояния
Готов
Ошибка
Получить слово от
контроллера ввода-вывода
Записать слово в память
Нет
Да
Все выполнено ?
Следующая команда
Операционные системы
Процессор
посылает
необходимые
команды
контроллеру ввода-вывода и
продолжает
выполнять
процесс,
если
нет
необходимости в ожидании
выполнения операции. В
противном случае процесс
приостанавливается
до
получения
сигнала
прерывания о завершении
ввода/вывода, а процессор
переключается
на
выполнение
другого
процесса. В конце каждого
цикла выполненных команд
процессор
проверяет
наличие прерываний.
22
23.
2. Ввод вывод, управляемыйпрерываниями
Возбуждение сигнала
прерывания
Центральный
процессор
4
Жесткий диск
Контроллер запускает устройство
Регистры контроллера
Контроллер
прерываний
5
2
Контроллер диска
3
1
Драйвер программирует контроллер и переходит в состояние ожидания
3
5
Контроллер устройства ввода-вывода завершил операцию
Обработка прерывания, перемещение данных в область
программы, передача управления программе
Операционные системы
23
24.
2. Ввод вывод, управляемый прерываниямиРежим обмена с прерываниями по своей сути является режимом
асинхронного управления. Для того чтобы не потерять связь с
устройством, может быть запущен отсчет времени, в течение
которого устройство обязательно должно выполнить команду и
выдать-таки сигнал запроса на прерывание.
Максимальный интервал времени, в течение которого
устройство ввода-вывода или его контроллер должны выдать
сигнал запроса на прерывание, часто называют установкой
тайм-аута.
Если это время истекло после выдачи устройству очередной
команды, а устройство так и не ответило, то делается вывод о
том, что связь с устройством потеряна и управлять им больше
нет возможности. Пользователь и/или задача получают
соответствующее диагностическое сообщение.
Операционные системы
24
25.
2. Ввод вывод, управляемый прерываниямиДрайверы, работающие в режиме прерываний, представляют
собой сложный комплекс программных модулей и могут иметь
несколько секций: секцию запуска, одну или несколько секций
продолжения и секцию завершения.
Секция запуска инициирует операцию ввода-вывода. Эта
секция запускается для включения устройства ввода-вывода
или просто для инициализации очередной операции вводавывода.
Операционные системы
25
26.
2. Ввод вывод, управляемый прерываниямиСекция продолжения (их может быть несколько, если алгоритм
управления обменом данными сложный, и требуется несколько
прерываний
для
выполнения
одной
логической
операции)
осуществляет основную работу по передаче данных.
Секция продолжения является основным обработчиком прерывания.
Поскольку используемый интерфейс может потребовать для
управления
вводом-выводом
несколько
последовательностей
управляющих команд, а сигнал прерывания у устройства, как правило,
только один, то после выполнения очередной секции прерывания
супервизор прерываний при следующем сигнале готовности должен
передать управление другой секции. Это делается путем изменения
адреса обработки прерывания после выполнения очередной секции, а
если имеется только одна секция продолжения, она сама передает
управление в ту или иную часть кода подпрограммы обработки
прерывания.
Секция завершения обычно выключает устройство ввода-вывода или
просто завершает операцию.
Операционные системы
26
27.
Текущая команда программыСистемный вызов для выполнения
операции ввода-вывода. Вызов драйвера.
Программирование DMA
Выполнение
Модуль
других
действий памяти
Запрос состояния контроллера
ввода-вывода
Не готов
Проверка
состояния
Готов
3. Прямой доступ к
памяти.
Ошибка
Запуск контроллера. Перенос
данных в буфер. Сигнал в DMA.
Запрос от DMA на перенос данных. Запись
слова в память контроллером. Сигнал в DMA.
прямого доступа к
управляет обменом
данных
между
основной
памятью
и
контроллером
ввода-вывода.
Процессор
посылает запрос на передачу
блока данных модулю прямого
доступа
к
памяти,
а
прерывание
происходит
только после передачи всего
блока данных.
DMA увеличивает адрес памяти и
уменьшает счетчик байтов
Нет
Да
Все выполнено ?
Прерывание
Операционные системы
27
28.
3. Ввод1 вывод через DMA
Буфер
Адрес
Оперативная память
Центральный
процессор
1
Подтверждение
54
2
Управляющий
регистр
Контроллер
Счетчик
5
2
DMA
2
Прерывание
после
выполнения
3
DMA запрашивает
перенос данных
1
1
Центральный процессор
программирует DMA
Диск
4
4
Перенос
данных
Шина
Операционные системы
28
29.
1Работа
DMA-контроллера
DMA-контроллер
4 имеет доступ к системной
шине независимо от центрального процессора.
Контроллер содержит несколько регистров,
2
доступных центральному процессору для чтения и
записи (регистр адреса памяти, счетчик байтов,
управляющие регистры).
2
Управляющие регистры задают, какой порт
ввода-вывода
должен
быть
использован,
2
направление переноса данных (чтение или запись в
устройство ввода-вывода),
единицу переноса
3
(побайтно, пословно), а также число байтов,
которые следует перенести за одну операцию.
1
Операционные системы
29
30.
1Работа
DMA-контроллера
Перед выполнением
операции обмена ЦП
4
программирует DMA-контроллер, устанавливая его
регистры (шаг 1).
2
Затем ЦП дает команду дисковому контролеру
прочитать данные во внутренний буфер и
проверить контрольную сумму. После этого
2
процессор продолжает свою работу. Когда данные
получены и проверены контроллером диска, DMA
2
может начинать работу.
3
1
Операционные системы
30
31.
1Работа
DMA-контроллера
DMA-контроллер
4 начинает перенос данных,
посылая дисковому контроллеру по шине запрос
чтения (шаг 2). Адрес памяти уже находится на
2
адресной шине, так что контроллер знает, куда
пересылать следующее слово из своего буфера.
Запись в память является еще одним
2
стандартным циклом шины (шаг 3). Когда запись
закончена, контроллер диска посылает сигнал
2
подтверждения контролеру DMA (шаг 4).
Затем
контролер
DMA
увеличивает
3
используемый адрес памяти и уменьшает значение
счетчика байтов.
1
Операционные системы
31
32.
1Работа
DMA-контроллера
После этого шаги
4 2, 3 и 4 повторяются, пока
значение счетчика не станет равным нулю. По
завершении цикла копирования контроллер DMA
2
инициирует прерывание процессора, сообщая ему о
завершении операции ввода-вывода.
Особенность работы шины в этом процессе
2
обмена данными. Шина может работать в двух
режимах: пословном и поблочном. В первом случае
2
контроллер DMA выставляет запрос на перенос
одного слова и получает
его. Если процессору также
3
нужна эта шина (в основном он работает с кэшпамятью), ему приходится подождать.
1
Операционные системы
32
33.
Этот механизм называется захватом цикла, потому чтоконтроллер устройства периодически забирает случайный
цикл шины у центрального процессора, слегка тормозя его.
Ц и к л
Цикл
процессор
а
Выборка
команды
к о м а н д ы
Цикл
Цикл
процессора процессора
Цикл
Цикл
процессора процессора
Цикл
процессора
Декодирование
команды
Выполнение
команды
Прерывание
процесса
Выборка
операнда
Точки
прерывания DMA
Операционные системы
Сохранение
результата
Точка
прерывания
33
34.
1Работа
DMA-контроллера
Приостановка процессора
происходит только
4
при необходимости использования шины. После
этого устройство DMA выполняет передачу слова и
2
возвращает управление процессору.
Однако это не является прерыванием:
процессор не сохраняет контекст с переходом к
2
выполнению другого задания. Он просто делает
паузу на время одного цикла шины.
2
3
1
Операционные системы
34
35.
1Работа
DMA-контроллера
В блочном режиме
работы контроллер DMA
4
занимает шину на серию пересылок (пакет). Этот
режим более эффективен, однако при переносе
2
большого блока центральный процессор и другие
устройства могут быть заблокированы на
существенный промежуток времени.
2
При большом количестве устройств вводавывода от подсистемы ввода-вывода требуется
2
спланировать в реальном масштабе времени (в
котором работают внешние
устройства) запуск и
3
приостановку
большего
количества
разных
драйверов.
1
Операционные системы
35
36.
1Работа
DMA-контроллера
С
другой 4
стороны,
необходимо
минимизировать загрузку процессора задачами
ввода-вывода.
2
Решение этих задач достигается на основе
многоуровневой
приоритетной
схемы
обслуживания прерываний. Для обеспечения
2
приемлемого уровня реакции все драйвера
распределяются по нескольким приоритетным
2
уровням в соответствии с требованиями по времени
реакции и временем 3 использования процессора.
Для
реализации
приоритетной
схемы
задействуется общий диспетчер прерываний ОС.
1
Операционные системы
36
37. 4.2.3. Согласование скоростей обмена и кэширование данных
Пользовательский процессВвод
T
Устройства ввода
Без
буферизации
M
C
Пользовательский процесс
Ввод
Одинарная
буферизация
Перемещение
Двойная
буферизация
Перемещение
Ввод
Пользовательский процесс
Пользовательский процесс
Ввод
Циклическая
буферизация
Перемещение
Операционные системы
37
38. 4.2.3. Согласование скоростей обмена и кэширование данных
При обмене данными всегда возникаетзадача
C
T
согласования скоростей работы устройств. Решение
этой задачи достигается буферизацией данных.
В подсистеме ввода-вывода часто используется
буферизация в оперативной памяти.
Однако буферизация только на основе
оперативной
памяти
часто
оказывается
недостаточной из-за большой разницы скоростей
работы оперативной памяти и внешнего устройства
объема оперативной памяти может просто не хватить.
В этих случаях часто используют в качестве
буфера дисковый файл, называемый спул-файлом
(пример применения - вывод данных на принтер).
Операционные системы
38
39. 4.2.3. Согласование скоростей обмена и кэширование данных
Другимрешением
проблемы
является
C
T
использование большой буферной памяти в
контроллерах
внешних
устройств
(пример
применения буферная память графических дисплеев).
При
рассмотрении
различных
методов
буферизации нужно учитывать, что существует, как
отмечалось, два типа устройств - блочные и
символьные.
Первые сохраняют информацию блоками
фиксированного размера и передают ее поблочно
(диски, ленты).
Операционные системы
39
40. 4.2.3. Согласование скоростей обмена и кэширование данных
Вторыевыполняют
передачу
вC виде
T
неструктурированных потоков байтов (терминалы,
принтеры, манипулятор мыши, сканеры и др.).
Простейший тип поддержки со стороны ОС одинарный буфер.
В тот момент, когда пользовательский процесс
выполняет запрос ввода-вывода, операционная
система назначает ему буфер в системной части
оперативной памяти.
Сначала осуществляется передача входных
данных в системный буфер.
Операционные системы
40
41. 4.2.3. Согласование скоростей обмена и кэширование данных
Когда она завершится,процесс перемещает
C
T
блок в пользовательское пространство и немедленно
производит запрос следующего блока.
Такая процедура называется опережающим
считыванием или упреждающим вводом.
Улучшить схему одинарной буферизации можно
путем использования двух системных. Теперь процесс
выполняет передачу данных в один буфер (или
считывает из него), в то время как ОС освобождает
(или заполняет) другой. Эта технология известна как
двойная буферизация, или сменный буфер.
Операционные системы
41
42. 4.2.3. Согласование скоростей обмена и кэширование данных
Двойнойбуферизации
может
оказаться
C
T
недостаточно, если процесс часто выполняет ввод или
вывод.
Решить проблему помогает наращивание
количества буферов. Если буферов больше двух, схема
именуется циклической буферизацией.
Операционные системы
42
43. Время обработки блока данных
Без буферизацииОдинарная буферизация
T+C
max {T, C} + M
в большинстве случаев
Двойная буферизация
T + C > max {T, C}
max {T, C}
если C <= T, то блочно-ориентированное устройство
может работать с максимальной скоростью;
если C > T, то процесс избавляется от необходимости
ожидания завершения ввода-вывода.
Буферизация данных позволяет сократить количество
реальных операций ввода за счет кэширования данных.
Операционные системы
43
44. 4.2.3. Согласование скоростей обмена и кэширование данных
Буферы (буфер) являютсякритическим ресурсом
в
C
T
отношении внутренних (программных) и внешних
процессов (аппаратуры ввода-вывода), которые при
параллельном своем выполнении информационно
взаимодействуют.
Через буферы данные либо посылаются от некоторого
процесса к адресуемому внешнему (операция вывода
данных на внешнее устройство), либо от внешнего
процесса передаются некоторому программному
процессу (операция считывания данных).
Операционные системы
44
45. 4.2.3. Согласование скоростей обмена и кэширование данных
Управления системнымиTбуферами как средствамиC
информационного
взаимодействия
решается
супервизорной частью операционной системы.
Супервизор решает следующие задачи: выделение и
освобождению буферов в системной области памяти;
синхронизация
процессов
в
соответствии
с
состоянием операций заполнения или освобождения
буферов; организация ожиданию процессов, если
свободных буферов в наличии нет, а запрос на вводвывод требует буферизации.
Операционные системы
45
46. 4.2.3. Согласование скоростей обмена и кэширование данных
Супервизорввода-вывода
для
решения
C
T
перечисленных
задач
использует
стандартные
средства синхронизации, принятые в данной
операционной системе.
Операционные системы
46
47. 4.2.3. Согласование скоростей обмена и кэширование данных
Необходимостькэширования.
C
T
Накопители на магнитных дисках обладают крайне
низким
быстродействием
по
сравнению
с
процессорами и оперативной памятью.
Средняя скорость работы процессора с оперативной
памятью на 2-3 порядка выше, чем средняя скорость
передачи данных из внешней памяти на магнитных
дисках в оперативную память.
Для
того
чтобы
сгладить
такое
сильное
несоответствие в производительности основных
подсистем,
используется
буферизация
и/или
кэширование данных в дисковом кэше (disk cache).
Операционные системы
47
48. 4.2.3. Согласование скоростей обмена и кэширование данных
Простейшийвариантом
ускорения
дисковых
C
T
операций чтения и записи - двойной буферизации.
Помимо буферизации применяется кэширование.
Кэширование полезно в том случае, когда приложение
неоднократно читает с диска одни и те же данные.
После того как они один раз будут помещены в кэш,
обращений к диску больше не потребуется, и скорость
работы программы значительно возрастет.
Операционные системы
48
49. 4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип Tдействия дисковогоCкэшаДисковый кэш (упрощенно) есть некий пул буферов,
которые управляются с помощью соответствующего
системного процесса.
При
чтении
какого-то
множества
секторов,
содержащих записи того или иного файла, эти
данные, пройдя через кэш, там остаются (до тех пор,
пока другие секторы не заменят эти буферы).
Если впоследствии потребуется повторное чтение, то
данные могут быть извлечены непосредственно из
оперативной памяти без фактического обращения к
диску.
Операционные системы
49
50. 4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип Tдействия дисковогоCкэшаПри записи: данные помещаются в кэш, и для
запросившего эту операцию приложения получается,
что фактически они уже записаны.
Приложение может продолжить свое выполнение, а
системные внешние процессы через некоторое время
запишут данные на диск. Это называется отложенной
записью.
Если режим отложенной записи отключен, только
одна задача может записывать на диск свои данные.
Остальные приложения должны ждать своей очереди.
Операционные системы
50
51. 4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип Tдействия дисковогоCкэшаПоскольку количество буферов, составляющих кэш,
ограничено, может возникнуть ситуация, когда
считываемые или записываемые данные потребуют
замены данных в этих буферах.
При этом возможны различные дисциплины
выделения буферов под вновь затребованную
операцию кэширования.
Операционные системы
51
52. 4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип Tдействия дисковогоCкэшаУпреждающее чтение (read ahead) основано на
чтении с диска гораздо большего количества
информации, чем на самом деле запрошено
приложением или операционной системой.
Когда процессу требуется считать с диска только один
сектор, программа кэширования читает несколько
дополнительных блоков данных.
Операции последовательного чтения нескольких
секторов несущественно замедляют операцию чтения
затребованного сектора с данными.
Операционные системы
52
53. 4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип Tдействия дисковогоCкэшаЕсли процесс вновь обратится к диску, вероятность
того, что нужные ему данные уже находятся в кэше,
будет достаточно высока.
Поскольку передача данных из одной области памяти
в другую происходит во много раз быстрее, чем
чтение их с диска, кэширование существенно
сокращает время выполнения операций с файлами.
Операционные системы
53
54. 4.2.3. Согласование скоростей обмена и кэширование данных
Связь буфера иT дискового кэша CИнформация от диска к процессу пролегает как через
буфер, так и через дисковый кэш.
Когда процесс запрашивает с диска данные,
программа кэширования перехватывает этот запрос и
читает вместе с необходимыми секторами еще и
несколько дополнительных.
Затем она помещает в буфер требующуюся процессу
информацию и ставит об этом в известность
операционную систему.
Операционная система сообщает процессу, что его
запрос выполнен, и данные с диска находятся в
буфере.
Операционные системы
54
55. 4.2.3. Согласование скоростей обмена и кэширование данных
Связь буфера иT дискового кэша CПри следующем обращении процесса к диску
программа кэширования прежде всего проверяет, не
находятся ли уже в памяти затребованные данные.
Если это так, то она копирует их в буфер, если же их в
КЭШе нет, то запрос на чтение диска передается
операционной системе.
Когда процесс изменяет данные в буфере, они
копируются в кэш.
Операционные системы
55
56. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
Увеличение объема памяти кэша может и не привести
к росту быстродействия системы.
Поиск нужного фрагмента данных в буферах кэша
осуществляется путем их полного перебора. Поэтому с
ростом числа буферов кэша затраты на их перебор
становятся значительными. И поскольку невозможно
обеспечить 100-процентного кэш-попадания искомых
данных, то естественно наступает момент, когда
среднее время доступа к данным перестает снижаться
с увеличением кэша.
Операционные системы
56
57. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
Для оптимизации работы кэша в ряде операционных
систем имеется возможность указать в явном виде
параметры кэширования, в то время как в других за
эти параметры отвечает сама операционная система.
Операционные системы
57
58. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
В системах семейства Windows 9.х можно указать:
• объем памяти, отводимый для кэширования;
• объем порции (ChunkSize) данных, из которых
набирается кэш;
• предельное количество имен файлов; параметры
кэширования каталогов.
Операционные системы
58
59. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
В файле SYSTEM.INI, расположенном в основном
каталоге такой операционной системы (обычно это
каталог Windows), в секции [vcache] есть возможность
прописать, например, следующие значения:
[vcache]
MinFileCache=4096
MaxFileCache=32768
ChunkSize=512
Операционные системы
59
60. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
Здесь указано, что минимально под кэширование
данных зарезервировано 4 Мбайт оперативной
памяти, максимальный объем кэша может достигать
32 Мбайт, а размер данных, которыми манипулирует
менеджер кэша, равен одному сектору.
Операционные системы
60
61. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
Во всех ОС от Microsoft принята стратегия активного
кэширования файлов, при которой для кэширования
отводится вся свободная память.
Поэтому без явного ограничения объема памяти,
отводимой под кэширование файлов, можно
столкнуться с ситуацией, когда рост дискового кэша
приводит к значительному росту числа страниц
памяти, «сброшенных» в файл подкачки, что может
привести к заметному замедлению работы системы.
Операционные системы
61
62. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизацикэша
C
T
В операционных системах Windows NT 4.0, Windows
2000 и Windows ХР также можно управлять
некоторыми
параметрами
кэширования,
задаваемыми в реестре.
Так
в
разделе
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl
Set\Control\Session Manager\Memory Management]
реестра параметр IOPageLockLimit задает в байтах
объем физической памяти для хранения буферов
дискового кэша. Эта память не может быть
выгружена в файл подкачки.
Операционные системы
62
63. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэшаC
T
В ОС от Microsoft кэшируемые файлы отображаются
на виртуальное адресное пространство, а не на
физическую память компьютера, как это сделано в
других операционных системах. Поэтому некоторые
страничные кадры этого виртуального адресного
пространства могут быть отображены не на реальную
оперативную память компьютера, а размещены в
страничном файле подкачки, что может сильно
замедлять работу кэша. Блокирование некоторого
числа страниц файлового кэша от перемещения их во
внешнюю память должно приводить к повышению
эффективности кэширования.
Операционные системы
63
64. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
Операционная система может оптимизировать
перемещение
головок
чтения/записи
данных,
связанное с выполнением запросов от параллельно
выполняющихся задач.
Время, необходимое на получение данных с
магнитного диска, складывается из времени
перемещения магнитной головки на требуемый
цилиндр и времени поиска заданного сектора; а
временем считывания найденного сектора и
временем передачи этих данных в оперативную
память можно пренебречь.
Операционные системы
64
65. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
Основные затраты времени уходят на поиск данных.
В мультипрограммных операционных системах при
выполнении многих задач запросы на чтение и запись
данных могут идти таким потоком, что при их
обслуживании образуется очередь.
Если выполнять эти запросы в порядке поступления
их в очередь, то вследствие случайного характера
обращений к тому или иному сектору магнитного
диска потери времени на поиск данных могут
значительно возрасти.
Операционные системы
65
66. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
Необходимо переупорядочивание этих запросов с
целью минимизации затрат времени на поиск
данных.
Применяются
следующие
дисциплины,
в
соответствии с которыми можно перестраивать
очередь запросов на операции чтения/записи данных.
SSTF (Shortest Seek Time First — запрос с
наименьшим
временем
позиционирования
выполняется первым).
Операционные системы
66
67. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
В
соответствии
с
этой
дисциплиной
при
позиционировании магнитных головок следующим
выбирается запрос, для которого необходимо
минимальное перемещение с цилиндра на цилиндр,
даже если этот запрос не был первым в очереди на
ввод-вывод. Недостатки: сильная дискриминация
некоторых запросов; запросы на обращение к самым
внешним и самым внутренним дорожкам могут
обслуживаться существенно дольше, и нет никакой
гарантии обслуживания. Достоинства: максимально
возможная
пропускная
способность
дисковой
подсистемы.
Операционные системы
67
68. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
Scan
(сканирование).
При
сканировании
головки поочередно перемещаются то в одном, то в
другом
«привилегированном»
направлении,
обслуживая «по пути» подходящие запросы. Если при
перемещении головок чтения/записи более нет
попутных запросов, то движение начинается в
обратном направлении.
Операционные системы
68
69. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
Next-Step Scan (отложенное сканирование).
Отличается от предыдущей дисциплины тем, что на
каждом проходе обслуживаются только те запросы,
которые уже существовали на момент начала прохода.
Новые
запросы,
появляющиеся
в
процессе
перемещения головок чтения/записи, формируют
новую очередь запросов, причем таким образом,
чтобы их можно было оптимально обслужить на
обратном ходу.
Операционные системы
69
70. 4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок НЖМДC
T
С-Scan (циклическое сканирование). По этой
дисциплине головки перемещаются циклически с
самой наружной дорожки к внутренним, по пути
обслуживая имеющиеся запросы, после чего вновь
переносятся к наружным цилиндрам. Эту дисциплину
иногда реализуют таким образом, чтобы запросы,
поступающие во время текущего прямого хода
головок, обслуживались не попутно, а при следующем
проходе, что позволяет исключить дискриминацию
запросов к самым крайним цилиндрам.
Операционные системы
70
71.
4.2.4. Разделение устройств и данных между процессамиУстройства
ввода-вывода
могут
предоставляться процессам как в монопольном, так
и в разделенном режиме.
При этом ОС должна обеспечивать контроль
доступа теми же способами, что и при доступе
процессов к другим ресурсам вычислительной
системы - путем проверки прав пользователя или
группы пользователей, от имени которых действует
процесс, на выполнение той или иной операции над
устройством.
Операционные системы
71
72.
4.2.4. Разделение устройств и данных между процессамиОС может контролировать доступ не только к
устройству в целом, но и к отдельным порциям
данных, хранимых этим устройством (например,
диск). В последнем случае непременным является
задание
режима
совместного
использования
устройства в целом.
Одно и то же устройство в разные периоды
времени может использоваться как в разделяемом,
так и монопольном режимах.
Операционные системы
72
73.
4.2.4. Разделение устройств и данных между процессамиСуществуют
устройства,
для
которых
характерен один из этих режимов, например
последовательные порты и алфавитно-цифровые
терминалы чаще используются в монопольном
режиме, а диск - в режиме совместного доступа.
В случае совместного использования ОС
должна
оптимизировать
последовательность
операций ввода-вывода для различных процессов в
целях повышения общей производительности.
При разделении устройства между процессами
может возникнуть необходимость в разграничении
данных процессов друг от друга (последовательные
устройства, например принтер).
Операционные системы
73
74.
4.2.4. Разделение устройств и данных между процессамиЧтобы организовать совместное использование
многими
параллельно
выполняющимися
процессами тех устройств ввода-вывода, которые не
могут быть разделяемыми, вводится понятие
виртуальных устройств. Принцип виртуализации
позволяет
повысить
эффективность
вычислительной системы.
Операционные системы
74
75.
4.2.4. Разделение устройств и данных между процессамиПонятие виртуального устройства шире понятия
спулинга. Спулинг – это имитация работы с
устройством
в
режиме
непосредственного
подключения к нему).
Основное назначение спулинга — создать видимость
разделения устройства ввода-вывода, которое
фактически
является
устройством
с
последовательным
доступом
и
должно
использоваться только монопольно и быть
закрепленным за процессом.
Системные процессы, которые управляют спулфайлом, называются спулером чтения (spool-reader)
или спулером записи (spool-writer).
Операционные системы
75
76.
4.2.4. Разделение устройств и данных между процессамиДля таких устройств организуется очередь
заданий на вывод, при этом каждое задание
представляет собой порцию данных, которую нельзя
разрывать, например, документ для печати.
Для хранения очереди заданий используется
спул-файл, который согласует скорость работы
принтера и оперативной памяти и позволяет
организовать разбиение данных на логические
порции.
Процессы могут одновременно выполнять
вывод на принтер, помещая данные в свой раздел
спул-файла.
Операционные системы
76
77.
4.2.4. Разделение устройств и данных между процессамиДостаточно рационально организована работа с
виртуальными устройствами в системах Windows
9x/NT/2000/XP компании Microsoft.
Пример - подсистема печати.
Microsoft различает термины «принтер» и
«устройство печати».
Принтер — это некоторая виртуализация, объект
операционной системы, а устройство печати — это
физическое устройство, которое может быть
подключено к компьютеру.
Принтер может быть локальным или сетевым.
Операционные системы
77
78.
4.2.4. Разделение устройств и данных между процессамиПри
установке
локального
принтера
в
операционной системе создается новый объект,
связанный с реальным устройством печати через
тот или иной интерфейс.
Интерфейс может быть и сетевым, то есть передача
управляющих кодов в устройство печати может
осуществляться через локальную вычислительную
сеть, однако принтер все равно будет считаться
локальным.
Локальность принтера означает, что его спул-файл
будет находиться на том же компьютере, что и
принтер.
Операционные системы
78
79.
4.2.4. Разделение устройств и данных между процессамиЕсли
же
некоторый
локальный
принтер
предоставить в сети в общий доступ с теми или
иными разрешениями, то для других компьютеров и
их пользователей он может стать сетевым.
Компьютер, на котором имеется локальный
принтер, предоставленный в общий доступ,
называется принт-сервером.
Операционные системы
79
80.
4.2.4. Разделение устройств и данных между процессамиДля получения управляющих кодов принтера
устанавливается
программное
обеспечение
(компания Microsoft называет его высокоуровневым
драйвером).
Эти управляющие коды посылаются на устройство
печати по соответствующему интерфейсу через
назначенные принтеру порты и управляют работой
устройства печати.
При получении операционной системой от
приложения запроса на печать она выделяет для
этого процесса виртуальный принтер.
Операционные системы
80
81.
4.2.4. Разделение устройств и данных между процессамиОперационная система закрепляет за процессом
виртуальный принтер, а не устройство печати.
Обработанные драйвером принтера данные,
посланные на него из приложения, как правило (по
умолчанию), направляются в спул-файл, откуда они
затем передаются на печать по мере освобождения
устройства печати и в соответствии с приоритетом
локального принтера.
При установке сетевого принтера операционная
система
устанавливает
для
этого
объекта
высокоуровневый драйвер и связывает полученный
объект со спулером того компьютера, на котором
установлен соответствующий локальный принтер.
Операционные системы
81
82.
4.2.5. Обеспечение логического интерфейса между устройствамии остальной частью системы
Разнообразие устройств ввода-вывода делает
актуальной функцию операционной системы по
созданию экранирующего логического интерфейса
между
периферийными
устройствами
и
приложениями.
Практически
все
современные
ОС
поддерживают в качестве такого интерфейса файловую
модель периферийных устройств, когда любое
устройство выглядит для прикладного программиста
последовательным набором байт, с которым можно
работать с помощью унифицированных системных
вызовов (например, read, write), задавая имя файлаустройства и смещение от начала последовательности
байт.
Операционные системы
82
83.
4.2.5. Обеспечение логического интерфейса между устройствамии остальной частью системы
Привлекательность модели файла-устройства
состоит в ее простоте и унифицированности для
устройств любого типа, однако во многих случаях
для программирования операций ввода-вывода
некоторого устройства она является слишком
бедной.
Поэтому данная модель часто используется в
качестве базиса, над которым подсистема вводавывода строит более содержательную модель
устройства конкретного типа.
Операционные системы
83
84.
4.2.6. Поддержка широкого спектра драйверовРазнообразный набор драйверов для широкого
круга популярных периферийных устройств непременное
условие
популярности
ОС
у
пользователей.
Для разработки драйверов производителями
внешних устройств необходимо наличие четкого,
удобного, открытого и хорошо документированного
интерфейса
между
драйверами
и
другими
компонентами ОС.
Драйвер взаимодействует, с одной стороны, с
модулями ядра ОС (модулями подсистемы вводавывода, модулями системных вызовов, модулями
подсистем управления процессами и памятью), а с
другой стороны - с контроллерами внешних устройств.
Операционные системы
84
85.
4.2.6. Поддержка широкого спектра драйверовПоэтому существует два вида интерфейсов:
интерфейс «драйвер-ядро» (Driver Kernel Interface,
DKI) и интерфейс «драйвер-устройство» (Driver Device
Interface).
Операционная система
Интерфейс драйвер – ядро
(Driver Kernel Interface, DKI)
Драйвер
Интерфейс драйвер – устройство
(Driver Device Interface, DDI)
Контроллер
Аппаратный низкоуровневый
интерфейс контроллер - устройство
Внешнее
устройство
Операционные системы
85
86.
4.2.6. Поддержка широкого спектра драйверовИнтерфейс
«драйвер-ядро»
должен
быть
стандартизован в любом случае. Подсистема вводавывода может поддерживать несколько различных
интерфейсов DKI/DDI, предоставляя специфический
интерфейс для устройств определенного класса.
К наиболее общим классам относятся блочные
устройства, например диски и символьные устройства,
такие как клавиатура и принтеры. Может
существовать класс сетевых адаптеров и др.
В большинстве современных ОС определен
стандартный
интерфейс,
который
должен
поддерживать все блочные драйверы, и второй
стандартный интерфейс, поддерживаемый всеми
символьными адаптерами.
Операционные системы
86
87.
4.2.6. Поддержка широкого спектра драйверовЭти интерфейсы включают наборы процедур,
которые могут вызываться остальной операционной
системой для обращения к драйверу.
Подсистема ввода-вывода поддерживает большое
количество системных функций, которые драйвер
может вызывать для выполнения некоторых типовых
действий. Например: операции обмена с регистрами
контроллера, ведения буферов промежуточного
хранения данных ввода-вывода, взаимодействия с
DMA-контроллером и контроллером прерываний.
Операционные системы
87
88. Функции драйвера
1. Обработка запросов записи-чтения от программногообеспечения управления устройствами. Постановка запросов в
очередь
2. Проверка входных параметров запросов и обработка ошибок
3. Инициализация устройства и проверка статуса устройства
4. Управление энергопотреблением устройства.
5. Регистрация событий в устройстве
6. Выдача команд устройству и ожидание их выполнения
возможно в блокированном состоянии до поступления
прерывания от устройства
7. Проверка правильности завершения операции
8. Передача запрошенных данных и статуса завершенной
операции
9. Обработка нового запроса при незавершенном предыдущем
запросе (для реентерабельных драйверов)
Операционные системы
88
89.
4.2.6. Поддержка широкого спектра драйверовУправление устройством подразумевает выдачу
ему серии команд. Именно в драйвере определяется
последовательность команд в зависимости от того, что
должно быть сделано.
Определившись с командами, драйвер начинает
записывать их в регистры контроллера устройства.
После записи каждой команды в контроллер
может быть нужно проверить, принял ли контроллер
команду и готов ли принять следующую.
Операционные системы
89
90.
4.2.6. Поддержка широкого спектра драйверовТакая
последовательность
действий
продолжается до тех пор, пока контроллеру не будут
переданы все команды.
После того как драйвер передал все команды
контроллеру, ситуация может развиваться по двум
сценариям.
Во многих случаях драйвер устройства должен
ждать, пока контроллер не выполнит для него
определенную работу, поэтому он блокируется до тех
пор, пока прерывание от устройства не разблокирует
его.
В других случаях операция завершается без
задержек и драйверу не нужно блокироваться.
Операционные системы
90
91.
4.2.6. Поддержка широкого спектра драйверовВ любом случае по завершении выполнения
операции драйвер должен проверить, завершилась ли
операция без ошибок. Если все в порядке, драйверу,
возможно, придется передать данные (например,
только что прочитанный блок) независимому от
устройств программному обеспечению.
Наконец, драйвер возвращает информацию о
состоянии
для
информирования
вызывающей
программы о статусе завершения операции. Если в
очереди находились другие запросы, один из них
теперь может быть выбран и запущен. В противном
случае драйвер блокируется в ожидании следующего
запроса.
Операционные системы
91
92.
4.2.6. Поддержка широкого спектра драйверовДля поддержки процесса разработки драйверов
операционной системы выпускается так называемый
пакет DDK (Driver Development Kit), представляющий
собой набор инструментальных средств-библиотек,
компиляторов и отладчиков.
Операционные системы
92
93.
4.2.7. Динамическая выгрузка и загрузка драйверовТак как набор потенциально поддерживаемых
данных ОС периферийных устройств всегда шире
набора устройств, которыми ОС должна управлять
при установке на конкретной машине, то ценным
свойством ОС является возможность динамически
загружать в оперативную память требуемый драйвер
(без остановки ОС ) и выгружать его, если надобность
в драйвере отпала. Такое свойство ОС может
существенно сэкономить системную область памяти.
Операционные системы
93
94.
4.2.7. Динамическая выгрузка и загрузка драйверовАльтернативой
динамической
загрузке
драйверов при изменении текущей конфигурации
внешних устройств компьютера является повторная
компиляция кода ядра с требуемым набором
драйверов, что создает между всеми компонентами
ядра статические связи вместо динамических.
Пример: ранние версии ОС UNIX. При
статических вызовах между ядром и драйверами
структуры ОС упрощается, но этот подход требует
наличие исходных кодов модулей ОС. Кроме того, в
этом варианте работающую версию ОС надо
остановить и заменить новой, что не всегда
допустимо в некоторых применениях.
Операционные системы
94
95.
4.2.7. Динамическая выгрузка и загрузка драйверовПоэтому поддержка динамической загрузки
драйверов является практически обязательным
требованием для современных универсальных ОС.
Операционные системы
95
96.
4.2.8. Основные системные таблицы ввода выводаДля управления всеми операциями ввода-вывода и
отслеживания состояния всех ресурсов, занятых в
обмене данными, операционная система должна
иметь соответствующие информационные структуры.
Эти информационные структуры, прежде всего,
призваны отображать следующую информацию:
• состав устройств ввода-вывода и способы их
подключения;
• аппаратные ресурсы, закрепленные за имеющимися
в системе устройствами ввода-вывода;
Операционные системы
96
97.
4.2.8. Основные системные таблицы ввода вывода• адреса размещения драйверов устройств вводавывода и области памяти для хранения текущих
значений переменных, определяющих работу с этими
устройствами;
• области памяти для хранения информации о
текущем состоянии устройства ввода-вывода и
параметрах,
определяющих
режимы
работы
устройства;
• данные о текущем процессе, который работает с
данным устройством;
Операционные системы
97
98.
4.2.8. Основные системные таблицы ввода вывода• адреса тех областей памяти, которые содержат
данные, собственно и участвующие в операциях
ввода-вывода (получаемые при операциях ввода
данных и выводимые на устройство при операциях
вывода данных).
Эти информационные структуры часто называют
таблицами ввода-вывода, хотя они, в принципе, могут
быть организованы и в виде списков.
Операционные системы
98
99.
4.2.8. Основные системные таблицы ввода выводаКаждая операционная система ведет свои таблицы
ввода-вывода, их состав (и количество, и назначение
каждой таблицы) может сильно отличаться.
В некоторых операционных системах вместо таблиц
создаются списки, хотя использование статических
структур данных для организации ввода-вывода, как
правило,
приводит
к
более
высокому
быстродействию.
Операционные системы
99
100.
4.2.8. Основные системные таблицы ввода выводаПервая таблица (или список) - таблица оборудования
(equipment table) содержит информацию обо всех
устройствах
ввода-вывода,
подключенных
к
вычислительной системе.
Каждый элемент этой таблицы называется UСВ (Unit
Control Block — блок управления устройством вводавывода).
Каждый элемент UCB таблицы оборудования, как
правило, содержит следующую информацию об
устройстве:
• тип
устройства,
его
конкретная
модель,
символическое имя и характеристики устройства;
Операционные системы
100
101.
4.2.8. Основные системные таблицы ввода вывода• способ подключения устройства (через какой
интерфейс, к какому разъему, какие порты и линия
запроса прерывания используются и т. д.);
• номер и адрес канала (и подканала), если такие
используются для управления устройством;
• информация о драйвере, который должен управлять
этим устройством, адреса секции запуска и секции
продолжения драйвера;
• информация о том, используется или нет
буферизация при обмене данными с устройством,
«имя» (или просто адрес) буфера, если такой
выделяется из системной области памяти;
Операционные системы
101
102.
4.2.8. Основные системные таблицы ввода вывода• установка тайм-аута и ячейки для счетчика таймаута;
• состояние устройства;
• поле указателя для связи задач, ожидающих
устройство;
• возможно, множество других сведений.
Операционные системы
102
103.
4.2.8. Основные системные таблицы ввода выводаПояснения. Поскольку во многих операционных
системах драйверы могут обладать свойством
реентерабельности (это означает, что один и тот же
экземпляр драйвера может обеспечить параллельное
обслуживание
сразу
нескольких
однотипных
устройств), то в элементе UCB должна храниться
либо непосредственно сама информация о текущем
состоянии устройства и сами переменные для
реентерабельной обработки, либо указание на место,
где такая информация может быть найдена.
Операционные системы
103
104.
4.2.8. Основные системные таблицы ввода выводаВажнейшим
компонентом
элемента
таблицы
оборудования является указатель на дескриптор той
задачи, которая в настоящий момент использует
данное устройство.
Если устройство свободно, то поле указателя будет
иметь нулевое значение.
Если же устройство уже занято и рассматриваемый
указатель не нулевой, то новые запросы к устройству
фиксируются посредством образования списка из
дескрипторов задач, ожидающих данное устройство.
Операционные системы
104
105.
4.2.8. Основные системные таблицы ввода выводаВторая системная таблица - таблица виртуальных
логических устройств (Device Reference Table, DRT)
—
выполняет
установление
связи
между
виртуальными (логическими) устройствами и
реальными устройствами, описанными посредством
первой таблицы (таблицы оборудования).
DRT позволяет супервизору перенаправить запрос на
ввод-вывод из приложения в те программные модули
и структуры данных, которые (или адреса которых)
хранятся в соответствующем элементе первой
таблицы.
Операционные системы
105
106.
4.2.8. Основные системные таблицы ввода выводаВо многих многопользовательских системах таких
таблиц несколько: одна общая и по одной на каждого
пользователя, что позволяет строить необходимые
связи
между
логическими
устройствами
(символьными именами устройств) и реальными
физическими устройствами, которые имеются в
системе.
Операционные системы
106
107.
4.2.8. Основные системные таблицы ввода выводаТретья таблица — таблица прерываний —
необходима для организации обратной связи между
центральной частью и устройствами ввода-вывода.
Эта таблица указывает для каждого сигнала запроса
на прерывание тот элемент UCB, который
сопоставлен данному устройству.
Каждое устройство либо имеет свою линию запроса
на прерывание, либо разделяет линию запроса на
прерывание с другими устройствами, но при этом
имеется механизм второго уровня адресации
устройств ввода-вывода.
Операционные системы
107
108.
4.2.8. Основные системные таблицы ввода выводаТаблица прерываний отображает связи между
сигналами запроса на прерывания и самими
устройствами ввода-вывода.
Как и системная таблица ввода-вывода, таблица
прерываний в явном виде может и не присутствовать.
Другими словами, можно сразу из основной таблицы
прерываний компьютера передать управление на
программу обработки (драйвер), связанную с
элементом UCB.
Операционные системы
108
109.
4.2.8. Основные системные таблицы ввода выводаВзаимосвязи системных таблиц ввода-вывода
Операционные системы
109
110.
4.2.8. Основные системные таблицы ввода выводаВ ряде сложных операционных систем (все
современные
32-разрядные
системы
для
персональных компьютеров), имеется гораздо больше
системных таблиц или списков, используемых для
организации управления операциями ввода-вывода.
Например --- блок управления данными (Data Control
Block, DCB).
Операционные системы
110
111.
4.2.8. Основные системные таблицы ввода выводаНазначение DCB — подключение препроцессоров
(высокоуровневых драйверов) к процессу подготовки
данных на ввод-вывод, то есть учет конкретных
технических
характеристик
и
используемых
преобразований.
Это необходимо для того, чтобы имеющееся
устройство получало не какие-то непонятные ему
коды или форматы данных, не соответствующие
режиму его работы, а коды и форматы, созданные
специально под данное устройство.
Операционные системы
111
112.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Операционные системы
112
113.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Шаг 1. Запрос на операцию ввода-вывода от
выполняющейся программы поступает на супервизор
задач.
Этот запрос представляет собой обращение к
операционной системе и указывает на конкретную
функцию API.
Вызов сопровождается некоторыми параметрами,
уточняющими требуемую операцию.
Модуль операционной системы, принимающий от
процессов запросы на те или иные действия, часто
называют супервизором задач ( Не путать с
диспетчером задач!).
Операционные системы
113
114.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Шаг 1-1. Супервизор задач проверяет системный
вызов на соответствие принятым спецификациям и в
случае ошибки возвращает задаче соответствующее
сообщение.
Шаг 2. Если же запрос корректен, то он
перенаправляется на супервизор ввода-вывода.
Последний по логическому (виртуальному) имени с
помощью таблицы DRT находит соответствующий
элемент UCB в таблице оборудования.
Операционные системы
114
115.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Если устройство уже занято, то описатель задачи,
запрос которой обрабатывается супервизором вводавывода, помещается в список задач, ожидающих это
устройство.
Шаг 3. Если же устройство свободно, то супервизор
ввода-вывода определяет из UCB тип устройства и
при
необходимости
запускает
препроцессор,
позволяющий
получить
последовательность
управляющих кодов и данных, которую сможет
правильно понять и отработать устройство.
Операционные системы
115
116.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Шаг 4. Когда «программа» управления операцией
ввода-вывода будет готова, супервизор ввода-вывода
передает управление соответствующему драйверу на
секцию запуска.
Шаг
5.
Драйвер
инициализирует
операцию
управления,
обнуляет
счетчик
тайм-аута
и
возвращает управление супервизору (диспетчеру
задач) с тем, чтобы он поставил на процессор готовую
к исполнению задачу.
Операционные системы
116
117.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Шаг 6. Когда устройство ввода-вывода отработает
посланную ему команду, оно выставляет сигнал
запроса на прерывание, по которому через таблицу
прерываний управление передается на секцию
продолжения.
Получив новую команду, устройство вновь начинает
ее обрабатывать, а управление процессором опять
передается диспетчеру задач, и процессор продолжает
выполнять полезную работу.
Операционные системы
117
118.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
Таким образом, получается параллельная обработка
задач, на фоне которой процессор осуществляет
управление операциями ввода-вывода.
Если имеются специальные аппаратные средства для
управления вводом-выводом (каналы прямого
доступа к памяти), которые позволяют освободить
центральный процессор от этой работы, то в функции
центрального процессора будут по-прежнему входить
все только что рассмотренные шаги, за исключением
последнего
—
непосредственного
управления
операциями ввода-вывода.
Операционные системы
118
119.
4.2.8. Основные системные таблицы ввода выводаПроцесс управления вводом-выводом
В случае использования каналов прямого доступа в
память последние исполняют соответствующие
канальные программы и освобождают центральный
процессор от непосредственного управления обменом
данными между памятью и внешними устройствами.
Операционные системы
119
120.
4.2.9. Поддержка синхронных и асинхронныхопераций ввода-вывода
Операция ввода-вывода может выполняться по
отношению к программному модулю, запросившему
операцию, в синхронном или асинхронном режимах.
Синхронный режим означает, что процесс,
выдавший запрос на операцию ввода-вывода,
переводится супервизором в состояние ожидания
завершения заказанной операции. Когда супервизор
получает от секции завершения сообщение о том, что
операция завершилась, он переводит процесс в
состояние готовности к выполнению, и он продолжает
выполняться. (верхняя диаграмма).
Операционные системы
120
121.
4.2.9. Поддержка синхронных и асинхронныхопераций ввода-вывода
При асинхронном режиме ввода-вывода
процесс
продолжает
выполняться
в
мультипрограммном
режиме
одновременно
с
операцией ввода-вывода (нижняя диаграмма).
Операционные системы
121
122.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Завершение операции
ввода-вывода
ПроцессорP2
P1
P2
Контроллер
Процессор
P1
Контроллер
P3
P2
P3
Операция вводавывода
P1
P2
P2
P3
P3
P2
P1
Синхронизация (событие,
Мьютекс)
P1
P1
Операция вводавывода
Операционные системы
122
123.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Простейший вариант асинхронного вывода буферизованный вывод данных на внешнее
устройство, при котором данные из приложения
передаются в специальный системный буфер —
область памяти, отведенную для временного
размещения передаваемых данных.
Логически операция вывода для приложения
считается выполненной сразу же, и процесс может не
ожидать окончания действительного процесса
передачи данных на устройство.
Операционные системы
123
124.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Реальный вывод данных из системного буфера
выполняет супервизор ввода-вывода.
Выделение буфера из системной области памяти
выполняет специальный системный процесс по
указанию супервизора ввода-вывода.
Операционные системы
124
125.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Для выполнения асинхронного ввода данных
необходимо выделить область памяти для временного
хранения считываемых с устройства данных и
связывать
выделенный
буфер
с
процессом,
заказавшим операцию.
Сам запрос на операцию ввода-вывода разбивается
на две части (на два запроса).
Операционные системы
125
126.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
В первом запросе указывается операция на
считывание данных, подобно тому как это делается
при синхронном вводе-выводе, однако тип (код)
запроса используется другой, и в запросе указывается
еще по крайней мере один дополнительный параметр
— имя (код) системного объекта, которое получает
процесс в ответ на запрос и которое идентифицирует
выделенный буфер.
Операционные системы
126
127.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Получив имя буфера, процесс продолжает свою
работу.
В результате запроса на асинхронный ввод данных
процесс остается в состоянии выполнения или в
состоянии готовности к выполнению.
Через некоторое время, выполнив необходимый код,
процесс выдает второй запрос на завершение
операции ввода-вывода.
Операционные системы
127
128.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
В этом втором запросе (имеющем другой код или
имя), процесс указывает имя системного объекта
(буфера для асинхронного ввода данных) и в случае
успешного завершения операции считывания данных
тут же получает их из системного буфера.
Если же данные еще не успели до конца переписаться
с внешнего устройства в системный буфер,
супервизор ввода-вывода переводит процесс в
состояние ожидания завершения операции вводавывода.
Операционные системы
128
129.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
В этом втором запросе (имеющем другой код или
имя), процесс указывает имя системного объекта
(буфера для асинхронного ввода данных) и в случае
успешного завершения операции считывания данных
тут же получает их из системного буфера.
Если же данные еще не успели до конца переписаться
с внешнего устройства в системный буфер,
супервизор ввода-вывода переводит процесс в
состояние ожидания завершения операции вводавывода.
Операционные системы
129
130.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Операция
ввода-вывода
может
быть
инициирована
не
только
пользовательским
процессом - в этом случае операция выполняется в
рамках системного вызова, но и кодом ядра,
например кодом подсистемы виртуальной памяти для
считывания отсутствующей страницы.
Системные
вызовы
ввода-вывода
чаще
оформляются как синхронные процедуры в связи с
тем, что такие операции длятся долго и
пользовательскому процессу или потоку все равно
придется ждать получения результатов потоков
операции для того, чтобы продолжить свою работу.
Операционные системы
130
131.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Внутренние вызовы операций ввода-вывода из
модулей ядра обычно выполняются в виде
асинхронных процедур, так как кодам ядра нужна
свобода в выборе дальнейшего поведения после
запроса ввода-вывода.
Операционные системы
131
132.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Асинхронный ввод-вывод характерен для
большинства мультипрограммных операционных
систем, особенно если операционная система
поддерживает
мультизадачность
с
помощью
механизма потоков выполнения.
Если асинхронный ввод-вывод в явном виде
отсутствует, его можно реализовать программно,
организовав для вывода данных отдельный поток
выполнения.
Операционные системы
132
133.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Аппаратуру ввода-вывода можно рассматривать как
совокупность аппаратных процессоров, способных
работать параллельно друг другу, а также
параллельно
центральному
процессору
(процессорам).
На
таких
«процессорах»
выполняются
называемые внешние процессы.
Операционные системы
так
133
134.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Пример: для печатающего устройства (внешнее
устройство вывода данных) внешний процесс может
представлять
собой
совокупность
операций,
обеспечивающих перевод печатающей головки,
продвижение бумаги на одну позицию, смену цвета
чернил или печать каких-то символов.
Операционные системы
134
135.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Внешние процессы, используя аппаратуру вводавывода, взаимодействуют как между собой, так и с
обычными
«программными»
процессами,
выполняющимися на центральном процессоре.
Скорости
выполнения
внешних
процессов
существенно (порой на порядок или больше)
отличаются от скорости выполнения обычных
(внутренних) процессов.
Операционные системы
135
136.
4.2.8. Поддержка синхронных и асинхронныхопераций ввода-вывода
Для своей нормальной работы внешние и внутренние
процессы должны синхронизироваться.
Для
сглаживания
эффекта
значительного
несоответствия скоростей между внутренними и
внешними процессами используют буферизацию.
Операционные системы
136
137.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
При большом разнообразии устройств вводавывода, обладающих существенно различными
характеристиками,
иерархическая
структура
подсистемы ввода-вывода позволяет соблюсти баланс
между двумя противоречивыми требованиями.
С одной стороны, необходимо учесть все
особенности каждого устройства, а с другой стороны,
обеспечить единое логическое представление и
унифицированный интерфейс для устройств всех
типов.
Операционные системы
137
138.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
При этом нижние слои подсистемы вводавывода
должны
включать
индивидуальные
драйверы, написанные для конкретных физических
устройств, а верхние слои должны обобщать
процедуры
управления
этими
устройствами,
предоставляя общий интерфейс если не для всех
устройств, то по крайней мере для группы устройств,
обладающих некоторыми общими характеристиками,
например,
для
принтеров
определенного
производителя или для всех матричных принтеров и
т. п.
Операционные системы
138
139. 4.3. Многослойная модель подсистемы ввода-вывода
Дисковыеустройства
Межмодульный обмен, связывание,
буферизация, синхронизация, к другим
подсистемам
Системные
FAT
Высокоуровневые
графические драйверы
Низкоуровневые
графические
драйверы
Дисковый кэш
Драйвер HD
устройства
Байт-ориентированный интерфейс
Диспетчер окон
VFS
NTFS
Сетевые
вызовы
Блок-ориентированный интерфейс
UFS
Графические устройства
Драйвер FD
Диспетчер прерываний,
функции доступа к
HTTP
TCP/UDP
FTP
SMB
SPX
IP
IPX
NetBEUI
Ethernet
FR
ATM
аппаратуре
Контроллеры
устройств вводавывода
Диски
Операционные системы
139
140.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Как
видно
из
рисунка,
программное
обеспечение подсистемы ввода-вывода делится не
только на горизонтальные слои, но и на
вертикальные. В данном случае в качестве примера
приведены
три
вертикальные
подсистемы
управления дисками, графическими устройствами и
сетевыми адаптерами. Естественно таких подсистем
может быть больше.
Операционные системы
140
141.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
В каждой вертикальной подсистеме несколько
слоев модулей. Нижний слой образует аппаратные
драйверы, управляющие аппаратурой внешних
устройств, осуществляя обмен байтами и блоками
байтов.
Функции вышележащих слоев в значительной
степени зависят от типа вертикальной подсистемы.
Операционные системы
141
142.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Наряду с модулями, отражающими специфику
внешних устройств, в подсистеме ввода-вывода
имеются модули универсального назначения.
Эти модули организуют согласованную работу
всех остальных компонентов подсистемы вводавывода,
взаимодействие
с
пользовательскими
процессами и другими подсистемами ОС.
Эти организующие функции распределены по
всем уровням, образуя оболочку, называемую
менеджером ввода-вывода.
Операционные системы
142
143.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Верхний слой менеджера составляют системные
вызовы ввода-вывода, которые принимают от
пользовательских процессов запросы на ввод-вывод и
переадресуют их отвечающим за определенный класс
устройств модулям и драйверам, а также возвращают
процессам результаты операций ввода-вывода. Этот
слой поддерживает пользовательский интерфейс
ввода-вывода.
Операционные системы
143
144.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Нижний
слой
менеджера
реализует
непосредственное взаимодействие с контроллерами
внешних устройств, экранируя драйверы от
особенностей аппаратной платформы компьютера шин ввода-вывода, системы прерываний и т. п.
Этот слой принимает от драйверов запросы на
обмен данными с регистрами контроллеров в
некоторой обобщенной форме с использованием
независимых от шины ввода-вывода адресации и
формата, а затем преобразует эти запросы в
зависящий от аппаратной платформы формат.
Операционные системы
144
145.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Диспетчер прерываний может входить в состав
менеджера
ввода-вывода
или
представлять
отдельный модуль ядра.
В последнем случае менеджер ввода-вывода
выполняет для диспетчера прерываний первичную
обработку
запросов
прерываний,
передавая
диспетчеру обобщенные сведения об источнике
запроса.
Важной функцией менеджера ввода-вывода
является создание некоторой среды для остальных
компонентов системы, которая бы облегчала их
взаимодействие друг с другом.
Операционные системы
145
146.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Эта задача решается созданием стандартного
внутреннего интерфейса взаимодействия модулей
ввода-вывода.
Это облегчает включение новых драйверов и
файловых систем в состав ОС. Разработчики
драйверов и других программных компонентов
освобождаются от написания общих процедур.
Все эти функции берет на себя менеджер вводавывода.
Операционные системы
146
147.
4.3. Многослойная модель подсистемы ввода/вывода4.3.1. Общая схема
Еще одной функцией менеджера ввода-вывода
является организация взаимодействия модулей
ввода-вывода с модулями других подсистем ОС,
таких как подсистема управления процессами,
виртуальной памятью и другими.
Операционные системы
147
148.
4.3.2. ДрайверыПервоначально под драйвером понимался программный модуль,
который:
• входит в состав ядра ОС, работая в привилегированном режиме;
• непосредственно управляет внешним устройством, взаимодействуя
с его контроллером с помощью команд ввода-вывода компьютера;
• обрабатывает прерывания от контроллера устройства;
• предоставляет прикладному программисту удобный логический
интерфейс работы с устройством, экранируя от него низкоуровневые
детали управления устройством и организации его данных;
• взаимодействует с другими модулями ядра ОС с помощью строго
оговоренного интерфейса, описывающего формат передаваемых
данных, структуру буферов, способы включения драйвера в состав
ОС, способы вызова драйвера, набор общих процедур подсистемы
ввода-вывода, которыми драйвер может пользоваться и т. п.
Операционные системы
148
149.
4.3.2. ДрайверыСогласно этому определению драйвер вместе с
контроллером устройства и прикладной программой
воплощали
идею
многослойного
подхода
к
организации программного обеспечения.
Контроллер
представлял
низкий
слой
управления устройством, выполняющий операции в
терминах блоков и агрегатов устройства (например,
передвижение головки дисковода, побитную передачу
байта по двухпроводному кабелю).
Драйвер выполнял более сложные операции,
преобразуя данные, адресуемые в терминах номеров
цилиндров, головок и секторов диска, в линейную
последовательность блоков.
Операционные системы
149
150.
4.3.2. ДрайверыПо мере развития операционных систем и
усложнения структуры подсистемы ввода-вывода,
наряду с традиционными драйверами в ОС
появились
так
называемые
высокоуровневые
драйверы, которые располагаются в общей модели
подсистемы ввода-вывода над традиционными
драйверами.
Традиционные драйверы, которые стали
называть аппаратными, низкоуровневыми, или
драйверами
устройств,
освобождаются
от
высокоуровневых функций и занимаются только
низкоуровневыми операциями.
Операционные системы
150
151.
4.3.2. ДрайверыЭти низкоуровневые операции составляют
фундамент, на котором можно построить тот или
иной набор операций в драйверах более высоких
уровней.
При каком подходе повышается гибкость и
расширяемость
функции
по
управлению
устройством.
Если
различным
приложениям
необходимо работать с различными логическими
модулями одного и того же физического устройства,
то для этого в системе достаточно установить
несколько драйверов на одном уровне, работающих
над одним аппаратным драйвером.
Операционные системы
151
152.
4.3.2. ДрайверыНесколько драйверов, управляющих одним
устройством, но на разных уровнях, можно
рассматривать как один многоуровневый драйвер.
Высокоуровневые драйверы оформляются по
тем же правилам и придерживаются тех же
внутренних интерфейсов, что и аппаратные
драйверы. Как правило, высокоуровневые драйверы
не вызываются по прерываниям, так как
взаимодействуют с устройством через посредничество
аппаратных драйверов.
В модулях подсистемы ввода-вывода кроме
драйверов могут присутствовать и другие модули,
например дисковый кэш.
Операционные системы
152
153.
4.3.2. ДрайверыДругим примером модуля, который чаще всего
не оформляется в виде драйвера, является диспетчер
окон графического интерфейса.
Иногда этот модуль вообще выносится из ядра
ОС и реализуется в виде пользовательского
интерфейса (Windows NT 3.5 и 3.51). Этот
микроядерный
подход
заметно
замедляет
графические операции, поэтому в Windows 4.0
диспетчер окон и высокоуровневые графические
драйверы, а также графическая библиотека GDI
были перенесены в пространство ядра.
Операционные системы
153
154.
4.3.2. ДрайверыАппаратные драйверы после запуска операции
ввода-вывода должны своевременно реагировать на
завершение контроллером заданного действия путем
взаимодействия с системой прерывания.
Драйверы более высоких уровней вызываются
не по прерываниям, а по инициативе аппаратных
драйверов или драйверов вышележащего уровня.
Не все процедуры аппаратного драйвера нужно
вызывать по прерываниям, поэтому драйвер обычно
имеет определенную структуру, в которой выделяется
секция обработки прерываний (Interrupt Service
Routine,
ISR),
которая
и
вызывается
от
соответствующего
устройства
диспетчером
прерываний.
Операционные системы
154
155.
4.3.2. ДрайверыВ унификацию драйверов большой вклад
внесла ОС UNIX, в которой все драйверы были
разделены на два класса: блок-ориентированные
(Block-oriented) и байт-ориентированные (Characteroriented) драйверы.
Блок-ориентированные драйверы управляют
устройствами прямого доступа, которые хранят
информацию в блоках фиксированного размера,
каждый из которых имеет свой адрес.
Устройства, с которыми работают байториентированные драйверы, не адресуют данные и не
позволяют производить операции поиска данных, они
генерируют или потребляют последовательность
байта (терминалы, принтеры, сетевые адаптеры и т.
Операционные системы
155
п.).
156.
4.3.2. ДрайверыОднако не все устройства, управляемые
подсистемой ввода-вывода можно разделить на блоки байт-ориентированные.
Для таких устройств (например, таймера)
нужен специфический драйвер.
ОС UNIX сделала очень важный шаг по
унификации
операций
и
структуризации
программного обеспечения ввода-вывода.
В ОС UNIX все устройства рассматриваются
как виртуальные (специальные) файлы, что дает
возможность использовать общий набор базовых
операций ввода-вывода для любых устройств
независимо от их специфики.
Операционные системы
156
157.
4.3.2. ДрайверыПодобная идея реализована позже в MS DOS, где
последовательные устройства - монитор, принтер и
клавиатура считаются файлами со специальными
именами: con, prn.
Операционные системы
157
158.
ДрайверыОперационные системы
158
159.
4.4. Файловая система4.4.1. Основные понятия. Цели и задачи файловой системы
Причины создания файловых систем:
1. Необходимость длительного (иногда вечного) и надежного
хранения больших объемов информации.
2. Обеспечение возможности совместного использования
информации различными приложениями. Эффективное
разделение, защита и восстановление данных.
Решение этих проблем заключается в хранении информации
в файлах.
Файл – это поименованная совокупность данных,
хранящаяся на каком-либо носителе информации.
Операционные системы
159
160.
4.4. Файловая система4.4.1. Основные понятия. Цели и задачи файловой системы
При рассмотрении файлов используются следующие понятия:
1. Поле (field) – основной элемент данных, содержит
единственное значение, имеет тип и длину, может быть
фиксированной и переменной длины. Идентифицируется
именем.
2. Запись (record) – набор связанных полей, которые могут
обрабатываться как единое целое. Могут быть
фиксированной и переменной длины
3. Файл (file) – совокупность однородных записей. Обращение к
файлу производится по имени.
4. База данных (database) – набор связанных данных,
представленных совокупностью файлов
Операционные системы
160
161.
Файловая система – это часть операционнойсистемы, включающая:
совокупность всех файлов на различных носителях
информации (магнитные диски, магнитные ленты, CDROM и т. п.);
наборы структур данных, используемых для
управления файлами (каталоги и дескрипторы файлов,
таблицы распределения свободного и занятого
пространства носителей информации);
комплекс
системных
программных
средств,
реализующих различные операции над файлами
(создание, чтение, запись, уничтожение, изменение
свойств и др.).
Операционные системы
161
162. Задачи файловой системы
соответствие требованиям управления данными и требованиям со стороныпользователей, включающим возможности хранения данных и выполнения
операций с ними;
гарантирование корректности данных, содержащихся в файле;
оптимизация производительности, как с точки зрения системы (пропускная
способность), так и с точки зрения пользователя (время отклика);
поддержка ввода-вывода для различных типов устройств хранения
информации;
минимизация или полное исключение возможных потерь или повреждений
данных;
защита файлов от несанкционированного доступа;
обеспечение поддержки совместного использования файлов несколькими
пользователями (в том числе средства блокировки файла и его частей,
исключение тупиков, согласование копий и т. п.);
обеспечение стандартного набора подпрограмм интерфейса ввода-вывода.
Операционные системы
162
163. Требования к файловой системе со стороны пользователя диалоговой системы общего назначения
1. Создание, удаление, чтение и изменения файлов.2. Контролируемый доступ к файлам других
пользователей.
3. Управление доступом к своим файлам.
4. Реструктурирование файлов в соответствии с
решаемой задачей.
5. Перемещение данных между файлами.
6. Резервирование и восстановление файлов в случае
повреждения.
7. Доступ к файлам по символическим именам.
Операционные системы
163
164. 4.4.2. Архитектура файловой системы
Файловаясистема
позволяет
программам
обходиться набором достаточно простых операций для
выполнения действий над некоторым абстрактным
объектом, представляющим файл.
При этом программистам не нужно иметь дело с
деталями действительного расположения данных на
диске, буферизацией данных и другими низкоуровневыми
проблемами передачи данных с запоминающего
устройства. Все эти функции файловая система берет на
себя.
Файловая система распределяет дисковую память,
поддерживает именование файлов, отображает имена
файлов в соответствующие адреса во внешней памяти,
обеспечивает доступ к данным, поддерживает разделение,
защиту, восстановление данных.
Операционные системы
164
165. 4.4.2. Архитектура файловой системы
Таким образом, файловая система играет рольпромежуточного слоя, экранизирующего все сложности
физической организации долговременного хранилища
данных и создающего для программ более простую
логическую модель этого хранилища, а затем предоставляя
им набор удобных в использовании команд для
манипулирования файлами.
Операционные системы
165
166. 4.4.2. Архитектура файловой системы
Пользовательскаяпрограмма
Смешанный
файл
Последова
- тельный
Индекснопоследоватеный
Индексированный
Прямого
доступа
Логический ввод - вывод
Методы доступа
Доступ к записям
Диспетчер (супервизор) базового ввода - вывода
Выбор устройства, планирование распределения внешней памяти
Базовая файловая система (уровень
физического ввода-вывода)
Буферизация, обмен
блоками
Д Р А Й В Е Р Ы
Операционные системы
Инициализация, выполнение и завершение операции
166
167. 4.4.2. Архитектура файловой системы
Нанижнем
уровне
драйверы
устройств
непосредственно
связаны
с
периферийными
устройствами или их контроллерами либо каналами.
Драйвер устройства отвечает за начальные операции
ввода-вывода устройства и за обработку завершения
запроса ввода-вывода.
При файловых операциях контролируемыми
устройствами являются дисководы и стримеры
(накопители на МЛ).
Драйверы устройств рассматриваются как часть
операционной системы.
Следующий уровень называется базовой файловой
системой, или уровнем физического ввода-вывода. Это
первичный интерфейс с окружением (периферией)
компьютерной системы.
Операционные системы
167
168. 4.4.2. Архитектура файловой системы
Он оперирует блоками данных, которымиобменивается с дисками, магнитной лентой и другими
устройствами. Поэтому он связан с размещением и
буферизацией блоков в оперативной памяти. На этом
уровне не выполняется работа с содержимым блоков
данных или структурой файлов. Базовая файловая
система обычно рассматривается как часть операционной
системы. (В MS DOS эти функции выполняет BIOS, не
относящийся к ОС.)
Диспетчер базового ввода-вывода отвечает за начало
и завершение файлового ввода-вывода. На этом уровне
поддерживаются управляющие структуры, связанные с
устройством ввода-вывода, планированием и статусом
файлов.
Операционные системы
168
169. 4.4.2. Архитектура файловой системы
Диспетчер осуществляет выбор устройства, накотором будет выполняться операция файлового вводавывода, планирование обращения к устройству (дискам,
лентам),
назначение
буферов
ввода-вывода
и
распределение внешней памяти. Диспетчер базового
ввода-вывода является частью ОС.
Логический ввод-вывод предоставляет приложениям
и пользователям доступ к записям. Он обеспечивает
возможности общего назначения по вводу-выводу записей
и поддерживает информацию о файлах.
Операционные системы
169
170. 4.4.2. Архитектура файловой системы
Наиболее близкий к пользователю уровень ФСчасто называется методом доступа.
Он обеспечивает стандартный интерфейс между
приложениями и файловыми системами и устройствами,
содержащими данные.
Различные методы доступа отражают различные
структуры файлов и различные пути доступа и обработки
данных.
Операционные системы
170
171. 4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование и атрибуты файловОбычные файлы (регулярные файлы) – содержат информацию,
занесенную пользователем, системной или прикладной программой.
Подразделяются на ASCII файлы, состоящие из текстовых строк, и
двоичные файлы, имеющие определенную внутреннюю структуру,
известную приложению, использующему данный файл.
Каталоги – системные файлы, поддерживающие структуру файловой
системы. Содержат системную справочную информацию о наборе
файлов, сгруппированных пользователем по какому-либо признаку. Во
многих ОС в каталог могут другие файлы, в том числе другие каталоги.
Специальные файлы – фиктивные файлы, ассоциированные с
устройствами ввода-вывода и используемые для унификации доступа к
последовательным устройствам ввода-вывода.
Именованные конвейеры (каналы) – циклические буферы,
позволяющие выходной файл одной программы соединить со входным
файлом другой программы.
Операционные системы
171
172. 4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование и атрибуты файловОтображаемые файлы – обычные файлы, отображаемые на адресное
пространство процесса по указанному виртуальному адресу.
Файлы относятся к абстрактному механизму. Они
предоставляют
способ
сохранять
информацию
на
запоминающем устройстве и считывать ее позднее снова.
При этом от пользователя должны скрываться такие
детали, как способ и место хранения информации, а также
детали работы устройства.
Наиболее важной характеристикой любого механизма
абстракции является именование управляемых объектов.
Правила именования файлов зависят от ОС, но в основном,
все современные операционные системы поддерживают
использование в качестве имен файлов 8-символьные
текстовые строки.
Операционные системы
172
173. 4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование и атрибуты файловЧасто в именах разрешается использование цифр и
специальных символов. В некоторых файловых системах
различаются прописные и строчные символы, тогда как в
других, например в MS DOS, нет.
Во многих ОС имя файла состоит из двух частей,
разделенных точкой. Часть имени после точки называется
расширением файла и обычно означает его тип. Так, в MS
DOS имя файла может содержать от 1 до 8 символов, а
расширение от 0 (отсутствует) до 3.
В некоторых ОС, например Windows, расширение
указывает на программу, создавшую файл.
Другие ОС, например UNIX, не принуждают
пользователя строго придерживаться расширений.
Операционные системы
173
174. 4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование и атрибуты файловВ иерархически организованных файловых системах
обычно используются три типа имен файлов: простые,
составные и относительные.
Простое (короткое) символьное имя идентифицирует
файл в пределах одного каталога. Несколько файлов могут
иметь одно и то же простое имя, если они принадлежат разным
каталогам.
Составное (полное) символьное имя представляет собой
цепочку, содержащую имя диска и имена всех каталогов, через
которые проходит путь от корневого каталога до данного
файла.
Операционные системы
174
175. 4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование и атрибуты файловОтносительное имя файла определяется через текущий
каталог, т. е. каталог, в котором в данный момент времени
работает пользователь. Таким образом, относительных имен у
файла может быть достаточно много, и все они являются
частью полного имени.
Понятие файла включает не только хранимые им
данные и имя, но и информацию, описывающую свойства
файла. Эта информация составляет атрибуты (дескриптор)
файла. Список атрибутов может быть различным в различных
ОС. Пример возможных атрибутов приведен ниже.
Пользователь может получить доступ к атрибутам,
используя средства, предоставляемые для этой цели файловой
системой. Обычно разрешается читать значение любых
атрибутов, а изменять только некоторые.
Операционные системы
175
176. 4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование и атрибуты файловЗначения атрибутов файлов могут содержаться в
каталогах, как это сделано, например, в MS DOS.
Другим вариантом является размещение атрибутов в
специальных таблицах, в этом случае в каталогах содержатся
ссылки на эти таблицы.
Операционные системы
176
177.
АтрибутЗначение
Тип файла
Обычный, каталог, специальный и т. д.
Владелец файла
Текущий владелец
Создатель файла
Идентификатор пользователя, создавшего файл
Пароль
Пароль для получения доступа к файлу
Время
Создания, последнего доступа, последнего изменения
Текущий размер файла
Количество байтов в записи
Максимальный размер
Количество байтов, до которого можно увеличивать размер файла
Флаг «только чтение»
0 – чтение-запись, 1 – только чтение
Флаг «скрытый»
0 – нормальный, 1 – не показывать в перечне файлов каталога
Флаг «системный»
0 – нормальный, 1 – системный
Флаг «архивный»
0 – заархивирован, 1- требуется архивация
Флаг ASCII/двоичный
0 – ASCII, 1 – двоичный
Флаг произвольного доступа 0 – только последовательный доступ, 1 – произвольный доступ
Флаг «временный»
0 – нормальный, 1 – удаление после окончания работы процесса
Позиция ключа
Смещение до ключа в записи
Длина ключа
Количество байтов в поле ключа
Операционные системы
177
178.
4.4.3.2. Логическая организация файловВ общем случае данные, содержащиеся в файле, имеют
некоторую логическую структуру. Эта структура
(организация) файла является базой при разработке
программы, предназначенной для обработки этих
данных. Поддержание структуры данных может быть
целиком возложено на приложение, либо в той или иной
степени эту работу может взять на себя файловая
Поле
система.
Операционные системы
178
179.
4.4.3.2. Логическая организация файловМодель 1. Неструктурированная последовательность байт (ОС UNIX).
Все действия, связанные со структуризацией и
интерпретацией содержимого файла целиком относятся к
ведению приложения, файл представляется файловой системе
неструктурированной
последовательностью
данных.
Приложение формирует запросы к файловой системе на
Поле
ввод/вывод,
используя общие для всех приложений системные
средства, например, указывая смещение от начала файла и
количество байт, которые необходимо считать или записать.
Поступивший
к
приложению
поток
байт
интерпретируется в соответствии с заложенной в программе
логикой. Интерпретация данных никак не связана с
действительным способом их хранения в файловой системе.
Операционные системы
179
180.
4.4.3.2. Логическая организация файловМодель 1. Неструктурированная последовательность байт (ОС UNIX).
Неструктурированная модель файла позволяет легко
организовать
разделение
файла
между
несколькими
приложениями, поскольку разные приложения могут посвоему структурировать и интерпретировать данные,
содержащиеся в файле.
Поле
Операционные системы
180
181.
4.4.3.2. Логическая организация файловМодель 2. Структурированный файл : смешанный, последовательный,
индексно-последовательный, индексированный, прямого доступа.
В этом случае поддержание структуры файла поручается
файловой системе. Файловая система видит файл как
упорядоченную последовательность логических записей.
ФС предоставляет приложению доступ к записи, а вся
Поле
дальнейшая обработка данных, содержащихся в этой
записи, выполняется приложением.
Операционные системы
181
182.
4.4.3.2. Логическая организация файловСмешанный файл
Поле 1
Поле 1
Поле 1
Поле 2
Поле 3
Поле 2
Поле 3
Поле 2
Каждое поле описывает само
себя (имя, длина, значение).
Длина указывается явно либо
посредством разделителя
Доступ – полный перебор всех
записей файла.
Достоинства: рациональное
использование дискового
пространства, хорошо подходят для полного перебора
Данные накапливаются в порядке
поступления,
когда
запись
состоит из одного пакета данных.
Записи могут иметь различные
или
одинаковые
поля,
расположенные
в
различном
порядке.
Смешанные файлы используются
в том случае, когда данные
накапливаются и сохраняются
перед обработкой, или если данные
неудобны для организации.
Недостатки: сложность вставки и обновления записей
Операционные системы
182
183.
4.4.3.2. Логическая организация файловПоследовательный файл Для записей используется фиксированный
формат. Записи имеют одну длину, одни и те же
Поле 1
Поле 2
Поле 3
поля и хранят только значения полей. Одно
Поле 1
Поле 2
Поле 3
Поле 1
Поле 2
Поле 3
поле
–
ключевое,
оно
однозначно
идентифицирует запись. Атрибуты файловой
структуры: имя и длина каждого поля.
Достоинства: оптимальный вариант для пакетных
приложений, записи хранятся в ключевой
последовательности (в алфавитном порядке для
текстового ключа и в числовом – для числового),
возможно хранение на диске и МЛ. Возможна
организация в виде списка, что упрощает вставку
новых записей.
Недостатки: малоэффективен для диалоговых
приложений
Операционные системы
183
184.
4.4.3.2. Логическая организация файловПоследовательный файл
Обычно последовательный файл сохраняется с
последовательной организацией записей внутри блока, т. е.
физическая организация файла в точности соответствует
логической.
Новые записи размещаются в отдельном смешанном
файле, называемом журнальным файлом или файлом
транзакции.
Периодически в пакетном режиме выполняется
слияние основного и журнального файлов в новый файл с
корректной последовательностью ключей.
Альтернативной
организацией
может
быть
физическая организация в виде списка с использованием
указателей.
Операционные системы
184
185.
4.4.3.2. Логическая организация файловПоследовательный файл
В каждом физическом блоке сохраняется одна или
несколько записей, и каждый блок содержит указатель на
следующий блок.
Для вставки новых записей достаточно изменить
указатели, и нет необходимости в том, чтобы новые записи
занимали определенную физическую позицию.
Это удобство достигается за счет определенных
накладных расходов и дополнительной работы.
Если в последовательном файле записи имеют одну и
ту же длину, то можно вычислить адрес требуемой записи по
ее номеру, номеру текущей записи и длине записи.
Если записи имеют переменную длину, такой подход
невозможен.
Операционные системы
185
186.
Индексно-последовательный файлФайл состоит из трех частей (файлов): главный файл,
содержащий записи с последовательно идущими ключами,
индексный файл, содержащий индексное поле и указатель в
главный с ключами, файл переполнения.
Операционные системы
186
187.
Индексно-последовательный файлПоля записи
Индекс
1
2
3
…
…
…
…
.
1000
0
2000
3000
Указатель
Ключ
Адрес 1
0001
Адрес
2
Адрес 3
1000
1
2
Указатель на файл
переполнения
3
1001
Индексный файл
Главный файл
Достоинства: сокращение времени
доступа при увеличении уровней
индексации.
Недостатки: 1. Эффективная работа с
файлом ограничена работой с
ключевым полем. 2. Дополнительные
затраты времени на периодическое
слияние с файлом переполнения.
Файл переполнения
Операционные системы
187
188.
Индексно-последовательный файлДля поиска нужной записи по ее ключу сначала
выполняется поиск в индексном файле. После того как в нем
найдено наибольшее значение ключа, которое не превышает
искомое, продолжается поиск в главном файле.
При использовании многоуровневой индексации нижний
уровень
индексного
файла
рассматривается
как
последовательный файл, для которого создается индексный
файл верхнего уровня.
Дополнения к файлу обрабатываются следующим
образом. В каждой записи главного файла содержится
дополнительное поле, невидимое для приложения и
являющееся указателем на файл переполнения. Если в файле
производится вставка новой записи, она добавляется в файл
переполнения.
Операционные системы
188
189.
Индексно-последовательный файлЗапись
в
главном
файле,
непосредственно
предшествующая
новой
записи
в
логической
последовательности, обновляется и указывает на новую запись
в файле переполнения.
Время от времени выполняется слияние индекснопоследовательного файла с файлом переполнения.
Операционные системы
189
190.
Индексированный файлДля достижения гибкости необходимо использование
большого количества индексов, по одному для каждого типа
поля, которое может быть объектом поиска. В обобщенном
индексированном файле доступ к записям осуществляется
только по их индексам.
В результате в размещении записей нет никаких
ограничений до тех пор, пока указатель, по крайней мере, в
одном индексе ссылается на эту запись. Кроме того, в таком
файле легко реализуются записи переменной длины.
Индексированные
файлы
используются
теми
приложениями, в которых время доступа к информации
является критической характеристикой и редко требуется
обработка всех записей в файле.
Операционные системы
190
191.
Полныйиндекс 1
Полный
индекс 2
Частичный
индекс
Индексированный файл
Типы индексов:
1. Полный индекс – содержит по одному элементу
для каждой записи главного файла.
2. Частный индекс содержит элементы для записей,
в которых имеется интересующее пользователя
поле.
3. При добавлении новой записи в главный файл
необходимо обновлять все индексные файлы.
4. Индексы организуются в виде последовательных
файлов.
Достоинство: быстрый доступ. Недостатки:
Основной файл
(записи переменной
длины)
большая избыточность данных, неэффективность
обработки всех записей файла.
Файл прямого доступа
1. Обеспечивает прямой доступ к любой записи
фиксированной длины по известному адресу (ключу)
при хранении файлов на диске.
2. Достоинства: быстрый доступ к любой записи,
простота вставки, удаления и модификации записей.
3. Недостатки: записи фиксированной структуры и
длины.
Операционные системы
191
192.
4.4.4. Каталоговые системыКорневой каталог
Корневой каталог
User 1
User 2
Файлы
Корневой каталог
User 1
User 3
User 1
User 2
СЕТЬ
User 3
ДЕРЕВО
Один файл – одно
полное имя
Один файл – много полных имен
Файловый каталог является связующим
звеном между системой управления
файлами и набором файлов
Операционные системы
192
193.
4.4.4. Каталоговые системыПростейшая форма системы каталогов состоит в том, что
имеется один каталог, в котором содержатся все файлы.
Каталог содержит информацию о файлах, включая
атрибуты, местоположение, принадлежность. Пользователи
обращаются к файлам по символьным именам.
Современные
каталоговые
системы
имеют
иерархическую структуру. Граф, описывающий иерархию
каталогов, может быть деревом или сетью. Каталоги
образуют дерево, если файлу разрешено входить только в
один каталог и сеть, если файл может входить в несколько
каталогов.
В MS DOS и Windows каталоги образуют древовидную
структуру, а в UNIX - сетевую.
Операционные системы
193
194.
4.4.4. Каталоговые системыВ общем случае вычислительная система может иметь
несколько дисковых устройств, даже в ПК всегда имеется
несколько дисков: гибкий, винчестер, CD-ROM (DVD). Как
организовать хранение файлов в этом случае?
Первый способ. На каждом из устройств размещается
автономная файловая система, т. е. файлы, находящиеся на
этом устройстве, описываются деревом каталогов, никак не
связанным с деревьями каталогов на других устройствах. В
таком случае для однозначной идентификации файла
пользователь вместе с составным символьным именем
файла должен указывать идентификатор логического
устройства. Примером такого автономного существования
может служить MS DOS, Windows 95/98/Me.
Операционные системы
194
195.
4.4.4. Каталоговые системыВторой способ. Такая организация хранения файлов,
при которой пользователю предоставляется возможность
объединить файловые системы, находящиеся на разных
устройствах, в единую файловую систему, описываемую
единым деревом каталогов. Такая операция называется
монтированием.
Операционные системы
195
196.
Монтирование/ (root)
dev
tt
user
r
home
/ (root)
bin
dev
r
man
user
home
man
loc
loc
Файловая система 1
t
r
/ (root)
man1
f1
bin
man2
f2
Файловая система 2
Обычный файл
Каталог
man1
man2
f1
f2
Общая файловая система
после монтирования
Специальный
файл-устройство
Операционные системы
196
197.
4.4.4. Каталоговые системыВ ОС UNIX монтирование осуществляется
следующим образом. Среди всех имеющихся логических
дисковых
устройств
выделяется
одно,
называемое
системным. Пусть имеются две файловые системы,
расположенные на разных логических дисках, причем один
из дисков является системным.
Файловая система, расположенная на системном
диске, называется корневой. Для связи иерархий файлов в
корневой файловой системе выбирается некоторый
существующий каталог, в данном примере - каталог lос.
После выполнения монтирования выбранный каталог lос
становится корневым каталогом второй файловой системы.
Через этот каталог монтируемая файловая система
подсоединяется как поддерево к общему дереву.
Операционные системы
197
198. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковПринцип размещения файлов, каталогов и системной
информации на реальном устройстве описывается
физической организацией файловой системы. При этом ясно,
что разные файловые системы имеют разную физическую
организацию.
Основным устройством для хранения файлов
являются жесткие и гибкие магнитные диски.
Структура жесткого диска. Состоит из одной или
нескольких стеклянных или металлических пластин,
каждая из которых покрыта с одной стороны или двух
сторон магнитным материалом.
На каждой стороне каждой пластины размечены
тонкие концентрические кольца - дорожки (tracks), на
которых хранятся данные.
Операционные системы
198
199. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковНумерация дорожек начинается с 0 от внешнего края
к центру диска.
Когда
диск
вращается,
магнитные
головки,
имеющиеся над (под) каждой поверхностью диска,
считывают или записывают двоичные данные на магнитные
дорожки.
Головки могут позиционировать над каждой
дорожкой, если на одну поверхность диска в устройстве
имеется одна головка. Некоторые диски имеют по отдельной
головке на каждую дорожку, тогда позиционирования
головок не требуется, что повышает быстродействие диска.
Операционные системы
199
200. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковСовокупность дорожек одного радиуса на всех
поверхностях пластин пакета называется цилиндром (cylinder).
Каждая
дорожка
разбивается
на
фрагменты,
называемые секторами (sectors) или блоками (blocks), так что
все дорожки имеют равное число секторов, в которые можно
максимально записать одно и то же число байт. Сектор имеет
фиксированный для данной системы размер, выражающийся
степенью двойки (чаще всего 512 байт).
Сектор - наименьшая адресуемая единица обмена
данными диска с оперативной памятью. Для того чтобы
контроллер мог найти на диске нужный сектор, ему
необходимо задать все составляющие адреса сектора: номер
цилиндра, номер поверхности и номер сектора.
Операционные системы
200
201. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковОперационная система при работе с диском использует,
как правило, единицу дискового пространства, называемую
кластером (cluster) и содержащую несколько смежных
секторов в числе, кратном степени двойки.
Дорожки и секторы создаются в результате выполнения
процедуры физического (низкоуровнего) форматирования диска,
предшествующей использованию диска. Для определения
границ блоков на диск записывается идентификационная
информация.
Низкоуровневый формат диска не зависит от типа ОС,
которая этот диск будет использовать.
Операционные системы
201
202. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковРазметку диска под конкретный тип файловой системы
выполняют процедуры высокоуровнего, или логического
форматирования. При высокоуровневом форматировании
определяется размер кластера, записывается информация,
необходимая для работы файловой системы и загрузчик ОС небольшая
программа,
которая
начинает
процесс
инициализации операционной системы после включения
питания.
Прежде чем форматировать диск под определенную
файловую систему, он может быть разбит на разделы. Раздел это непрерывная часть физического диска, которую
операционная система предоставляет пользователю как
логическое устройство (логический диск или логический
раздел). На каждом разделе может создаваться только одна
файловая система.
Операционные системы
202
203. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковВ IBM-совместных ПК сектор 1 диска называется
главной загрузочной записью (MBR - Master Boot Record) и
используется для загрузки компьютера.
В конце MBR содержится таблица разделов. В ней
хранятся начальные и конечные адреса (номера блоков)
каждого раздела.
Один из разделов помечен в таблице как активный. При
загрузке компьютера BIOS считывает и исполняет MBRзапись, после чего загрузчик в MBR-записи определяет
активный раздел диска, считывает его первый блок
(загрузчик) и исполняет его.
Программа, находящаяся в загрузочном блоке,
загружает операционную систему, содержащуюся в этом
разделе.
Операционные системы
203
204. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковДля единообразия каждый дисковый раздел начинается
с загрузочного блока, даже если в нем не содержится
операционной системы. К тому же в этом разделе может быть в
дальнейшем установлена операционная система, поэтому
зарезервированный загрузочный блок оказывается полезным.
Таблица разделов располагается в MBR по смещению
Ox1BE и содержит четыре элемента. Структура записи
элемента таблицы разделов приведена ниже.
Операционные системы
204
205.
Структура элементатаблицы разделов
Адресация блоков
данных диска
1 способ: c – h - s
с – номер цилиндра,
h – номер головки,
s – номер сектора
2 способ: LBA (Logical
Block Addressing)
A = (c * H + h) * S + s – 1
H – число рабочих
поверхностей в цилиндре,
S – количество секторов на
дорожке
Системные идентификаторы: 06h
– FAT16, 07h – NTFS,
0Bh –
FAT32
Размер
в
байтах
N Назначение
п/п
1.
Флаг активности раздела (Boot Indicator)
1
2.
Номер головки начала раздела
1
3.
Номер сектора и цилиндра загрузочного сектора
раздела
2
4.
Системный идентификатор, показывающий на
принадлежность к ОС и ФС
1
5.
Freecell.exe
Номер
головки конца раздела
1
6.
Номер сектора и цилиндра последнего сектора
раздела
2
7.
Младшее и старшее двухбайтовые слова
относительного номера начального сектора
4
8.
Младшее и старшее двухбайтовые слова размера
раздела в секторах
4
9.
Сигнатура-признак MBR и загрузочных
секторов – 55AA h (только в конце MBR)
2
Операционные системы
205
206. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковКаждый элемент таблицы описывает один раздел,
причем двумя способами: через координаты C-H-S начального
и конечного секторов, а также через номер первого сектора в
спецификации LBA (Logical Block Addressing) и общее число
секторов в разделе. Последние два байта MBR имеют значение
55AAh, т. е. чередующиеся значения 0 и 1. Эта сигнатура
выбрана для того, чтобы проверить работоспособность всех
линий передачи данных. Значение 55AAh, присвоенное
последним двум байтам, имеется во всех загрузочных
секторах.
Разделы дисков могут быть двух типов: первичные
(primary) и расширенные (extended). Максимальное число
разделов равно четырем. Из них только один может быть
активным.
Операционные системы
206
207. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковЗагрузчику, расположенному в активном разделе,
передается управление при включении компьютера с
помощью внесистемного загрузчика. Согласно принятым
спецификациям, на одном жестком диске может быть только
один расширенный раздел, который может быть разделен на
логические диски.
Расширенный раздел содержит вторичную запись MBR,
в состав которой вместо таблицы разделов входит
аналогичная ей таблица логических дисков (logical Disks Table,
LDT). Эта таблица описывает размещение и характеристики
раздела, содержащего единственный логический диск, а также
может специфицировать следующую запись SMBR (Secondary
MBR).
Операционные системы
207
208.
Первичный разделMaster Boot Record
Расширенный раздел
Загрузочный сектор диска C:
Не использован
Карта дискового пространства
Данные
Secondary Master Boot Record
Логический диск D:
Адрес таблицы для диска E:
Не использован
Загрузочный сектор диска D:
Карта дискового пространства
Данные
Первая таблица
логического диска
Secondary Master Boot Record
Загрузочный сектор диска D:
Карта дискового пространства
Логический диск E:
0 – конец цепочки
Данные
Логический
диск E:
Не использован
Расширенный раздел
Главная таблица разделов
Логический
диск D:
Не использован
Первичный
раздел (диск C:)
Не использован
Не использован
Вторая таблица
логического диска
Разбиение диска на разделы
Операционные системы
208
209. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковВо всем остальном строение раздела диска меняется от
системы к системе. Часто файловая система содержит
некоторые элементы, как показано на рисунке ниже.
Один из таких элементов называется суперблоком и
содержит ключевые параметры файловой системы и
считывается в память при загрузке компьютера.
Следом располагается информация о свободных блоках
файловой системы.
За этими данными может следовать информация об iузлах, содержащих информацию о файлах.
Следом может размещаться корневой каталог, а затем
остальные файлы и каталоги.
На разных логических устройствах одного и того же
физического диска могут располагаться файловые системы
разного типа.
Операционные системы
209
210. 4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисковТаблица
разделов
Р А З Д Е Л Ы (первичные и расширенные)
С:
NSB
D:
A:
E:
MBR
З
С
Карта дискового
пространства
i-узлы
Системная область
Загрузочный Суперблок –
таблица
блок
параметров
Корневой
каталог
Каталоги и
файлы
Область
данных
NSB (Non –System Bootstrap) – внесистемный загрузчик
Операционные системы
210
211. 4.6.2. Физическая организация и адресация файла
Физическая организация определяет способ размещения файлов на диске иучет соответствия блоков диска файлам.
Критерии эффективности физической организации файла:
скорость доступа к данным;
объем адресной информации файла;
степень фрагментированности дискового пространства;
максимально возможный размер файла.
Возможные схемы размещения файлов:
- непрерывное размещение (непрерывные файлы);
- связный список блоков (кластеров) файла;
- связный список индексов блоков (кластеров) файла;
- перечень номеров блоков (кластеров) файлов;
- структуры, называемые I-узлами (index-node – индекс-узел).
Операционные системы
211
212.
Непрерывное размещение внаборе соседних кластеров
1
2
3
4
5
6
7
8
9
Связный список кластеров
Файл А
А)
Файл B
1
2
3
4
5
6
7
8
9
3
6
Б)
8
Первое слово каждого кластера указывает
Достоинства: высокая скорость доступа, на
следующий кластер. Расположение
минимальный объем адресной
файла задается номером его первого
информации, нет ограничений на размер
кластера.
файла.
Недостатки: нет возможностей для
изменения размера файла, высокая
степень возможной внешней
фрагментации
Область применения –
компакт-дики
Достоинства: минимальная адресная информация,
отсутствие внешней фрагментации, возможность
изменения размеров файла.
Недостатки: медленный доступ, сложность
доступа к произвольному блоку файла,
некратность блока файла степени двойки.
Операционные системы
212
213.
Перечень номеров кластеров,Указатели на следующие кластеры хранятся в
занимаемых файлом
отдельной таблице, загружаемой в ОП. Номер Этот перечень и есть адрес файла.
первого кластера хранится в записи каталога.
Связный список индексов
3
1
2
3
4
5
6
7
8
9
5
6
Область
индексов
В)
Файл
1, 3, 5, 6
Все достоинства варианта А), быстрый доступ к
произвольному кластеру файла, полное
заполнение кластера, кратное степени двойки
Недостаток: рост адресной информации с
увеличением емкости диска
1
2
3
4
5
6
7
8
9
Файл
2, 4, 5
Г)
Достоинства: высокая скорость
доступа к произвольному кластеру
благодаря прямой адресации,
отсутствие внешней фрагментации.
Недостаток: длина адреса зависит от
размера файла и может быть
значительной.
Операционные системы
213
214.
Связный список индексов - FATПримером такой таблицы индексов является FATтаблица (File Allocation Table), используемая в файловых
системах MS DOS и Windows (FAT 16 и FAT 32).
Файлу выделяется память на диске в виде связного
списка кластеров. Номер первого кластера запоминается в
записи каталога, где хранятся характеристики этого
файла. С каждым кластером диска связывается индекс.
Индексы располагаются в FAT-таблице в отдельной
области диска. Когда память свободна, все индексы равны
нулю. Если некоторый кластер N назначен файлу, то
индекс этого кластера либо становится равным номеру М
следующего кластера файла, либо принимает специальное
значение, являющееся признаком того, что кластер
является последним для файла.
Операционные системы
214
215.
Связный список индексов - FATВообще
индексы
могут
содержать
следующую
информацию о кластере диска (для FAT 32):
• не используется (Unused) - 0000.0000;
• используется файлом (Cluster in us by a file) - значение,
отличное от 000.000, FFFF.FFFF и FFFF.FFF7;
• плохой кластер (Bad cluster) - FFFF.FFF7;
• последний кластер файла (Last cluster in a file) FFFF.FFFF.
Операционные системы
215
216.
I- узел (index node)Содержит атрибуты файла и
адреса кластеров файла
Атрибуты файла
Адрес кластера 1
Адрес кластера 2
Адрес кластера 3
Достоинства: каждый конкретный I-узел
находится в памяти только при открытии
файла, что сокращает объем адресной
информации; объем адресной информации не
зависит от емкости диска, а лишь от числа
открытых файлов; высокая скорость доступа
к произвольному кластеру файла благодаря
прямой адресации.
Недостатки: фиксированного количества
адресов может оказаться недостаточным для
адресации файла, отсюда необходимость
сочетания прямой и косвенной адресации
(пример – ufs).
Адрес кластера указателей
Кластер,
содержащий
дополнительные
дисковые адреса
Операционные системы
216
217.
Файловая система ОС UNIX ufsАдресная
0
1
2
3
4
5
информация
файла
6
10 11
7
8
9
12 13 14
Непосредственная адресация
2048
записей
2048
записей
2048
записей
2048
записей
2048
записей
2048
записей
2048
записей
2048
записей
Простая косвенная адресация
Максимальный размер
файла 7,0403*10 13 байт
Объем адресной
информации – 0,05 % от
адресуемых данных
2048
записей
2048
записей
2048
записей
Двойная косвенная
адресация
Размер кластера 8 Кбайт
Тройная косвенная адресация
Операционные системы
217
218.
Файловая система ОС UNIX ufsДля хранения адреса файла выделено 15 полей,
каждое из которых состоит из 4 байт.
Если размер файлов меньше или равен 12
кластерам, то номера этих кластеров непосредственно
перечисляются в первых двенадцати полях адреса.
Если кластер имеет размер 8 Кбайт, то можно
адресовать файл размером до 8 Кбайт * 12 = 98304 байт.
Если размер кластера превышает 12 кластеров, то
следующее, 13-е поле содержит адрес кластера, в котором
могут быть расположены номера следующих кластеров и
размер файла может возрасти до
8192 * (12 + 2048) = 16.875.520 байт.
Следующий уровень адресации, обеспечиваемый 14м полем, позволяет адресовать до 8192 * (12 + 2048 + 20482)
- 3,43766*1020 байт.
Тройная косвенная адресация
Операционные системы
218
219.
Файловая система ОС UNIX ufsЕсли и этого недостаточно, используется следующее
15-е поле. В этом случае максимальный размер файла
может составить
8192 * (12 + 2048 + 20482 +20483) = 7,0403*1013 байт.
Метод перечисления адресов кластеров файла
задействован и в файловой системе NTFS, используемой в
Windows NT/2000/2003.
Для сокращения объема адресной информации в
NTFS адресуются не кластеры файла, а непрерывные
области, состоящие из смежных кластеров диска.
Каждая такая область называется экстентом (extent)
и описывается двумя числами: номером начального
кластера и количеством кластеров.
Тройная косвенная адресация
Операционные системы
219
220.
Физическая организация FATДля обеспечения доступа приложений к файлам
операционная система с файловой системой FAT использует
следующие структуры:
• загрузочные сектора главного и дополнительных разделов;
• загрузочные сектора логических дисков (разделов);
• корневой каталог;
• область данных;
• цилиндр для выполнения диагностических операций
чтения-записи.
На дискетах, в отличие от жесткого диска, нет
загрузочных секторов главного и дополнительных разделов и
диагностического цилиндра.
Эти структуры создаются программой Fdisk, которая
не применяется для дискет, так как они на разделы не
разбиваются.
Операционные системы
220
221.
Физическая организация FATЧтобы установить на один жесткий диск несколько
операционных систем, его надо разбить на разделы. В
загрузочном секторе главного раздела создается таблица
списка разделов.
Операционные системы
221
222.
Физическая организация FATЗагрузочный сектор главного раздела (называемый главной
загрузочной записью - Master Boot Record - MBR) является
первым сектором на жестком диске (цилиндр 0, головка 0,
сектор 1) и состоит из двух элементов:
• таблица главного раздела, содержащая список разделов
(максимум четыре) и расположение загрузочных секторов
соответствующих логических дисков (первая и последняя
головки, первый и последний цилиндры с соответствующими
значениями секторов, а также количество секторов);
• главный загрузочный код - небольшая программа, которая
выполняется системой BIOS. Основная функция этого кода передача управления в раздел, который обозначен как
активный (загрузочный).
Операционные системы
222
223.
Физическая организация FATЗагрузочный сектор раздела содержит:
• блок параметров диска, в котором содержится информация
о разделе (размер, количество секторов, размер кластера,
метка тома и др.);
• загрузочный код - программа, с которой начинается процесс
загрузки операционной системы (для MS DOS и Windows 9x файл Io.sys).
Загрузочные секторы логических дисков создаются
программой Format. Они похожи на загрузочные диски
разделов. Однако при загрузке выполняется код только того
сектора, который находится в активном разделе.
Операционные системы
223
224.
Физическая организация FATЛогический диск, отформатированный программой
FORMAT, состоит из следующих областей:
• загрузочный сектор;
• основная FAT-таблица, содержащая информацию о
размещении файлов и каталогов на диске;
• копия FAT-таблицы;
• корневой каталог - фиксированная область (16 Кбайт для
жесткого диска), позволяющая хранить 512 записей о файлах
и каталогах (каждая запись состоит из 32 байтов);
• область данных для размещения всех файлов и каталогов,
кроме корневого каталога.
Первые две записи FAT зарезервированы и содержат
информацию о самой FAT, все остальные указывают на
соответствующие кластеры диска.
Операционные системы
224
225.
Физическая организация FATРазмер FАТ-таблицы определяется количеством
кластеров. Разрядность индексного указателя FАТ-таблицы
должна быть такой, чтобы можно было задать максимальный
номер кластера диска определенного объема.
В соответствии с разрядностью дискового указателя
существует несколько разновидностей FAT: FAT12, FAT16,
FAT32 (соответственно 212, 216 и 232 кластеров). Тип
используемой FAT определяется программой Fdisk, хотя и
записываются они в процессе форматирования высокого
уровня программы Format.
На всех дискетах применяется FAT12, на жестких
дисках до 512 Мбайт - FAT16, на жестких дисках, имеющих
большую емкость при использовании Windows 95 OSR2 и
Windows98 -FAT32 (вообще размер кластера может быть от 1
до 128 секторов или от 512 байт до 64 Кбайт).
Операционные системы
225
226.
Физическая организация FATМаксимальный размер раздела FAT16 ограничен
объемом 4 Гбайт (216 = 65536 кластеров по 64 Кбайт).
Максимальный размер раздела FAT32 практически не
ограничен (232 кластеров по 32 Кбайт).
За копией FAT-таблицы следует корневой каталог база данных, содержащая информацию о записанных на
диске данных. Каждая запись в ней имеет длину 32 байта и
содержит всю информацию о файле, которой располагает
операционная система. Формат записи приведен ниже.
Информация о расположении файла, т. е. о
расположении оставшихся кластеров, содержится в FATтаблице. В процессе работы системы кластеры файла могут
оказаться не в смежных областях, а будут чередоваться с
кластерами других файлов. Однако эту цепочку кластеров
легко выделить, зная начальный кластер файлов.
Операционные системы
226
227.
Физическая организация FATИндексные указатели, связанные с
кластерами принимают значения:
Загрузочный сектор (512 байт)
кластер свободен (0000h); последний кластер
файла (fff8h – ffffh); кластер поврежден (fff7h);
резервный кластер (fff0h - fff6h), кластер
используется (любое другое значение)
0 1 2 3
FAT 1
Формат каталога
Длина поля
FAT 2 (копия)
Запись каталога (32 байт)
Root directory (512
записей)
0 1 2 3
Data
Описание
8 байт
Имя файла
3 байт
Расширение файла
1 байт
Атрибуты файла
1 байт
Зарезервировано
3 байт
Время создания
2 байт
Дата создания
2 байт
Дата последнего доступа
2 байт
Зарезервировано
2 байт
Время последней модификации
2 байт
Дата последней модификации
2 байт
Начальный кластер
4 байт
Размер файла
Операционные системы
227
228.
ПримерFAT таблицы
16
File 1
File 2
19
23
21
24
22
42
17
41
29
Посл.
32
40
23
31
39
20
43
44
Посл.
Элементы,
указывающие на
кластеры файла 1
Операционные системы
Элементы,
указывающие на
кластеры файла 2
228
229.
Физическая организация FATВ корневом каталоге имеются записи не только о
файлах, но и подкаталогов. Эти записи имеют точно такую же
структуру, что и записи корневого каталога.
Признак подкаталогов указывается в атрибутах файла,
т. е. можно считать, что подкаталог - это специальный файл.
Структура атрибутивного байта показана ниже.
Операционные системы
229
230.
Физическая организация FATПозиция бита в шестнадцатеричном
формате
Значени
е
Описание
7
6
5
4
3
2
1
0
0
0
0
0
0
0
о
1
01h
Только чтение
0
0
0
0
0
0
1
0
02h
Скрытый
0
0
0
0
0
1
0
0
04h
Системный
0
0
0
0
1
0
0
0
08h
Метка тома
0
0
0
1
0
0
0
0
10h
Подкаталог
0
0
1
0
0
0
0
0
20h
Архивный
(измененный)
0
1
0
0
0
0
0
0
40h
Зарезервирова
но
1
0
0
0
0
0
0
0
80h
Зарезервирова
но
Операционные системы
230
231.
Физическая организация FATФайловые системы FAT 12 и FAT 16 оперируют с
именами файлов, составленных по схеме 8.3 (имя,
расширение). В Windows 95 с появлением 32-разрядной
виртуальной FAT-VFAT (Virtual file allocation table)
поддерживаются имена длиной 255 символов.
Для обеспечения обратной совместимости ОС создает
его псевдоним, удовлетворяющий стандарту 8.3. Делается это
следующим образом:
1. Первые 3 символа после последней точки в длинном имени
файла становятся расширением псевдонима.
2. Первые шесть символов длинного имени файла, за
исключением
пробелов,
которые
игнорируются,
преобразуются в символы верхнего регистра и становятся
шестью символами стандартного имени файла.
Операционные системы
231
232.
Физическая организация FATНедопустимые символы (+ ,; - []), которые могут
использоваться в Windows 95, преобразуются в символы
подчеркивания.
3. Добавляются символы ~1 (седьмой и восьмой) к
псевдониму имени файла.
Если первые шесть символов нескольких файлов одни
и те же, то добавляются символы ~2, ~3 и т. д.
VFAT хранит псевдонимы длинных имен в поле
стандартных имен файлов записи каталога файла.
Таким образом, все версии DOS и Windows могут
получить доступ к файлу под длинным именем с помощью
его псевдонима.
Для хранения символов длинных имени файлов были
добавлены дополнительные записи каталога.
Операционные системы
232
233.
Физическая организация FATИмя формата MS-DOS хранится в каталоге прямо в
описателе (базовой каталоговой записи). Если у файла есть
также длинное имя, оно хранится в одной или нескольких
каталоговых записях, предшествующих базовой каталоговой
записи файла с именем в формате MS-DOS.
Каждая такая запись содержит до 13 символов формата
Unicode. Элементы имени хранятся в обратном порядке,
начинаясь сразу перед описателем файла в формате MS-DOS
и последующими фрагментами перед ним. Формат каждого
фрагмента длинного имени показан на следующем рисунке.
Операционные системы
233
234.
Физическая организация FATФормат каталоговой записи с фрагментом длинного имени файла в
Windows 98
Операционные системы
234
235.
Физическая организация FATДля того, чтобы Windows отличала каталоговые
записи, содержащие имя файла в формате MS-DOS, от
фрагментов длинных имен поле Attributes (атрибуты) для
фрагмента длинного имени содержит значение 0x0F, что
соответствует невозможной комбинации атрибутов для
описателя файла в MS-DOS.
Старые программы, написанные для работы в MSDOS, читая каталог, просто игнорируют такие описатели как
неверные.
Порядок фрагментов имени учитывается в первом
байте каталоговой записи. Последний фрагмент имени
отмечается добавлением к порядковому номеру числа 64.
Поскольку для порядкового номера используется всего
6 бит, теоретически максимальная длина имени файла может
составить 63 х 13 = 819 символов. На практике она
ограничена 260 символами по историческим причинам.
Операционные системы
235
236.
Физическая организация FATКаждый фрагмент длинного имени содержит поле
Checksum (контрольная сумма) во избежание следующей
проблемы. Сначала программа, работающая в системе
Windows 98 (и последующих), создает файл с длинным
именем. Затем компьютер перезагружается в MS-DOS или
Windows 3.x. После этого старая программа, удаляя файл,
удаляет из каталога имя формата MS-DOS, но оставляет в
нем предшествующее ему длинное имя (так как ей ничего не
известно о длинных именах). Наконец, какая-то программа
создает новый файл, используя освободившееся место в
каталоге.
Операционные системы
236
237.
Физическая организация FATК
этому
моменту
мы
имеем
верную
последовательность
фрагментов
длинного
имени,
предшествующую описателю файла формата MS-DOS,
который не имеет к ней никакого отношения.
Поле Checksum позволяет системе Windows 98 (и
последующих) обнаружить такую ситуацию.
Конечно, поскольку для поля Checksum используется
всего один байт, есть один шанс из 256, что Windows 98 не
заметит подмены.
Операционные системы
237
238.
Физическая организация FATЧтобы предыдущие версии не повредили эти
дополнительные записи каталога, VFAT устанавливает для
них атрибуты, которые нельзя использовать для обычного
файла: только для чтения, скрытый, системный и метка
тома.
Такие атрибуты DOS игнорирует, а следовательно,
длинные имена файлов остаются нетронутыми. Подобным же
образом решается проблема длинных имен в Windows
NT/2000, использующих для хранения имен двухбайтовый
формат на каждый символ - Unicode.
Выбор типа FAT-системы во многом определяется
емкостью жесткого диска. При использовании FAT16 нельзя
создать раздел емкостью более 2 Гбайт. Для устранения этого
ограничения фирма Microsoft разработали FAT32.
Операционные системы
238
239.
Физическая организация FATОна работает как FAT16, но имеет отличие в
организации хранения данных. Впервые FAT32 была
реализована в Windows 95 OEM Service Release 2 (OSR2). Она
встроена и в Windows 98/Me/NT/2000.
Основное преимущество FAT32 - возможность
использования 32-разрядных записей вместо 16-разрядных,
что приводит к увеличению кластеров (вместо 216 = 65536) до
268 435 456 в разделе. Это значение в Windows 95 OSR2
эквивалентно 228, а не 232, поскольку 4 бита из 32
зарезервированы для других целей.
При использовании FAT 32 размер раздела может
достигать 2 Тбайт при кластере размером 8, 16 или 32 Кбайт.
Новая файловая система может иметь 232 кластеров
размером 512 байт, а размер единичного файла может
составить 4 Гбайт. Реально FAT 32 поддерживает
максимальный размер тома до 32 Гбайт.
Операционные системы
239
240.
Физическая организация FATЭто связано с тем, что в Windows 2000 это ограничение
обусловлено программой Format. Вообще максимально
возможный том - 2 Тбайт при кластере 32 Кбайт.
В FAT32 в отличие от ее предшественниц корневой
каталог может располагаться в любом месте раздела и иметь
любой размер. Это обеспечивает динамическое изменение
размера раздела.
Файловая
система
FAT32
также
использует
преимущество двух копий FAT. Как и в FAT16, в FAT32
первая копия является основной и периодически копирует
данные в дополнительную копию FAT. При проблемах с
главной
копией
FAT
системы
переключаются
в
дополнительную копию, которая становится главной.
Операционные системы
240
241.
Физическая организация FATВ отличие от FAT16 ФС FAT32 вместо массива из 65
536 элементов в ней используется столько, сколько нужно,
чтобы покрыть весь раздел диска. Для экономии памяти
операционная система не хранит их все сразу в памяти, а
использует окно, накладываемое на таблицу.
Операционные системы
241
242.
Файловая система Windows 2000Основные свойства файловой системы NTFS:
1. Поддержка больших файлов и больших дисков (объем до 264
байт).
2. Восстанавливаемость после сбоев и отказов программ и
аппаратуры управления дисками.
3. Высокая скорость операций, в том числе для больших дисков.
4. Низкий уровень фрагментации, в том числе для больших
дисков.
5. Гибкая структура, допускающая развитие за счет добавления
новых типов записей и атрибутов файлов с сохранением
совместимости с предыдущими версиями ФС.
6. Устойчивость к отказам дисковых накопителей.
7. Поддержка длинных символьных имен.
8. Контроль доступа к каталогам и отдельным файлам.
Операционные системы
242
243.
Структура тома NTFSОсновой структуры тома является главная таблица файлов (Master File Table,
MFT), которая содержит одну или несколько записей для каждого файла тома и
одну запись для самой себя (размер записи – 1, 2 или 4 Кбайт).
Том состоит из последовательности кластеров, порядковый номер кластера в
томе – логический номер кластера (Logical Cluster Number, LCN).
Файл состоит из последовательности кластеров, порядковый номер кластера
внутри файла называется виртуальным номером кластера (Virtual Cluster
Number, VCN). Размер кластера от 512 байт до 64 Кбайт.
Базовая единица распределения дискового пространства – отрезок –
непрерывная область кластеров.
Адрес отрезка – (LCN, k), k –количество кластеров в отрезке.
Адрес файла (или его части) – (LCN, VCN, k).
Файл целиком размещается в записи таблицы MFT (если позволяет размер). В
противном случае в записи MFT хранится резидентная часть файла
(некоторые его атрибуты), а остальная часть файла хранится в отдельном
отрезке тома или нескольких отрезках.
Операционные системы
243
244.
01
2
MFT
15
1-й отрезок MFT
Загрузочный блок
Системный файл 1
Системный файл 2
Системный файл n
Копия MFT
(первые 3 записи)
MFT
Файл K
MFT
0. Описание MFT, в том числе адреса всех ее отрезков.
1. Зеркальная копия 3-х первых записей MFT.
2. Журнал для восстановления файловой системы.
3. Файл тома (имя, версия и др. информация).
4. Таблица определения атрибутов.
5. Индекс корневого каталога.
6. Битовая карта кластеров.
7. Загрузочный сектор раздела.
8. Список дефектных кластеров.
9. Описатели защиты файлов.
10. Таблица преобразования регистра символов (для
Unicode).
11. Таблица квот, точек повторного анализа и др.
12 – 15 – зарезервировано.
3-й
отрезок
MFT
Файл M
2-й
отрезок MFT
Копия загрузочного блока
Загрузочный блок содержит стандартный блок
параметров BIOS, количество блоков в томе,
начальный логический номер кластера основной и
зеркальной копии MFT.
Операционные системы
244
245.
Структура файлов NTFSФайлы и каталоги состоят из набора атрибутов. Атрибут содержит
следующие поля: тип, длина, имя (образуют заголовок) и значение.
Системные атрибуты:
1. Стандартная информация (сведения о владельце, флаговые биты, время
создания, время обновления и др.).
2. Имя файла в кодировке Unicode, м.б. повторено для имени MS DOS.
3. Список атрибутов (содержит ссылки на номера записей MFT, где
расположены атрибуты), используется для больших файлов.
4. Версия – номер последней версии файла.
5. Дескриптор безопасности – список прав доступа ACL.
6. Версия тома –используется в системных файлах тома.
7. Имя тома.
8. Битовая карта MFT – карта использования блоков тома.
9. Корневой индекс – используется для поиска файлов в каталоге.
10. Размещение индекса – нерезидентная часть индексного списка ( для больших
файлов).
11.
Идентификатор объекта – 64-разрядный идентификатор файла, уникальный для
данного тома.
12.
Данные файла. 13. Точка повторного анализа (монтирование и симв. ссылки)
Операционные системы
245
246.
Файлы NTFS в зависимости от способа размещения делятся на небольшие,большие, очень большие и сверхбольшие.
Заголовок имени
файла
Стандартная
информация
Заголовок
данных
Имя
файла
Заголовок
записи
Список
Список
прав
прав
доступа
доступа
ДАННЫЕ
ДАННЫЕ
НЕ
используется
Пример небольшого файла NTFS
Стандартный
информационн
ый заголовок
Стандартная
информация
Заголовок ACL
Заголовок ACL
Заголовок
данных
Имя
файла
VCN
K
0 9
Блоки диска
LCN
K
LCN
K
LCN
K
20 4
64
2
80
3
Список
прав
доступа
20 – 23, 64 – 65, 80 - 82
Пример большого файла NTFS
Операционные системы
246
247. Структура файловой системы NTFS
Каждый том NTFS (то есть дисковый раздел)организован как линейная последовательность
блоков (кластеров по терминологии Microsoft).
Размер блока фиксирован для каждого тома и
задается в зависимости от его размера при
форматировании.
Обращение
к
блокам
осуществляется по их смещению от начала тома.
Операционные системы
247
248. Структура файловой системы NTFS
Для управления содержимым тома в системе NTFSиспользуется главная файловая таблица MFT
(Master File Table), представляющая собой
линейную
последовательность
записей
фиксированного размера. Каждая запись MFT
описывает один файл или один каталог.
Сама главная файловая таблица представляет собой
также файл, который, как и любой файл, может
располагаться в любом месте тома. Первые
шестнадцать записей основной таблицы файлов
зарезервированы системой NTFS под хранение
сведений о метаданных (metadata) — файлов NTFS,
определяющих структуру файловой системы.
Операционные системы
248
249. Структура файловой системы NTFS
В частности корневой каталог представляет собойфайл метаданных. Записи в MFT, начиная с 16-й,
хранят сведения о нормальных файлах и
подкаталогах.
Каждая запись MFT состоит из заголовка записи, за
которым следует последовательность пар: заголовок
атрибута, значение. В файловой системе NTFS
определено 13 атрибутов, которые могут появляться
в записях MFT.
Операционные системы
249
250. Структура файловой системы NTFS
Вчастности определены атрибуты: стандартная
информация (содержит сведения о владельце файла,
информацию о защите, флаговые биты, временные
штампы и т. д.), имя файла (хранится в кодировке
Unicode), данные (хранит поточные данные, может
повторяться).
Каждый
атрибут
начинается
с
заголовка,
идентифицирующего этот атрибут и сообщающего
длину его значения. Эти атрибуты присутствуют в
любом файле.
Операционные системы
250
251. Структура файловой системы NTFS
Если значение атрибута достаточно короткое, чтобыпоместиться в запись MFT, оно помещается туда
непосредственно за заголовком и такой атрибут
называется резидентным.
Если же это значение слишком длинное, оно
помещается в отдельные блоки диска. Такой
атрибут называется нерезидентным атрибутом.
Например, таким атрибутом, как правило, является
атрибут данных.
Непосредственно за заголовком такого атрибута в
запись MFT помещается запись, описывающая
местоположение этих блоков на диске.
Операционные системы
251
252. Структура файловой системы NTFS
Такая запись начинается с заголовка, определяющегосмещение относительно начала файла первого
блока и число всех блоков, выделенных для
размещения значения атрибута.
Следом за заголовком располагаются сегментные пары,
в которых содержатся дисковые адреса и длины
серий блоков.
Эти дисковые адреса представляют собой смещение
блока от начала дискового раздела.
Длина серии — это количество блоков в серии. Каждая
серия состоит из непрерывной последовательности
блоков.
Операционные системы
252
253. Структура файловой системы NTFS
Рис. Запись MFT для 9-блочного файла, состоящего изтрех сегментов
Операционные системы
253
254. Структура файловой системы NTFS
Если файл будет настолько фрагментирован, чтоинформация о блоках размещения значения
нерезидентного атрибута не поместится в одну
запись MFT, то используются дополнительные
записи MFT.
В этом случае первая запись MFT называемая базовой
записью.
В базовую запись в атрибут под именем список
атрибутов помещаются индексы (номера) этих
дополнительных записей MFT.
Если файл содержит слишком большое число
атрибутов, чтобы они все разместились в одной
записи
MFT,
то
также
используются
дополнительные записи MFT.
Операционные системы
254
255. Структура файловой системы NTFS
Рис. Файл, которому требуется три записи MFT дляхранения данных обо всех своих сегментах
Операционные системы
255
256. Структура файловой системы NTFS
Если потребуется так много записей MFT, что вбазовой записи в список атрибутов не поместятся
все индексы MFT, то атрибут под именем список
атрибутов делается нерезидентным (то есть
хранится отдельно на диске, а не в базовой записи
MFT). В этом случае размер файла уже ничем не
ограничен.
Информация об используемых блоках и элементах MFT
хранится в битовом массиве, являющемся файлом
метаданных.
Операционные системы
256
257. Структура файловой системы NTFS
В файловой системе NTFS каталоги хранятся в видефайлов. Каждый файл каталога содержит атрибут
под названием index, содержащий список файлов
каталога. Каждая запись файла каталога содержит
имя файла и стандартную информацию о файле.
В NTFS включены дополнительные функции для
обеспечения
большей
надежности
файловой
системы: сжатие файлов, шифрование, поддержка
нескольких
потоков
данных,
возможность
восстановления после сбоев во время перезагрузки
и
расширения
пользовательского
уровня
(например, жесткие ссылки и упрощенная
навигация по файловой системе и директориям).
Операционные системы
257
258. Структура файловой системы NTFS
Файловая система NTFS поддерживает прозрачноесжатие файлов и целых папок: процессы,
читающие такой файл или пишущие в него, не
будут даже догадываться о том, что при этом
происходит компрессия или декомпрессия данных.
Операционные системы
258
259. Структура файловой системы NTFS
Когда пользователь сообщает системе, что хочетзашифровать определенный файл, формируется
случайный 128-разрядный ключ, с помощью
которого осуществляется шифрование. Ключи
файлов сами хранятся на диске в зашифрованном
виде. Для этого создается отдельный ключ для
каждого пользователя, закрытая часть которого
сама
шифруется
с
учетом
информации,
идентифицирующей пользователя (пароль), либо
ключом смарт-карты. Открытая часть ключа
пользователя хранится в системном реестре.
Операционные системы
259
260. Структура файловой системы NTFS
Содержимое NTFS-файла (то есть реальные данные)могут храниться внутри одного или нескольких
потоков данных (data streams).
Поток данных представляет собой простой атрибут
файла в файловой системе NTFS, в котором
хранятся данные файла.
Стандартный поток данных без названия — это то,
что большинство людей считают содержимым
файла. Файлы в NTFS могут содержать несколько
альтернативных потоков данных (alternate data
stream).
Операционные системы
260
261. Структура файловой системы NTFS
В дополнительных потоках хранятся метаданные,например, автор файла или номер версии. Они
могут иметь форму вспомогательных данных,
например, изображения для предварительного
просмотра картинки либо резервная копия
текстового файла.
Файловая система NTFS в Windows Server 2003 и
Windows XP поддерживает дисковые квоты (disk
quotas),
позволяющие
ограничивать
объем
дискового пространства, с которым может работать
тот или иной пользователь.
Операционные системы
261
262. Структура файловой системы NTFS
Соединение каталогов (directory junctions) — средство,позволяющее
соединять
каталоги
NTFS.
Соединение каталогов позволяет отображать
локальные тома, а также общие сетевые ресурсы на
локальную папку NTFS, тем самым, объединяя
локальные и удаленные элементы в одно локальное
пространство имен.
Точки подключения томов (volume mount points) или
подключаемые тома — еще одно новое средство,
позволяющее поместить том NTFS в папку другого
тома NTFS так, как если бы он физически
находился на данном томе.
Операционные системы
262
263.
Основные характеристики файловых системFAT
Разрядность
указателя
Число
Максимальный
кластеров объем кластера
Максимальный
размер раздела
Имя файла
FAT12
12
4096
4 Кбайт
16 Мбайт
8.3
FAT16
255.3
16
65536
64 Кбайт
4 Гбайт
8.3
FAT 32
32
4Г
32 Кбайт
232 по 32 Кбайт
255.3
NTFS
64
264
4 Кбайт
264 по 4 Кбайт
255.3
Программа Fdisk автоматически определяет размер кластера на основе
выбранной файловой системы и размера раздела. Существует
недокументированный параметр команды Format, позволяющий явно
указать размер кластера:
Format /z:n, где n – размер кластера в байтах, кратный 512.
Операционные системы
263
264. 4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операцийФайловая
система
ОС
должна
предоставлять
пользователям набор операций для работы с файлами,
оформленный в виде системных вызовов.
В различных ОС имеются различные наборы файловых
операций. К наиболее часто встречающимся системным
вызовам для работы с файлами относятся:
1. Create (создание). Файл создается без данных. Этот системный
вызов объявляет о появлении нового файла и позволяет
установить некоторые его атрибуты.
2. Delete (удаление). Ненужный файл удаляется, чтобы
освободить пространство на диске.
3. Open (открытие). До использования файла его нужно
открыть. Данный вызов позволяет прочитать атрибуты файла и
список дисковых адресов для быстрого доступа к содержимому
файла.
Операционные системы
264
265. 4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций4. Close (закрытие). После завершения операций с файлом его
атрибуты и дисковые адреса не нужны. Файл следует закрыть,
чтобы освободить пространство во внутренней таблице.
5. Read (чтение). Файл читается с текущей позиции. Процесс,
работающий с файлом, должен указать (открыть) буфер и
количество читаемых данных.
6. Write (запись). Данные записываются в файл в текущую
позицию. Если она находится в конце файла, его размер
автоматически увеличивается. В противном случае запись
производится поверх существующих данных.
7. Append (добавление). Это усеченная форма предыдущего
вызова. Данные добавляются в конец файла.
8. Seek (поиск). Данный системный вызов устанавливает
файловый указатель в определенную позицию.
Операционные системы
265
266. 4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций9. Get attributes (получение атрибутов). Процессам для работы с
файлами бывает необходимо получить их атрибуты.
10. Set attributes (установка атрибутов). Этот вызов позволяет
установить необходимые атрибуты файлу после его создания.
11. Rename (переименование). Этот системный вызов позволяет
изменить имя файла. Однако такое действие можно выполнить
копированием файла. Поэтому данный системный вызов не
является необходимым.
12. Execute (выполнить). Используя этот системный вызов,
файл можно запустить на выполнение.
Операционные системы
266
267. 4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операцийВ Windows 2000 есть свой набор системных вызовов, которые
она может выполнять. Однако корпорация Microsoft никогда не
публиковала список системных вызовов Windows, кроме того,
она постоянно меняет их от одного выпуска к другому.
Вместо
этого
Microsoft
определила
набор
функциональных вызовов, называемый Win 32 API (Win 32
Application Programming Interface).
Они представляют собой библиотечные процедуры,
которые либо обращаются к системным вызовам, чтобы
выполнить требуемую работу, либо выполняют прямо в
пространстве пользователя.
Операционные системы
267
268. 4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операцийWin 32 API предоставляет всеобъемлющий интерфейс, с
возможностью выполнить одно и то же требование несколькими
(тремя-четырьмя) способами.
В ОС UNIX все системные вызовы формируют
минимальный интерфейс: удаление даже одного из них
приведет к снижению функциональности ОС.
Многие вызовы API создают объекты ядра того или
иного типа (файлы, процессы, потоки, каналы и т.д.). Каждый
вызов, создающий объект, возвращает вызывающему процессу
результат, называемый дескриптором (небольшое целое число).
Дескриптор используется впоследствии для выполнения
операций с объектами. Он не может быть передан другому
процессу и использован им.
Операционные системы
268
269. 4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операцийОднако при определенных обстоятельствах дескриптор
может быть дублирован и передан другому процессу
защищенным способом, что предоставляет второму процессу
контролируемый доступ к объекту, принадлежащему первому
процессу.
С
каждым
объектом
ассоциирован
дескриптор
безопасности, описывающий, кто и какие действия может, а
какие не может выполнять с данным объектом.
Операционные системы
269
270. 4. 7. Операции управления каталогами и файловые операции
ОписаниеWin32 API
UNIX
CreateDirectory
mkdir
Создать новый каталог
RemoveDirectory
rmdir
Удалить пустой каталог
FindFirstFile
opendir
Инициализация для начала чтение записей каталога
FindNextFile
readdir
Прочитать следующую запись каталога
MoveFile
rename
Переместить файл из одного каталога в другой
SetCurrentDirectory
chdir
Изменить текущий рабочий каталог
CreateFile
open
Создать (открыть) файл, вернуть дескриптор файла
DeleteFile
unlink
Удалить существующий файл
CloseHandle
close
Закрыть файл
ReadFile
read
Прочитать данные из файла
WriteFile
write
Записать данные в файл
SetFilePointer
lseek
Уст-вить указатель в файле в определенную позицию
GetFileAttributes
stat
Вернуть атрибуты файла
LockFile
fcntl
Заблокировать файл для взаимного исключения
Unlock File
fcntl
Отменить блокировку области файла
Операционные системы
270
271.
4.7.2. Способы выполнения файловых операцийПоследовательность универсальных действий:
1. По символьному имени файла найти его характеристики, которые хранятся в файловой
системе на диске.
2. Скопировать характеристики файла в оперативную память, поскольку только в этом
случае программный код может их использовать.
3. На основании характеристик файла проверить права пользователя на выполнение
запрошенной операции (чтение, запись, удаление и т. п.).
4. Очистить область памяти, отведенную под временное хранение характеристик файла.
open
open
Read 1
close
Read 1
open
Read 2
close
Read 2
Примеры системных вызовов для
работы с файлами:
fd = create (“abc”, mode); fd = open (“file”, how);
read (fd, buffer, nbytes); write(fd, buffer, nbytes);
open
Read 3
Read 3
close
close
Стандартные файлы ввода –
вывода, перенаправление вывода
read (stdin, buffer, nbytes); write(stdout,
buffer, nbytes);
< file - перенаправление ввода,
> file – перенаправление вывода на файл
Операционные системы
271
272.
4.7.2. Способы выполнения файловых операцийКроме того, каждая операция включает ряд
уникальных для нее действий, например чтение
определенного набора кластеров диска, удаление файла,
изменение его атрибутов и т. п.
ОС может выполнить последовательность действий
над файлами двумя способами:
1. Для каждой операции выполняются как универсальные,
так и уникальные действия. Такая схема иногда
называется схемой без заполнения состояния операции
(stateless).
2. Все универсальные действия выполняются в начале и в
конце последовательности операций, а для каждой
промежуточной
операции
выполняются
только
уникальные действия.
Операционные системы
272
273.
4.7.2. Способы выполнения файловых операцийПодавляющее
большинство
файловых
систем
поддерживает второй способ как более экономичный и
быстрый.
Первый
способ
иногда
применяется
в
распределенных сетевых файловых системах.
При втором способе в ФС вводятся два специальных
системных вызова: open и close. Первый выполняется перед
началом любой последовательности операций с файлом, а
второй - после окончания работы с файлом.
Основной
задачей
вызова
open
является
преобразование символьного имени файла в его уникальное
числовое имя, копирование характеристик файла из дисковой
области в буфер оперативной памяти и проверка прав
пользователя на выполнение запрошенной операции.
Операционные системы
273
274.
4.7.2. Способы выполнения файловых операцийВызов close освобождает буфер с характеристиками файла и
делает невозможным продолжение операций с файлами без его
повторного открытия.
Операционные системы
274
275.
Примеры системных вызовов для работы с файламиfd = creat (“name”, mode) – файла с заданным режимом защиты;
fd = open (“name”, how) – открыть файл для чтения, записи или и
того и другого;
s = close (fd) – закрыть открытый файл;
n = read (fd, buffer, nbytes) – прочитать данные из файла в буфер;
n = write (fd, buffer, nbytes) – записать данные из буфера в файл;
position = lseek (fd, offset, whence) – переместить указатель в файле;
s = fstat | stat (fd | “name”, &buf) - получить информацию о
состоянии файла.
При выполнении программы стандартным образом файлы с
дескрипторами 0, 1 и 2 уже открыты для стандартного ввода,
стандартного вывода и стандартного потока сообщений об ошибках.
n = read (stdin, buffer, nbytes); n = write (stdout, buffer, nbytes)
stdin = 0; stdout =1; stderr = 2.
Операционные системы
275
276.
4.7.3. Контроль доступа к файлам и каталогамФайлы наряду с некоторыми другими ресурсами являются
разделяемыми ресурсами, доступ к которым ОС должна
контролировать.
Операционные системы
276
277.
4.7.3. Контроль доступа к файлам и каталогамДля каждого типа объекта существует набор операций,
которые можно с ним выполнять. Система контроля доступа
ОС должна предоставлять средства для задания прав
пользователей по отношению к объектам дифференцированно
по операциям.
В качестве субъектов доступа могут выступать как
отдельные пользователи, так и группы пользователей.
Объединение пользователей с одинаковыми правами в группу
и задание прав доступа в целом для группы являются одним
из основных приемов администрирования в больших
системах.
Операционные системы
277
278.
4.7.3. Контроль доступа к файлам и каталогамУ каждого объекта доступа существует владелец.
Владелец объекта имеет право выполнить с ним любые
допустимые для данного объекта операции.
Во многих ОС существует особый пользователь администратор «superuser», который имеет все права по
отношению к объектам системы, необязательно являясь их
владельцем.
Эти
права
(полномочия)
необходимы
администратору для управления политикой доступа.
Различают два основных подхода к определению прав
доступа:
1. Избирательный доступ - ситуация, когда владелец объекта
определяет допустимые операции с объектом. Этот подход
называется также произвольным доступом, так как позволяет
администратору и владельцам объекта определить права
доступа произвольным образом, по их желанию. Однако
администратор по умолчанию наделен всеми правами.
Операционные системы
278
279.
4.7.3. Контроль доступа к файлам и каталогам2. Мандатный доступ (от mandatory - принудительный) подход к определению прав доступа, при котором система
(администратор) наделяет пользователя или группу
определенными правами по отношению к каждому
разделяемому ресурсу. В этом случае группы пользователей
образуют строгую иерархию, причем каждая группа
пользуется всеми правами группы более низкого уровня
иерархии.
Мандатные системы доступа считаются более
надежными, но менее гибкими. Обычно они применяются в
системах с повышенными требованиями к защите
информации.
Операционные системы
279
280.
4.7.3. Контроль доступа к файлам и каталогамКаждый пользователь (группа) имеют символьное имя,
а также уникальный числовой идентификатор. При
выполнении процедуры логического входа в систему
пользователь сообщает свое символьное имя или пароль. Все
идентификационные данные, а также сведения о вхождении
пользователя в группы хранятся в специальном файле (UNIX)
или базе данных (Windows NT).
Вход пользователя в систему порождает процессоболочку, который поддерживает диалог с пользователем и
запускает для него другие процессы. Любой порождаемый
процесс наследует идентификаторы пользователя и групп от
процесса родителя.
В разных ОС для одних и тех же типов ресурсов может
быть определен свой список дифференцируемых операций
доступа. Для файловых объектов этот список может включать
операции, которые рассмотрены выше.
Операционные системы
280
281.
4.7.3. Контроль доступа к файлам и каталогамНабор файловых операций может включать всего
несколько укрупненных операций, например, для файлов и
каталогов: читать, писать и выполнять.
Возможна комбинация двух подходов - детальный
уровень и укрупненный. Например, в Windows NT/2000/2003
администратор работает на укрупненном уровне, а при
желании может перейти на детальный.
В самом общем случае права доступа могут быть
описаны матрицей прав доступа, в которой столбцы
соответствуют всем файлам системы, а строки - всем
пользователям.
На пересечении строк и столбцов указываются
разрешенные операции. Однако реально для тысяч и десятков
тысяч файлов в системе пользоваться такой матрицей
неудобно.
Операционные системы
281
282.
4.7.3. Контроль доступа к файлам и каталогамПоэтому она хранится по частям, т. е. для каждого
файла и каталога создается список управления доступом
(Access Control List, ACL), в котором описываются права на
выполнение операций пользователей и групп пользователей
по отношению к этому файлу или каталогу.
Список управления доступом является частью
характеристик файла или каталога и хранится на диске в
соответствующей области. Не все файловые системы
поддерживают списки управления доступом, например FAT не
поддерживает,
поскольку
разрабатывалась
для
однопрограммной, однопользовательской ОС MS DOS.
Обобщенно формат списка управления доступом (ACL)
можно представить в виде набора идентификаторов
пользователей и групп пользователей, в котором для каждого
идентификатора указывается набор разрешенных операций
над объектом.
Операционные системы
282
283.
4.7.3. Контроль доступа к файлам и каталогамСам список ACL состоит из элементов управления
доступом
(Access
Control
Element,
АСЕ),
которые
соответствуют одному идентификатору. Список ACL с
добавлением
идентификатора
владельца
называют
характеристиками безопасности.
Для разделяемых ресурсов в Windows XP применяется
общая
модель
объекта,
которая
содержит
такие
характеристики безопасности, как набор допустимых
операций, идентификатор владельца, список управления
доступом.
Проверки прав доступа для объектов любого типа
выполняются централизованно с помощью монитора
безопасности (Security Reference Monitor), работающего в
привилегированном режиме.
Операционные системы
283
284.
4.7.3. Контроль доступа к файлам и каталогамДля системы безопасности Windows характерно
большое
количество
различных
встроенных
(предопределенных)
субъектов
доступа
отдельных
пользователей и групп (Administrator, System, Guest, группы
Users, Administrators, Account, Operators и др.).
Смысл этих встроенных пользователей и групп состоит
в том, что они наделены определенными правами. Это
облегчает работу администратора по созданию эффективной
системы разграничения доступа. Во-первых, за счет того, что
нового пользователя можно внести в какую-либо группу. Вовторых, можно добавлять (изымать) права встроенных групп.
Наконец, можно создавать новые группы с уникальным
набором прав.
Операционные системы
284
285.
4.7.3. Контроль доступа к файлам и каталогамВсе объекты при создании снабжаются дескрипторами
безопасности, содержащими список управления доступом и
список пользователей и групп, имеющих доступ к данному
объекту.
Владелец объекта, обычно пользователь, который его
создал, обладает возможностью изменять ACL объекта, чтобы
позволить или не позволить другим осуществлять доступ к
объекту.
Однако он может выполнить требуемую операцию с
объектом, став его владельцем (такая возможность
предусмотрена), а затем как владелец получить полный набор
разрешений.
Однако вернуть владение предыдущему владельцу
объекта администратор не может, поэтому пользователь
всегда может узнать о том, что с его файлом (принтером и т. п.)
работал администратор.
Операционные системы
285
286.
4.7.3. Контроль доступа к файлам и каталогамВ Windows NT/2000/XP администратор может
управлять доступом пользователей к каталогам и файлам
только в разделах диска, в которых установлена файловая
система NTFS, разделы FAT не поддерживаются, так как в
этой ФС у файлов и каталогов отсутствуют атрибуты для
хранения списков управления доступом.
Разрешения в Windows бывают индивидуальные
(специальные) и стандартные. Индивидуальные относятся к
элементарным операциям над каталогами и файлами, а
стандартные разрешения являются объединением нескольких
индивидуальных разрешений.
Операционные системы
286
287.
4.7.3. Контроль доступа к файлам и каталогамСтандартные разрешения
Специальные разрешения
Операционные системы
287
288.
4.7.3. Контроль доступа к файлам и каталогамОперационные системы
288
289.
Квоты дискового пространстваФайловая система NTFS в Windows Server 2003
поддерживает дисковые квоты (disk quotas), позволяющие
ограничивать объем дискового пространства, с которым может
работать тот или иной пользователь.
Установка квот дает возможность более эффективно
управлять размещением информации на диске, поскольку
теперь дисковое пространство можно распределять между
пользователями в соответствии с их потребностями.
Кроме того, введение дисковых квот принуждает
пользователей более аккуратно работать с компьютером, в
частности систематически удалять ненужные файлы.
Операционные системы
289
290.
Квоты дискового пространстваОперационные системы
290
291.
Системный загрузчик WindowsNT/2000/XP/Vista
Операционные системы класса Windows NT имеют
возможность загружать не одну операционную систему, а
несколько, то есть системный загрузчик Windows NT/
2000/ХР является менеджером загрузки.
Для указания установленных операционных систем и
выбора одной из них используется файл boot.ini. Этот файл
является текстовым. Он обрабатывается программой ntldr,
которая, собственно, и является системным загрузчиком и
на которую передается управление из внесистемного
загрузчика.
Операционные системы
291
292.
Системный загрузчик WindowsNT/2000/XP/Vista
Файл boot.ini состоит из двух секций.
Пример файла boot.ini
[boot loader]
timeout=10
default=mult1(0)disk(0)rdisk(0)part1tion(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)part1tion(2)\WINNT="IT.MTC.EDU
Microsoft Windows 2000 Server RUS" /fastdetect
multi(0)disk(0)rdisk(1)partition(2)\WIN2KP="Staff.MTC.EDU
Microsoft Windows 2000 Professional RUS" /fastdetect
multi(0)disk(0)rdisk(0)partition(4)\WIN2K_S="SQL server on
M$ Windows 2000 Server RUS" /fastdetect
Операционные системы
292
293.
Системный загрузчик WindowsNT/2000/XP/Vista
multi(0)disk(0)rdisk(2)partition(2)\WIN2K.PR0="Microsoft
Windows 2000 Professional RUS"/fastdetect
C:\="Microsoft Windows 98"
C:\CMDCONS\BOOTSECT.DAT="Recovery
Console
Microsoft Windows 2000" /cmdcons
Операционные системы
293
294.
Системный загрузчик WindowsNT/2000/XP/Vista
В первой секции этого файла, названной [boot loader],
строка timeout задает время в секундах, по истечении
которого будет загружаться операционная система,
указанная в строке default этой секции.
Если значение timeout равно нулю или во второй секции
прописана только одна операционная система, то в этом
случае будет загружаться система, указанная в строке
default.
Если же значение timeout равняется - 1 , то загрузка не
будет происходить до тех пор, пока пользователь явно не
выберет в меню одну из операционных систем и не нажмет
клавишу Enter.
Операционные системы
294
295.
Системный загрузчик WindowsNT/2000/XP/Vista
Инструкция default указывает, где (на каком накопителе и в
каком
разделе
этого
накопителя)
располагается
операционная система, загружаемая по умолчанию.
В большинстве там примерно такая строка:
clefault=mult1(0)d1sk(0)rcl1sk(0)part1t1on(2)\WINNT
Слово multi в этой строке означает, что при работе
программы ntldr должны использоваться драйверы из BIOS
компьютера (используется прерывание int13h).
Номер в скобках должен быть равен 0.
Операционные системы
295
296.
Системный загрузчик WindowsNT/2000/XP/Vista
Слово disk на персональных компьютерах с подключением
накопителей на магнитных дисках через IDE-интерфейс
фактически не несет никакой информации, однако оно
должно быть записано, а в скобках должен стоять ноль. В
случае SCSI-дисков это слово задает идентификатор SCSI ID
диска.
Слово rdisk определяет порядковый номер накопителя.
Всего при использовании IDE-интерфейса может быть до 4
накопителей на жестких дисках; они нумеруются от 0 до 3.
Операционные системы
296
297.
Системный загрузчик WindowsNT/2000/XP/Vista
Слово partition определяет номер раздела, на который
установлена операционная система. После указания раздела
записывается имя каталога, в котором расположены файлы
этой операционной системы.
Во второй секции, обозначенной как [operating systems],
построчно
перечисляются
пути
к
установленным
операционным
системам
с
текстовыми
полями,
заключенными в кавычки. Именно тот текст и
отображается при работе загрузчика ntldr, когда он выводит
меню с операционными системами.
Операционные системы
297
298.
Системный загрузчик WindowsNT/2000/XP/Vista
Если на компьютере установлены помимо систем Windows
NT/2000/XP еще какие-нибудь операционные системы
(например, DOS, Windows 9х, Linux и т. д.), то их можно
будет также загрузить. Для этого в секции необходимо
указать полный путь к файлу, в котором должен
содержаться соответствующий системный загрузчик
(загрузочный сектор). Этот файл обязательно должен
располагаться на том же диске С:, иначе программа ntldr не
сможет его найти.
Операционные системы
298
299.
Системный загрузчик WindowsNT/2000/XP/Vista
Следует отметить, что для MS DOS и Windows 9.х можно не
указывать имя файла с загрузочным сектором, а указать
только сам корневой каталог диска С:. Но это возможно
только в том случае, если имя файла, содержащего
системный загрузчик, будет стандартным — bootsect.dos.
Настройка, запрос или изменение параметров файла boot.ini
выполняется утилитой Bootcfg, которая запускается в
командной строке. Запуск этой утилиты без параметров
приводит к отображению информации файла boot.ini. Что
узнать поддерживаемые этой утилитой команды необходимо
запустить в командной строке bootcfg /?. Описание утилиты
приведено также в справочной системе.
Операционные системы
299
300.
Системный загрузчик WindowsNT/2000/XP/Vista
В ОС Windows Vista (и более поздних )файл boot.ini заменен
файлом данных конфигурации загрузки (BCD - Boot
Configuration Data). Этот файл более универсален, чем
boot.ini; его можно применять на платформах, в которых
для загрузки используются другие средства, а не базовая
система ввода-вывода (BIOS).
Чтобы внести изменения в файл данных конфигурации
BCD, например, удалить записи из списка операционных
систем, необходимо воспользоваться утилитой Bcdedit
(дополнительное средство для администраторов и
специалистов в области информационных технологий),
запускаемой
из командной строки под правами
администратора.
Операционные системы
300
301.
Системный загрузчик WindowsNT/2000/XP/Vista
Запуск утилиты Bcdedit без параметров приводит к выводу
параметров загрузки.
Запуск утилиты с ключом /?
Приводит к выводу и описанию поддерживаемых ее команд.
Редактировать меню загрузки можно также с помощью
средства «Конфигурация системы», доступ к которому –
Пуск->Панель
управления->Администрирование>Конфигурация системы, вкладка Загрузка (или в строке
«Выполнить» набрать msconfig и нажать Enter. Откроется
окно конфигурации системы. Перейти на вкладку
«Загрузка»).
Операционные системы
301
302.
Системный загрузчик WindowsNT/2000/XP/Vista
Операционные системы
302
303.
Системный загрузчик WindowsNT/2000/XP/Vista
Редактировать меню загрузки можно с помощью окна
«Загрузка и восстановление», доступ к которому Пуск –
>Панель управления -> Система -> Дополнительные
параметры системы. В открывшемся окне перейти на
вкладку «Дополнительно». Далее кнопка «Параметры»
секции «Загрузка и восстановление».
Операционные системы
303
304.
Системный загрузчик WindowsNT/2000/XP/Vista
Операционные системы
304
informatics