Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_СГTУ new v10.doc
Скачиваний:
110
Добавлен:
12.11.2019
Размер:
4.13 Mб
Скачать

2.6. Файловые системы Windows

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

Файловая система состоит из системы управления файлами и совокупности файлов на определенном виде носителя (CD, DVD, FDD, HDD, Flash и т.д.). Система управления файлами обеспечивает пользователям и приложениям возможность доступа к файлам, их сохранения и поддержку целостности их содержимого. Наиболее распространенным долговременным носителем информации в современных вычислительных системах является жесткий диск – «Винчестер». Этот термин применяется к любому герметичному диску с аэродинамической конструкцией считывающих магнитных головок.

Файловые системы современных операционных систем устанавливаются в разделы жесткого диска.

Раздел (англ. partition) — часть долговременной памяти жёсткого диска, выделенная для удобства работы, и состоящая из смежных блоков. На других носителях информации выделение разделов или не предусмотрено, или (за редкими исключениями) не практикуется. Однако, существуют флеш-драйвы, память которых можно разбить на два раздела, причём один раздел можно защитить паролем, при этом система «увидит» составное устройство из двух флеш-карт (на самом деле любую флеш карту можно разбить на два и более разделов, однако драйвер в Windows отображает только первый из них; работа с ними возможна при подмене драйвера или при работе с другими ОС).

Выделение на одном жёстком диске нескольких разделов даёт следующие преимущества [1]:

  • на одном физическом жёстком диске можно хранить информацию в разных файловых системах, или в одинаковых файловых системах, но с разным размером кластера (например, выгодно хранить файлы большого размера — например, видео — отдельно от маленьких, и задавать больший размер кластера для хранилища больших файлов);

  • можно отделить информацию пользователя от файлов ОС;

  • на одном жёстком диске можно установить несколько ОС;

  • манипуляции с одной файловой системой не сказываются на других файловых системах.

Информация о размещении разделов на жёстком диске хранится в таблице разделов (англ. partition table), которая является частью главной загрузочной записи (MBR). MBR располагается в первом физическом секторе жёсткого диска.

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

В MBR под таблицу разделов выделено 64 байта. Каждая запись занимает 16 байт. Всего на жестком диске может быть создано не более 4 разделов. Когда разрабатывалась структура MBR, это считалось достаточным. Однако, позднее был введён дополнительный раздел, структура которого (EBR) может поддерживать неограниченное число логических дисков (разделов).

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

Первичный раздел (англ. primary partition) обязательно должен быть на физическом диске. Этот раздел всегда содержит только одну файловую систему (рис.27). На физическом диске может быть до четырёх первичных разделов. Некоторые старые операционные системы ‑ например, MS-DOS и ранние версии Windows - могли быть установлены только на первичный раздел.

Основная таблица разделов может содержать не более 4 первичных разделов, поэтому был изобретён Расширенный (дополнительный) раздел (англ. extended partition). Это первичный раздел, который не содержит собственной файловой системы, а содержит другие логические разделы.

Первичный раздел 1

(Логический раздел 1): ФС

Физический

Расширенный раздел

Логический раздел 4: ФС

диск (HDD)

(Первичный раздел 2,Логический раздел 2):

Логический раздел 5: ФС

Первичный раздел 3

(Логический раздел 3): ФС

Рис. 27. Пример разбиения жёсткого диска на разделы

Для работы с разделами используются следующие программы, которые обычно называют «дисковыми утилитами»:

  • Acronis Disk Director;

  • Paragon Partition Manager;

  • fdisk - утилита, входящая в комплект ОС MS-DOS, позволяет создавать разделы FAT, удалять любые разделы и выбирать активный;

  • fdisk, cfdisk и sfdisk — стандартные текстовые утилиты для работы с разделами диска под GNU/Linux;

  • Disk Druid — утилита для работы с разделами диска под GNU/Linux с графическим пользовательским интерфейсом;

  • GParted — GNOME Partition Editor (free, GUI);

  • оснастка «Управление дисками», являющаяся частью консоли Windows NT/2000/XP (Windows Management Console), позволяет просматривать, создавать и удалять основные и логические разделы, изменить букву логического диска или отформатировать его под FAT32 или NTFS.

Файловые системы FAT. Существуют три файловые системы FAT: FAT12 (для гибких дисков FDD), FAT16, FAT32. Они различаются количеством бит (12, 16, 32) для указания номера кластера в системе управления файлами. В файловых системах FAT логическое дисковое пространство любого логического диска делится на системную область и область данных (рис. 28).

Рис.28 Деление дискового пространства

BR – загрузочная запись Boot Record; RS – зарезервированные сектора; FAT1, FAT2 – таблицы 1 и 2 размещения файлов; RDir (Root directory, ROOT) – корневой каталог. Область данных разбивается на кластеры, которые представляют собой 1 или несколько смежных секторов. В таблице FAT кластеры, принадлежащие одному файлу, связываются по цепочке. Картой области данных является, по сути, Таблица размещения файлов (File Allocation Table - FAT) Каждый элемент таблицы FAT (12, 16 или 32 бит) соответствует одному кластеру диска и характеризует его состояние: свободен 00, занят ХХ, последний FF или является сбойным кластером (bad cluster) F7. Для указания номера кластера в системе управления файлами FAT16 используется 16-ти битовое слово, и можно адресовать 65536 кластеров.

Кластер – это минимально адресуемая единица дисковой памяти, выделяемая для файла. Файл или каталог занимает целое число кластеров [3]. Если файл имеет размер 8001 байт, а кластер равен 2 Кбайтам, то файл на диске займет 5 кластеров, причем в последнем будет записан только один байт. Разбиение области данных на кластеры вместо использования секторов позволяет: уменьшить размер таблицы FAT, уменьшить фрагментацию файлов, сокращается длина цепочек файла, ускоряется доступ к файлу.

Последний кластер может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера. На дискете кластер занимает 1 или 2 сектора. На жестком диске – 4, 8, 16, 32, 64 – сектора в одном кластере. Каждый элемент имеет следующую структуру (рис.29): имя файла, атрибут файла, резервное поле, время создания, дата создания, дата последнего доступа, резерв, дата последней модификации, время последней модификации, номер начального кластера Fat, размер файла. В данном примере файл с именем MyFile.txt размещается, начиная с 8-го кластера и занимает 12 кластеров. Цепочка кластеров для данного случая: 8,9,А,В,15,16,17,19,1А,1В,1C,1D. Кластер с номером 18 помечен кодом F7 как плохой. Он не может быть использован для размещения данных. Этот код выставляется утилитами форматирования и проверки дисков. Кластер 1D помечен кодом FF как конечный, принадлежащий данному файлу. Свободные кластеры помечены кодом 0.

Рис.29 Представление файла в FAT-системе

При выделении нового кластера для записи в файл берется 1-ый свободный кластер. Поскольку файлы на диске изменяются, удаляются, перемещаются, увеличиваются и уменьшаются, то данное правило размещения приводит к фрагментации, т.е. данные одного файла располагаются не в смежных кластерах, а порой очень удаленных друг от друга. Образовывается сложная цепочка. Это приводит к замедлению работы с файлами. Так как Fat используется при доступе к диску очень интенсивно, она загружается в оперативную память. Система Fat32 намного эффективнее расходует дисковое пространство, так как использует кластеры меньшего размера по сравнению с предыдущими версиями Fat. По сравнению с Fat16 это дает экономию 10-16%.

Элемент каталога в поле атрибут может хранить следующие значения: 1) архивный (устанавливается при изменении файла и снимается программой выполняющей резервное копирование файлов на другой носитель); 2) директория; 3) метка тома; 4) системный; 5) скрытый; 6) только для чтения.

Длинные имена в FAT32 обеспечиваются использованием нескольких элементов записи каталога: для одного файла (один элемент – одна запись для имени 8.3, и 24 записи для самого длинного имени, которое может содержать до 256 символов. Поэтому не рекомендуется использовать длинные имена.

Основной недостаток FAT - медленная работа с файлами. При создании файла работает правило - выделяется первый свободный кластер. Это ведет к фрагментации диска и сложным цепочкам файлов. Отсюда следует замедление работы с файлами.

Файловая система NTFS. Одним из основных понятий, используемых при работе с NTFS, является понятие тома. Возможно создание отказоустойчивого тома, занимающего несколько разделов, то есть использование RAID-технологии. NTFS делит все полезное дисковое пространство тома на кластеры — блоки данных, адресуемые как единицы данных.

NTFS поддерживает размеры кластеров от 512 байт до 64 Кбайт; 2 или 4 Кбайт диска отводятся под MFT-зону — пространство, которое может занимать, увеличиваясь в размере, главный служебный метафайл MFT. Запись данных в эту область невозможна. MFT-зона пуста, чтобы служебный файл (MFT) по возможности не фрагментировался при своем росте [3].

MFT (общая таблица файлов) ‑ централизованный каталог всех остальных файлов диска, в том числе и себя самого. MFT поделен на записи фиксированного размера в 1 Кбайт, каждая запись соответствует какому-либо файлу. Первые 16 файлов носят служебный характер и недоступны операционной системе — они называются метафайлами, причем самый первый метафайл — сам MFT. Эти первые 16 элементов MFT — единственная часть диска, имеющая строго фиксированное положение. Копия этих же 16 записей хранится в середине тома для надежности, поскольку они очень важны. Остальные части MFT-файла могут располагаться в произвольных местах диска — восстановить его положение можно с помощью его самого, «зацепившись» за самую основу — за первый элемент MFT.

Каждый файл в NTFS представлен с помощью потоков, у него нет данных, а есть «потоки». Один из потоков — данные файла. Для одного файла можно определить несколько потоков данных.

Основные особенности NTFS:

  • Работа на дисках большого объема происходит эффективно (намного эффективнее, чем в FAT);

  • имеются средства для ограничения доступа к файлам и каталогам;

  • разделы NTFS обеспечивают локальную безопасность как файлов, так и каталогов;

  • введен механизм транзакций, при котором осуществляется журналирование файловых операций;

  • существенное увеличение надежности;

  • сняты многие ограничения на максимальное количество дисковых секторов и/или кластеров;

  • имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может содержать любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode — 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла в NTFS — 255 символов.

  • система NTFS также обладает встроенными средствами сжатия, которые можно применять к отдельным файлам, целым каталогам и даже томам (и впоследствии отменять или назначать их по своему усмотрению).

Каталог в NTFS представляет собой специальный файл, хранящий ссылки на другие файлы и каталоги.

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

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

Основной недостаток файловой системы  NTFS - служебные данные занимают много места (например, каждый элемент каталога занимает 2 Кбайт) - для малых разделов служебные данные могут занимать до 25% объема носителя.

RAID массивы. Повышение эффективности системы ввода-вывода может, достигается параллельным использованием нескольких устройств. В случае с дисками – использование массивов независимо для параллельной работы дисков. То есть различные запросы I/O могут обрабатываться одновременно. Raid – избыточный массив независимых дисков, его схема состоит из 7 уровней, которые не имеют иерархической структуры. Raid – набор физических дисков, рассматриваемых ОС, как один. Данные распределяются по физическим дискам массива. Избыточная емкость дисков используется для хранения контрольной информации, гарантирующей восстановление данных в случае отказа одного из дисков. Сравнительная характеристика уровней RAID [3], показаны в табл. 6.

Raid 0 – не является RAID блоком, не использует избыточность. Данные распространяются системные данные по всем дискам. Эффективность зависит от способа размещения. Приложения с высокими требованиями к передаче данных удовлетворяют условиям: на протяжении передачи между памятью и дисками должна быть большая пропускная способность, создание запросов ввода-вывода, которые бы эффективно управлялись дисковым массивом. Дисковый массив может обеспечивать высокую скорость работы i/o путем выравнивания загрузки нескольких дисков.

Raid 1 – отличается способом достижения избыточности. Достигается дублирование всех данных. Запросы на чтение могут быть обслужены любыми из дисков, содержащих данные, выбирается диск с минимальным временем поиска. Для запросов на запись необходимо обновление полос. Скорость записи определяется более медленной из них. Простота восстановления данных. Raid 3 аналогичен с 2 – требуется резервный диск. Высокая скорость передачи данных. 1 запрос выполняется 1 раз. Raid 4 – используется технология независимого доступа. В массиве каждый диск функционирует независимо. Запросы выполняются независимо. Каждая операция записи должна обновлять информацию на диске четности. Raid 5 - располагает полосы четности по всем дискам. Raid 6 – выполняет 2 расчета четности, результаты хранятся в разных блоках на разных дисках (для n дисков n+2). Схема обеспечивает высокую надежность хранения данных.

Уровни RAID Таблица 6

Уровень

Категория

Описание

Скорость обработки запросов

Скорость передачи данных

Типичное

применение

0

Расщепление

Все избыточности

Большие полосы: отлично

Малые полосы: отлично

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

1

Отражение

Отражение

Хорошо/удовл.

Удовл./

удовл.

Системные диски, важные файлы

2

Параллельный доступ

Избыточность с кодами Хэмминга

Плохо

Отлично

3

Независимый доступ

Четность с чередующимися битами

Плохо

Отлично

ПО с большими запросами I/O

4

Четность с чередующимися блоками

Отлично/

удовл.

Удовл./ плохо

5

Распределенная четность с чередующимися блоками

Отлично/

удовл.

Удовл./

плохо

Высокая скорость запросов, скорость данных, интенсивное чтение

6

Двойная распределенная четность с чередующимися блоками

Отлично/

Плохо

Удовл./

плохо

ПО, требующие исключительно высокой надежности

Ввод-вывод в Windows. Внешние устройства, обеспечивающие операции ввода-вывода, можно разделить на:

1) работающие с пользователем: используются для связи пользователя с компьютером (мышь, терминал, клавиатура);

2) работающие с компьютером: используются для связи с электрическим оборудованием. Это дисковые устройства, датчики и контроллеры;

3) коммуникации: используются для связи с удаленными устройствами (модемы и драйверы цифровых линий).

Операции ввода-вывода могут осуществляться тремя способами [3]:

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

2) ввод-вывод, управляемый прерыванием. Процессор посылает необходимые команды контроллеру ввода-вывода и продолжает выполнение следующих команд. Выполнение процесса прерывается контроллером ввода-вывода, когда последний выполнит свое задание;

3) прямой доступ к памяти (ПДП): модуль ПДП управляет обменом данных между основной памятью и контроллером ввода-вывода. Процессор посылает запрос на передачу блока данных модулю ПДП, а прерывание происходит только после передачи всего блока данных.

В Windows диспетчер ввода-вывода отвечает за весь ввод-вывод ОС и обеспечивает однородный интерфейс, который может быть вызван драйвером любого типа. Он обеспечивает управление: диспетчером КЭШа, драйверами ФС, драйверами сети и драйверами аппаратных устройств.

Диспетчер КЭШа обеспечивает кэширование в основной памяти для всей файловой системы и сетевых компонентов. Он способен динамически увеличивать и уменьшать размер КЭШа, связанного с определенной должностью в соответствии с изменением объема доступной физической памяти.

Для повышения общей производительности диспетчер КЭШа использует отложенную запись. В этом случае системные записи обновляются только в КЭШе, но не на диске. Позже, когда загрузка процессора станет меньше, диспетчер КЭШа произведет запись внесенных изменений на диск. Если за это время будут выполнены дополнительные обновления, то на диск будет записана последняя версия системных записей. Диспетчер КЭШа также использует отложенные подтверждения.

Аналогично отложенные записи, но для транзакции. Вместо немедленной пометки транзакции как успешно завершенной, система кэширует информацию и выполняет ее фоновую запись позже.

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

Драйверы сети Windows включают интегрированные сетевые возможности и поддержку распределенных приложений.

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

Windows предоставляет два режима выполнения операции ввода-вывода: синхронный и асинхронный. При асинхронном вводе-выводе приложение инициирует операцию ввода-вывода, а затем может продолжить свою работу во время выполнения этого запроса. При синхронном вводе-выводе приложение блокируется до завершения выполнения операции ввода-вывода.