Содержание курса

  • Общее

    Андреева В.В. Операционные системы. Физическая и логическая организация HDD. Самара: 2019. 52 с.

     

    Электронный курс «Операционные системы. Физическая и логическая организация HDD» подготовлен в соответствии с требованиями ФГОС ВО, содержит теоретические и практические материалы по важнейшему разделу дисциплины «Операционные системы» - физической и логической организация HDD и позволяет  повысить фундаментальную подготовку студентов в современной области проектировании информационных систем.

     Предназначен для бакалавров направления подготовки 09.03.03 Прикладная информатика (программы «Прикладная информатика в  электронной экономике» и «Электронные сервисы  и интеллектуальные информационные технологии в экономике»), 38.03.05 Бизнес-информатика, 38.03.06 Торговое дело (программа  «Электронная коммерция»), для магистрантов направления подготовки 09.04.03 Прикладная информатика (программы «Корпоративные информационные системы в экономике» и  «Информационная  аналитика  в цифровой экономике», а также всех студентов и школьников, интересующихся информационными технологиями.



    СОДЕРЖАНИЕ

     Введение  

    1. Основные внешние запоминающие устройства

    2. Физическая структура жесткого диска

    3. Понятие о разделах диска

    4. Основные сведения о файловых системах

    5. FAT,  FAT32

    6. NTFS

    7. Сравнение NTFS и FAT

    Заключение

    Библиографический список

    Приложение 1.  




    ВВЕДЕНИЕ

     

    В качестве внешних запоминающих устройств в вычислительной машине могут применяться  различные носители, наиболее важными из них являются  жесткие, твердотельные и оптические диски [1-5].

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

    -     физический уровень доступа к данным на диске с помощью контроллера диска;

    -     доступ к данным с использованием BIOS  (прерывание  13h);

    -     доступ к данным с использованием средств операционных систем;

    -     доступ к данным с использованием средств языков высокого уровня.

    Программирование контроллера диска связано с большими затратами времени написания программы, кроме того, ошибки  в ней могут вызвать полное разрушение информации на диске. Поэтому первый уровень доступа к диску используется крайне редко, например, при защите информации от несанкционированного доступа [2].

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

    Таким образом, уровень доступа к диску и средства его организации определяются целями проектирования программных средств и зависят от требований по оптимизации процессов чтения/записи данных на диск.

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

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


    • Тема 1

      1. Основные внешние запоминающие устройства

       

      Внешние запоминающие устройства (устройства внешней памяти) могут быть реализованы на различных носителях – на жестких и твердотельных дисках, компактных оптических дисках, флеш-памяти, магнитных лентах, магнитных картах, магнитных барабанах и др. Они способны хранить информацию при отключенном электропитании и поэтому называются устройствами долговременного хранения [2 - 3].

      Из  всех дисков самым важным для компьютера является встроенный в системный блок жесткий диск. Часто используются синонимы: винчестер, Magnetic Hard Disk Storage, Hard Disk, Hard Disk Drive (HDD), накопитель на жестком диске (НЖД), жесткий диск. Информация на нем хранится как состояние намагниченности электро­магнитного материала, нанесенного на поверхность дисков, изготовленных, обычно, из алюминия (отсюда термин жесткий). Дисковод, обслуживающий жесткий диск, связан с ним в единое устройство, которое не предполагает замену данного диска другим. Информационная емкость современных дисков измеряется десятками миллиардов байт.

      Твердотельный накопитель или диск (англ. solid-state drive, SSD) — компьютерное энергонезависимое немеханическое запоминающее устройство на основе микросхем памяти, альтернатива HDD. По сравнению с традиционными жёсткими дисками HDD твердотельные накопители имеют меньший размер и вес, являются беззвучными, а также многократно более устойчивы к повреждениям (например, к падению) и имеют гораздо бóльшую скорость записи.

      В то же время, они имеют в несколько раз бóльшую стоимость в расчете на гигабайт и меньший ресурс записи [4].

      Флеш-память широко используется в цифровых портативных устройствах и носителях информации благодаря компактности, дешевизне, механической прочности, большому объёму, скорости работы и низкому энергопотреблению. Серьёзным недостатком данной технологии является ограниченный ресурс носителей [3, 4], а также чувствительность к электростатическому разряду.

      Большие объемы информации (до 600 - 700 Мбайт) вне компью­тера хранятся на оптических дисках (компакт-дисках CD - Compact Disk), использующих оптические методы хране­ния. На CD информация записана в виде сотен миллионов микроскопических зеркал, по-разному ориентированных относительно плоскости диска. Это достигается путем локальных искажений плоской поверхности носителя информации с помощью лазерного луча. Затем такая поверхность покрывается микроскопической по толщине пленкой алюминия, создавая зеркальную поверхность. Полученные таким образом диски предназначены только для считывания с них информации (т.е. для ввода в компьютер). Поэтому они называются CD-ROM, где ROM означает Read Only Memory. Для работы с CD-ROM в комплект компьютера включаются специальные дисководы, располагаемые внутри систем­ного блока. Информация считывается оптическим бесконтактным методом, что обеспечивает при аккуратном обращении с диском надежную сохранность информации в течение многих лет [5].

      Существуют CD, допускающие перезапись информации на них. Они называются CD RW (RWReWritable, т.е. перезаписываемые).

      Кроме оптических дисков CD используется другой тип оптического носителя информации, называемый DVD (Digital Video Disk – цифровой видео диск), в вариантах DVD-ROM и DVD RAM. Главное их преимущество перед CD – бóльшая информационная емкость (приблизительно  в 6-8 раз) и бóльшая скорость считывания информации  [5].

      Накопитель на магнитных лентах, стример (Streamer) используется, в основном, для архивного хранения копий значительных по объему данных – от десятков мегабайт до сотен гигабайт на одну кассету, потенциальная емкость этих устройств составляет несколько террабайт, скорость чтения/записи – 90-300 М/мин., возможность прямого доступа  [2].


      • Тема 2

        2. Физическая структура жесткого диска

         

        В настоящее основой внешней памяти служит накопитель на жестком магнитном диске HDD.

        Плотность записи на жёстких дисках за 50 лет (с 1961 по 2011 год) увеличилась в 60 млн раз, а за последние 5 лет – объем HDD увеличился с 6  до  16 ТБ [6]: компания Western Digital в 2014 году выпустила первый в мире диск на 10 ТБ с гелием вместо воздуха внутри корпуса, а компания Seagate в 2018 году заявила о создании жёсткого диска объёмом 16 ТБ.

        Диск в общем случае  состоит  из одной или нескольких пластин, собранных в пакет [6 – 8]. В процессе низкоуровневого форматирования диск разбивается на концентрические дорожки (track), каждая из которых в свою очередь подразделяется радиально на секторы (sector) – минимальные физически адресуемые единицы дисковой памяти.  Стандартный  размер сектора равен 512 байтов, однако в целях защиты от несанкционированного копирования информации, имеется  возможность форматировать весь диск или отдельные дорожки на секторы нестандартных размеров.

        Разметка жестких дисков производится с помощью команды Format, в которой можно указать специальную информацию о размерах секторов диска. При форматировании в секторы записываются так называемые пустые символы (коды F6 h  или E6 h), которые затем при записи данных на диск заменяются значащими. В случае обнаружения ошибок – дефектных участков, на которые невозможно записать пустые  символы, команда их блокирует, т.е. делает их недоступными и тем самым уменьшает рабочее пространство диска.

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

        Дорожки нумеруются по направлению от края диска к его центру, начиная с номера 0.

        Секторы нумеруются в пределах одной дорожки, начиная с номера 1.

        Стороны нумеруются, начиная с 0.

        Количество дорожек, секторов на дорожке и сторон зависит от типов дисков и средств их форматирования, т.е. формирования первоначальной файловой структуры, и изменяется в значительных пределах.

        Все дорожки, расположенные на определенном расстоянии от центра, называются  цилиндром (cylinder). Номер цилиндра соответствует номерам дорожек, входящих в этот цилиндр. По мере записи информации цилиндры постепенно заполняются по направлению к центру диска. Переход от одной дорожки цилиндра не требует перемещения головок чтения/записи. Таким образом,  достигается уменьшение времени на перемещение головок  от одного цилиндра к другому и физического износа диска за счет оптимизации перемещения головок.

        Физическое расположение сектора на диске полностью определяется номерами дорожки (цилиндра), сектора и стороны (головки):

        Дорожка  №0       Сектор   №1        Сторона  №0      

         

        Здесь используется так называемая абсолютная нумерация диска.

        Однако операционная система рассматривает все секторы диска, как один непрерывный массив, элементы которого нумеруются подряд, начиная с 0, поэтому каждый сектор, кроме абсолютной нумерации, имеет свой логический или относительный номер.

        Группы цилиндров могут относиться к различным операционным системам. Описание логического подразделения диска на части находится  в  первом секторе диска. Такое разбиение позволяет использовать устройство различными операционными системами.

        Несколько секторов на внешних дорожках диска  зарезервированы  для  специальных системных целей. Остальные доступны  для записи в соответствии с дисциплиной обслуживания FIFO (First In First Out – «Первый поступил – первый  обслужен»).

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

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

        Для каждого сектора выполняется контроль записи и чтения:

        -          при записи вычисляется контрольная сумма (КС) всех байтов из сектора. КС записывается в специальную служебную область за данными (рисунок 1);

        -          при чтении вновь вычисляется контрольная сумма и сравнивается с имеющейся КС, при их несовпадении выдается сообщение об ошибке.

        Дисковые сектора определяются информацией, которая записывается при форматировании диска.

        IDAM

        дорожки

        головки

        сектора

        Длина

        сектора

        КС

        FF

        00

        Адресная

        метка

        Данные

        КС

        Адресная метка индексных данных                       Промежуток

         

         

         

        Служебная информация для контроллера диска

         

        Рисунок 1 -  Структура сектора

        Структура дорожки  представлена на рисунке 2.

         

        FF

        00

        I A M

         

        Сектор

        1

         

        Сектор

        2

         

         

        Сектор

        N

         

         

        Промежуток 1

        Промежуток GPL

         

         

         

        Индексная адресная метка

         

         

         

        Конечный

         
        Преиндексный синхронизирующий промежуток

        промежуток

         

        Рисунок 2 - Структура зон на дорожке диска

         

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

        В процессе работы машины контроллер и процессор обмениваются управляющей информацией: контроллер некоторое время функционирует автономно – после получения команды от процессора он выполняет ее без взаимодействия с ним. О завершении операции сообщает выдачей сигнала на шину IRQ контроллера прерываний. Центральный процессор, если он не занят обработкой более приоритетного прерывания, принимает управление дисковыми операциями на себя.

        Как уже отмечалось, программирование контроллера диска связано с большими проблемами, поэтому его используют лишь в крайних случаях, когда  средства BIOS и ОС не предоставляют требуемого сервиса.



        • Тема 3

          3. Понятие о разделах диска

           

          Жесткие диски часто разделяются на  логические  блочные  устройства  меньшего  размера – разделы (рисунок 3). В общем случае на  диске может быть до четырех разделов, на каждом из которых может быть установлена своя собственная файловая система.

          Разделы описаны в таблице описания разделов (Partition Table), находящейся  в  первом  секторе диска.   Эта  таблица  указывает  на   физическое расположение логических блочных устройств (даже на диске  с единственным разделом обычно имеется такая таблица).

            

          Логический

           

          номер

          сектора

           

           

           

           

           

           

          0

          1

          2

          ...

          0

          1

          2

           

           

          Master Boot

          Record (MBR)

           

          ...

           

          1

           

          2

           

          3

           

          4

          AA

          55

           

          ...

           

          Boot

           

           

          ...

           

          ...

           

          ...

           

          Boot

           

           

          ...

           

          ...

           

          ...

                                                                …

                     1 cектор (физический)                          Раздел 1         Раздел 2   

            Рисунок 3 -  Логическое разбиение диска на разделы

           

          В соответствии со стандартом разбиения диска, первый физический сектор диска (Master Boot Record – MBR) содержит кроме таблицы описания разделов  программу начальной загрузки, предназначенную для анализа таблицы описания разделов при начальной загрузке разделов и передачи управления следующей системной программе загрузки [11]. 

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

          Каждый 16-байтовый вход содержит информацию о соответствующем разделе, приведенную в таблице 2. Индикатор начальной загрузки равен 80Н для загружаемого (активного)  раздела  и нулю для незагружаемого (неактивного) раздела. 

          Таблица 1 – Структура Partition Table

           

          Смещение от начала

          сектора

          Размер

          в байтах

          Содержание

          входа

          1.     

          0000h

          Не определен

          MBR

          2.     

             01BEh

          16

          Раздел № 1

          3.     

             01CEh

          16

          Раздел № 2

          4.     

             01DEh

          16

          Раздел № 3

          5.     

             01EEh

          16

          Раздел № 4

          6.     

             01BFh

          2

          Признак:   АА55 h

           

           

          Жесткий  диск может иметь только один активный раздел.

           

          Таблица 2 – Структура входа описания раздела

          Смещение от

          начала сектора

          Размер

          в байтах

          Содержание

          входа

          1.     

          00h

          1

          Индикатор начальной загрузки:

          80h – активный раздел;

          00h – неактивный раздел.

          2.     

          01h

          1

          Признак начала

          3.     

          02h

          1

          Начальный сектор

          4.     

          03h

          1

          Начальный цилиндр

          5.     

          04h

          1

          Системный индикатор

          6.     

          5Ch

          1

          Признак конца

          7.     

          6Dh

          1

          Конечный сектор

          8.     

          7Bh

          1

          Конечный цилиндр

          9.     

          08h

          4

          Начальный сектор  (относительно начала диска)

          10. 

          0Ch

          4

          Количество секторов в разделе

           

           

          Значения системных индикаторов приведены в таблице 3.

          Сектор начальной загрузки (Boot Sector) для каждого раздела расположен в секторе с логическим номером 0.  Физическое расположение этого сектора определяется в Partition Table признаком начала,  номерами начального сектора и начального цилиндра.

          Эта информация, хранящаяся в таблице описания  полей,  загружается в регистры DX и CX с помощью загрузчика базовой системы ввода/вывода, находящегося в ПЗУ персонального компьютера (ROM BIOS Loader Routine) при включении или перезагрузке машины.

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

          Общее число   секторов   в  разделе  определяется  как  разность  между  номерами начального и конечного цилиндра,  умноженная на число секторов в цилиндре.

          Таблица 3 – Значения системных индикаторов

          №  

            Код              

                     Значение

          1.     

          00h

          Не определено

          2.     

          01h       

          DOS 12-bit FAT

          3.     

          04h        

          DOS 16-bit FAT

          4.     

          06h    

          DOS Large File System

          5.     

          08h       

          AIX bootable partition

          6.     

          11h      

          FAT32 (до 2048 Г)

          7.     

          51h     

          Disk Manager

          8.     

          56h        

           GB

          9.     

          61h       

           SpeedStor

          10.     

          64h     

           Novell NetWare

          11.     

          75h   

           PC/IX

          12.     

          80h    

           Minix v1.3 and below

          13.     

          81h       

           Minix v1.5+

          14.     

          E1h   

          SpeedStor 12-bit FAT extended partition

          15.     

          E4h   

          SpeedStor 16-bit FAT extended partition

           

          Для удобства работы раздел может быть разбит на логические диски, так называемые тома (рисунок 4), каждый из которых получает свое уникальное имя  –     С: ,   D: ,    E:    и т.п. (до 24 дисков, имена соответствуют буквам латинского алфавита, символ «:»  входит в состав имени диска).

          Рисунок 4 - Разбиение раздела на логические диски

           

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

          Дамп первого сектора  (Master Boot Record)  жесткого диска имеет следующий вид:

           

           FA  33  C0  8E  D0  BC  00  7C  8B  F4  50  07  50  1F  FB  FC

           BF  00  06  B9  00  01  F2  A5  EA  1D  06  00  00  BE  BE  07

           B3  04  80  3C  80  74  0E  80  3C  00  75  1C  83  C6  10  FE

           CB  75  EF  CD  18  8B  14  8B  4C  02  8B  EE  83  C6  10  FE

           CB  74  1A  80  3C  00  74  F4  BE  8B  06  AC  3C  00  74  0B

           56  BB  07  00  B4  0E  CD  10  5E  EB  F0  EB  FE  BF  05  00

           BB  00  7C  B8  01  02  57  CD  13  5F  73  0C  33  C0  CD  13

           4F  75  ED  BE  A3  06  EB  D3  BE  C2  06  BF  FE  7D  81  3D

           55  AA  75  C7  8B  F5  EA  00  7C  00  00  49  6E  76  61  6C

           69  64  20  70  61  72  74  69  74  69  6F  6E  20  74  61  62

           6C  65  00  45  72  72  6F  72  20  6C  6F  61  64  69  6E  67

           20  6F  70  65  72  61  74  69  6E  67  20  73  79  73  74  65

           6D  00  4D  69  73  73  69  6E  67  20  6F  70  65  72  61  74

           69  6E  67  20  73  79  73  74  65  6D  00  00  76  6C  54  1E

           00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

          .   .   .

           00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

           00  00  00  00  00  00  00  00  00  00  00  00  00  00  80  01

           01  00  04  0E  26  47  26  00  00  00  2A  A0  00  00  00  00

           01  48  05  0E  A6  D1  50  A0  00  00  44  A7  05  00  00  00

           00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

           00  00  00  00  00  00  00  00  00  00  00  00  00  00  55  AA

           

           

          На дисках размещается файловая система, в которой основным элементом хранения данных является файл. Файл обеспечивает возможность машине и человеку отличать один набор данных от другого при их поиске, изменении, удалении или выполнении с ними других операций [2].

          Организация файловой системы в различных операционных системах отличаются друг от друга  [9, 10]. 


          • Тема 4

            4. Основные сведения о файловых системах

             

            В широком смысле понятие «файловая система» (ФС) включает в себя:

            -          совокупность всех файлов на диске,

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

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

            Различие между файловыми системами заключается, в основном, в способах распределения пространства между файлами на диске и организации на диске служебных областей  [10 -12].

            Современные операционные системы стремятся обеспечить пользователя возможностью работать одновременно с несколькими файловыми системами. В этом случае ФС рассматривается как часть подсистемы ввода-вывода.

            В большинстве операционных систем (семейства Windows, OS/2) реализуется механизм переключения файловых систем (File System Switch, FSS), позволяющий поддерживать различные типы ФС. В Windows, такой переключатель называется устанавливаемым диспетчером файловой системы – installable filesystem manager, IFS.

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

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

            Клиент-серверные приложения предъявляют повышенные требования к производительности файловых систем. Современные файловые системы должны обеспечивать эффективный доступ к файлам, поддержку носителей данных достаточно большого объема, защиту от несанкционированного доступа к данным и сохранение целостности данных. Под целостностью данных подразумевается способность ФС обеспечивать отсутствие ошибок и нарушений согласованности в данных, а также восстанавливать поврежденные данные.

            Рассмотрим в качестве примера файловые системы для наиболее распространенных в наше время носителей информации – магнитных дисков и флеш накопителей.


            • Тема 5

              5. FAT

               

              Файловая система FAT (File Allocation Table, таблица размещения файлов) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS  [11]. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков. В настоящее время FAT поддерживает файлы и разделы размеров до 2 Гбайт.

              В FAT применяются следующие соглашения по именам файлов:

              -          имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов «/\(]:;|=,^*?  ;

              -          длина имени не превышает 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов;

              -          регистр символов в именах файлов не различается и не сохраняется.

              Структура раздела FAT изображена на рисунке 5. В блоке параметров BIOS содержится необходимая BIOS информация о физических характеристиках жесткого диска. Файловая система FAT не может контролировать отдельно каждый сектор, поэтому она объединяет смежные сектора в кластеры (clusters). Таким образом, уменьшается общее количество единиц хранения, за которыми должна следить файловая система.

              Загрузочный сектор

              Блок  параметров BIOS (BPB)

              FAT

              FAT
                  (
              копия)

              Корневой     каталог

              Область

              файлов

                                                                                                                                                                                                                                                                                                 

              Рисунок 5 - Структура раздела FAT                 

               

              Размер кластера в FAT является степенью двойки и определяется размером тома при форматировании диска (таблица 4). Кластер представляет собой минимальное пространство, которое может занимать файл. Это приводит к тому, что часть пространства диска расходуется впустую. В состав операционной системы входят различные утилиты (DoubleSpace, DriveSpace), предназначенные для уплотнения данных на диске.

              Таблица 4 - Размер кластера в FAT

              Размер раздела

              Размер кластера

              Тип FAT

              < 16 Мб

              4 Кб

              FAT12

              16 Мб – 127 Мб

              2 Кб

              FAT16

              128 Мб – 255 Мб

              4 Кб

              FAT16

              256 Мб – 511 Мб

              8 Кб

              FAT16

              512 Мб – 1023 Мб

              16 Кб

              FAT16

              1 Гб – 2 Гб

              32 Кб

              FAT16

               

              В таблице размещения файлов хранится информация о кластерах логического диска. Каждому кластеру в FAT соответствует отдельная запись, которая показывает, свободен ли он, занят ли данными файла, или помечен как сбойный (испорченный). Если кластер занят под файл, то в соответствующей записи в таблице размещения файлов указывается адрес кластера, содержащего следующую часть файла. Из-за этого FAT называют файловой системой со связанными списками. Оригинальная версия FAT, разработанная для DOS 1.00, использовала 12-битную таблицу размещения файлов и поддерживала разделы объемом до 16 Мб (в DOS можно создать не более двух разделов FAT). Для поддержки жестких дисков размером более 32 Мб разрядность FAT была увеличена до 16 бит, а размер кластера – до 64 секторов (32 Кб). Так как каждому кластеру может быть присвоен уникальный 16-разрядный номер, то FAT поддерживает максимально 216, или 65536 кластеров на одном томе.

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

              Каждому файлу и подкаталогу в FAT соответствует 32-байтный элемент каталога (directory entry), содержащий имя файла, его атрибуты (архивный, скрытый, системный и “только для чтения”), дату и время создания (или внесения в него последних изменений), а также прочую информацию (таблица 5).

              Таблица 5 -  Элемент каталога

              Содержание

              Размер (байт)

              Имя файла

              8

              Расширение

              3

              Байт атрибутов

              1

              Зарезервировано

              10

              Время

              2

              Дата

              2

              Номер начального кластера с данными

              2

              Размер файла

              4

               

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

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

              Поскольку FAT изначально проектировалась для однопользовательской операционной системы DOS, то она не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу/каталогу.

              FAT является достаточно распространенной файловой системой и ее в той или иной степени поддерживают большинство современных ОС. Благодаря своей универсальности FAT может применяться на томах, с которыми работают разные операционные системы. Отчасти это можно объяснить тем, что простая структура FAT требует меньше места для хранения служебных данных, чем остальные системы. Преимущества других файловых систем становятся заметны только при использовании их на носителях объемом более 100 Мб.

              Надо отметить, что FAT – простая файловая система, не предотвращающая порчи файлов из-за ненормального завершения работы компьютера. В состав операционных систем, поддерживающих FAT, входят специальные утилиты проверяющие структуру и корректирующие несоответствия в файловой системе  [12].

              Недостатки FAT

              Помимо рассмотренных выше ограничений, файловой системе FAT присущи и другие недостатки. Наиболее существенными, по-видимому, является полное отсутствие средств разграничения доступа, а также возможность потери информации о размещении всех файлов после разрушения довольно компактной таблицы FAT и ее копии.

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

              При использовании FAT на дисках сервера невозможно обеспечить надежное и гибкое разграничение доступа пользователей к каталогам. Именно поэтому, а также в силу своей низкой устойчивостью к сбоям, FAT обычно не используется на серверах.

              Наличие компактных таблиц размещения файлов FAT делает эту файловую систему уязвимой мишенью для компьютерных вирусов – достаточно уничтожить начальный фрагмент диска FAT, и почти все данные будут потеряны  [11, 12].

              Объемы жестких дисков новых поколений увеличивались [6, 7], и FAT уже не могла поддерживать разделы размером более 2 Гб,  поэтому были разработаны ее модификации  – VFAT и FAT32 [9, 12].

              Файловая система VFAT (Virtual FAT), реализованная в Windows NT 3.5, Windows 95 (DOS 7.0), это файловая система FAT, включающая поддержку длинных имен файлов (Long File Name, LFN) в кодировке UNICODE. VFAT использует ту же самую схему распределения дискового пространства, что и файловая система FAT, поэтому размер кластера определяется величиной раздела .

              Основной задачей при разработке VFAT была необходимость корректной работы старых программ, не поддерживающих длинные имена файлов.

              Для каждого файла и подкаталога в VFAT хранится два имени: длинное и короткое в формате 8.3 для совместимости со старыми программами.

              Дальнейшим развитием FAT была FAT32 – усовершенствованная версия файловой системы VFAT, поддерживающая жесткие диски объемом до 2 терабайт. Впервые файловая система FAT32 была включена в состав ОС Windows  95 OSR 2. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу.

              Из-за требования совместимости с ранее созданными программами структура FAT32 содержит минимальные изменения. Главные отличия от предыдущих версий FAT состоят в следующем:

              -          блок начальной загрузки на разделах с FAT32 был увеличен до 2 секторов и включает в себя резервную копию загрузочного сектора, что позволяет системе быть более устойчивой к возможным сбоям на диске.

              -          объем, занимаемый таблицей размещения файлов, увеличился, каждая запись в ней занимает 32 байта, и общее число кластеров на разделе FAT32 больше, чем на разделах FAT. Соответственно, выросло и количество зарезервированных секторов.

              В операционных системах Microsoft Windows 2000/XP, разработанных в двухтысячных годах, нельзя было создавать разделы FAT32 с объемом, превышающим 32 Гбайт. Для использования разделов такого и большего объема, компания Microsoft разработала файловую систему NTFS.


              • Тема 6

                6. NTFS

                 

                NTFS (New Technology File System) – наиболее предпочтительная файловая система при работе с ОС Windows NT и современными версиями ОС Windows, поскольку она была специально разработана для данной системы. В состав Windows NT входит утилита convert, осуществляющая конвертирование томов с FAT и HPFS [9] в тома NTFS.

                В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов, поддержка требований стандарта POSIX. NTFS позволяет использовать имена файлов длиной до 255 символов, при этом она использует тот же алгоритм для генерации короткого имени, что и VFAT. NTFS обладает возможностью самостоятельного восстановления в случае сбоя ОС или оборудования, так что дисковый том остается доступным, а структура каталогов не нарушается.

                Каждый файл на томе NTFS представлен записью в специальном файле – главной файловой таблице MFT (Master File Table). NTFS резервирует первые 16 записей таблицы размером около 1 Мб для специальной информации. Первая запись таблицы описывает непосредственно саму главную файловую таблицу. За ней следует зеркальная запись MFT. Если первая запись MFT разрушена, NTFS считывает вторую запись, чтобы отыскать зеркальный файл MFT, первая запись которого идентична первой записи MFT. Местоположение сегментов данных MFT и зеркального файла MFT хранится в секторе начальной загрузки. Копия сектора начальной загрузки находится в логическом центре диска. Третья запись MFT содержит файл регистрации, применяемый для восстановления файлов. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами на томе.

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

                Схема распределения пространства на томе хранится в файле битовой карты (bitmap file). Атрибут данных этого файла содержит битовую карту, каждый бит которой представляет один кластер тома и указывает, свободен ли данный кластер или занят некоторым файлом.

                В загрузочном файле (boot file) хранится код начального загрузчика Windows NT.

                NTFS также поддерживает файл плохих кластеров (bad cluster file) для регистрации поврежденных участков на томе и файл тома (volume file), содержащий имя тома, версию NTFS и бит, который устанавливается при повреждении тома. Наконец, имеется файл, содержащий таблицу определения атрибутов (attribute definition table), которая задает типы атрибутов, поддерживаемые на томе, и указывает можно ли их индексировать, восстанавливать операцией восстановления системы и т.д.

                NTFS распределяет пространство кластерами и использует для их нумерации 64 разряда, что дает возможность иметь 264 кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. Размеры кластеров, устанавливаемые по умолчанию при форматировании раздела, приведены в таблице 6.

                Таблица 6 - Размеры кластеров

                Размер раздела

                Размер кластера

                < 512 Мб

                512 байт

                513 Мб - 1024 Мб (1 Гб)

                1 Кб

                1 Гб - 2 Гб

                2 Кб

                2 Гб - 4 Гб

                4 Кб

                4 Гб - 8 Гб

                8 Кб

                8 Гб - 16 Гб

                16 Кб

                16 Гб - 32 Гб

                32 Кб

                > 32 Гб

                64 Кб

                 

                NTFS позволяет хранить файлы размером до 16 эксабайт (264 байт) и располагает встроенным средством уплотнения файлов в реальном времени. Сжатие является одним из атрибутов файла или каталога и подобно любому атрибуту может быть снято или установлено в любой момент (сжатие возможно на разделах с размером кластера не более 4 Кб). При уплотнении файла, в отличие от схем уплотнения используемых в FAT, применяется пофайловое уплотнение, таким образом, порча небольшого участка диска не приводит к потере информации в других файлах.

                Для уменьшения фрагментации NTFS всегда пытается сохранить файлы в непрерывных блоках. Эта система использует структуру каталогов в виде B-дерева, аналогичную высокопроизводительной файловой системе HPFS, а не структуре со связанным списком применяемой в FAT. Благодаря этому поиск файлов в каталоге осуществляется быстрее, поскольку имена файлов хранятся сортированными в лексикографическом порядке.

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

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

                Для получения доступа к файлам достаточно загрузить компьютер в DOS с дискеты и воспользоваться каким-нибудь сторонним драйвером NTFS для этой системы.

                С версий  Windows 2000 по  Windows 10, а также Windows Server 2012 RTM фирма Microsoft поддерживает файловую систему NTFS 3.1 (встречается также ее название «NTFS V5.1»). В этой версии NTFS были введены дополнительные атрибуты файлов; наряду с правом доступа введено понятие запрета доступа, позволяющее, например, при наследовании пользователем прав группы на какой-нибудь файл, запретить ему возможность изменять его содержимое. Добавлено сохранение резервной копии MFT.

                Новая система также позволяет:

                -          вводить ограничения (квоты) на размер дискового пространства, предоставленного пользователям;

                -          проецировать любой каталог (как на локальном, так и на удаленном компьютере) в подкаталог на локальном диске.

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

                В состав семейства Windows входит файловая система с шифрованием (Encrypting File System, EFS), использующая алгоритмы шифрования с общим ключом. Если для файла установлен атрибут шифрования, то при обращении пользовательской программы к файлу для записи или чтения происходит прозрачное для программы кодирование и декодирование файла.

                При необходимости в одном файле, записанном на диске NTFS, можно хранить несколько потоков информации.

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

                Жесткие связи (hard links) позволяют назначать для одного физического файла несколько разных имен, располагая эти имена (т.е. ссылки на файл) в разных каталогах.

                При удалении связи не происходит удаления самого файла.

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

                Заметим, что подобные возможности характерны для файловых систем, применяемых в Unix-подобных ОС, например, в Linux, FreeBSD и т.д. такие системные объекты NTFS, как точки переопределения (reparse points) позволяют переопределить любой файл или каталог.

                При этом, например, редко используемые переопределенные файлы или каталоги фактически могут храниться на магнитной ленте, загружаясь на диск только при необходимости.

                Пользуясь переходами NTFS, можно смонтировать в каталог диска другой жесткий диск или компакт-диск.

                Эта возможность первоначально существовала в файловых системах Unix-подобных ОС.


                • Тема 7

                  7.  Сравнение NTFS и FAT

                   

                  Скорость доступа к файлам

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

                  Однако сравнение производительности этих файловых систем не дает однозначного результата, так как производительность зависит от множества различных факторов [9, 12, 13].

                  Так как принципы работы и внутренние структуры FAT намного проще, чем NTFS, при работе с небольшими каталогами FAT будет быстрее. Однако, если содержимое каталога настолько мало, что он полностью помещается в одну или несколько записей файла $MFT, или если каталог очень большой, то быстрее окажется NTFS.

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

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

                  При увеличении размера кластера до 64 Кбайт можно получить максимальное повышение производительности, но придется отказаться от упаковки файлов и применения утилит дефрагментации [11, 12].

                  При упаковке файлов, расположенных на дисках небольшого размера (порядка 4 Гбайт), производительность может возрасти, а при сжатии дисков большого размера – уменьшиться.

                  В любом случае упаковка приведет к появлению дополнительной нагрузки на центральный процессор.

                   

                   

                  Поиск данных файла

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

                  Рассматриваются действия, которые приходится выполнять системе перед доступом к реальным данным файлов.

                  На что влияет этот параметр: на скорость навигации по файлу (доступ к произвольному фрагменту файла). Любая работа с большими файлами данных и документов, если их размер – несколько мегабайт и более. Этот параметр показывает, насколько сильно сама файловая система  страдает от фрагментации файлов.

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

                  FAT32, из-за большой области самой таблицы размещения будет испытывать огромные трудности, если фрагменты файла разбросаны по всему диску. Так как  FAT представляет собой мини-образ диска, куда включен каждый его кластер, то для доступа к фрагменту файла в системе FAT16 и FAT32 приходится обращаться к соответствующей части FAT. Если файл, к примеру, расположен в трех фрагментах – в начале диска, в середине, и в конце – то в системе FAT нам придется обратиться к фрагменту FAT также в его начале, в середине и в конце. В системе FAT16, где максимальный размер области FAT составляет 128 Кбайт, это не составит проблемы – вся область FAT просто хранится в памяти, или же считывается с диска целиком за один проход и буферизируется. FAT32 же, напротив, имеет типичный размер области FAT порядка сотен килобайт, а на больших дисках – даже несколько мегабайт. Если файл расположен в разных частях диска – это вынуждает систему совершать движения головок винчестера столько раз, сколько групп фрагментов в разных областях имеет файл, а это очень и очень сильно замедляет процесс поиска фрагментов файла.

                  Вывод: Самая быстрая система – FAT16, она никогда не заставит систему делать лишние дисковые операции для данной цели. Затем идет NTFS – эта система также не требует чтения лишней информации, по крайней мере, до того момента, пока файл имеет разумное число фрагментов. FAT32 испытывает огромные трудности, вплоть до чтения лишних сотен килобайт из области FAT, если файл разбросан по разным областям диска. Работа с внушительными по размеру файлами на FAT32 в любом случае сопряжена с огромными трудностями – понять, в каком месте на диске расположен тот или иной фрагмент файла, можно лишь изучив всю последовательность кластеров файла с самого начала, обрабатывая за один раз один кластер (через каждые 4 Кбайт файла в типичной системе). Стоит отметить, что если файл фрагментирован, но лежит компактной кучей фрагментов – FAT32 всё же не испытывает больших трудностей, так как физический доступ к области FAT будет также компактен и буферизован.

                   

                  Поиск свободного места

                  Данная операция производится в том случае, если файл нужно создать с нуля или скопировать на диск. Поиск места под физические данные файла зависит от того, как хранится информация о занятых участках диска.

                  На что влияет этот параметр: на скорость создания файлов, особенно больших. Сохранение или создание в реальном времени больших мультимедийных файлов (.wav, к примеру), копирование больших объемов информации, т.д. Этот параметр показывает, насколько быстро система сможет найти место для записи на диск новых данных, и какие операции ей придется для этого проделать.

                  Для определения того, свободен ли данный кластер или нет, системы на основе FAT должны просмотреть одну запись FAT, соответствующую этому кластеру. Размер одной записи FAT16 составляет 16 бит, одной записи FAT32 – 32 бита. Для поиска свободного места на диске может потребоваться просмотреть почти весь FAT – это 128 Кбайт (максимум) для FAT16 и до нескольких мегабайт  – в FAT32. Для того, чтобы не превращать поиск свободного места в катастрофу (для FAT32), операционной системе приходится идти на различные ухищрения.

                  NTFS имеет битовую карту свободного места, одному кластеру соответствует 1 бит. Для поиска свободного места на диске приходится оценивать объемы в десятки раз меньшие, чем в системах FAT и FAT32.

                  Вывод: NTFS имеет наиболее эффективную систему нахождения свободного места. Стоит отметить, что FAT16 или FAT32 действуют очень медленно, поэтому для нахождения свободного места в этих системах применяются различные методы оптимизации, в результате чего и там достигается приемлемая скорость. (Поиск свободного места при работе в DOS на FAT32 – катастрофический по скорости процесс, поскольку никакая оптимизация невозможна без поддержки хоть сколь серьезной операционной системы).

                   

                  Работа с каталогами и файлами

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

                  На что влияет этот параметр: на скорость осуществления любых операций с файлом, в том числе – на скорость любой операции доступа к файлу, особенно – в каталогах с большим числом файлов (тысячи).

                  FAT16 и FAT32 имеют очень компактные каталоги, размер каждой записи которых предельно мал. Более того, из-за сложившейся исторически системы хранения длинных имен файлов (более 11 символов), в каталогах систем FAT используется не очень эффективная и на первый взгляд неудачная, но зато очень экономная структура хранения этих самих длинных имен файлов. Работа с каталогами FAT производится достаточно быстро, так как в подавляющем числе случаев каталог (файл данных каталога) не фрагментирован и находится на диске в одном месте.

                  Единственная проблема, которая может существенно понизить скорость работы каталогов FAT – большое количество файлов в одном каталоге (порядка тысячи или более). Система хранения данных – линейный массив - не позволяет организовать эффективный поиск файлов в таком каталоге, и для нахождения данного файла приходится перебирать большой объем данных (в среднем – половину файла каталога).

                  NTFS использует гораздо более эффективный способ адресации – бинарное дерево. Эта организация позволяет эффективно работать с каталогами любого размера – каталогам NTFS не страшно увеличение количества файлов в одном каталоге и до десятков тысяч.

                  Стоит заметить, что сам каталог NTFS представляет собой гораздо  менее компактную структуру, нежели каталог FAT – это связано с гораздо большим (в несколько раз) размером одной записи каталога. Данное обстоятельство приводит к тому, что каталоги на томе NTFS в подавляющем числе случаев сильно фрагментированы. Размер типичного каталога на FAT-е укладывается в один кластер, тогда как сотня файлов (и даже меньше) в каталоге на NTFS уже приводит к размеру файла каталога, превышающему типичный размер одного кластера.

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

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

                  Преимущества каталогов NTFS становятся реальными и неоспоримыми только в том случае, если в одно каталоге присутствуют тысячи файлов – в этом случае быстродействие компенсирует фрагментированность самого каталога и трудности с физическим обращением к данным (в первый раз – далее каталог кэшируется). Напряженная работа с каталогами, содержащими порядка тысячи и более файлов, проходит на NTFS буквально в несколько раз быстрее, а иногда выигрыш в скорости по сравнению с FAT и FAT32 достигает десятков раз.

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

                   

                  Кэширование

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

                  -          данные о физическом местоположении всех открытых файлов. Это, прежде всего, позволит обращаться к системным файлам и библиотекам, доступ к которым идет буквально постоянно, без чтения служебной (не относящейся к самим файлам) информации с диска. Это же относится к тем файлам, которые исполняются в данный момент – т.е. к выполняемым модулям (.exe и .dll) активных процессов в системе. В эту категорию попадают также файлы системы, с которыми производится работа (прежде всего реестр и виртуальная память, различные .ini файлы, а также файлы документов и приложений);

                  -          наиболее часто используемые каталоги. К ним можно отнести рабочий стол, меню «пуск», системные каталоги, каталоги кэша интернета, и т.п.;

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

                  -          FAT16 имеет очень мало данных, отвечающих за организацию файловой системы. Из служебных областей можно выделить только саму область FAT, которая не может превышать 128 Кбайт (!) – эта область отвечает и за поиск фрагментов файлов, и за поиск свободного места на томе. Каталоги системы FAT также очень компактны. Общий объем памяти, необходимый для предельно эффективной работы с FAT-ом, может колебаться от сотни килобайт и до мегабайта-другого – при условии огромного числа и размера каталогов, с которыми ведется работа;

                  -          FAT32 отличается от FAT16 лишь тем, что сама область FAT может иметь более внушительные размеры. На томах порядка 5 – 10 Гбайт область FAT может занимать объем в несколько Мбайт, и это уже очень внушительный объем, надежно кэшировать который не представляется возможным. Тем не менее, область FAT, а вернее те фрагменты, которые отвечают за местоположение рабочих файлов, в подавляющем большинстве систем находятся в памяти машины – на это расходуется порядка нескольких Мбайт оперативной памяти;

                  -          NTFS предъявляет гораздо большие требования к памяти, необходимой для работы системы. Прежде всего, кэширование сильно затрудняет большие размеры каталогов. Размер одних только каталогов, с которыми активно ведет работу система, может доходить до нескольких Мбайт и даже десятков Мбайт. Кроме этого, необходимо кэшировать карту свободного места тома (сотни Кбайт) и записи MFT для файлов, с которыми осуществляется работа (в типичной системе – по 1 Кбайт на каждый файл). К счастью, NTFS имеет удачную систему хранения данных, которая не приводит к увеличению каких-либо фиксированных областей при увеличении объема диска. Количество данных, с которым оперирует система на основе NTFS, практически не зависит от объема тома, и основной вклад в объемы данных, которые необходимо кэшировать, вносят каталоги. Тем не менее, уже этого вполне достаточно для того, чтобы только минимальный  объем данных, необходимых для кэширования базовых областей NTFS, доходил до 5 – 8 Мбайт.

                  Необходимо отметить, что NTFS теряет огромное количество своего теоретического быстродействия из-за недостаточного кэширования. На системах, имеющих менее 64 Мбайт памяти, NTFS просто не может  оказаться быстрее FAT16 или FAT32. Единственное исключение из этого правила – диски FAT32, имеющие объем десятки Гбайт. В остальных же случаях – системы с менее чем 64 мегабайтами памяти работают с FAT32 быстрее.

                  Системы с объемом памяти в 64 Мбайта, к сожалению, также не дают возможности организовать эффективную работу с NTFS. На малых и средних дисках (до 10 Гбайт) в типичных системах FAT32 будет работать немного быстрее. Единственное, что можно сказать по поводу быстродействия систем с таким объемом оперативной памяти – системы, работающие с FAT32, будут гораздо сильнее страдать от фрагментации, чем системы на NTFS. Но если хотя бы изредка дефрагментировать диски, то FAT32, с точки зрения быстродействия, является предпочтительным вариантом. Многие люди, тем не менее, выбирают в таких системах NTFS – просто из-за того, что это даст некоторые довольно важные преимущества, тогда как типичная потеря быстродействия не очень велика.

                  Системы с более чем 64 Мбайтами, а особенно – со 128 Мбайт и более памяти, смогут уверенно кэшировать абсолютно всё, что необходимо для работы систем, и вот на таких компьютерах NTFS, скорее всего, покажет более высокое быстродействие из-за более продуманной организации данных.

                  Быстродействие накопителя

                  Физические параметры жесткого диска незначительно влияют на быстродействие файловой системы. Можно выделить следующие параметры физической дисковой системы, которые по-разному влияют на разные типы файловых систем [13]:

                  -          Время случайного доступа (random seek time). К сожалению, для доступа к системным областям на типичном диске более сложной файловой системы (NTFS) приходится совершать, в среднем, больше движений головками диска, чем в более простых системах (FAT16 и FAT32). Гораздо большая фрагментация каталогов, возможность фрагментации системных областей – всё это делает диски NTFS гораздо более чувствительными к скорости считывания произвольных областей диска. По этой причине использовать NTFS на медленных дисках не рекомендуется, так как высокое время поиска дорожки дает еще один плюс в пользу систем FAT.

                  -          Наличие Bus Mastering. Bus Mastering – специальный режим работы драйвера и контроллера, при использовании которого обмен с диском производится без участия процессора. Стоит отметить, что система запаздывающего кэширования NTFS сможет действовать гораздо более эффективно при наличии Bus Mastering, т.к. NTFS производит отложенную запись гораздо большего числа данных. Системы без Bus Mastering в настоящее время встречаются достаточно редко (обычно это накопители или контроллеры, работающие в режиме PIO3 или PIO4) и их использование приведет к снижению быстродействия, особенно при операциях модификации каталогов (например, активной работе в интернете – работа с кэшем интернета).

                  -          Кэширование как чтения, так и записи на уровне жестких дисков (объем буфера HDD – от 2 Мбайт до 8 Мбайт в современных дисках) – фактор, который будет более полезен системам на основе FAT. NTFS из соображений надежности хранения информации осуществляет модификацию системных областей с флагом «не кэшировать запись», поэтому быстродействие системы NTFS слабо зависит от возможности кэширования самого HDD. Системы FAT, напротив, получат некоторый плюс от кэширования записи на физическом уровне. Стоит отметить, что, вообще говоря, всерьез принимать в расчет размер буфера HDD при оценке быстродействия тех или иных файловых систем не стоит.

                  Подводя краткий итог влиянию быстродействия диска и контроллера на быстродействия системы в целом, можно сказать так: NTFS страдает от медленных дисков гораздо сильнее, чем FAT.

                   

                  Размер кластера

                  Размер кластера  в файловых системах FAT32 и NTFS можно задавать при форматировании практически произвольно. Прежде всего, надо сказать, что больший размер кластера – это практически всегда  большее быстродействие. Размер кластера на томе NTFS, однако, имеет меньшее влияние на быстродействие, чем размер кластера для системы FAT32.

                  -          Типичный размер кластера для NTFS – 4 Кбайта. Стоит отметить, что с большим размером кластера отключается встроенная в файловую систему возможность сжатия индивидуальных файлов, а также перестает работать встроенный API дефрагментации. Оптимальным с точки зрения быстродействия, по крайней мере, для средних и больших файлов, считается (самой Microsoft) размер 16 Кбайт. Увеличивать размер далее неразумно из-за слишком больших расходов на неэффективность хранения данных и из-за мизерного дальнейшего увеличения быстродействия. Можно повысить быстродействие NTFS ценой потери возможности сжатия. Но это даст довольно скромный прирост быстродействия, который часто не стоит даже уменьшения эффективности размещения файлов на диске.

                  -          Быстродействие системы FAT32, напротив, можно довольно существенно повысить, увеличив размер кластера. Если в NTFS размер кластера почти не влияет на размер и характер данных системных областей, то в системе FAT увеличивая кластер в два раза, мы сокращаем область FAT в те же два раза. В типичной системе FAT32 эта очень важная для быстродействия область занимает несколько Мбайт. Сокращение области FAT в несколько раз даст заметное увеличение быстродействия, так как объем системных данных файловой системы сильно сократиться – уменьшается и время, затрачиваемое на чтение данных о расположении файлов, и объем оперативной памяти, необходимый для буферизирования этой информации. Увеличение объема кластера для систем FAT32 от 4 Кб  до 8 или даже до 16 Кб для больших внешних запоминающих устройств (десяток и сотен гигабайт) – достаточно разумный шаг.

                   NTFS является сложной системой, поэтому, в отличие от FAT16 и FAT32, имеются и другие факторы, которые могут привести к существенному замедлению работы NTFS:

                  -          диск NTFS был получен преобразованием раздела FAT16 или FAT32 (команда convert). Данная процедура в большинстве случаев сильно замедляет быстродействие, так как структура служебных областей NTFS получится очень фрагментированной;

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

                  Необходимо отметить, что основной фактор, от которого зависит быстродействие файловой системы – это объем оперативной памяти машины (ПК, ноутбука, нетбука, планшета).


                  • Тема 8

                    ЗАКЛЮЧЕНИЕ

                     

                    Развитие файловых систем персональных компьютеров определялось двумя факторами – появлением новых стандартов на носители информации и ростом требований к характеристикам файловой системы со стороны прикладных программ (разграничение уровней доступа, поддержка длинных имен файлов в формате UNICODE). Первоначально, для файловых систем первостепенное значение имело увеличение скорости доступа к данным и минимизация объема хранимой служебной информации [14]. Впоследствии с появлением более быстрых жестких дисков и увеличением их объемов, на первый план вышло требование надежности хранения информации, которое привело к необходимости избыточного хранения данных.

                    Эволюция файловой системы была напрямую связана с развитием технологий реляционных баз данных. Файловая система использовала последние достижения, разработанные для применения в СУБД: механизмы транзакций, защиты данных, систему самовосстановления в результате сбоя.

                    Развитие файловых систем привело к изменению самого понятия «файл» от первоначального толкования как упорядоченная последовательность логических записей, до понятия файла, как объекта, имеющего набор характеризующих его атрибутов (включая имя файла, его псевдоним, время создания и собственно данные), реализованного в структуре NTFS.

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

                    В отличие от попыток ввести стандарт на протокол, описывающий правила доступа к удаленным файловым системам (CIFS, NFS), не стоит ожидать появления подобного стандарта, описывающего файловые системы для жестких дисков.

                    Это можно объяснить тем, что файловая система жестких дисков все еще продолжает оставаться одной из главных частей операционной системы, влияющей на ее производительность. Поэтому каждый производитель операционных систем будет стремиться использовать файловую систему, разработанную для его системы [14, 15].

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


                    Библиографический список

                     

                    1.    Об утверждении федерального государственного образовательного стандарта высшего образования по направлению подготовки 09.03.03 Прикладная информатика (уровень бакалавриата). [Электронный ресурс]. URL: http://www.edu.ru/documents/view/

                    60800/ (дата обращения: 05.05.2019).

                    2.    https://ru.wikipedia.org/wiki/Запоминающее_устройство 

                    3.    https://ru.wikipedia.org/wiki/Твердотельный_накопитель

                    4.    Флеш-память/SSD

                    5.    Оптические диски

                    6.    Энциклопедия жёстких дисков

                    7.    50 лет жёстким дискам // iXBT

                    8.    Работа жёсткого диска (видео)

                    9.    Список файловых систем

                    10.     Сравнение файловых систем

                    11.     https://mf.grsu.by/UchProc/livak/b_lecture/lec33_SYF.htm

                    12.     http://more-it.ru/upravlenie-fajlami-tipy-fajlov-fajlovaya-sistema-atributy-fajla/ https://habr.com/ru/news/

                    13.     Сравнение производительности SSD и HDD // PC-hard.ru

                    14.     Гостев, И.М. Операционные системы : учебник и практикум для академического / И. М. Гостев. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2017. — 164 с. — (Серия : Бакалавр. Академический курс). — ISBN 978-5-534-04520-8.  https://www.biblio-online.ru/book/A14759F4-CD1C-441C-A929-64B9D29C60102.

                    15.     Назаров С.В. Современные операционные системы [Электронный ресурс]/ Назаров С.В., Широков А.И.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 351 c.— Р


                    Приложение 1. Основные сведения о компьютере


                    1. Система:    ПУСК \ Параметры\ Система

                    2. Внешние ЗУ:  Мой компьютер\Файл\Свойства\Диспетчер устройств\Дисковые устройства

                    3. Файловая система:  Пуск/ Правая клавиша /Управление дисками