Слайд 1Операционные системы
Тема 4: Подсистема ввода/вывода и файловые системы
4.1. Устройства ввода-вывода
4.2.
Основные функции подсистемы ввода/вывода
4.2.1. Организация параллельной работы устройств ввода-вывода и
процессора
4.2.2. Согласование скоростей обмена и кэширование данных
4.2.3. Разделение устройств и данных между процессами
Слайд 2Операционные системы
4.2.4. Обеспечение логического интерфейса между устройствами и остальной
частью системы
4.2.5. Поддержка широкого спектра драйверов
4.2.6. Динамическая выгрузка и
загрузка драйверов
4.2.7. Поддержка нескольких файловых систем
4.2.8. Основные системные таблицы ввода-вывода
4.2.9. Поддержка синхронных и асинхронных операций ввода-вывода
Тема 4: Подсистема ввода/вывода и файловые системы
Слайд 3Операционные системы
4.4. Файловая система
4.4.1. Основные понятия. Цели и задачи файловой
системы
4.4.2. Архитектура файловой системы
4.4.3. Организация файлов и доступ к ним
4.4.4.
Каталоговые системы
4.4.5. Физическая организация файловой системы
4.3. Многослойная модель подсистемы ввода/вывода
Тема 4: Подсистема ввода/вывода и файловые системы
Слайд 4Операционные системы
4.1. Устройства ввода-вывода
Типы устройств по функциональному назначению;
1. Работающие с
пользователем. Используются для связи с пользователем компьютера (принтеры, дисплеи, клавиатура,
манипуляторы (мышь, джойстик и т. п.).
2. Работающие с компьютером. Используются для связи с электронным оборудованием (диски, магнитные ленты, датчики, контроллеры, преобразователи и т. п.).
3. Коммуникации. Используются для связи с удаленными устройствами (модемы, адаптеры цифровых линий и др.).
Типы устройств по принципам функционирования:
Блочные, хранящие информацию в виде адресуемых блоков фиксированного размера и позволяющие работать с каждым блоком независимо от других блоков ( дисковые устройства).
Символьные, принимающие или предоставляющие поток символов без какой-либо структуры (принтеры, модемы, сетевые карты).
Слайд 5Операционные системы
Различия в характеристиках устройств ввода-вывода
Скорость передачи данных (различия на
несколько порядков).
Применение. Один и тот же тип устройства может требовать
различного ПО и стратегии операционной системы (диск для хранения файлов приложений и файла подкачки, терминал пользователя и администратора).
Сложность управления (для принтера относительно простой интерфейс управления, для диска – намного сложнее).
Единицы передачи данных. Данные могут передаваться блоками или потоком байтов или символов.
Представление данных. Различные устройства используют разные схемы кодирования данных, включая различную кодировку символов и контроль четности.
Условия ошибок. Природа ошибок, способ сообщения о них, возможные ответы резко отличаются от одного устройства к другому.
Слайд 6Операционные системы
101
102
103
104
105
106
107
108
109
Gigabit Ethernet
Графический монитор
Жесткий диск
Ethernet
Оптический диск
Сканер
Лазерный принтер
Гибкий диск
Модем
Мышь
Клавиатура
Бит в секунду
Слайд 7Операционные системы
Устройства ввода-вывода обычно состоят из электромеханической и электронной частей.
Обычно их выполняют в форме отдельных модулей - собственно устройство
и контроллер (адаптер).
В ПК контроллер принимает форму платы, вставляемой в слот расширения. Плата имеет разъем, к которому подключается кабель, ведущий к самому устройству.
Многие контроллеры способны управлять двумя, четырьмя, и даже более, идентичными устройствами.
Состав устройств ввода/вывода
Слайд 8Операционные системы
Если интерфейс между контроллером и устройством является официальным
стандартом (ANSI, IEEE или ISO) или фактическим стандартом, то различные
компании могут выпускать отдельно контроллеры и устройства, удовлетворяющие данному интерфейсу.
Состав устройств ввода/вывода
Слайд 9Операционные системы
Состав устройств ввода/вывода
Слайд 10Операционные системы
Контроллер
Каждый контроллер взаимодействует с драйвером системным программным модулем, предназначенным
для управления данным устройством.
Для работы с драйвером контроллер имеет несколько
регистров, кроме того, контроллер может иметь буфер данных, из которого операционная система может читать данные, а также записывать данные в него.
Каждому управляющему регистру назначается номер порта ввода-вывода.
Слайд 11Операционные системы
Контроллер
Используя регистры контроллера, ОС может узнать состояние устройства (например,
готово ли оно к работе), а также выдавать команды управления
устройством (принять или передать данные, включиться, выключиться и т. п.).
Слайд 12Операционные системы
4.2. Основные функции подсистемы ввода-вывода
Драйверы управляют внешними устройствами.
В работе
подсистемы ввода-вывода активно участвует диспетчер прерываний. Основная нагрузка диспетчера прерываний
обусловлена именно подсистемой ввода-вывода, поэтому диспетчер прерываний иногда считают частью подсистемы ввода-вывода.
Файловая система - это основное хранилище информации в любом компьютере.
Основные компоненты: драйверы, файловая система, система прерываний, супервизор ввода-вывода
Слайд 13Операционные системы
4.2. Основные функции подсистемы ввода-вывода
Она активно использует остальные
части подсистемы ввода-вывода.
Кроме того, модель файла лежит в основе большинства
механизмов доступа к периферийным устройствам.
Супервизор ввода-вывода – это компонентом операционной системы, который управляет вводом-выводом.
Слайд 14Операционные системы
4.2. Основные функции подсистемы ввода-вывода
Любые операции по управлению вводом-выводом
объявляются привилегированными и могут выполняться только кодом самой операционной системы.
Как правило, в режиме супервизора (режим ядра) выполнение команд ввода-вывода разрешено, а в пользовательском режиме — запрещено.
Самый главный принцип организации ввода вывода в мультизадачных ОС
Слайд 15Операционные системы
4.2. Основные функции подсистемы ввода-вывода
Обращение к командам ввода-вывода в
пользовательском режиме вызывает исключение, и управление через механизм прерываний передается
коду операционной системы.
Возможны и более сложные схемы, в которых в ряде случаев пользовательским программам может быть разрешено непосредственное выполнение команд ввода-вывода.
Самый главный принцип организации ввода вывода в мультизадачных ОС
Слайд 16Операционные системы
4.2.1. Основные функции подсистемы ввода-вывода
Организация параллельной работы устройств ввода-вывода
и процессора.
2. Согласование скоростей обмена и кэширование данных.
3. Разделение устройств
и данных между процессами.
4. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы.
5. Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера.
6. Динамическая загрузка и выгрузка драйверов.
7. Поддержка нескольких файловых систем.
8. Поддержка синхронных и асинхронных операций ввода-вывода.
Слайд 17Операционные системы
4.2.1. Основные функции подсистемы ввода-вывода
Основные задачи, возлагаемые на супервизор
1.
Модуль супервизора операционной системы , иногда называемый супервизором задач, получает
запросы от прикладных задач на выполнение тех или иных операций, в том числе на ввод-вывод. Эти запросы проверяются на корректность и, если они соответствуют спецификациям и не содержат ошибок, то обрабатываются дальше. В противном случае пользователю (задаче) выдается соответствующее диагностическое сообщение о недействительности (некорректности) запроса.
2. Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой операционной системы.
3. Супервизор ввода-вывода вызывает соответствующие распределители каналов и контроллеров, планирует ввод-вывод (определяет очередность предоставления устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполнение.
Слайд 18Операционные системы
4.2.1. Основные функции подсистемы ввода-вывода
Основные задачи, возлагаемые на супервизор
4.
Супервизор ввода-вывода инициирует операции ввода-вывода (передает управление соответствующим драйверам) и
в случае управления вводом-выводом с использованием прерываний предоставляет процессор диспетчеру задач с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение.
5. При получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы и передает управление соответствующим программам обработки прерываний.
6. Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если таковые происходят в процессе управления операциями ввода-вывода.
7. Супервизор ввода-вывода посылает сообщения о завершении операции ввода-вывода запросившей эту операцию задаче и снимает ее с состояния ожидания ввода-вывода, если задача ожидала завершения операции.
Слайд 19Операционные системы
4.2.2. Организация параллельной работы устройств ввода-вывода и процессора
Эволюция ввода
– вывода
1. Процессор непосредственно управляет периферийным устройством.
2. Устройство
управляется контроллером. Процессор использует программируемый ввод - вывод без прерываний (переход к абстракции интерфейса ввода - вывода) – режим обмена с опросом готовности.
3. Использование контроллера прерываний. Ввод-вывод, управляемый прерываниями – режим обмена с прерываниями.
4. Использование модуля (канала) прямого доступа к памяти. Перемещение данных в память (из нее) без использования процессора.
5. Использование отдельного специализированного процессора ввода-вывода, управляемого центральным процессором.
6. Использование отдельного компьютера для управления устройствами ввода-вывода при минимальном вмешательстве центрального процессора.
Слайд 20Операционные системы
Системный вызов для выполнения операции ввода-вывода
Запрос
состояния контроллера ввода-вывода
Проверка состояния
Не готов
Готов
Получить слово от контроллера ввода-вывода
Записать слово
в память
Все выполнено ?
Вызов драйвера
Текущая команда программы
Нет
Да
Следующая команда
Программируемый ввод-вывод без прерываний
Процессор посылает необходимые команды контроллеру устройства ввода-вывода и переводит процесс в состояние ожидания завершения операции ввода-вывода. Контроллер транслирует принятые команды в сигналы управления устройством ввода вывода.
После выполнения команды устройством его контроллер выдает сигнал готовности.
Процессор (через драйвер устройства) периодически проверяет состояние устройства ввода вывода с целью проверки завершения операций ввода вывода и готовности к принятию новой команды
Недостаток: большие потери процессорного времени
Ошибка
Слайд 21Операционные системы
Программируемый ввод-вывод без прерываний
В
операционных системах Windows (и Windows 9х, и Windows NT/ 2000)
печать через параллельный порт осуществляется не в режиме с прерываниями, как это сделано в других ОС, а в режиме опроса готовности, что приводит к 100-процентной загрузке центрального процессора на все время печати.
При этом другие задачи, запущенные на исполнение, выполняются исключительно за счет того, что упомянутые операционные системы поддерживают вытесняющую мультизадачность.
Слайд 22Операционные системы
Системный вызов для выполнения операции ввода-вывода
Запрос
состояния контроллера ввода-вывода
Проверка состояния
Не готов
Готов
Ошибка
Получить слово от контроллера ввода-вывода
Записать слово
в память
Все выполнено ?
Вызов драйвера. Передача команды контроллеру.
Текущая команда программы
Нет
Да
Следующая команда
2. Ввод-вывод, управляемый прерываниями.
Процессор посылает необходимые команды контроллеру ввода-вывода и продолжает выполнять процесс, если нет необходимости в ожидании выполнения операции. В противном случае процесс приостанавливается до получения сигнала прерывания о завершении ввода/вывода, а процессор переключается на выполнение другого процесса. В конце каждого цикла выполненных команд процессор проверяет наличие прерываний.
Выполнение других
действий
ПРЕРЫВАНИЕ
Слайд 23Операционные системы
Жесткий диск
Контроллер диска
Регистры контроллера
Контроллер прерываний
Центральный процессор
1
Драйвер программирует контроллер и
переходит в состояние ожидания
2
Контроллер запускает устройство
3
Контроллер устройства ввода-вывода завершил операцию
3
4
Возбуждение
сигнала прерывания
5
5
Обработка прерывания, перемещение данных в область программы, передача управления программе
2. Ввод вывод, управляемый прерываниями
Слайд 24Операционные системы
Режим обмена с прерываниями по своей сути является режимом
асинхронного управления. Для того чтобы не потерять связь с устройством,
может быть запущен отсчет времени, в течение которого устройство обязательно должно выполнить команду и выдать-таки сигнал запроса на прерывание.
Максимальный интервал времени, в течение которого устройство ввода-вывода или его контроллер должны выдать сигнал запроса на прерывание, часто называют установкой тайм-аута.
Если это время истекло после выдачи устройству очередной команды, а устройство так и не ответило, то делается вывод о том, что связь с устройством потеряна и управлять им больше нет возможности. Пользователь и/или задача получают соответствующее диагностическое сообщение.
2. Ввод вывод, управляемый прерываниями
Слайд 25Операционные системы
Драйверы, работающие в режиме прерываний, представляют собой сложный комплекс
программных модулей и могут иметь несколько секций: секцию запуска, одну
или несколько секций продолжения и секцию завершения.
2. Ввод вывод, управляемый прерываниями
Секция запуска инициирует операцию ввода-вывода. Эта секция запускается для включения устройства ввода-вывода или просто для инициализации очередной операции ввода-вывода.
Слайд 26Операционные системы
2. Ввод вывод, управляемый прерываниями
Секция продолжения (их может быть
несколько, если алгоритм управления обменом данными сложный, и требуется несколько
прерываний для выполнения одной логической операции) осуществляет основную работу по передаче данных.
Секция продолжения является основным обработчиком прерывания. Поскольку используемый интерфейс может потребовать для управления вводом-выводом несколько последовательностей управляющих команд, а сигнал прерывания у устройства, как правило, только один, то после выполнения очередной секции прерывания супервизор прерываний при следующем сигнале готовности должен передать управление другой секции. Это делается путем изменения адреса обработки прерывания после выполнения очередной секции, а если имеется только одна секция продолжения, она сама передает управление в ту или иную часть кода подпрограммы обработки прерывания.
Секция завершения обычно выключает устройство ввода-вывода или просто завершает операцию.
Слайд 27Операционные системы
Запрос состояния контроллера ввода-вывода
Проверка состояния
Не готов
Готов
Ошибка
Запуск контроллера. Перенос данных
в буфер. Сигнал в DMA.
Запрос от DMA на перенос данных.
Запись слова в память контроллером. Сигнал в DMA.
Все выполнено ?
Системный вызов для выполнения операции ввода-вывода. Вызов драйвера. Программирование DMA
Нет
Да
Прерывание
Выполнение других действий
3. Прямой доступ к памяти.
Модуль прямого доступа к памяти управляет обменом данных между основной памятью и контроллером ввода-вывода. Процессор посылает запрос на передачу блока данных модулю прямого доступа к памяти, а прерывание происходит только после передачи всего блока данных.
DMA увеличивает адрес памяти и уменьшает счетчик байтов
Текущая команда программы
Слайд 28Операционные системы
1
Адрес
Счетчик
Управляющий регистр
Центральный процессор
Прерывание после выполнения
1
1
Центральный процессор программирует DMA
1
3
DMA запрашивает
перенос данных
5
4
5
Подтверждение
Буфер
Диск
DMA
2
2
4
4
Перенос данных
Оперативная память
Контроллер
Шина
2
3. Ввод вывод через DMA
Слайд 29Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
DMA-контроллер имеет доступ к системной шине независимо от
центрального процессора. Контроллер содержит несколько регистров, доступных центральному процессору для
чтения и записи (регистр адреса памяти, счетчик байтов, управляющие регистры).
Управляющие регистры задают, какой порт ввода-вывода должен быть использован, направление переноса данных (чтение или запись в устройство ввода-вывода), единицу переноса (побайтно, пословно), а также число байтов, которые следует перенести за одну операцию.
Слайд 30Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
Перед выполнением операции обмена ЦП программирует DMA-контроллер, устанавливая
его регистры (шаг 1).
Затем ЦП дает команду дисковому контролеру прочитать
данные во внутренний буфер и проверить контрольную сумму. После этого процессор продолжает свою работу. Когда данные получены и проверены контроллером диска, DMA может начинать работу.
Слайд 31Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
DMA-контроллер начинает перенос данных, посылая дисковому контроллеру по
шине запрос чтения (шаг 2). Адрес памяти уже находится на
адресной шине, так что контроллер знает, куда пересылать следующее слово из своего буфера.
Запись в память является еще одним стандартным циклом шины (шаг 3). Когда запись закончена, контроллер диска посылает сигнал подтверждения контролеру DMA (шаг 4).
Затем контролер DMA увеличивает используемый адрес памяти и уменьшает значение счетчика байтов.
Слайд 32Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
После этого шаги 2, 3 и 4 повторяются,
пока значение счетчика не станет равным нулю. По завершении цикла
копирования контроллер DMA инициирует прерывание процессора, сообщая ему о завершении операции ввода-вывода.
Особенность работы шины в этом процессе обмена данными. Шина может работать в двух режимах: пословном и поблочном. В первом случае контроллер DMA выставляет запрос на перенос одного слова и получает его. Если процессору также нужна эта шина (в основном он работает с кэш-памятью), ему приходится подождать.
Слайд 33Операционные системы
Цикл процессора
Цикл процессора
Цикл процессора
Ц и к л
к о м а н д ы
Выборка команды
Декодиро-вание команды
Выборка
операнда
Выполнение команды
Сохранение результата
Прерывание процесса
Точка прерывания
Точки прерывания DMA
Цикл процессора
Цикл процессора
Цикл процессора
Этот механизм называется захватом цикла, потому что контроллер устройства периодически забирает случайный цикл шины у центрального процессора, слегка тормозя его.
Слайд 34Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
Приостановка процессора происходит только при необходимости использования шины.
После этого устройство DMA выполняет передачу слова и возвращает управление
процессору.
Однако это не является прерыванием: процессор не сохраняет контекст с переходом к выполнению другого задания. Он просто делает паузу на время одного цикла шины.
Слайд 35Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
В блочном режиме работы контроллер DMA занимает шину
на серию пересылок (пакет). Этот режим более эффективен, однако при
переносе большого блока центральный процессор и другие устройства могут быть заблокированы на существенный промежуток времени.
При большом количестве устройств ввода-вывода от подсистемы ввода-вывода требуется спланировать в реальном масштабе времени (в котором работают внешние устройства) запуск и приостановку большего количества разных драйверов.
Слайд 36Операционные системы
1
1
3
4
2
2
Работа DMA-контроллера
2
С другой стороны, необходимо минимизировать загрузку процессора
задачами ввода-вывода.
Решение этих задач достигается на основе многоуровневой приоритетной схемы
обслуживания прерываний. Для обеспечения приемлемого уровня реакции все драйвера распределяются по нескольким приоритетным уровням в соответствии с требованиями по времени реакции и временем использования процессора. Для реализации приоритетной схемы задействуется общий диспетчер прерываний ОС.
Слайд 37Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Пользовательский процесс
Пользовательский процесс
Пользовательский
процесс
Пользовательский процесс
Ввод
Ввод
Ввод
Ввод
Устройства ввода
Без буферизации
Одинарная буферизация
Двойная буферизация
Циклическая буферизация
Перемещение
Перемещение
Перемещение
T
C
M
Слайд 38Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
При обмене данными
всегда возникает задача согласования скоростей работы устройств. Решение этой задачи
достигается буферизацией данных.
В подсистеме ввода-вывода часто используется буферизация в оперативной памяти.
Однако буферизация только на основе оперативной памяти часто оказывается недостаточной из-за большой разницы скоростей работы оперативной памяти и внешнего устройства объема оперативной памяти может просто не хватить. В этих случаях часто используют в качестве буфера дисковый файл, называемый спул-файлом (пример применения - вывод данных на принтер).
T
C
Слайд 39Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Другим решением проблемы
является использование большой буферной памяти в контроллерах внешних устройств (пример
применения буферная память графических дисплеев).
При рассмотрении различных методов буферизации нужно учитывать, что существует, как отмечалось, два типа устройств - блочные и символьные.
Первые сохраняют информацию блоками фиксированного размера и передают ее поблочно (диски, ленты).
T
C
Слайд 40Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Вторые выполняют передачу
в виде неструктурированных потоков байтов (терминалы, принтеры, манипулятор мыши, сканеры
и др.).
Простейший тип поддержки со стороны ОС - одинарный буфер.
В тот момент, когда пользовательский процесс выполняет запрос ввода-вывода, операционная система назначает ему буфер в системной части оперативной памяти.
Сначала осуществляется передача входных данных в системный буфер.
T
C
Слайд 41Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Когда она
завершится, процесс перемещает блок в пользовательское пространство и немедленно производит
запрос следующего блока.
Такая процедура называется опережающим считыванием или упреждающим вводом.
Улучшить схему одинарной буферизации можно путем использования двух системных. Теперь процесс выполняет передачу данных в один буфер (или считывает из него), в то время как ОС освобождает (или заполняет) другой. Эта технология известна как двойная буферизация, или сменный буфер.
T
C
Слайд 42Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Двойной буферизации
может оказаться недостаточно, если процесс часто выполняет ввод или вывод.
Решить
проблему помогает наращивание количества буферов. Если буферов больше двух, схема именуется циклической буферизацией.
T
C
Слайд 43Операционные системы
Время обработки блока данных
Без буферизации
T + C
Одинарная буферизация max {T, C} + M
в большинстве случаев T + C > max {T, C}
Двойная буферизация max {T, C}
если C <= T, то блочно-ориентированное устройство может работать с максимальной скоростью;
если C > T, то процесс избавляется от необходимости ожидания завершения ввода-вывода.
Буферизация данных позволяет сократить количество реальных операций ввода за счет кэширования данных.
Слайд 44Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Буферы (буфер) являются
критическим ресурсом в отношении внутренних (программных) и внешних процессов (аппаратуры
ввода-вывода), которые при параллельном своем выполнении информационно взаимодействуют.
Через буферы данные либо посылаются от некоторого процесса к адресуемому внешнему (операция вывода данных на внешнее устройство), либо от внешнего процесса передаются некоторому программному процессу (операция считывания данных).
T
C
Слайд 45Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Управления системными буферами
как средствами информационного взаимодействия решается супервизорной частью операционной системы.
Супервизор решает
следующие задачи: выделение и освобождению буферов в системной области памяти; синхронизация процессов в соответствии с состоянием операций заполнения или освобождения буферов; организация ожиданию процессов, если свободных буферов в наличии нет, а запрос на ввод-вывод требует буферизации.
T
C
Слайд 46Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Супервизор ввода-вывода для
решения перечисленных задач использует стандартные средства синхронизации, принятые в данной
операционной системе.
T
C
Слайд 47Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Необходимость кэширования.
Накопители на
магнитных дисках обладают крайне низким быстродействием по сравнению с процессорами
и оперативной памятью.
Средняя скорость работы процессора с оперативной памятью на 2-3 порядка выше, чем средняя скорость передачи данных из внешней памяти на магнитных дисках в оперативную память.
Для того чтобы сгладить такое сильное несоответствие в производительности основных подсистем, используется буферизация и/или кэширование данных в дисковом кэше (disk cache).
T
C
Слайд 48Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Простейший вариантом ускорения
дисковых операций чтения и записи - двойной буферизации. Помимо буферизации
применяется кэширование.
Кэширование полезно в том случае, когда приложение неоднократно читает с диска одни и те же данные. После того как они один раз будут помещены в кэш, обращений к диску больше не потребуется, и скорость работы программы значительно возрастет.
T
C
Слайд 49Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип
действия дискового кэша
Дисковый кэш (упрощенно) есть некий пул буферов, которые
управляются с помощью соответствующего системного процесса.
При чтении какого-то множества секторов, содержащих записи того или иного файла, эти данные, пройдя через кэш, там остаются (до тех пор, пока другие секторы не заменят эти буферы).
Если впоследствии потребуется повторное чтение, то данные могут быть извлечены непосредственно из оперативной памяти без фактического обращения к диску.
T
C
Слайд 50Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип
действия дискового кэша
При записи: данные помещаются в кэш, и для
запросившего эту операцию приложения получается, что фактически они уже записаны.
Приложение может продолжить свое выполнение, а системные внешние процессы через некоторое время запишут данные на диск. Это называется отложенной записью.
Если режим отложенной записи отключен, только одна задача может записывать на диск свои данные. Остальные приложения должны ждать своей очереди.
T
C
Слайд 51Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип
действия дискового кэша
Поскольку количество буферов, составляющих кэш, ограничено, может возникнуть
ситуация, когда считываемые или записываемые данные потребуют замены данных в этих буферах.
При этом возможны различные дисциплины выделения буферов под вновь затребованную операцию кэширования.
T
C
Слайд 52Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип
действия дискового кэша
Упреждающее чтение (read ahead) основано на чтении с
диска гораздо большего количества информации, чем на самом деле запрошено приложением или операционной системой.
Когда процессу требуется считать с диска только один сектор, программа кэширования читает несколько дополнительных блоков данных.
Операции последовательного чтения нескольких секторов несущественно замедляют операцию чтения затребованного сектора с данными.
T
C
Слайд 53Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Устройство и принцип
действия дискового кэша
Если процесс вновь обратится к диску, вероятность того,
что нужные ему данные уже находятся в кэше, будет достаточно высока.
Поскольку передача данных из одной области памяти в другую происходит во много раз быстрее, чем чтение их с диска, кэширование существенно сокращает время выполнения операций с файлами.
T
C
Слайд 54Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Связь буфера и
дискового кэша
Информация от диска к процессу пролегает как через буфер,
так и через дисковый кэш.
Когда процесс запрашивает с диска данные, программа кэширования перехватывает этот запрос и читает вместе с необходимыми секторами еще и несколько дополнительных.
Затем она помещает в буфер требующуюся процессу информацию и ставит об этом в известность операционную систему.
Операционная система сообщает процессу, что его запрос выполнен, и данные с диска находятся в буфере.
T
C
Слайд 55Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Связь буфера и
дискового кэша
При следующем обращении процесса к диску программа кэширования прежде
всего проверяет, не находятся ли уже в памяти затребованные данные.
Если это так, то она копирует их в буфер, если же их в КЭШе нет, то запрос на чтение диска передается операционной системе.
Когда процесс изменяет данные в буфере, они копируются в кэш.
T
C
Слайд 56Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
Увеличение объема
памяти кэша может и не привести к росту быстродействия системы.
Поиск
нужного фрагмента данных в буферах кэша осуществляется путем их полного перебора. Поэтому с ростом числа буферов кэша затраты на их перебор становятся значительными. И поскольку невозможно обеспечить 100-процентного кэш-попадания искомых данных, то естественно наступает момент, когда среднее время доступа к данным перестает снижаться с увеличением кэша.
T
C
Слайд 57Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
Для оптимизации
работы кэша в ряде операционных систем имеется возможность указать в
явном виде параметры кэширования, в то время как в других за эти параметры отвечает сама операционная система.
T
C
Слайд 58Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
В системах
семейства Windows 9.х можно указать:
объем памяти, отводимый для кэширования;
объем порции (ChunkSize) данных, из которых набирается кэш;
предельное количество имен файлов; параметры кэширования каталогов.
T
C
Слайд 59Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
В файле
SYSTEM.INI, расположенном в основном каталоге такой операционной системы (обычно это
каталог Windows), в секции [vcache] есть возможность прописать, например, следующие значения:
[vcache]
MinFileCache=4096
MaxFileCache=32768
ChunkSize=512
T
C
Слайд 60Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
Здесь указано,
что минимально под кэширование данных зарезервировано 4 Мбайт оперативной памяти,
максимальный объем кэша может достигать 32 Мбайт, а размер данных, которыми манипулирует менеджер кэша, равен одному сектору.
T
C
Слайд 61Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
Во всех
ОС от Microsoft принята стратегия активного кэширования файлов, при которой
для кэширования отводится вся свободная память.
Поэтому без явного ограничения объема памяти, отводимой под кэширование файлов, можно столкнуться с ситуацией, когда рост дискового кэша приводит к значительному росту числа страниц памяти, «сброшенных» в файл подкачки, что может привести к заметному замедлению работы системы.
T
C
Слайд 62Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
В операционных
системах Windows NT 4.0, Windows 2000 и Windows ХР также
можно управлять некоторыми параметрами кэширования, задаваемыми в реестре.
Так в разделе [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] реестра параметр IOPageLockLimit задает в байтах объем физической памяти для хранения буферов дискового кэша. Эта память не может быть выгружена в файл подкачки.
T
C
Слайд 63Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизаци кэша
В ОС
от Microsoft кэшируемые файлы отображаются на виртуальное адресное пространство, а
не на физическую память компьютера, как это сделано в других операционных системах. Поэтому некоторые страничные кадры этого виртуального адресного пространства могут быть отображены не на реальную оперативную память компьютера, а размещены в страничном файле подкачки, что может сильно замедлять работу кэша. Блокирование некоторого числа страниц файлового кэша от перемещения их во внешнюю память должно приводить к повышению эффективности кэширования.
T
C
Слайд 64Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
Операционная система может оптимизировать перемещение головок чтения/записи данных, связанное с
выполнением запросов от параллельно выполняющихся задач.
Время, необходимое на получение данных с магнитного диска, складывается из времени перемещения магнитной головки на требуемый цилиндр и времени поиска заданного сектора; а временем считывания найденного сектора и временем передачи этих данных в оперативную память можно пренебречь.
T
C
Слайд 65Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
Основные затраты времени уходят на поиск данных.
В мультипрограммных операционных
системах при выполнении многих задач запросы на чтение и запись данных могут идти таким потоком, что при их обслуживании образуется очередь.
Если выполнять эти запросы в порядке поступления их в очередь, то вследствие случайного характера обращений к тому или иному сектору магнитного диска потери времени на поиск данных могут значительно возрасти.
T
C
Слайд 66Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
Необходимо переупорядочивание этих запросов с целью минимизации затрат времени на
поиск данных.
Применяются следующие дисциплины, в соответствии с которыми можно перестраивать очередь запросов на операции чтения/записи данных.
• SSTF (Shortest Seek Time First — запрос с наименьшим временем позиционирования выполняется первым).
T
C
Слайд 67Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
В соответствии с этой дисциплиной при позиционировании магнитных головок следующим
выбирается запрос, для которого необходимо минимальное перемещение с цилиндра на цилиндр, даже если этот запрос не был первым в очереди на ввод-вывод. Недостатки: сильная дискриминация некоторых запросов; запросы на обращение к самым внешним и самым внутренним дорожкам могут обслуживаться существенно дольше, и нет никакой гарантии обслуживания. Достоинства: максимально возможная пропускная способность дисковой подсистемы.
T
C
Слайд 68Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
• Scan (сканирование). При сканировании головки поочередно перемещаются то в одном,
то в другом «привилегированном» направлении, обслуживая «по пути» подходящие запросы. Если при перемещении головок чтения/записи более нет попутных запросов, то движение начинается в обратном направлении.
T
C
Слайд 69Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
• Next-Step Scan (отложенное сканирование). Отличается от предыдущей дисциплины тем, что
на каждом проходе обслуживаются только те запросы, которые уже существовали на момент начала прохода. Новые запросы, появляющиеся в процессе перемещения головок чтения/записи, формируют новую очередь запросов, причем таким образом, чтобы их можно было оптимально обслужить на обратном ходу.
T
C
Слайд 70Операционные системы
4.2.3. Согласование скоростей обмена и кэширование данных
Оптимизация перемещения головок
НЖМД
• С-Scan (циклическое сканирование). По этой дисциплине головки перемещаются циклически с
самой наружной дорожки к внутренним, по пути обслуживая имеющиеся запросы, после чего вновь переносятся к наружным цилиндрам. Эту дисциплину иногда реализуют таким образом, чтобы запросы, поступающие во время текущего прямого хода головок, обслуживались не попутно, а при следующем проходе, что позволяет исключить дискриминацию запросов к самым крайним цилиндрам.
T
C
Слайд 71Операционные системы
4.2.4. Разделение устройств и данных между процессами
Устройства ввода-вывода могут
предоставляться процессам как в монопольном, так и в разделенном режиме.
При
этом ОС должна обеспечивать контроль доступа теми же способами, что и при доступе процессов к другим ресурсам вычислительной системы - путем проверки прав пользователя или группы пользователей, от имени которых действует процесс, на выполнение той или иной операции над устройством.
Слайд 72Операционные системы
4.2.4. Разделение устройств и данных между процессами
ОС может контролировать
доступ не только к устройству в целом, но и к
отдельным порциям данных, хранимых этим устройством (например, диск). В последнем случае непременным является задание режима совместного использования устройства в целом.
Одно и то же устройство в разные периоды времени может использоваться как в разделяемом, так и монопольном режимах.
Слайд 73Операционные системы
4.2.4. Разделение устройств и данных между процессами
Существуют устройства, для
которых характерен один из этих режимов, например последовательные порты и
алфавитно-цифровые терминалы чаще используются в монопольном режиме, а диск - в режиме совместного доступа.
В случае совместного использования ОС должна оптимизировать последовательность операций ввода-вывода для различных процессов в целях повышения общей производительности.
При разделении устройства между процессами может возникнуть необходимость в разграничении данных процессов друг от друга (последовательные устройства, например принтер).
Слайд 74Операционные системы
4.2.4. Разделение устройств и данных между процессами
Чтобы организовать совместное
использование многими параллельно выполняющимися процессами тех устройств ввода-вывода, которые не
могут быть разделяемыми, вводится понятие виртуальных устройств. Принцип виртуализации позволяет повысить эффективность вычислительной системы.
Слайд 75Операционные системы
4.2.4. Разделение устройств и данных между процессами
Понятие виртуального устройства
шире понятия спулинга. Спулинг – это имитация работы с устройством
в режиме непосредственного подключения к нему).
Основное назначение спулинга — создать видимость разделения устройства ввода-вывода, которое фактически является устройством с последовательным доступом и должно использоваться только монопольно и быть закрепленным за процессом.
Системные процессы, которые управляют спул-файлом, называются спулером чтения (spool-reader) или спулером записи (spool-writer).
Слайд 76Операционные системы
4.2.4. Разделение устройств и данных между процессами
Для таких устройств
организуется очередь заданий на вывод, при этом каждое задание представляет
собой порцию данных, которую нельзя разрывать, например, документ для печати.
Для хранения очереди заданий используется спул-файл, который согласует скорость работы принтера и оперативной памяти и позволяет организовать разбиение данных на логические порции.
Процессы могут одновременно выполнять вывод на принтер, помещая данные в свой раздел спул-файла.
Слайд 77Операционные системы
4.2.4. Разделение устройств и данных между процессами
Достаточно рационально организована
работа с виртуальными устройствами в системах Windows 9x/NT/2000/XP компании Microsoft.
Пример - подсистема печати.
Microsoft различает термины «принтер» и «устройство печати».
Принтер — это некоторая виртуализация, объект операционной системы, а устройство печати — это физическое устройство, которое может быть подключено к компьютеру.
Принтер может быть локальным или сетевым.
Слайд 78Операционные системы
4.2.4. Разделение устройств и данных между процессами
При установке локального
принтера в операционной системе создается новый объект, связанный с реальным
устройством печати через тот или иной интерфейс.
Интерфейс может быть и сетевым, то есть передача управляющих кодов в устройство печати может осуществляться через локальную вычислительную сеть, однако принтер все равно будет считаться локальным.
Локальность принтера означает, что его спул-файл будет находиться на том же компьютере, что и принтер.
Слайд 79Операционные системы
4.2.4. Разделение устройств и данных между процессами
Если же некоторый
локальный принтер предоставить в сети в общий доступ с теми
или иными разрешениями, то для других компьютеров и их пользователей он может стать сетевым. Компьютер, на котором имеется локальный принтер, предоставленный в общий доступ, называется принт-сервером.
Слайд 80Операционные системы
4.2.4. Разделение устройств и данных между процессами
Для получения управляющих
кодов принтера устанавливается программное обеспечение (компания Microsoft называет его высокоуровневым
драйвером).
Эти управляющие коды посылаются на устройство печати по соответствующему интерфейсу через назначенные принтеру порты и управляют работой устройства печати.
При получении операционной системой от приложения запроса на печать она выделяет для этого процесса виртуальный принтер.
Слайд 81Операционные системы
4.2.4. Разделение устройств и данных между процессами
Операционная система закрепляет
за процессом виртуальный принтер, а не устройство печати.
Обработанные драйвером
принтера данные, посланные на него из приложения, как правило (по умолчанию), направляются в спул-файл, откуда они затем передаются на печать по мере освобождения устройства печати и в соответствии с приоритетом локального принтера.
При установке сетевого принтера операционная система устанавливает для этого объекта высокоуровневый драйвер и связывает полученный объект со спулером того компьютера, на котором установлен соответствующий локальный принтер.
Слайд 82Операционные системы
4.2.5. Обеспечение логического интерфейса между устройствами и остальной частью
системы
Разнообразие устройств ввода-вывода делает актуальной функцию операционной системы по созданию
экранирующего логического интерфейса между периферийными устройствами и приложениями.
Практически все современные ОС поддерживают в качестве такого интерфейса файловую модель периферийных устройств, когда любое устройство выглядит для прикладного программиста последовательным набором байт, с которым можно работать с помощью унифицированных системных вызовов (например, read, write), задавая имя файла-устройства и смещение от начала последовательности байт.
Слайд 83Операционные системы
4.2.5. Обеспечение логического интерфейса между устройствами и остальной частью
системы
Привлекательность модели файла-устройства состоит в ее простоте и унифицированности для
устройств любого типа, однако во многих случаях для программирования операций ввода-вывода некоторого устройства она является слишком бедной.
Поэтому данная модель часто используется в качестве базиса, над которым подсистема ввода-вывода строит более содержательную модель устройства конкретного типа.
Слайд 84Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Разнообразный набор драйверов для широкого
круга популярных периферийных устройств - непременное условие популярности ОС у
пользователей.
Для разработки драйверов производителями внешних устройств необходимо наличие четкого, удобного, открытого и хорошо документированного интерфейса между драйверами и другими компонентами ОС.
Драйвер взаимодействует, с одной стороны, с модулями ядра ОС (модулями подсистемы ввода-вывода, модулями системных вызовов, модулями подсистем управления процессами и памятью), а с другой стороны - с контроллерами внешних устройств.
Слайд 85Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Операционная система
Драйвер
Контроллер
Внешнее устройство
Интерфейс драйвер –
устройство (Driver Device Interface, DDI)
Интерфейс драйвер – ядро (Driver Kernel
Interface, DKI)
Аппаратный низкоуровневый интерфейс контроллер - устройство
Поэтому существует два вида интерфейсов: интерфейс «драйвер-ядро» (Driver Kernel Interface, DKI) и интерфейс «драйвер-устройство» (Driver Device Interface).
Слайд 86Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Интерфейс «драйвер-ядро» должен быть стандартизован
в любом случае. Подсистема ввода-вывода может поддерживать несколько различных интерфейсов
DKI/DDI, предоставляя специфический интерфейс для устройств определенного класса.
К наиболее общим классам относятся блочные устройства, например диски и символьные устройства, такие как клавиатура и принтеры. Может существовать класс сетевых адаптеров и др.
В большинстве современных ОС определен стандартный интерфейс, который должен поддерживать все блочные драйверы, и второй стандартный интерфейс, поддерживаемый всеми символьными адаптерами.
Слайд 87Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Эти интерфейсы включают наборы
процедур, которые могут вызываться остальной операционной системой для обращения к
драйверу.
Подсистема ввода-вывода поддерживает большое количество системных функций, которые драйвер может вызывать для выполнения некоторых типовых действий. Например: операции обмена с регистрами контроллера, ведения буферов промежуточного хранения данных ввода-вывода, взаимодействия с DMA-контроллером и контроллером прерываний.
Слайд 88Операционные системы
Функции драйвера
Обработка запросов записи-чтения от программного обеспечения управления устройствами.
Постановка запросов в очередь
Проверка входных параметров запросов и обработка ошибок
Инициализация
устройства и проверка статуса устройства
Управление энергопотреблением устройства.
Регистрация событий в устройстве
Выдача команд устройству и ожидание их выполнения возможно в блокированном состоянии до поступления прерывания от устройства
Проверка правильности завершения операции
Передача запрошенных данных и статуса завершенной операции
Обработка нового запроса при незавершенном предыдущем запросе (для реентерабельных драйверов)
Слайд 89Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Управление устройством подразумевает выдачу
ему серии команд. Именно в драйвере определяется последовательность команд в
зависимости от того, что должно быть сделано.
Определившись с командами, драйвер начинает записывать их в регистры контроллера устройства.
После записи каждой команды в контроллер может быть нужно проверить, принял ли контроллер команду и готов ли принять следующую.
Слайд 90Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Такая последовательность действий продолжается
до тех пор, пока контроллеру не будут переданы все команды.
После
того как драйвер передал все команды контроллеру, ситуация может развиваться по двум сценариям.
Во многих случаях драйвер устройства должен ждать, пока контроллер не выполнит для него определенную работу, поэтому он блокируется до тех пор, пока прерывание от устройства не разблокирует его.
В других случаях операция завершается без задержек и драйверу не нужно блокироваться.
Слайд 91Операционные системы
4.2.6. Поддержка широкого спектра драйверов
В любом случае по
завершении выполнения операции драйвер должен проверить, завершилась ли операция без
ошибок. Если все в порядке, драйверу, возможно, придется передать данные (например, только что прочитанный блок) независимому от устройств программному обеспечению.
Наконец, драйвер возвращает информацию о состоянии для информирования вызывающей программы о статусе завершения операции. Если в очереди находились другие запросы, один из них теперь может быть выбран и запущен. В противном случае драйвер блокируется в ожидании следующего запроса.
Слайд 92Операционные системы
4.2.6. Поддержка широкого спектра драйверов
Для поддержки процесса разработки
драйверов операционной системы выпускается так называемый пакет DDK (Driver Development
Kit), представляющий собой набор инструментальных средств-библиотек, компиляторов и отладчиков.
Слайд 93Операционные системы
4.2.7. Динамическая выгрузка и загрузка драйверов
Так как набор потенциально
поддерживаемых данных ОС периферийных устройств всегда шире набора устройств, которыми
ОС должна управлять при установке на конкретной машине, то ценным свойством ОС является возможность динамически загружать в оперативную память требуемый драйвер (без остановки ОС ) и выгружать его, если надобность в драйвере отпала. Такое свойство ОС может существенно сэкономить системную область памяти.
Слайд 94Операционные системы
4.2.7. Динамическая выгрузка и загрузка драйверов
Альтернативой динамической загрузке драйверов
при изменении текущей конфигурации внешних устройств компьютера является повторная компиляция
кода ядра с требуемым набором драйверов, что создает между всеми компонентами ядра статические связи вместо динамических.
Пример: ранние версии ОС UNIX. При статических вызовах между ядром и драйверами структуры ОС упрощается, но этот подход требует наличие исходных кодов модулей ОС. Кроме того, в этом варианте работающую версию ОС надо остановить и заменить новой, что не всегда допустимо в некоторых применениях.
Слайд 95Операционные системы
4.2.7. Динамическая выгрузка и загрузка драйверов
Поэтому поддержка динамической загрузки
драйверов является практически обязательным требованием для современных универсальных ОС.
Слайд 96Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Для управления всеми операциями
ввода-вывода и отслеживания состояния всех ресурсов, занятых в обмене данными,
операционная система должна иметь соответствующие информационные структуры.
Эти информационные структуры, прежде всего, призваны отображать следующую информацию:
состав устройств ввода-вывода и способы их подключения;
аппаратные ресурсы, закрепленные за имеющимися в системе устройствами ввода-вывода;
Слайд 97Операционные системы
4.2.8. Основные системные таблицы ввода вывода
адреса размещения драйверов
устройств ввода-вывода и области памяти для хранения текущих значений переменных,
определяющих работу с этими устройствами;
области памяти для хранения информации о текущем состоянии устройства ввода-вывода и параметрах, определяющих режимы работы устройства;
данные о текущем процессе, который работает с данным устройством;
Слайд 98Операционные системы
4.2.8. Основные системные таблицы ввода вывода
адреса тех областей
памяти, которые содержат данные, собственно и участвующие в операциях ввода-вывода
(получаемые при операциях ввода данных и выводимые на устройство при операциях вывода данных).
Эти информационные структуры часто называют таблицами ввода-вывода, хотя они, в принципе, могут быть организованы и в виде списков.
Слайд 99Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Каждая операционная система ведет
свои таблицы ввода-вывода, их состав (и количество, и назначение каждой
таблицы) может сильно отличаться.
В некоторых операционных системах вместо таблиц создаются списки, хотя использование статических структур данных для организации ввода-вывода, как правило, приводит к более высокому быстродействию.
Слайд 100Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Первая таблица (или список)
- таблица оборудования (equipment table) содержит информацию обо всех устройствах
ввода-вывода, подключенных к вычислительной системе.
Каждый элемент этой таблицы называется UСВ (Unit Control Block — блок управления устройством ввода-вывода).
Каждый элемент UCB таблицы оборудования, как правило, содержит следующую информацию об устройстве:
тип устройства, его конкретная модель, символическое имя и характеристики устройства;
Слайд 101Операционные системы
4.2.8. Основные системные таблицы ввода вывода
способ подключения устройства
(через какой интерфейс, к какому разъему, какие порты и линия
запроса прерывания используются и т. д.);
номер и адрес канала (и подканала), если такие используются для управления устройством;
информация о драйвере, который должен управлять этим устройством, адреса секции запуска и секции продолжения драйвера;
информация о том, используется или нет буферизация при обмене данными с устройством, «имя» (или просто адрес) буфера, если такой выделяется из системной области памяти;
Слайд 102Операционные системы
4.2.8. Основные системные таблицы ввода вывода
установка тайм-аута и
ячейки для счетчика тайм-аута;
состояние устройства;
поле указателя для связи
задач, ожидающих устройство;
возможно, множество других сведений.
Слайд 103Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Пояснения. Поскольку во многих
операционных системах драйверы могут обладать свойством реентерабельности (это означает, что
один и тот же экземпляр драйвера может обеспечить параллельное обслуживание сразу нескольких однотипных устройств), то в элементе UCB должна храниться либо непосредственно сама информация о текущем состоянии устройства и сами переменные для реентерабельной обработки, либо указание на место, где такая информация может быть найдена.
Слайд 104Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Важнейшим компонентом элемента таблицы
оборудования является указатель на дескриптор той задачи, которая в настоящий
момент использует данное устройство.
Если устройство свободно, то поле указателя будет иметь нулевое значение.
Если же устройство уже занято и рассматриваемый указатель не нулевой, то новые запросы к устройству фиксируются посредством образования списка из дескрипторов задач, ожидающих данное устройство.
Слайд 105Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Вторая системная таблица -
таблица виртуальных логических устройств (Device Reference Table, DRT) — выполняет
установление связи между виртуальными (логическими) устройствами и реальными устройствами, описанными посредством первой таблицы (таблицы оборудования).
DRT позволяет супервизору перенаправить запрос на ввод-вывод из приложения в те программные модули и структуры данных, которые (или адреса которых) хранятся в соответствующем элементе первой таблицы.
Слайд 106Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Во многих многопользовательских системах
таких таблиц несколько: одна общая и по одной на каждого
пользователя, что позволяет строить необходимые связи между логическими устройствами (символьными именами устройств) и реальными физическими устройствами, которые имеются в системе.
Слайд 107Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Третья таблица — таблица
прерываний — необходима для организации обратной связи между центральной частью
и устройствами ввода-вывода.
Эта таблица указывает для каждого сигнала запроса на прерывание тот элемент UCB, который сопоставлен данному устройству.
Каждое устройство либо имеет свою линию запроса на прерывание, либо разделяет линию запроса на прерывание с другими устройствами, но при этом имеется механизм второго уровня адресации устройств ввода-вывода.
Слайд 108Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Таблица прерываний отображает связи
между сигналами запроса на прерывания и самими устройствами ввода-вывода.
Как и
системная таблица ввода-вывода, таблица прерываний в явном виде может и не присутствовать.
Другими словами, можно сразу из основной таблицы прерываний компьютера передать управление на программу обработки (драйвер), связанную с элементом UCB.
Слайд 109Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Взаимосвязи системных таблиц ввода-вывода
Слайд 110Операционные системы
4.2.8. Основные системные таблицы ввода вывода
В ряде сложных операционных
систем (все современные 32-разрядные системы для персональных компьютеров), имеется гораздо
больше системных таблиц или списков, используемых для организации управления операциями ввода-вывода.
Например --- блок управления данными (Data Control Block, DCB).
Слайд 111Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Назначение DCB — подключение
препроцессоров (высокоуровневых драйверов) к процессу подготовки данных на ввод-вывод, то
есть учет конкретных технических характеристик и используемых преобразований.
Это необходимо для того, чтобы имеющееся устройство получало не какие-то непонятные ему коды или форматы данных, не соответствующие режиму его работы, а коды и форматы, созданные специально под данное устройство.
Слайд 112Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Слайд 113Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Шаг 1.
Запрос на операцию ввода-вывода от выполняющейся программы поступает на супервизор
задач.
Этот запрос представляет собой обращение к операционной системе и указывает на конкретную функцию API.
Вызов сопровождается некоторыми параметрами, уточняющими требуемую операцию.
Модуль операционной системы, принимающий от процессов запросы на те или иные действия, часто называют супервизором задач ( Не путать с диспетчером задач!).
Слайд 114Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Шаг
1-1. Супервизор задач проверяет системный вызов на соответствие принятым спецификациям
и в случае ошибки возвращает задаче соответствующее сообщение.
Шаг 2. Если же запрос корректен, то он перенаправляется на супервизор ввода-вывода. Последний по логическому (виртуальному) имени с помощью таблицы DRT находит соответствующий элемент UCB в таблице оборудования.
Слайд 115Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Если устройство
уже занято, то описатель задачи, запрос которой обрабатывается супервизором ввода-вывода,
помещается в список задач, ожидающих это устройство.
Шаг 3. Если же устройство свободно, то супервизор ввода-вывода определяет из UCB тип устройства и при необходимости запускает препроцессор, позволяющий получить последовательность управляющих кодов и данных, которую сможет правильно понять и отработать устройство.
Слайд 116Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Шаг 4.
Когда «программа» управления операцией ввода-вывода будет готова, супервизор ввода-вывода передает
управление соответствующему драйверу на секцию запуска.
Шаг 5. Драйвер инициализирует операцию управления, обнуляет счетчик тайм-аута и возвращает управление супервизору (диспетчеру задач) с тем, чтобы он поставил на процессор готовую к исполнению задачу.
Слайд 117Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Шаг 6.
Когда устройство ввода-вывода отработает посланную ему команду, оно выставляет сигнал
запроса на прерывание, по которому через таблицу прерываний управление передается на секцию продолжения.
Получив новую команду, устройство вновь начинает ее обрабатывать, а управление процессором опять передается диспетчеру задач, и процессор продолжает выполнять полезную работу.
Слайд 118Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
Таким образом,
получается параллельная обработка задач, на фоне которой процессор осуществляет управление
операциями ввода-вывода.
Если имеются специальные аппаратные средства для управления вводом-выводом (каналы прямого доступа к памяти), которые позволяют освободить центральный процессор от этой работы, то в функции центрального процессора будут по-прежнему входить все только что рассмотренные шаги, за исключением последнего — непосредственного управления операциями ввода-вывода.
Слайд 119Операционные системы
4.2.8. Основные системные таблицы ввода вывода
Процесс управления вводом-выводом
В случае
использования каналов прямого доступа в память последние исполняют соответствующие канальные
программы и освобождают центральный процессор от непосредственного управления обменом данными между памятью и внешними устройствами.
Слайд 120Операционные системы
4.2.9. Поддержка синхронных и асинхронных операций ввода-вывода
Операция ввода-вывода может
выполняться по отношению к программному модулю, запросившему операцию, в синхронном
или асинхронном режимах.
Синхронный режим означает, что процесс, выдавший запрос на операцию ввода-вывода, переводится супервизором в состояние ожидания завершения заказанной операции. Когда супервизор получает от секции завершения сообщение о том, что операция завершилась, он переводит процесс в состояние готовности к выполнению, и он продолжает выполняться. (верхняя диаграмма).
Слайд 121Операционные системы
4.2.9. Поддержка синхронных и асинхронных операций ввода-вывода
При асинхронном режиме
ввода-вывода процесс продолжает выполняться в мультипрограммном режиме одновременно с операцией
ввода-вывода (нижняя диаграмма).
Слайд 122Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
P3
Контроллер
Операция ввода-вывода
ПроцессорP2
P1
P2
P3
P2
P1
Завершение операции
ввода-вывода
Контроллер
Операция ввода-вывода
Процессор
P1
P2
P3
P2
P1
Синхронизация (событие, Мьютекс)
P1
P1
P2
P3
P3
P1
P1
Слайд 123Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Простейший вариант асинхронного
вывода - буферизованный вывод данных на внешнее устройство, при котором
данные из приложения передаются в специальный системный буфер — область памяти, отведенную для временного размещения передаваемых данных.
Логически операция вывода для приложения считается выполненной сразу же, и процесс может не ожидать окончания действительного процесса передачи данных на устройство.
Слайд 124Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Реальный вывод данных
из системного буфера выполняет супервизор ввода-вывода.
Выделение буфера из системной
области памяти выполняет специальный системный процесс по указанию супервизора ввода-вывода.
Слайд 125Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Для выполнения асинхронного
ввода данных необходимо выделить область памяти для временного хранения считываемых
с устройства данных и связывать выделенный буфер с процессом, заказавшим операцию.
Сам запрос на операцию ввода-вывода разбивается на две части (на два запроса).
Слайд 126Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
В первом запросе
указывается операция на считывание данных, подобно тому как это делается
при синхронном вводе-выводе, однако тип (код) запроса используется другой, и в запросе указывается еще по крайней мере один дополнительный параметр — имя (код) системного объекта, которое получает процесс в ответ на запрос и которое идентифицирует выделенный буфер.
Слайд 127Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Получив имя буфера,
процесс продолжает свою работу.
В результате запроса на асинхронный ввод данных
процесс остается в состоянии выполнения или в состоянии готовности к выполнению.
Через некоторое время, выполнив необходимый код, процесс выдает второй запрос на завершение операции ввода-вывода.
Слайд 128Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
В этом втором
запросе (имеющем другой код или имя), процесс указывает имя системного
объекта (буфера для асинхронного ввода данных) и в случае успешного завершения операции считывания данных тут же получает их из системного буфера.
Если же данные еще не успели до конца переписаться с внешнего устройства в системный буфер, супервизор ввода-вывода переводит процесс в состояние ожидания завершения операции ввода-вывода.
Слайд 129Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
В этом втором
запросе (имеющем другой код или имя), процесс указывает имя системного
объекта (буфера для асинхронного ввода данных) и в случае успешного завершения операции считывания данных тут же получает их из системного буфера.
Если же данные еще не успели до конца переписаться с внешнего устройства в системный буфер, супервизор ввода-вывода переводит процесс в состояние ожидания завершения операции ввода-вывода.
Слайд 130Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Операция ввода-вывода может
быть инициирована не только пользовательским процессом - в этом случае
операция выполняется в рамках системного вызова, но и кодом ядра, например кодом подсистемы виртуальной памяти для считывания отсутствующей страницы.
Системные вызовы ввода-вывода чаще оформляются как синхронные процедуры в связи с тем, что такие операции длятся долго и пользовательскому процессу или потоку все равно придется ждать получения результатов потоков операции для того, чтобы продолжить свою работу.
Слайд 131Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Внутренние вызовы операций
ввода-вывода из модулей ядра обычно выполняются в виде асинхронных процедур,
так как кодам ядра нужна свобода в выборе дальнейшего поведения после запроса ввода-вывода.
Слайд 132Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Асинхронный ввод-вывод характерен
для большинства мультипрограммных операционных систем, особенно если операционная система поддерживает
мультизадачность с помощью механизма потоков выполнения.
Если асинхронный ввод-вывод в явном виде отсутствует, его можно реализовать программно, организовав для вывода данных отдельный поток выполнения.
Слайд 133Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Аппаратуру ввода-вывода можно
рассматривать как совокупность аппаратных процессоров, способных работать параллельно друг другу,
а также параллельно центральному процессору (процессорам).
На таких «процессорах» выполняются так называемые внешние процессы.
Слайд 134Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Пример: для печатающего
устройства (внешнее устройство вывода данных) внешний процесс может представлять собой
совокупность операций, обеспечивающих перевод печатающей головки, продвижение бумаги на одну позицию, смену цвета чернил или печать каких-то символов.
Слайд 135Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Внешние процессы, используя
аппаратуру ввода-вывода, взаимодействуют как между собой, так и с обычными
«программными» процессами, выполняющимися на центральном процессоре.
Скорости выполнения внешних процессов существенно (порой на порядок или больше) отличаются от скорости выполнения обычных (внутренних) процессов.
Слайд 136Операционные системы
4.2.8. Поддержка синхронных и асинхронных операций ввода-вывода
Для своей нормальной
работы внешние и внутренние процессы должны синхронизироваться.
Для сглаживания эффекта значительного
несоответствия скоростей между внутренними и внешними процессами используют буферизацию.
Слайд 137Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
При большом разнообразии устройств ввода-вывода,
обладающих существенно различными характеристиками, иерархическая структура подсистемы ввода-вывода позволяет соблюсти
баланс между двумя противоречивыми требованиями.
С одной стороны, необходимо учесть все особенности каждого устройства, а с другой стороны, обеспечить единое логическое представление и унифицированный интерфейс для устройств всех типов.
4.3.1. Общая схема
Слайд 138Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
При этом нижние слои подсистемы
ввода-вывода должны включать индивидуальные драйверы, написанные для конкретных физических устройств,
а верхние слои должны обобщать процедуры управления этими устройствами, предоставляя общий интерфейс если не для всех устройств, то по крайней мере для группы устройств, обладающих некоторыми общими характеристиками, например, для принтеров определенного производителя или для всех матричных принтеров и т. п.
4.3.1. Общая схема
Слайд 139Операционные системы
4.3. Многослойная модель подсистемы ввода-вывода
Системные
вызовы
Диспетчер прерываний, функции доступа к аппаратуре
Байт-ориентированный интерфейс
VFS
Блок-ориентированный интерфейс
UFS
NTFS
FAT
Дисковый кэш
Драйвер HD
Драйвер FD
Контроллеры
устройств ввода-вывода
Диски
Графические устройства
Дисковые устройства
Сетевые устройства
Низкоуровневые графические драйверы
Диспетчер окон
Высокоуровневые графические драйверы
HTTP
FTP
SMB
TCP/UDP
SPX
IP
IPX
NetBEUI
Ethernet
FR
ATM
Межмодульный обмен, связывание, буферизация, синхронизация, к другим подсистемам
Слайд 140Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Как видно из рисунка, программное
обеспечение подсистемы ввода-вывода делится не только на горизонтальные слои, но
и на вертикальные. В данном случае в качестве примера приведены три вертикальные подсистемы управления дисками, графическими устройствами и сетевыми адаптерами. Естественно таких подсистем может быть больше.
4.3.1. Общая схема
Слайд 141Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
В каждой вертикальной подсистеме несколько
слоев модулей. Нижний слой образует аппаратные драйверы, управляющие аппаратурой внешних
устройств, осуществляя обмен байтами и блоками байтов.
Функции вышележащих слоев в значительной степени зависят от типа вертикальной подсистемы.
4.3.1. Общая схема
Слайд 142Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Наряду с модулями, отражающими специфику
внешних устройств, в подсистеме ввода-вывода имеются модули универсального назначения.
Эти модули
организуют согласованную работу всех остальных компонентов подсистемы ввода-вывода, взаимодействие с пользовательскими процессами и другими подсистемами ОС.
Эти организующие функции распределены по всем уровням, образуя оболочку, называемую менеджером ввода-вывода.
4.3.1. Общая схема
Слайд 143Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Верхний слой менеджера составляют системные
вызовы ввода-вывода, которые принимают от пользовательских процессов запросы на ввод-вывод
и переадресуют их отвечающим за определенный класс устройств модулям и драйверам, а также возвращают процессам результаты операций ввода-вывода. Этот слой поддерживает пользовательский интерфейс ввода-вывода.
4.3.1. Общая схема
Слайд 144Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Нижний слой менеджера реализует непосредственное
взаимодействие с контроллерами внешних устройств, экранируя драйверы от особенностей аппаратной
платформы компьютера - шин ввода-вывода, системы прерываний и т. п.
Этот слой принимает от драйверов запросы на обмен данными с регистрами контроллеров в некоторой обобщенной форме с использованием независимых от шины ввода-вывода адресации и формата, а затем преобразует эти запросы в зависящий от аппаратной платформы формат.
4.3.1. Общая схема
Слайд 145Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Диспетчер прерываний может входить в
состав менеджера ввода-вывода или представлять отдельный модуль ядра.
В последнем случае
менеджер ввода-вывода выполняет для диспетчера прерываний первичную обработку запросов прерываний, передавая диспетчеру обобщенные сведения об источнике запроса.
Важной функцией менеджера ввода-вывода является создание некоторой среды для остальных компонентов системы, которая бы облегчала их взаимодействие друг с другом.
4.3.1. Общая схема
Слайд 146Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Эта задача решается созданием
стандартного внутреннего интерфейса взаимодействия модулей ввода-вывода.
Это облегчает включение новых драйверов
и файловых систем в состав ОС. Разработчики драйверов и других программных компонентов освобождаются от написания общих процедур.
Все эти функции берет на себя менеджер ввода-вывода.
4.3.1. Общая схема
Слайд 147Операционные системы
4.3. Многослойная модель подсистемы ввода/вывода
Еще одной функцией менеджера ввода-вывода
является организация взаимодействия модулей ввода-вывода с модулями других подсистем ОС,
таких как подсистема управления процессами, виртуальной памятью и другими.
4.3.1. Общая схема
Слайд 148Операционные системы
Первоначально под драйвером понимался программный модуль, который:
входит в
состав ядра ОС, работая в привилегированном режиме;
непосредственно управляет внешним
устройством, взаимодействуя с его контроллером с помощью команд ввода-вывода компьютера;
обрабатывает прерывания от контроллера устройства;
предоставляет прикладному программисту удобный логический интерфейс работы с устройством, экранируя от него низкоуровневые детали управления устройством и организации его данных;
взаимодействует с другими модулями ядра ОС с помощью строго оговоренного интерфейса, описывающего формат передаваемых данных, структуру буферов, способы включения драйвера в состав ОС, способы вызова драйвера, набор общих процедур подсистемы ввода-вывода, которыми драйвер может пользоваться и т. п.
4.3.2. Драйверы
Слайд 149Операционные системы
Согласно этому определению драйвер вместе с контроллером устройства и
прикладной программой воплощали идею многослойного подхода к организации программного обеспечения.
Контроллер
представлял низкий слой управления устройством, выполняющий операции в терминах блоков и агрегатов устройства (например, передвижение головки дисковода, побитную передачу байта по двухпроводному кабелю).
Драйвер выполнял более сложные операции, преобразуя данные, адресуемые в терминах номеров цилиндров, головок и секторов диска, в линейную последовательность блоков.
4.3.2. Драйверы
Слайд 150Операционные системы
По мере развития операционных систем и усложнения структуры подсистемы
ввода-вывода, наряду с традиционными драйверами в ОС появились так называемые
высокоуровневые драйверы, которые располагаются в общей модели подсистемы ввода-вывода над традиционными драйверами.
Традиционные драйверы, которые стали называть аппаратными, низкоуровневыми, или драйверами устройств, освобождаются от высокоуровневых функций и занимаются только низкоуровневыми операциями.
4.3.2. Драйверы
Слайд 151Операционные системы
Эти низкоуровневые операции составляют фундамент, на котором можно
построить тот или иной набор операций в драйверах более высоких
уровней.
При каком подходе повышается гибкость и расширяемость функции по управлению устройством. Если различным приложениям необходимо работать с различными логическими модулями одного и того же физического устройства, то для этого в системе достаточно установить несколько драйверов на одном уровне, работающих над одним аппаратным драйвером.
4.3.2. Драйверы
Слайд 152Операционные системы
Несколько драйверов, управляющих одним устройством, но на разных уровнях,
можно рассматривать как один многоуровневый драйвер.
Высокоуровневые драйверы оформляются по тем
же правилам и придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы. Как правило, высокоуровневые драйверы не вызываются по прерываниям, так как взаимодействуют с устройством через посредничество аппаратных драйверов.
В модулях подсистемы ввода-вывода кроме драйверов могут присутствовать и другие модули, например дисковый кэш.
4.3.2. Драйверы
Слайд 153Операционные системы
Другим примером модуля, который чаще всего не оформляется
в виде драйвера, является диспетчер окон графического интерфейса.
Иногда этот модуль
вообще выносится из ядра ОС и реализуется в виде пользовательского интерфейса (Windows NT 3.5 и 3.51). Этот микроядерный подход заметно замедляет графические операции, поэтому в Windows 4.0 диспетчер окон и высокоуровневые графические драйверы, а также графическая библиотека GDI были перенесены в пространство ядра.
4.3.2. Драйверы
Слайд 154Операционные системы
Аппаратные драйверы после запуска операции ввода-вывода должны своевременно
реагировать на завершение контроллером заданного действия путем взаимодействия с системой
прерывания.
Драйверы более высоких уровней вызываются не по прерываниям, а по инициативе аппаратных драйверов или драйверов вышележащего уровня.
Не все процедуры аппаратного драйвера нужно вызывать по прерываниям, поэтому драйвер обычно имеет определенную структуру, в которой выделяется секция обработки прерываний (Interrupt Service Routine, ISR), которая и вызывается от соответствующего устройства диспетчером прерываний.
4.3.2. Драйверы
Слайд 155Операционные системы
В унификацию драйверов большой вклад внесла ОС UNIX,
в которой все драйверы были разделены на два класса: блок-ориентированные
(Block-oriented) и байт-ориентированные (Character-oriented) драйверы.
Блок-ориентированные драйверы управляют устройствами прямого доступа, которые хранят информацию в блоках фиксированного размера, каждый из которых имеет свой адрес.
Устройства, с которыми работают байт-ориентированные драйверы, не адресуют данные и не позволяют производить операции поиска данных, они генерируют или потребляют последовательность байта (терминалы, принтеры, сетевые адаптеры и т. п.).
4.3.2. Драйверы
Слайд 156Операционные системы
Однако не все устройства, управляемые подсистемой ввода-вывода можно
разделить на блок- и байт-ориентированные.
Для таких устройств (например, таймера) нужен
специфический драйвер.
ОС UNIX сделала очень важный шаг по унификации операций и структуризации программного обеспечения ввода-вывода.
В ОС UNIX все устройства рассматриваются как виртуальные (специальные) файлы, что дает возможность использовать общий набор базовых операций ввода-вывода для любых устройств независимо от их специфики.
4.3.2. Драйверы
Слайд 157Операционные системы
Подобная идея реализована позже в MS DOS, где последовательные
устройства - монитор, принтер и клавиатура считаются файлами со специальными
именами: con, prn.
4.3.2. Драйверы
Слайд 159Операционные системы
4.4. Файловая система
4.4.1. Основные понятия. Цели и задачи файловой
системы
Причины создания файловых систем:
Необходимость длительного (иногда вечного) и надежного хранения
больших объемов информации.
Обеспечение возможности совместного использования информации различными приложениями. Эффективное разделение, защита и восстановление данных.
Решение этих проблем заключается в хранении информации в файлах.
Файл – это поименованная совокупность данных, хранящаяся на каком-либо носителе информации.
Слайд 160Операционные системы
4.4. Файловая система
4.4.1. Основные понятия. Цели и задачи файловой
системы
При рассмотрении файлов используются следующие понятия:
Поле (field) – основной элемент
данных, содержит единственное значение, имеет тип и длину, может быть фиксированной и переменной длины. Идентифицируется именем.
Запись (record) – набор связанных полей, которые могут обрабатываться как единое целое. Могут быть фиксированной и переменной длины
Файл (file) – совокупность однородных записей. Обращение к файлу производится по имени.
База данных (database) – набор связанных данных, представленных совокупностью файлов
Слайд 161Операционные системы
Файловая система – это часть операционной системы, включающая:
совокупность всех
файлов на различных носителях информации (магнитные диски, магнитные ленты, CD-ROM
и т. п.);
наборы структур данных, используемых для управления файлами (каталоги и дескрипторы файлов, таблицы распределения свободного и занятого пространства носителей информации);
комплекс системных программных средств, реализующих различные операции над файлами (создание, чтение, запись, уничтожение, изменение свойств и др.).
Слайд 162Операционные системы
Задачи файловой системы
соответствие требованиям управления данными и требованиям
со стороны пользователей, включающим возможности хранения данных и выполнения операций
с ними;
гарантирование корректности данных, содержащихся в файле;
оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика);
поддержка ввода-вывода для различных типов устройств хранения информации;
минимизация или полное исключение возможных потерь или повреждений данных;
защита файлов от несанкционированного доступа;
обеспечение поддержки совместного использования файлов несколькими пользователями (в том числе средства блокировки файла и его частей, исключение тупиков, согласование копий и т. п.);
обеспечение стандартного набора подпрограмм интерфейса ввода-вывода.
Слайд 163Операционные системы
Требования к файловой системе со стороны пользователя диалоговой системы
общего назначения
1. Создание, удаление, чтение и изменения файлов.
2.
Контролируемый доступ к файлам других пользователей.
3. Управление доступом к своим файлам.
4. Реструктурирование файлов в соответствии с решаемой задачей.
5. Перемещение данных между файлами.
6. Резервирование и восстановление файлов в случае повреждения.
7. Доступ к файлам по символическим именам.
Слайд 164Операционные системы
4.4.2. Архитектура файловой системы
Файловая система позволяет программам обходиться набором
достаточно простых операций для выполнения действий над некоторым абстрактным объектом,
представляющим файл.
При этом программистам не нужно иметь дело с деталями действительного расположения данных на диске, буферизацией данных и другими низкоуровневыми проблемами передачи данных с запоминающего устройства. Все эти функции файловая система берет на себя.
Файловая система распределяет дисковую память, поддерживает именование файлов, отображает имена файлов в соответствующие адреса во внешней памяти, обеспечивает доступ к данным, поддерживает разделение, защиту, восстановление данных.
Слайд 165Операционные системы
4.4.2. Архитектура файловой системы
Таким образом, файловая система играет роль
промежуточного слоя, экранизирующего все сложности физической организации долговременного хранилища данных
и создающего для программ более простую логическую модель этого хранилища, а затем предоставляя им набор удобных в использовании команд для манипулирования файлами.
Слайд 166Операционные системы
4.4.2. Архитектура файловой системы
Смешанный файл
Последова- тельный
Индексно- последовате- ный
Индексиро-ванный
Прямого доступа
Пользовательская программа
Логический ввод - вывод
Диспетчер (супервизор) базового
ввода - вывода
Базовая файловая система (уровень физического ввода-вывода)
Д Р А Й В Е Р Ы
Методы доступа
Доступ к записям
Выбор устройства, пла-нирование распределе-ния внешней памяти
Буферизация, обмен блоками
Инициализация, выпол-нение и завершение опе-рации
Слайд 167Операционные системы
4.4.2. Архитектура файловой системы
На нижнем уровне драйверы устройств непосредственно
связаны с периферийными устройствами или их контроллерами либо каналами. Драйвер
устройства отвечает за начальные операции ввода-вывода устройства и за обработку завершения запроса ввода-вывода.
При файловых операциях контролируемыми устройствами являются дисководы и стримеры (накопители на МЛ).
Драйверы устройств рассматриваются как часть операционной системы.
Следующий уровень называется базовой файловой системой, или уровнем физического ввода-вывода. Это первичный интерфейс с окружением (периферией) компьютерной системы.
Слайд 168Операционные системы
4.4.2. Архитектура файловой системы
Он оперирует блоками данных, которыми
обменивается с дисками, магнитной лентой и другими устройствами. Поэтому он
связан с размещением и буферизацией блоков в оперативной памяти. На этом уровне не выполняется работа с содержимым блоков данных или структурой файлов. Базовая файловая система обычно рассматривается как часть операционной системы. (В MS DOS эти функции выполняет BIOS, не относящийся к ОС.)
Диспетчер базового ввода-вывода отвечает за начало и завершение файлового ввода-вывода. На этом уровне поддерживаются управляющие структуры, связанные с устройством ввода-вывода, планированием и статусом файлов.
Слайд 169Операционные системы
4.4.2. Архитектура файловой системы
Диспетчер осуществляет выбор устройства, на
котором будет выполняться операция файлового ввода-вывода, планирование обращения к устройству
(дискам, лентам), назначение буферов ввода-вывода и распределение внешней памяти. Диспетчер базового ввода-вывода является частью ОС.
Логический ввод-вывод предоставляет приложениям и пользователям доступ к записям. Он обеспечивает возможности общего назначения по вводу-выводу записей и поддерживает информацию о файлах.
Слайд 170Операционные системы
4.4.2. Архитектура файловой системы
Наиболее близкий к пользователю
уровень ФС часто называется методом доступа.
Он обеспечивает стандартный интерфейс между
приложениями и файловыми системами и устройствами, содержащими данные.
Различные методы доступа отражают различные структуры файлов и различные пути доступа и обработки данных.
Слайд 171Операционные системы
4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование
и атрибуты файлов
Обычные файлы (регулярные файлы) – содержат информацию, занесенную
пользователем, системной или прикладной программой. Подразделяются на ASCII файлы, состоящие из текстовых строк, и двоичные файлы, имеющие определенную внутреннюю структуру, известную приложению, использующему данный файл.
Каталоги – системные файлы, поддерживающие структуру файловой системы. Содержат системную справочную информацию о наборе файлов, сгруппированных пользователем по какому-либо признаку. Во многих ОС в каталог могут другие файлы, в том числе другие каталоги.
Специальные файлы – фиктивные файлы, ассоциированные с устройствами ввода-вывода и используемые для унификации доступа к последовательным устройствам ввода-вывода.
Именованные конвейеры (каналы) – циклические буферы, позволяющие выходной файл одной программы соединить со входным файлом другой программы.
Слайд 172Операционные системы
4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование
и атрибуты файлов
Отображаемые файлы – обычные файлы, отображаемые на адресное
пространство процесса по указанному виртуальному адресу.
Файлы относятся к абстрактному механизму. Они предоставляют способ сохранять информацию на запоминающем устройстве и считывать ее позднее снова. При этом от пользователя должны скрываться такие детали, как способ и место хранения информации, а также детали работы устройства.
Наиболее важной характеристикой любого механизма абстракции является именование управляемых объектов. Правила именования файлов зависят от ОС, но в основном, все современные операционные системы поддерживают использование в качестве имен файлов 8-символьные текстовые строки.
Слайд 173Операционные системы
4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование
и атрибуты файлов
Часто в именах разрешается использование цифр и
специальных символов. В некоторых файловых системах различаются прописные и строчные символы, тогда как в других, например в MS DOS, нет.
Во многих ОС имя файла состоит из двух частей, разделенных точкой. Часть имени после точки называется расширением файла и обычно означает его тип. Так, в MS DOS имя файла может содержать от 1 до 8 символов, а расширение от 0 (отсутствует) до 3.
В некоторых ОС, например Windows, расширение указывает на программу, создавшую файл.
Другие ОС, например UNIX, не принуждают пользователя строго придерживаться расширений.
Слайд 174Операционные системы
4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование
и атрибуты файлов
В иерархически организованных файловых системах обычно используются
три типа имен файлов: простые, составные и относительные.
Простое (короткое) символьное имя идентифицирует файл в пределах одного каталога. Несколько файлов могут иметь одно и то же простое имя, если они принадлежат разным каталогам.
Составное (полное) символьное имя представляет собой цепочку, содержащую имя диска и имена всех каталогов, через которые проходит путь от корневого каталога до данного файла.
Слайд 175Операционные системы
4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование
и атрибуты файлов
Относительное имя файла определяется через текущий каталог,
т. е. каталог, в котором в данный момент времени работает пользователь. Таким образом, относительных имен у файла может быть достаточно много, и все они являются частью полного имени.
Понятие файла включает не только хранимые им данные и имя, но и информацию, описывающую свойства файла. Эта информация составляет атрибуты (дескриптор) файла. Список атрибутов может быть различным в различных ОС. Пример возможных атрибутов приведен ниже.
Пользователь может получить доступ к атрибутам, используя средства, предоставляемые для этой цели файловой системой. Обычно разрешается читать значение любых атрибутов, а изменять только некоторые.
Слайд 176Операционные системы
4.4.3. Организация файлов и доступ к ним
4.4.3.1. Типы, именование
и атрибуты файлов
Значения атрибутов файлов могут содержаться в каталогах,
как это сделано, например, в MS DOS.
Другим вариантом является размещение атрибутов в специальных таблицах, в этом случае в каталогах содержатся ссылки на эти таблицы.
Слайд 177Операционные системы
Атрибут
Значение
Тип файла
Обычный, каталог, специальный и т. д.
Владелец файла Текущий владелец
Создатель файла Идентификатор пользователя, создавшего файл
Пароль Пароль для получения доступа к файлу
Время Создания, последнего доступа, последнего изменения
Текущий размер файла Количество байтов в записи
Максимальный размер Количество байтов, до которого можно увеличивать размер файла
Флаг «только чтение» 0 – чтение-запись, 1 – только чтение
Флаг «скрытый» 0 – нормальный, 1 – не показывать в перечне файлов каталога
Флаг «системный» 0 – нормальный, 1 – системный
Флаг «архивный» 0 – заархивирован, 1- требуется архивация
Флаг ASCII/двоичный 0 – ASCII, 1 – двоичный
Флаг произвольного доступа 0 – только последовательный доступ, 1 – произвольный доступ
Флаг «временный» 0 – нормальный, 1 – удаление после окончания работы процесса
Позиция ключа Смещение до ключа в записи
Длина ключа Количество байтов в поле ключа
Слайд 178Операционные системы
4.4.3.2. Логическая организация файлов
В общем случае данные, содержащиеся в
файле, имеют некоторую логическую структуру. Эта структура (организация) файла является
базой при разработке программы, предназначенной для обработки этих данных. Поддержание структуры данных может быть целиком возложено на приложение, либо в той или иной степени эту работу может взять на себя файловая система.
Поле
Слайд 179Операционные системы
4.4.3.2. Логическая организация файлов
Все действия, связанные со структуризацией и
интерпретацией содержимого файла целиком относятся к ведению приложения, файл представляется
файловой системе неструктурированной последовательностью данных. Приложение формирует запросы к файловой системе на ввод/вывод, используя общие для всех приложений системные средства, например, указывая смещение от начала файла и количество байт, которые необходимо считать или записать. Поступивший к приложению поток байт интерпретируется в соответствии с заложенной в программе логикой. Интерпретация данных никак не связана с действительным способом их хранения в файловой системе.
Поле
Модель 1. Неструктурированная последовательность байт (ОС UNIX).
Слайд 180Операционные системы
4.4.3.2. Логическая организация файлов
Неструктурированная модель файла позволяет легко организовать
разделение файла между несколькими приложениями, поскольку разные приложения могут по-своему
структурировать и интерпретировать данные, содержащиеся в файле.
Поле
Модель 1. Неструктурированная последовательность байт (ОС UNIX).
Слайд 181Операционные системы
4.4.3.2. Логическая организация файлов
В этом случае поддержание структуры файла
поручается файловой системе. Файловая система видит файл как упорядоченную последовательность
логических записей. ФС предоставляет приложению доступ к записи, а вся дальнейшая обработка данных, содержащихся в этой записи, выполняется приложением.
Поле
Модель 2. Структурированный файл : смешанный, последовательный, индексно-последовательный, индексированный, прямого доступа.
Слайд 182Операционные системы
4.4.3.2. Логическая организация файлов
Смешанный файл
Поле 1
Поле 2
Поле 3
Поле 1
Поле
1
Поле 2
Поле 2
Поле 3
Достоинства: рациональное использование дискового пространства, хорошо подхо-дят
для полного перебора
Недостатки: сложность встав-ки и обновления записей
Каждое поле описывает само себя (имя, длина, значение). Длина указывается явно либо посредством разделителя Доступ – полный перебор всех записей файла.
Данные накапливаются в порядке поступления, когда запись состоит из одного пакета данных. Записи могут иметь различные или одинаковые поля, расположенные в различном порядке.
Смешанные файлы используются в том случае, когда данные накапливаются и сохраняются перед обработкой, или если данные неудобны для организации.
Слайд 183Операционные системы
4.4.3.2. Логическая организация файлов
Последовательный файл
Поле 1
Поле 1
Поле 1
Поле 2
Поле
2
Поле 2
Поле 3
Поле 3
Поле 3
Достоинства: оптимальный вариант для пакетных приложений,
записи хранятся в ключевой последовательности (в алфавитном порядке для текстового ключа и в числовом – для числового), возможно хранение на диске и МЛ. Возможна организация в виде списка, что упрощает вставку новых записей.
Для записей используется фиксированный формат. Записи имеют одну длину, одни и те же поля и хранят только значения полей. Одно поле – ключевое, оно однозначно идентифицирует запись. Атрибуты файловой структуры: имя и длина каждого поля.
Недостатки: малоэффективен для диалоговых приложений
Слайд 184Операционные системы
4.4.3.2. Логическая организация файлов
Последовательный файл
Обычно последовательный файл сохраняется с
последовательной организацией записей внутри блока, т. е. физическая организация файла
в точности соответствует логической.
Новые записи размещаются в отдельном смешанном файле, называемом журнальным файлом или файлом транзакции.
Периодически в пакетном режиме выполняется слияние основного и журнального файлов в новый файл с корректной последовательностью ключей.
Альтернативной организацией может быть физическая организация в виде списка с использованием указателей.
Слайд 185Операционные системы
4.4.3.2. Логическая организация файлов
Последовательный файл
В каждом физическом блоке сохраняется
одна или несколько записей, и каждый блок содержит указатель на
следующий блок.
Для вставки новых записей достаточно изменить указатели, и нет необходимости в том, чтобы новые записи занимали определенную физическую позицию.
Это удобство достигается за счет определенных накладных расходов и дополнительной работы.
Если в последовательном файле записи имеют одну и ту же длину, то можно вычислить адрес требуемой записи по ее номеру, номеру текущей записи и длине записи.
Если записи имеют переменную длину, такой подход невозможен.
Слайд 186Операционные системы
Индексно-последовательный файл
Файл состоит из трех частей (файлов): главный файл,
содержащий записи с последовательно идущими ключами, индексный файл, содержащий индексное
поле и указатель в главный с ключами, файл переполнения.
Слайд 187Операционные системы
Индексно-последовательный файл
Индекс
Указатель
123………….
1000
0
2000
3000
Адрес 1
Адрес 2
Адрес 3
Индексный файл
0001
1000
1001
Ключ
Поля записи
Указатель на файл
переполнения
Файл переполнения
1
2
3
Главный файл
Достоинства: сокращение времени доступа при увеличении уровней индексации.
Недостатки: 1. Эффективная работа с файлом ограничена работой с ключевым полем. 2. Дополнительные затраты времени на периодическое слияние с файлом переполнения.
Слайд 188Операционные системы
Индексно-последовательный файл
Для поиска нужной записи по ее ключу сначала
выполняется поиск в индексном файле. После того как в нем
найдено наибольшее значение ключа, которое не превышает искомое, продолжается поиск в главном файле.
При использовании многоуровневой индексации нижний уровень индексного файла рассматривается как последовательный файл, для которого создается индексный файл верхнего уровня.
Дополнения к файлу обрабатываются следующим образом. В каждой записи главного файла содержится дополнительное поле, невидимое для приложения и являющееся указателем на файл переполнения. Если в файле производится вставка новой записи, она добавляется в файл переполнения.
Слайд 189Операционные системы
Индексно-последовательный файл
Запись в главном файле, непосредственно предшествующая новой
записи в логической последовательности, обновляется и указывает на новую запись
в файле переполнения.
Время от времени выполняется слияние индексно-последовательного файла с файлом переполнения.
Слайд 190Операционные системы
Индексированный файл
Для достижения гибкости необходимо использование большого количества индексов,
по одному для каждого типа поля, которое может быть объектом
поиска. В обобщенном индексированном файле доступ к записям осуществляется только по их индексам.
В результате в размещении записей нет никаких ограничений до тех пор, пока указатель, по крайней мере, в одном индексе ссылается на эту запись. Кроме того, в таком файле легко реализуются записи переменной длины.
Индексированные файлы используются теми приложениями, в которых время доступа к информации является критической характеристикой и редко требуется обработка всех записей в файле.
Слайд 191Операционные системы
Индексированный файл
Типы индексов:
1. Полный индекс – содержит по
одному элементу для каждой записи главного файла.
2. Частный индекс содержит
элементы для записей, в которых имеется интересующее пользователя поле.
3. При добавлении новой записи в главный файл необходимо обновлять все индексные файлы.
4. Индексы организуются в виде последовательных файлов.
Достоинство: быстрый доступ. Недостатки: большая избыточность данных, неэффективность обработки всех записей файла.
Полный индекс 1
Полный индекс 2
Частичный индекс
Основной файл (записи переменной длины)
Файл прямого доступа
1. Обеспечивает прямой доступ к любой записи фиксированной длины по известному адресу (ключу) при хранении файлов на диске.
2. Достоинства: быстрый доступ к любой записи, простота вставки, удаления и модификации записей.
3. Недостатки: записи фиксированной структуры и длины.
Слайд 192Операционные системы
4.4.4. Каталоговые системы
Корневой каталог
Файлы
Корневой каталог
User 1
User 2
User 3
ДЕРЕВО
Корневой каталог
User
1
User 1
User 2
User 3
СЕТЬ
Один файл – одно полное имя
Один файл
– много полных имен
Файловый каталог является связующим звеном между системой управления файлами и набором файлов
Слайд 193Операционные системы
4.4.4. Каталоговые системы
Простейшая форма системы каталогов состоит в том,
что имеется один каталог, в котором содержатся все файлы. Каталог
содержит информацию о файлах, включая атрибуты, местоположение, принадлежность. Пользователи обращаются к файлам по символьным именам.
Современные каталоговые системы имеют иерархическую структуру. Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог и сеть, если файл может входить в несколько каталогов.
В MS DOS и Windows каталоги образуют древовидную структуру, а в UNIX - сетевую.
Слайд 194Операционные системы
4.4.4. Каталоговые системы
В общем случае вычислительная система может иметь
несколько дисковых устройств, даже в ПК всегда имеется несколько дисков:
гибкий, винчестер, CD-ROM (DVD). Как организовать хранение файлов в этом случае?
Первый способ. На каждом из устройств размещается автономная файловая система, т. е. файлы, находящиеся на этом устройстве, описываются деревом каталогов, никак не связанным с деревьями каталогов на других устройствах. В таком случае для однозначной идентификации файла пользователь вместе с составным символьным именем файла должен указывать идентификатор логического устройства. Примером такого автономного существования может служить MS DOS, Windows 95/98/Me.
Слайд 195Операционные системы
4.4.4. Каталоговые системы
Второй способ. Такая организация хранения файлов, при
которой пользователю предоставляется возможность объединить файловые системы, находящиеся на разных
устройствах, в единую файловую систему, описываемую единым деревом каталогов. Такая операция называется монтированием.
Слайд 196Операционные системы
Файловая система 1
Файловая система 2
Общая файловая система после монтирования
Обычный
файл
Каталог
Специальный файл-устройство
Монтирование
/ (root)
/ (root)
/ (root)
dev
dev
t
t
t
r
r
r
user
user
home
home
bin
bin
man
man
loc
loc
man1
man1
man2
man2
f1
f1
f2
f2
Слайд 197Операционные системы
4.4.4. Каталоговые системы
В ОС UNIX монтирование осуществляется следующим образом.
Среди всех имеющихся логических дисковых устройств выделяется одно, называемое системным.
Пусть имеются две файловые системы, расположенные на разных логических дисках, причем один из дисков является системным.
Файловая система, расположенная на системном диске, называется корневой. Для связи иерархий файлов в корневой файловой системе выбирается некоторый существующий каталог, в данном примере - каталог lос. После выполнения монтирования выбранный каталог lос становится корневым каталогом второй файловой системы. Через этот каталог монтируемая файловая система подсоединяется как поддерево к общему дереву.
Слайд 198Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Принцип
размещения файлов, каталогов и системной информации на реальном устройстве описывается
физической организацией файловой системы. При этом ясно, что разные файловые системы имеют разную физическую организацию.
Основным устройством для хранения файлов являются жесткие и гибкие магнитные диски.
Структура жесткого диска. Состоит из одной или нескольких стеклянных или металлических пластин, каждая из которых покрыта с одной стороны или двух сторон магнитным материалом.
На каждой стороне каждой пластины размечены тонкие концентрические кольца - дорожки (tracks), на которых хранятся данные.
Слайд 199Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Нумерация дорожек начинается с 0 от внешнего края к центру
диска.
Когда диск вращается, магнитные головки, имеющиеся над (под) каждой поверхностью диска, считывают или записывают двоичные данные на магнитные дорожки.
Головки могут позиционировать над каждой дорожкой, если на одну поверхность диска в устройстве имеется одна головка. Некоторые диски имеют по отдельной головке на каждую дорожку, тогда позиционирования головок не требуется, что повышает быстродействие диска.
Слайд 200Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Совокупность дорожек одного радиуса на всех поверхностях пластин пакета называется
цилиндром (cylinder).
Каждая дорожка разбивается на фрагменты, называемые секторами (sectors) или блоками (blocks), так что все дорожки имеют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для данной системы размер, выражающийся степенью двойки (чаще всего 512 байт).
Сектор - наименьшая адресуемая единица обмена данными диска с оперативной памятью. Для того чтобы контроллер мог найти на диске нужный сектор, ему необходимо задать все составляющие адреса сектора: номер цилиндра, номер поверхности и номер сектора.
Слайд 201Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Операционная
система при работе с диском использует, как правило, единицу дискового
пространства, называемую кластером (cluster) и содержащую несколько смежных секторов в числе, кратном степени двойки.
Дорожки и секторы создаются в результате выполнения процедуры физического (низкоуровнего) форматирования диска, предшествующей использованию диска. Для определения границ блоков на диск записывается идентификационная информация.
Низкоуровневый формат диска не зависит от типа ОС, которая этот диск будет использовать.
Слайд 202Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Разметку
диска под конкретный тип файловой системы выполняют процедуры высокоуровнего, или
логического форматирования. При высокоуровневом форматировании определяется размер кластера, записывается информация, необходимая для работы файловой системы и загрузчик ОС - небольшая программа, которая начинает процесс инициализации операционной системы после включения питания.
Прежде чем форматировать диск под определенную файловую систему, он может быть разбит на разделы. Раздел - это непрерывная часть физического диска, которую операционная система предоставляет пользователю как логическое устройство (логический диск или логический раздел). На каждом разделе может создаваться только одна файловая система.
Слайд 203Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
В
IBM-совместных ПК сектор 1 диска называется главной загрузочной записью (MBR
- Master Boot Record) и используется для загрузки компьютера.
В конце MBR содержится таблица разделов. В ней хранятся начальные и конечные адреса (номера блоков) каждого раздела.
Один из разделов помечен в таблице как активный. При загрузке компьютера BIOS считывает и исполняет MBR-запись, после чего загрузчик в MBR-записи определяет активный раздел диска, считывает его первый блок (загрузчик) и исполняет его.
Программа, находящаяся в загрузочном блоке, загружает операционную систему, содержащуюся в этом разделе.
Слайд 204Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Для единообразия каждый дисковый раздел начинается с загрузочного блока, даже
если в нем не содержится операционной системы. К тому же в этом разделе может быть в дальнейшем установлена операционная система, поэтому зарезервированный загрузочный блок оказывается полезным.
Таблица разделов располагается в MBR по смещению Ox1BE и содержит четыре элемента. Структура записи элемента таблицы разделов приведена ниже.
Слайд 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
Слайд 206Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Каждый элемент таблицы описывает один раздел, причем двумя способами: через
координаты C-H-S начального и конечного секторов, а также через номер первого сектора в спецификации LBA (Logical Block Addressing) и общее число секторов в разделе. Последние два байта MBR имеют значение 55AAh, т. е. чередующиеся значения 0 и 1. Эта сигнатура выбрана для того, чтобы проверить работоспособность всех линий передачи данных. Значение 55AAh, присвоенное последним двум байтам, имеется во всех загрузочных секторах.
Разделы дисков могут быть двух типов: первичные (primary) и расширенные (extended). Максимальное число разделов равно четырем. Из них только один может быть активным.
Слайд 207Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Загрузчику,
расположенному в активном разделе, передается управление при включении компьютера с
помощью внесистемного загрузчика. Согласно принятым спецификациям, на одном жестком диске может быть только один расширенный раздел, который может быть разделен на логические диски.
Расширенный раздел содержит вторичную запись MBR, в состав которой вместо таблицы разделов входит аналогичная ей таблица логических дисков (logical Disks Table, LDT). Эта таблица описывает размещение и характеристики раздела, содержащего единственный логический диск, а также может специфицировать следующую запись SMBR (Secondary MBR).
Слайд 208Операционные системы
Первичный раздел
Расширенный раздел
Не использован
Не использован
Главная таблица разделов
Master Boot Record
Загрузочный
сектор диска C:
Карта дискового пространства
Данные
Первичный раздел (диск C:)
Данные
Карта дискового пространства
Secondary
Master Boot Record
Загрузочный сектор диска D:
Secondary Master Boot Record
Загрузочный сектор диска D:
Карта дискового пространства
Данные
Логический диск D:
Логический диск E:
Расширенный раздел
Логический диск D:
Логический диск E:
Адрес таблицы для диска E:
0 – конец цепочки
Не использован
Не использован
Не использован
Не использован
Первая таблица логического диска
Вторая таблица логического диска
Разбиение диска на разделы
Слайд 209Операционные системы
4.6. Физическая организация файловой системы
4.6.1. Информационная структура магнитных дисков
Во
всем остальном строение раздела диска меняется от системы к системе.
Часто файловая система содержит некоторые элементы, как показано на рисунке ниже.
Один из таких элементов называется суперблоком и содержит ключевые параметры файловой системы и считывается в память при загрузке компьютера.
Следом располагается информация о свободных блоках файловой системы.
За этими данными может следовать информация об i-узлах, содержащих информацию о файлах.
Следом может размещаться корневой каталог, а затем остальные файлы и каталоги.
На разных логических устройствах одного и того же физического диска могут располагаться файловые системы разного типа.
Слайд 210Операционные системы
4.6. Физическая организация файловой системы
A:
Р А З Д Е
Л Ы (первичные и расширенные)
Загрузочный блок
MBR
Таблица разделов
С:
D:
E:
Суперблок –таблица параметров
Карта дискового
пространства
i-узлы
Каталоги и файлы
Корневой каталог
Системная область
Область данных
З
С
NSB
NSB (Non –System Bootstrap) – внесистемный загрузчик
4.6.1. Информационная структура магнитных дисков
Слайд 211Операционные системы
4.6.2. Физическая организация и адресация файла
Критерии эффективности физической организации
файла:
скорость доступа к данным;
объем адресной информации файла;
степень
фрагментированности дискового пространства;
максимально возможный размер файла.
Возможные схемы размещения файлов:
- непрерывное размещение (непрерывные файлы);
- связный список блоков (кластеров) файла;
- связный список индексов блоков (кластеров) файла;
- перечень номеров блоков (кластеров) файлов;
- структуры, называемые I-узлами (index-node – индекс-узел).
Физическая организация определяет способ размещения файлов на диске и учет соответствия блоков диска файлам.
Слайд 212Операционные системы
123456789
Файл А
Файл B
123456789
3
6
8
Достоинства: высокая скорость доступа, минимальный объем адресной
информации, нет ограничений на размер файла.
Недостатки: нет возможностей для изменения
размера файла, высокая степень возможной внешней фрагментации
Область применения – компакт-дики
Достоинства: минимальная адресная информация, отсутствие внешней фрагментации, возможность изменения размеров файла.
Недостатки: медленный доступ, сложность доступа к произвольному блоку файла, некратность блока файла степени двойки.
Непрерывное размещение в наборе соседних кластеров
Связный список кластеров
А)
Б)
Первое слово каждого кластера указывает на следующий кластер. Расположение файла задается номером его первого кластера.
Слайд 213Операционные системы
123456789
3
5
6
Область индексов
Связный список индексов
Перечень номеров кластеров, занимаемых файлом
123456789
Файл 2,
4, 5
В)
Г)
Все достоинства варианта А), быстрый доступ к произвольному кластеру
файла, полное заполнение кластера, кратное степени двойки
Достоинства: высокая скорость доступа к произвольному кластеру благодаря прямой адресации, отсутствие внешней фрагментации.
Недостаток: длина адреса зависит от размера файла и может быть значительной.
Недостаток: рост адресной информации с увеличением емкости диска
Файл 1, 3, 5, 6
Указатели на следующие кластеры хранятся в отдельной таблице, загружаемой в ОП. Номер первого кластера хранится в записи каталога.
Этот перечень и есть адрес файла.
Слайд 214Операционные системы
Связный список индексов - FAT
Примером такой таблицы индексов является
FAT-таблица (File Allocation Table), используемая в файловых системах MS DOS
и Windows (FAT 16 и FAT 32).
Файлу выделяется память на диске в виде связного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. С каждым кластером диска связывается индекс.
Индексы располагаются в FAT-таблице в отдельной области диска. Когда память свободна, все индексы равны нулю. Если некоторый кластер N назначен файлу, то индекс этого кластера либо становится равным номеру М следующего кластера файла, либо принимает специальное значение, являющееся признаком того, что кластер является последним для файла.
Слайд 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.
Слайд 216Операционные системы
Атрибуты файла
Адрес кластера 1
Адрес кластера 2
Адрес кластера 3
I- узел
(index node)
Адрес кластера указателей
Кластер, содержащий дополнительные дисковые адреса
Достоинства: каждый конкретный
I-узел находится в памяти только при открытии файла, что сокращает объем адресной информации; объем адресной информации не зависит от емкости диска, а лишь от числа открытых файлов; высокая скорость доступа к произвольному кластеру файла благодаря прямой адресации.
Недостатки: фиксированного количества адресов может оказаться недостаточным для адресации файла, отсюда необходимость сочетания прямой и косвенной адресации (пример – ufs).
Содержит атрибуты файла и адреса кластеров файла
Слайд 217Операционные системы
0 1 2
3 4 5
6 7 8 9 10 11 12 13 14
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
2048 записей
Непосредственная адресация
Простая косвенная адресация
Двойная косвенная адресация
Тройная косвенная адресация
Максимальный размер файла 7,0403*10 13 байт
Объем адресной информации – 0,05 % от адресуемых данных
Файловая система ОС UNIX ufs
А д р е с н а я и н ф о р м а ц и я ф а й л а
Размер кластера 8 Кбайт
Слайд 218Операционные системы
Для хранения адреса файла выделено 15 полей, каждое из
которых состоит из 4 байт.
Если размер файлов меньше или равен
12 кластерам, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса.
Если кластер имеет размер 8 Кбайт, то можно адресовать файл размером до 8 Кбайт * 12 = 98304 байт.
Если размер кластера превышает 12 кластеров, то следующее, 13-е поле содержит адрес кластера, в котором могут быть расположены номера следующих кластеров и размер файла может возрасти до
8192 * (12 + 2048) = 16.875.520 байт.
Следующий уровень адресации, обеспечиваемый 14-м полем, позволяет адресовать до 8192 * (12 + 2048 + 20482) - 3,43766*1020 байт.
Тройная косвенная адресация
Файловая система ОС UNIX ufs
Слайд 219Операционные системы
Если и этого недостаточно, используется следующее 15-е поле.
В этом случае максимальный размер файла может составить
8192 * (12
+ 2048 + 20482 +20483) = 7,0403*1013 байт.
Метод перечисления адресов кластеров файла задействован и в файловой системе NTFS, используемой в Windows NT/2000/2003.
Для сокращения объема адресной информации в NTFS адресуются не кластеры файла, а непрерывные области, состоящие из смежных кластеров диска.
Каждая такая область называется экстентом (extent) и описывается двумя числами: номером начального кластера и количеством кластеров.
Тройная косвенная адресация
Файловая система ОС UNIX ufs
Слайд 220Операционные системы
Для обеспечения доступа приложений к файлам операционная система с
файловой системой FAT использует следующие структуры:
загрузочные сектора главного и
дополнительных разделов;
загрузочные сектора логических дисков (разделов);
корневой каталог;
область данных;
цилиндр для выполнения диагностических операций чтения-записи.
На дискетах, в отличие от жесткого диска, нет загрузочных секторов главного и дополнительных разделов и диагностического цилиндра.
Эти структуры создаются программой Fdisk, которая не применяется для дискет, так как они на разделы не разбиваются.
Физическая организация FAT
Слайд 221Операционные системы
Чтобы установить на один жесткий диск несколько операционных систем,
его надо разбить на разделы. В загрузочном секторе главного раздела
создается таблица списка разделов.
Физическая организация FAT
Слайд 222Операционные системы
Загрузочный сектор главного раздела (называемый главной загрузочной записью -
Master Boot Record - MBR) является первым сектором на жестком
диске (цилиндр 0, головка 0, сектор 1) и состоит из двух элементов:
таблица главного раздела, содержащая список разделов (максимум четыре) и расположение загрузочных секторов соответствующих логических дисков (первая и последняя головки, первый и последний цилиндры с соответствующими значениями секторов, а также количество секторов);
главный загрузочный код - небольшая программа, которая выполняется системой BIOS. Основная функция этого кода - передача управления в раздел, который обозначен как активный (загрузочный).
Физическая организация FAT
Слайд 223Операционные системы
Загрузочный сектор раздела содержит:
блок параметров диска, в котором
содержится информация о разделе (размер, количество секторов, размер кластера, метка
тома и др.);
загрузочный код - программа, с которой начинается процесс загрузки операционной системы (для MS DOS и Windows 9x -файл Io.sys).
Загрузочные секторы логических дисков создаются программой Format. Они похожи на загрузочные диски разделов. Однако при загрузке выполняется код только того сектора, который находится в активном разделе.
Физическая организация FAT
Слайд 224Операционные системы
Логический диск, отформатированный программой FORMAT, состоит из следующих областей:
загрузочный сектор;
основная FAT-таблица, содержащая информацию о размещении файлов и
каталогов на диске;
копия FAT-таблицы;
корневой каталог - фиксированная область (16 Кбайт для жесткого диска), позволяющая хранить 512 записей о файлах и каталогах (каждая запись состоит из 32 байтов);
область данных для размещения всех файлов и каталогов, кроме корневого каталога.
Первые две записи FAT зарезервированы и содержат информацию о самой FAT, все остальные указывают на соответствующие кластеры диска.
Физическая организация FAT
Слайд 225Операционные системы
Размер FАТ-таблицы определяется количеством кластеров. Разрядность индексного указателя FАТ-таблицы
должна быть такой, чтобы можно было задать максимальный номер кластера
диска определенного объема.
В соответствии с разрядностью дискового указателя существует несколько разновидностей FAT: FAT12, FAT16, FAT32 (соответственно 212, 216 и 232 кластеров). Тип используемой FAT определяется программой Fdisk, хотя и записываются они в процессе форматирования высокого уровня программы Format.
На всех дискетах применяется FAT12, на жестких дисках до 512 Мбайт - FAT16, на жестких дисках, имеющих большую емкость при использовании Windows 95 OSR2 и Windows98 -FAT32 (вообще размер кластера может быть от 1 до 128 секторов или от 512 байт до 64 Кбайт).
Физическая организация FAT
Слайд 226Операционные системы
Максимальный размер раздела FAT16 ограничен объемом 4 Гбайт (216
= 65536 кластеров по 64 Кбайт).
Максимальный размер раздела FAT32 практически
не ограничен (232 кластеров по 32 Кбайт).
За копией FAT-таблицы следует корневой каталог - база данных, содержащая информацию о записанных на диске данных. Каждая запись в ней имеет длину 32 байта и содержит всю информацию о файле, которой располагает операционная система. Формат записи приведен ниже.
Информация о расположении файла, т. е. о расположении оставшихся кластеров, содержится в FAT-таблице. В процессе работы системы кластеры файла могут оказаться не в смежных областях, а будут чередоваться с кластерами других файлов. Однако эту цепочку кластеров легко выделить, зная начальный кластер файлов.
Физическая организация FAT
Слайд 227Операционные системы
Загрузочный сектор (512 байт)
0 1 2
3
FAT 1
FAT 2 (копия)
Запись каталога (32 байт)
Root
directory (512 записей)
0 1 2 3
Data
Индексные указатели, связанные с кластерами принимают значения:
кластер свободен (0000h); последний кластер файла (fff8h – ffffh); кластер поврежден (fff7h); резервный кластер (fff0h - fff6h), кластер используется (любое другое значение)
Физическая организация FAT
Формат каталога
Длина поля Описание
8 байт Имя файла
3 байт Расширение файла
1 байт Атрибуты файла
1 байт Зарезервировано
3 байт Время создания
2 байт Дата создания
2 байт Дата последнего доступа
2 байт Зарезервировано
2 байт Время последней модификации
2 байт Дата последней модификации
2 байт Начальный кластер
4 байт Размер файла
Слайд 228Операционные системы
16
24
32
File 1
File 2
17
41
19
23
23
31
39
29
Посл.
40
20
21
22
42
43
44
Посл.
Элементы, указывающие на кластеры файла 1
Элементы, указывающие
на кластеры файла 2
Пример FAT - таблицы
Слайд 229Операционные системы
В корневом каталоге имеются записи не только о файлах,
но и подкаталогов. Эти записи имеют точно такую же структуру,
что и записи корневого каталога.
Признак подкаталогов указывается в атрибутах файла, т. е. можно считать, что подкаталог - это специальный файл. Структура атрибутивного байта показана ниже.
Физическая организация FAT
Слайд 230Операционные системы
Физическая организация FAT
Слайд 231Операционные системы
Файловые системы FAT 12 и FAT 16 оперируют с
именами файлов, составленных по схеме 8.3 (имя, расширение). В Windows
95 с появлением 32-разрядной виртуальной FAT-VFAT (Virtual file allocation table) поддерживаются имена длиной 255 символов.
Для обеспечения обратной совместимости ОС создает его псевдоним, удовлетворяющий стандарту 8.3. Делается это следующим образом:
1. Первые 3 символа после последней точки в длинном имени файла становятся расширением псевдонима.
2. Первые шесть символов длинного имени файла, за исключением пробелов, которые игнорируются, преобразуются в символы верхнего регистра и становятся шестью символами стандартного имени файла.
Физическая организация FAT
Слайд 232Операционные системы
Недопустимые символы (+ ,; - []), которые могут использоваться
в Windows 95, преобразуются в символы подчеркивания.
3. Добавляются символы ~1
(седьмой и восьмой) к псевдониму имени файла.
Если первые шесть символов нескольких файлов одни и те же, то добавляются символы ~2, ~3 и т. д.
VFAT хранит псевдонимы длинных имен в поле стандартных имен файлов записи каталога файла.
Таким образом, все версии DOS и Windows могут получить доступ к файлу под длинным именем с помощью его псевдонима.
Для хранения символов длинных имени файлов были добавлены дополнительные записи каталога.
Физическая организация FAT
Слайд 233Операционные системы
Имя формата MS-DOS хранится в каталоге прямо в описателе
(базовой каталоговой записи). Если у файла есть также длинное имя,
оно хранится в одной или нескольких каталоговых записях, предшествующих базовой каталоговой записи файла с именем в формате MS-DOS.
Каждая такая запись содержит до 13 символов формата Unicode. Элементы имени хранятся в обратном порядке, начинаясь сразу перед описателем файла в формате MS-DOS и последующими фрагментами перед ним. Формат каждого фрагмента длинного имени показан на следующем рисунке.
Физическая организация FAT
Слайд 234Операционные системы
Формат каталоговой записи с фрагментом длинного имени файла в
Windows 98
Физическая организация FAT
Слайд 235Операционные системы
Для того, чтобы Windows отличала каталоговые записи, содержащие имя
файла в формате MS-DOS, от фрагментов длинных имен поле Attributes
(атрибуты) для фрагмента длинного имени содержит значение 0x0F, что соответствует невозможной комбинации атрибутов для описателя файла в MS-DOS.
Старые программы, написанные для работы в MS-DOS, читая каталог, просто игнорируют такие описатели как неверные.
Порядок фрагментов имени учитывается в первом байте каталоговой записи. Последний фрагмент имени отмечается добавлением к порядковому номеру числа 64.
Поскольку для порядкового номера используется всего 6 бит, теоретически максимальная длина имени файла может составить 63 х 13 = 819 символов. На практике она ограничена 260 символами по историческим причинам.
Физическая организация FAT
Слайд 236Операционные системы
Каждый фрагмент длинного имени содержит поле Checksum (контрольная сумма)
во избежание следующей проблемы. Сначала программа, работающая в системе Windows
98 (и последующих), создает файл с длинным именем. Затем компьютер перезагружается в MS-DOS или Windows 3.x. После этого старая программа, удаляя файл, удаляет из каталога имя формата MS-DOS, но оставляет в нем предшествующее ему длинное имя (так как ей ничего не известно о длинных именах). Наконец, какая-то программа создает новый файл, используя освободившееся место в каталоге.
Физическая организация FAT
Слайд 237Операционные системы
К этому моменту мы имеем верную последовательность фрагментов длинного
имени, предшествующую описателю файла формата MS-DOS, который не имеет к
ней никакого отношения.
Поле Checksum позволяет системе Windows 98 (и последующих) обнаружить такую ситуацию.
Конечно, поскольку для поля Checksum используется всего один байт, есть один шанс из 256, что Windows 98 не заметит подмены.
Физическая организация FAT
Слайд 238Операционные системы
Чтобы предыдущие версии не повредили эти дополнительные записи
каталога, VFAT устанавливает для них атрибуты, которые нельзя использовать для
обычного файла: только для чтения, скрытый, системный и метка тома.
Такие атрибуты DOS игнорирует, а следовательно, длинные имена файлов остаются нетронутыми. Подобным же образом решается проблема длинных имен в Windows NT/2000, использующих для хранения имен двухбайтовый формат на каждый символ - Unicode.
Выбор типа FAT-системы во многом определяется емкостью жесткого диска. При использовании FAT16 нельзя создать раздел емкостью более 2 Гбайт. Для устранения этого ограничения фирма Microsoft разработали FAT32.
Физическая организация FAT
Слайд 239Операционные системы
Она работает как 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 Гбайт.
Физическая организация FAT
Слайд 240Операционные системы
Это связано с тем, что в Windows 2000 это
ограничение обусловлено программой Format. Вообще максимально возможный том - 2
Тбайт при кластере 32 Кбайт.
В FAT32 в отличие от ее предшественниц корневой каталог может располагаться в любом месте раздела и иметь любой размер. Это обеспечивает динамическое изменение размера раздела.
Файловая система FAT32 также использует преимущество двух копий FAT. Как и в FAT16, в FAT32 первая копия является основной и периодически копирует данные в дополнительную копию FAT. При проблемах с главной копией FAT системы переключаются в дополнительную копию, которая становится главной.
Физическая организация FAT
Слайд 241Операционные системы
В отличие от FAT16 ФС FAT32 вместо массива из
65 536 элементов в ней используется столько, сколько нужно, чтобы
покрыть весь раздел диска. Для экономии памяти операционная система не хранит их все сразу в памяти, а использует окно, накладываемое на таблицу.
Физическая организация FAT
Слайд 242Операционные системы
Файловая система Windows 2000
Основные свойства файловой системы NTFS:
1. Поддержка
больших файлов и больших дисков (объем до 264 байт).
2. Восстанавливаемость после сбоев и отказов программ и аппаратуры управления дисками. 3. Высокая скорость операций, в том числе для больших дисков. 4. Низкий уровень фрагментации, в том числе для больших дисков. 5. Гибкая структура, допускающая развитие за счет добавления новых типов записей и атрибутов файлов с сохранением совместимости с предыдущими версиями ФС. 6. Устойчивость к отказам дисковых накопителей. 7. Поддержка длинных символьных имен. 8. Контроль доступа к каталогам и отдельным файлам.
Слайд 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 хранится резидентная часть файла (некоторые его атрибуты), а остальная часть файла хранится в отдельном отрезке тома или нескольких отрезках.
Слайд 244Операционные системы
Загрузочный блок
0
1
2
15
Системный файл 1
Системный файл 2
Системный файл n
Копия MFT
(первые 3 записи)
Копия загрузочного блока
Файл M
MFT
MFT
Загрузочный блок содержит стандартный блок
параметров BIOS, количество блоков в томе, начальный логический номер кластера основной и зеркальной копии MFT.
0. Описание MFT, в том числе адреса всех ее отрезков. 1. Зеркальная копия 3-х первых записей MFT. 2. Журнал для восстановления файловой системы. 3. Файл тома (имя, версия и др. информация). 4. Таблица определения атрибутов. 5. Индекс корневого каталога. 6. Битовая карта кластеров. 7. Загрузочный сектор раздела. 8. Список дефектных кластеров. 9. Описатели защиты файлов. 10. Таблица преобразования регистра символов (для Unicode). 11. Таблица квот, точек повторного анализа и др. 12 – 15 – зарезервировано.
1-й отрезок MFT
2-й отрезок MFT
3-й отрезок MFT
Файл K
MFT
Слайд 245Операционные системы
Структура файлов NTFS
Файлы и каталоги состоят из набора атрибутов.
Атрибут содержит следующие поля: тип, длина, имя (образуют заголовок) и
значение.
Системные атрибуты: 1. Стандартная информация (сведения о владельце, флаговые биты, время создания, время обновления и др.). 2. Имя файла в кодировке Unicode, м.б. повторено для имени MS DOS. 3. Список атрибутов (содержит ссылки на номера записей MFT, где расположены атрибуты), используется для больших файлов. 4. Версия – номер последней версии файла. 5. Дескриптор безопасности – список прав доступа ACL. 6. Версия тома –используется в системных файлах тома. 7. Имя тома. 8. Битовая карта MFT – карта использования блоков тома. 9. Корневой индекс – используется для поиска файлов в каталоге. 10. Размещение индекса – нерезидентная часть индексного списка ( для больших файлов). 11. Идентификатор объекта – 64-разрядный идентификатор файла, уникальный для данного тома. 12. Данные файла. 13. Точка повторного анализа (монтирование и симв. ссылки)
Слайд 246Операционные системы
Файлы NTFS в зависимости от способа размещения делятся на
небольшие, большие, очень большие и сверхбольшие.
Заголовок записи
Стандартный информационный заголовок
Заголовок имени
файла
Заголовок данных
ДАННЫЕ
Заголовок ACL
Список прав доступа
НЕ используется
Пример небольшого файла NTFS
Стандартная информация
Имя файла
ДАННЫЕ
Список прав доступа
Список прав доступа
VCN
K
K
K
K
LCN
LCN
LCN
0
9
20
4
64
2
80
3
20 – 23, 64 – 65, 80 - 82
Блоки диска
Пример большого файла NTFS
Заголовок данных
Заголовок ACL
Слайд 247Операционные системы
Каждый том NTFS (то есть дисковый раздел) организован как
линейная последовательность блоков (кластеров по терминологии Microsoft). Размер блока фиксирован
для каждого тома и задается в зависимости от его размера при форматировании. Обращение к блокам осуществляется по их смещению от начала тома.
Структура файловой системы NTFS
Слайд 248Операционные системы
Для управления содержимым тома в системе NTFS используется главная
файловая таблица MFT (Master File Table), представляющая собой линейную последовательность
записей фиксированного размера. Каждая запись MFT описывает один файл или один каталог.
Сама главная файловая таблица представляет собой также файл, который, как и любой файл, может располагаться в любом месте тома. Первые шестнадцать записей основной таблицы файлов зарезервированы системой NTFS под хранение сведений о метаданных (metadata) — файлов NTFS, определяющих структуру файловой системы.
Структура файловой системы NTFS
Слайд 249Операционные системы
В частности корневой каталог представляет собой файл метаданных. Записи
в MFT, начиная с 16-й, хранят сведения о нормальных файлах
и подкаталогах.
Каждая запись MFT состоит из заголовка записи, за которым следует последовательность пар: заголовок атрибута, значение. В файловой системе NTFS определено 13 атрибутов, которые могут появляться в записях MFT.
Структура файловой системы NTFS
Слайд 250Операционные системы
В частности определены атрибуты: стандартная информация (содержит сведения о
владельце файла, информацию о защите, флаговые биты, временные штампы и
т. д.), имя файла (хранится в кодировке Unicode), данные (хранит поточные данные, может повторяться).
Каждый атрибут начинается с заголовка, идентифицирующего этот атрибут и сообщающего длину его значения. Эти атрибуты присутствуют в любом файле.
Структура файловой системы NTFS
Слайд 251Операционные системы
Если значение атрибута достаточно короткое, чтобы поместиться в запись
MFT, оно помещается туда непосредственно за заголовком и такой атрибут
называется резидентным.
Если же это значение слишком длинное, оно помещается в отдельные блоки диска. Такой атрибут называется нерезидентным атрибутом.
Например, таким атрибутом, как правило, является атрибут данных.
Непосредственно за заголовком такого атрибута в запись MFT помещается запись, описывающая местоположение этих блоков на диске.
Структура файловой системы NTFS
Слайд 252Операционные системы
Такая запись начинается с заголовка, определяющего смещение относительно начала
файла первого блока и число всех блоков, выделенных для размещения
значения атрибута.
Следом за заголовком располагаются сегментные пары, в которых содержатся дисковые адреса и длины серий блоков.
Эти дисковые адреса представляют собой смещение блока от начала дискового раздела.
Длина серии — это количество блоков в серии. Каждая серия состоит из непрерывной последовательности блоков.
Структура файловой системы NTFS
Слайд 253Операционные системы
Рис. Запись MFT для 9-блочного файла, состоящего из трех
сегментов
Структура файловой системы NTFS
Слайд 254Операционные системы
Если файл будет настолько фрагментирован, что информация о блоках
размещения значения нерезидентного атрибута не поместится в одну запись MFT,
то используются дополнительные записи MFT.
В этом случае первая запись MFT называемая базовой записью.
В базовую запись в атрибут под именем список атрибутов помещаются индексы (номера) этих дополнительных записей MFT.
Если файл содержит слишком большое число атрибутов, чтобы они все разместились в одной записи MFT, то также используются дополнительные записи MFT.
Структура файловой системы NTFS
Слайд 255Операционные системы
Рис. Файл, которому требуется три записи MFT для хранения
данных обо всех своих сегментах
Структура файловой системы NTFS
Слайд 256Операционные системы
Если потребуется так много записей MFT, что в базовой
записи в список атрибутов не поместятся все индексы MFT, то
атрибут под именем список атрибутов делается нерезидентным (то есть хранится отдельно на диске, а не в базовой записи MFT). В этом случае размер файла уже ничем не ограничен.
Информация об используемых блоках и элементах MFT хранится в битовом массиве, являющемся файлом метаданных.
Структура файловой системы NTFS
Слайд 257Операционные системы
В файловой системе NTFS каталоги хранятся в виде файлов.
Каждый файл каталога содержит атрибут под названием index, содержащий список
файлов каталога. Каждая запись файла каталога содержит имя файла и стандартную информацию о файле.
В NTFS включены дополнительные функции для обеспечения большей надежности файловой системы: сжатие файлов, шифрование, поддержка нескольких потоков данных, возможность восстановления после сбоев во время перезагрузки и расширения пользовательского уровня (например, жесткие ссылки и упрощенная навигация по файловой системе и директориям).
Структура файловой системы NTFS
Слайд 258Операционные системы
Файловая система NTFS поддерживает прозрачное сжатие файлов и целых
папок: процессы, читающие такой файл или пишущие в него, не
будут даже догадываться о том, что при этом происходит компрессия или декомпрессия данных.
Структура файловой системы NTFS
Слайд 259Операционные системы
Когда пользователь сообщает системе, что хочет зашифровать определенный файл,
формируется случайный 128-разрядный ключ, с помощью которого осуществляется шифрование. Ключи
файлов сами хранятся на диске в зашифрованном виде. Для этого создается отдельный ключ для каждого пользователя, закрытая часть которого сама шифруется с учетом информации, идентифицирующей пользователя (пароль), либо ключом смарт-карты. Открытая часть ключа пользователя хранится в системном реестре.
Структура файловой системы NTFS
Слайд 260Операционные системы
Содержимое NTFS-файла (то есть реальные данные) могут храниться внутри
одного или нескольких потоков данных (data streams).
Поток данных представляет собой
простой атрибут файла в файловой системе NTFS, в котором хранятся данные файла.
Стандартный поток данных без названия — это то, что большинство людей считают содержимым файла. Файлы в NTFS могут содержать несколько альтернативных потоков данных (alternate data stream).
Структура файловой системы NTFS
Слайд 261Операционные системы
В дополнительных потоках хранятся метаданные, например, автор файла или
номер версии. Они могут иметь форму вспомогательных данных, например, изображения
для предварительного просмотра картинки либо резервная копия текстового файла.
Файловая система NTFS в Windows Server 2003 и Windows XP поддерживает дисковые квоты (disk quotas), позволяющие ограничивать объем дискового пространства, с которым может работать тот или иной пользователь.
Структура файловой системы NTFS
Слайд 262Операционные системы
Соединение каталогов (directory junctions) — средство, позволяющее соединять каталоги
NTFS. Соединение каталогов позволяет отображать локальные тома, а также общие
сетевые ресурсы на локальную папку NTFS, тем самым, объединяя локальные и удаленные элементы в одно локальное пространство имен.
Точки подключения томов (volume mount points) или подключаемые тома — еще одно новое средство, позволяющее поместить том NTFS в папку другого тома NTFS так, как если бы он физически находился на данном томе.
Структура файловой системы NTFS
Слайд 263Операционные системы
Основные характеристики файловых систем
FAT
Разрядность Число
Максимальный Максимальный Имя файла
указателя кластеров объем кластера размер раздела
FAT12 12 4096 4 Кбайт 16 Мбайт 8.3
FAT16 16 65536 64 Кбайт 4 Гбайт 8.3 255.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.
Слайд 264Операционные системы
4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций
Файловая система ОС должна предоставлять пользователям
набор операций для работы с файлами, оформленный в виде системных вызовов.
В различных ОС имеются различные наборы файловых операций. К наиболее часто встречающимся системным вызовам для работы с файлами относятся:
1. Create (создание). Файл создается без данных. Этот системный вызов объявляет о появлении нового файла и позволяет установить некоторые его атрибуты.
2. Delete (удаление). Ненужный файл удаляется, чтобы освободить пространство на диске.
3. Open (открытие). До использования файла его нужно открыть. Данный вызов позволяет прочитать атрибуты файла и список дисковых адресов для быстрого доступа к содержимому файла.
Слайд 265Операционные системы
4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций
4. Close (закрытие). После завершения операций
с файлом его атрибуты и дисковые адреса не нужны. Файл следует закрыть, чтобы освободить пространство во внутренней таблице.
5. Read (чтение). Файл читается с текущей позиции. Процесс, работающий с файлом, должен указать (открыть) буфер и количество читаемых данных.
6. Write (запись). Данные записываются в файл в текущую позицию. Если она находится в конце файла, его размер автоматически увеличивается. В противном случае запись производится поверх существующих данных.
7. Append (добавление). Это усеченная форма предыдущего вызова. Данные добавляются в конец файла.
8. Seek (поиск). Данный системный вызов устанавливает файловый указатель в определенную позицию.
Слайд 266Операционные системы
4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций
9. Get attributes (получение атрибутов). Процессам
для работы с файлами бывает необходимо получить их атрибуты.
10. Set attributes (установка атрибутов). Этот вызов позволяет установить необходимые атрибуты файлу после его создания.
11. Rename (переименование). Этот системный вызов позволяет изменить имя файла. Однако такое действие можно выполнить копированием файла. Поэтому данный системный вызов не является необходимым.
12. Execute (выполнить). Используя этот системный вызов, файл можно запустить на выполнение.
Слайд 267Операционные системы
4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций
В Windows 2000 есть свой набор
системных вызовов, которые она может выполнять. Однако корпорация Microsoft никогда не публиковала список системных вызовов Windows, кроме того, она постоянно меняет их от одного выпуска к другому.
Вместо этого Microsoft определила набор функциональных вызовов, называемый Win 32 API (Win 32 Application Programming Interface).
Они представляют собой библиотечные процедуры, которые либо обращаются к системным вызовам, чтобы выполнить требуемую работу, либо выполняют прямо в пространстве пользователя.
Слайд 268Операционные системы
4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций
Win 32 API предоставляет всеобъемлющий интерфейс,
с возможностью выполнить одно и то же требование несколькими (тремя-четырьмя) способами.
В ОС UNIX все системные вызовы формируют минимальный интерфейс: удаление даже одного из них приведет к снижению функциональности ОС.
Многие вызовы API создают объекты ядра того или иного типа (файлы, процессы, потоки, каналы и т.д.). Каждый вызов, создающий объект, возвращает вызывающему процессу результат, называемый дескриптором (небольшое целое число). Дескриптор используется впоследствии для выполнения операций с объектами. Он не может быть передан другому процессу и использован им.
Слайд 269Операционные системы
4. 7. Операции управления каталогами и файловые операции
4.7.1. Набор файловых операций
Однако при определенных обстоятельствах дескриптор
может быть дублирован и передан другому процессу защищенным способом, что предоставляет второму процессу контролируемый доступ к объекту, принадлежащему первому процессу.
С каждым объектом ассоциирован дескриптор безопасности, описывающий, кто и какие действия может, а какие не может выполнять с данным объектом.
Слайд 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 Отменить блокировку области файла
Слайд 271Операционные системы
4.7.2. Способы выполнения файловых операций
Последовательность универсальных действий:
1. По символьному
имени файла найти его характеристики, которые хранятся в файловой системе
на диске.
2. Скопировать характеристики файла в оперативную память, поскольку только в этом случае программный код может их использовать.
3. На основании характеристик файла проверить права пользователя на выполнение запрошенной операции (чтение, запись, удаление и т. п.).
4. Очистить область памяти, отведенную под временное хранение характеристик файла.
open
open
open
open
close
close
close
close
Read 1
Read 2
Read 3
Read 1
Read 2
Read 3
Примеры системных вызовов для работы с файлами:
fd = create (“abc”, mode); fd = open (“file”, how); read (fd, buffer, nbytes); write(fd, buffer, nbytes);
Стандартные файлы ввода – вывода, перенаправление вывода
read (stdin, buffer, nbytes); write(stdout, buffer, nbytes); < file - перенаправление ввода, > file – перенаправление вывода на файл
Слайд 272Операционные системы
4.7.2. Способы выполнения файловых операций
Кроме того, каждая операция включает
ряд уникальных для нее действий, например чтение определенного набора кластеров
диска, удаление файла, изменение его атрибутов и т. п.
ОС может выполнить последовательность действий над файлами двумя способами:
1. Для каждой операции выполняются как универсальные, так и уникальные действия. Такая схема иногда называется схемой без заполнения состояния операции (stateless).
2. Все универсальные действия выполняются в начале и в конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия.
Слайд 273Операционные системы
4.7.2. Способы выполнения файловых операций
Подавляющее большинство файловых систем поддерживает
второй способ как более экономичный и быстрый. Первый способ иногда
применяется в распределенных сетевых файловых системах.
При втором способе в ФС вводятся два специальных системных вызова: open и close. Первый выполняется перед началом любой последовательности операций с файлом, а второй - после окончания работы с файлом.
Основной задачей вызова open является преобразование символьного имени файла в его уникальное числовое имя, копирование характеристик файла из дисковой области в буфер оперативной памяти и проверка прав пользователя на выполнение запрошенной операции.
Слайд 274Операционные системы
4.7.2. Способы выполнения файловых операций
Вызов close освобождает буфер с
характеристиками файла и делает невозможным продолжение операций с файлами без
его повторного открытия.
Слайд 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.
Слайд 276Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Файлы наряду с
некоторыми другими ресурсами являются разделяемыми ресурсами, доступ к которым ОС
должна контролировать.
Слайд 277Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Для каждого типа
объекта существует набор операций, которые можно с ним выполнять. Система
контроля доступа ОС должна предоставлять средства для задания прав пользователей по отношению к объектам дифференцированно по операциям.
В качестве субъектов доступа могут выступать как отдельные пользователи, так и группы пользователей. Объединение пользователей с одинаковыми правами в группу и задание прав доступа в целом для группы являются одним из основных приемов администрирования в больших системах.
Слайд 278Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
У каждого объекта
доступа существует владелец. Владелец объекта имеет право выполнить с ним
любые допустимые для данного объекта операции.
Во многих ОС существует особый пользователь - администратор «superuser», который имеет все права по отношению к объектам системы, необязательно являясь их владельцем. Эти права (полномочия) необходимы администратору для управления политикой доступа.
Различают два основных подхода к определению прав доступа:
1. Избирательный доступ - ситуация, когда владелец объекта определяет допустимые операции с объектом. Этот подход называется также произвольным доступом, так как позволяет администратору и владельцам объекта определить права доступа произвольным образом, по их желанию. Однако администратор по умолчанию наделен всеми правами.
Слайд 279Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
2. Мандатный доступ
(от mandatory - принудительный) - подход к определению прав доступа,
при котором система (администратор) наделяет пользователя или группу определенными правами по отношению к каждому разделяемому ресурсу. В этом случае группы пользователей образуют строгую иерархию, причем каждая группа пользуется всеми правами группы более низкого уровня иерархии.
Мандатные системы доступа считаются более надежными, но менее гибкими. Обычно они применяются в системах с повышенными требованиями к защите информации.
Слайд 280Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Каждый пользователь (группа)
имеют символьное имя, а также уникальный числовой идентификатор. При выполнении
процедуры логического входа в систему пользователь сообщает свое символьное имя или пароль. Все идентификационные данные, а также сведения о вхождении пользователя в группы хранятся в специальном файле (UNIX) или базе данных (Windows NT).
Вход пользователя в систему порождает процесс-оболочку, который поддерживает диалог с пользователем и запускает для него другие процессы. Любой порождаемый процесс наследует идентификаторы пользователя и групп от процесса родителя.
В разных ОС для одних и тех же типов ресурсов может быть определен свой список дифференцируемых операций доступа. Для файловых объектов этот список может включать операции, которые рассмотрены выше.
Слайд 281Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Набор файловых операций
может включать всего несколько укрупненных операций, например, для файлов и
каталогов: читать, писать и выполнять.
Возможна комбинация двух подходов - детальный уровень и укрупненный. Например, в Windows NT/2000/2003 администратор работает на укрупненном уровне, а при желании может перейти на детальный.
В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, а строки - всем пользователям.
На пересечении строк и столбцов указываются разрешенные операции. Однако реально для тысяч и десятков тысяч файлов в системе пользоваться такой матрицей неудобно.
Слайд 282Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Поэтому она хранится
по частям, т. е. для каждого файла и каталога создается
список управления доступом (Access Control List, ACL), в котором описываются права на выполнение операций пользователей и групп пользователей по отношению к этому файлу или каталогу.
Список управления доступом является частью характеристик файла или каталога и хранится на диске в соответствующей области. Не все файловые системы поддерживают списки управления доступом, например FAT не поддерживает, поскольку разрабатывалась для однопрограммной, однопользовательской ОС MS DOS.
Обобщенно формат списка управления доступом (ACL) можно представить в виде набора идентификаторов пользователей и групп пользователей, в котором для каждого идентификатора указывается набор разрешенных операций над объектом.
Слайд 283Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Сам список
ACL состоит из элементов управления доступом (Access Control Element, АСЕ),
которые соответствуют одному идентификатору. Список ACL с добавлением идентификатора владельца называют характеристиками безопасности.
Для разделяемых ресурсов в Windows XP применяется общая модель объекта, которая содержит такие характеристики безопасности, как набор допустимых операций, идентификатор владельца, список управления доступом.
Проверки прав доступа для объектов любого типа выполняются централизованно с помощью монитора безопасности (Security Reference Monitor), работающего в привилегированном режиме.
Слайд 284Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Для системы
безопасности Windows характерно большое количество различных встроенных (предопределенных) субъектов доступа
- отдельных пользователей и групп (Administrator, System, Guest, группы Users, Administrators, Account, Operators и др.).
Смысл этих встроенных пользователей и групп состоит в том, что они наделены определенными правами. Это облегчает работу администратора по созданию эффективной системы разграничения доступа. Во-первых, за счет того, что нового пользователя можно внести в какую-либо группу. Во-вторых, можно добавлять (изымать) права встроенных групп. Наконец, можно создавать новые группы с уникальным набором прав.
Слайд 285Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Все объекты
при создании снабжаются дескрипторами безопасности, содержащими список управления доступом и
список пользователей и групп, имеющих доступ к данному объекту.
Владелец объекта, обычно пользователь, который его создал, обладает возможностью изменять ACL объекта, чтобы позволить или не позволить другим осуществлять доступ к объекту.
Однако он может выполнить требуемую операцию с объектом, став его владельцем (такая возможность предусмотрена), а затем как владелец получить полный набор разрешений.
Однако вернуть владение предыдущему владельцу объекта администратор не может, поэтому пользователь всегда может узнать о том, что с его файлом (принтером и т. п.) работал администратор.
Слайд 286Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
В Windows
NT/2000/XP администратор может управлять доступом пользователей к каталогам и файлам
только в разделах диска, в которых установлена файловая система NTFS, разделы FAT не поддерживаются, так как в этой ФС у файлов и каталогов отсутствуют атрибуты для хранения списков управления доступом.
Разрешения в Windows бывают индивидуальные (специальные) и стандартные. Индивидуальные относятся к элементарным операциям над каталогами и файлами, а стандартные разрешения являются объединением нескольких индивидуальных разрешений.
Слайд 287Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Стандартные разрешения
Специальные разрешения
Слайд 288Операционные системы
4.7.3. Контроль доступа к файлам и каталогам
Слайд 289Операционные системы
Квоты дискового пространства
Файловая система NTFS в Windows Server 2003
поддерживает дисковые квоты (disk quotas), позволяющие ограничивать объем дискового пространства,
с которым может работать тот или иной пользователь.
Установка квот дает возможность более эффективно управлять размещением информации на диске, поскольку теперь дисковое пространство можно распределять между пользователями в соответствии с их потребностями.
Кроме того, введение дисковых квот принуждает пользователей более аккуратно работать с компьютером, в частности систематически удалять ненужные файлы.
Слайд 290Операционные системы
Квоты дискового пространства
Слайд 291Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Операционные системы класса Windows NT имеют
возможность загружать не одну операционную систему, а несколько, то есть
системный загрузчик Windows NT/ 2000/ХР является менеджером загрузки.
Для указания установленных операционных систем и выбора одной из них используется файл boot.ini. Этот файл является текстовым. Он обрабатывается программой ntldr, которая, собственно, и является системным загрузчиком и на которую передается управление из внесистемного загрузчика.
Слайд 292Операционные системы
Системный загрузчик Windows NT/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
Слайд 293Операционные системы
Системный загрузчик Windows NT/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
Слайд 294Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
В первой секции этого файла, названной
[boot loader], строка timeout задает время в секундах, по истечении
которого будет загружаться операционная система, указанная в строке default этой секции.
Если значение timeout равно нулю или во второй секции прописана только одна операционная система, то в этом случае будет загружаться система, указанная в строке default.
Если же значение timeout равняется - 1 , то загрузка не будет происходить до тех пор, пока пользователь явно не выберет в меню одну из операционных систем и не нажмет клавишу Enter.
Слайд 295Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Инструкция default указывает, где (на каком
накопителе и в каком разделе этого накопителя) располагается операционная система,
загружаемая по умолчанию.
В большинстве там примерно такая строка:
clefault=mult1(0)d1sk(0)rcl1sk(0)part1t1on(2)\WINNT
Слово multi в этой строке означает, что при работе программы ntldr должны использоваться драйверы из BIOS компьютера (используется прерывание int13h).
Номер в скобках должен быть равен 0.
Слайд 296Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Слово disk на персональных компьютерах с
подключением накопителей на магнитных дисках через IDE-интерфейс фактически не несет
никакой информации, однако оно должно быть записано, а в скобках должен стоять ноль. В случае SCSI-дисков это слово задает идентификатор SCSI ID диска.
Слово rdisk определяет порядковый номер накопителя. Всего при использовании IDE-интерфейса может быть до 4 накопителей на жестких дисках; они нумеруются от 0 до 3.
Слайд 297Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Слово partition определяет номер раздела, на
который установлена операционная система. После указания раздела записывается имя каталога,
в котором расположены файлы этой операционной системы.
Во второй секции, обозначенной как [operating systems], построчно перечисляются пути к установленным операционным системам с текстовыми полями, заключенными в кавычки. Именно тот текст и отображается при работе загрузчика ntldr, когда он выводит меню с операционными системами.
Слайд 298Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Если на компьютере установлены помимо систем
Windows NT/2000/XP еще какие-нибудь операционные системы (например, DOS, Windows 9х,
Linux и т. д.), то их можно будет также загрузить. Для этого в секции необходимо указать полный путь к файлу, в котором должен содержаться соответствующий системный загрузчик (загрузочный сектор). Этот файл обязательно должен располагаться на том же диске С:, иначе программа ntldr не сможет его найти.
Слайд 299Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Следует отметить, что для MS DOS
и Windows 9.х можно не указывать имя файла с загрузочным
сектором, а указать только сам корневой каталог диска С:. Но это возможно только в том случае, если имя файла, содержащего системный загрузчик, будет стандартным — bootsect.dos.
Настройка, запрос или изменение параметров файла boot.ini выполняется утилитой Bootcfg, которая запускается в командной строке. Запуск этой утилиты без параметров приводит к отображению информации файла boot.ini. Что узнать поддерживаемые этой утилитой команды необходимо запустить в командной строке bootcfg /?. Описание утилиты приведено также в справочной системе.
Слайд 300Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
В ОС Windows Vista (и более
поздних )файл boot.ini заменен файлом данных конфигурации загрузки (BCD -
Boot Configuration Data). Этот файл более универсален, чем boot.ini; его можно применять на платформах, в которых для загрузки используются другие средства, а не базовая система ввода-вывода (BIOS).
Чтобы внести изменения в файл данных конфигурации BCD, например, удалить записи из списка операционных систем, необходимо воспользоваться утилитой Bcdedit (дополнительное средство для администраторов и специалистов в области информационных технологий), запускаемой из командной строки под правами администратора.
Слайд 301Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Запуск утилиты Bcdedit без параметров приводит
к выводу параметров загрузки. Запуск утилиты с ключом /? Приводит
к выводу и описанию поддерживаемых ее команд.
Редактировать меню загрузки можно также с помощью средства «Конфигурация системы», доступ к которому – Пуск->Панель управления->Администрирование->Конфигурация системы, вкладка Загрузка (или в строке «Выполнить» набрать msconfig и нажать Enter. Откроется окно конфигурации системы. Перейти на вкладку «Загрузка»).
Слайд 302Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Слайд 303Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista
Редактировать меню загрузки можно с помощью
окна «Загрузка и восстановление», доступ к которому Пуск –>Панель управления
-> Система -> Дополнительные параметры системы. В открывшемся окне перейти на вкладку «Дополнительно». Далее кнопка «Параметры» секции «Загрузка и восстановление».
Слайд 304Операционные системы
Системный загрузчик Windows NT/2000/XP/Vista