Основные функции операционных систем. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основные функции операционных систем.



Киев- 20 12


Содержание

 

Часть 1. Основы организации и функционирования ОС ЭВМ. 5

1. Основные функции операционных систем. 5

2. Механизмы выполнения программ и средства связи.. 6

2.1. Последовательное выполнение программ. 6

2.2. Прерывание. 7

2.3 Программирование ввода-вывода. 8

2.4. Буферизация ввода-вывода. 9

3. Управление параллельными процессами выполнения процедур. 10

3.1 Понятие последовательного процесса. 10

3.2 Одновременное выполнение процессов. 11

3.3 Конкуренция между процессами. Виртуальные ресурсы. 12

3.4. Синхронизация процессов. 13

4. Связь программ и данных. 14

4.1 Функционирование загрузчика. 15

4.2 Функционирование редактора связей. 16

5. Система управления файлами.. 18

5.1 Функции системы управления файлами. 18

5.2 Последовательный доступ к файлу. 18

5.3 Прямой доступ к файлу. 19

5.4 Индексированные файлы. 20

5.6 Физическая организация файлов. 21

5.7 Размещение файлов с использованием таблицы размещения. 22

6. Распределение памяти.. 24

6.1 Виртуальная память. 24

6.2 Организация виртуальной памяти. 25

6.3 Распределение памяти для программ с перекрытием. 26

6.4 Распределение памяти без перезагрузки. 27

6.5 Механизм динамической перегрузки. 28

6.6 Организация списка цепочек свободных зон. 29

6.7 Размещение с помощью квантования размеров блоков. 30

6.9 Основы страничной организации памяти. 30

6.10 Метод ассоциативной памяти. 31

6.11 Метод топографических регистров. 32

6.12 Метод таблицы страниц. 33

Часть II. Операционная система Windows. 35

1.Семейство операционных систем Windows. 35

2. Планирование процессов и нитей.. 36

3. Управление памятью Windows. 39

3.1. Странично - ориентированное управление памятью Windows. 39

3.2. Адресное пространство процесса Win32 в ОС Windows. 40

3.3. Контексты памяти. 41

4. Основные сведения о форматах Win32. 42

4.2. Таблица секций. 43

5. Диски и файловые системы.. 43

5.1.Общие сведения о файловых системах. 43

5.2. Файловая система NTFS. 45

6. Обработка очередей сообщений Windows и управление динамической памятью... 53

7. Печать в ОС Windows. 53

8. Кэширование в ОС Windows. 54

8.1. Vcache в ОС Windows. 55

9. Загрузка ОС.. 56

9.1. Файлы, неоходимые для запуска системы.. 56

10. Реестр Windows NT.. 57

11. Конфигурирование сервисов и драйверов. 58

12. Профили пользователей.. 59

Часть 3. Обзор сетевых средств Windows. 60

1. Архитектура сетевых средств Windows. 60

2. Модель стандарта OSI. 60

3. Описание уровней модели OSI. 61

4. Модель сетевой архитектуры Windows. 63

5. Транспортные протоколы. 64

6. Рабочие станции и серверы Windows. 65

7. Редиректор Windows. 66

8. Сервер Windows. 67

9. Распределенные приложения. 68

10.  Протокол «точка-точка» (РРР). 69

Часть 4. Сетевая безопасность и администрирование. 70

1. Бюджеты пользователей в Windows. 70

2. Рабочие группы и домены. 71

3. Доверительные взаимоотношения между доменами. 71

4. Установка доменов. 72

5. Множественные доверительные отношения. 73

6. Локальные и глобальные группы. 73

7. Входы в систему и аутентификация. 74

8. Аутентификация пользователей. 75

9. Интерактивный вход в систему. 77

10.  Удалённый вход в систему. 78

Часть 5. Использование NBF с Windows. 79

1. NBF и сетевой трафик. 79

2. Трафик, ориентированный на соединение. 79

3. Протокол адаптивных скользящих окон. 80

4. Таймеры канала. 81

Часть 6. Сетевые концепции для TCP/IP. 82

1. TCP/IP и сетевые возможности Windows. 82

1.1. Семейство межсетевых протоколов. 82

1.2. Адрес в сети Интернет. 82

1.3. Преобразование адресов в Интернет. 84

2. Преобразование IP адреса в MAC адрес. 84

3. Маски подсетей. 85

4. Сервис DHСP. 86

5. Распознавание имен в сетях на основе WINDOWS. 87

6. Сервис WINS. 88

7. IP-адресация для сервиса отдаленного доступа RAS. 91

8. Служба DNS. 92

9. Маршрутизация и сетевые шлюзы IP. 93

9.1. Одноадресная маршрутизация. 93

10. Конфигурации маршрутизируемых сетей.. 95

10.1. Простой сценарий маршрутизации. 95

10.2. Протоколы маршрутизации IP.. 96

11. Средства безопасности Windows. 98


Часть 1. Основы организации и функционирования ОС ЭВМ.

Механизмы выполнения программ и средства связи

Прерывание

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

 

Сигнал прерывания может послать устройство I/O, внешнее устройство, человек – оператор ЭВМ и др. Прерывание вынуждает процессор приостановить выполнение программы (после завершения текущей инструкции) и приступить к выполнению другой программы, которая называется программа обработки прерываний. Возможные причины прерываний отличаются по коду прерываний. Поэтому первой задачей программы прерывания является проверка кода прерывания и вызове соответствующей процедуры обработки. Каждой причине прерывания соответствует некоторый уровень прерывания. Для избежания конфликтов между прерываниями различных уровней устанавливается порядок приоритетов уровней. Иногда может оказаться полезным оградить от прерываний некоторую последовательность инструкций (например, сама программа прерываний). В этом случае используется механизм маскирования или подавления определенного уровня.


Буферизация ввода-вывода.

 

Буферизация ввода-вывода применяется с целью повышения эффективности функционирования ЦП. Это связано с тем, что скорость работы ЦП и периферийных устройств сильно различаются. Для этого в ОЗУ выделяется системная зона – буфер, в которую помещается информация, предназначенная для вывода на внешнее устройство. Чем больше размер буфера, тем эффективнее отделение ЦП от периферии. Для экономии ОП буфер часто организовывают на диске. Такой режим работы называется спулингом.


 

Синхронизация процессов.

Процесс синхронизации процессов строится на основе двух основополагающих ограничениях:

1.
 

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

 

2. На условие, разрешающее переход некоторых точек трасс, на определенные процессы. Пусть даны N процессов p1…pn. Определим для них общую точку встречи, пока все другие процессы не достигнут ее.

 

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

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

Механизм, осуществляющий синхронизацию выполнения процессов, называется монитором. Блокировка и активизация процессов выражаются в процедурах с помощью условий.


Связь программ и данных.

Существует две, принципиально различные схемы выполнения программ: интерпретация (1) и компиляция (2).

Интерпретируемая программа
 

 

Компилируемая программа

 

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

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


Функционирование загрузчика

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

 

 

В записи тела модуля указывается:

АДР – относительный адрес записи в модуле;

n – размер записи в байтах;

r – (1 – перемещаемый код)

(0 – неперемещаемый код)

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

Алгоритм загрузчика имеет следующие параметры вызова:

· имя файла;

· абсолютный адрес загрузки;

· идентификатор точки входа.

Загрузчик осуществляет подстановку: каждый относительный адрес А замещает на абсолютный А + НАЧ, где НАЧ – абсолютный адрес загрузки модуля.



4.2 Функционирование редактора связей.

Редактор связи получает на входе совокупность перемещаемых объектных модулей и строит из них абсолютный загрузочный модуль. Для этого необходимо:

1) Определить его адрес размещения;

2) Произвести модификацию перемещаемой информации;

3) Реализовать связь внешних ссылок;

Обычно составная программа имеет сложную систему ссылок. Так модуль А вызывает модули А1 и А2. В свою очередь модуль А1 вызывает модули А11 и А12. Кроме этого, все модули составной программы могут использовать модули стандартной библиотеки (например, использование мат. Функций sin, cos и др.). В соответствии со структурой составной программы строится система внешних ссылок.

При редактировании связей применяется двухпроходной алгоритм. На первой проходе строится план размещения модулей, и определяются абсолютные адреса всех внешних объектов, на втором обрабатываются ссылки на эти объекты.

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

 

 


 

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

Входными параметрами редактора связей являются:

· адрес загрузки выполняемого модуля;

· имена файлов, содержащих связываемые модули;

· библиотеки для поиска неудовлетворённых ссылок.


Система управления файлами

Прямой доступ к файлу

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

 


В методе адресации перемешиванием логический адрес (АЛ) определяется выражением

АЛ = f (ключ)

где f – функция перемешивания (кэширования, расстановки или рассеивания).

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

1) для всех записей файла с ключом КЛ
0 £ f(кл) £ n;

2) для каждой пары записей
f(кл1) ¹ f(кл2), если КЛ1 ¹ КЛ2.

На практике очень трудно удовлетворить свойству (2). Необходимо допустить возможность конфликтов. Можно привести следующий пример конфликтной ситуации. Ключом является выражение Автор = ‘Иванов’. Т.е. необходимо отыскать запись, которая определяет книгу, написанную Ивановым. Очевидно, что таких книг может быть несколько. В случае конфликта необходим дополнительный этап для определения искомой записи, который называется обработка конфликтов.

 

5.4 Индексированные файлы.

 

В методе индексированного доступа отношение между ключом и логическим адресом оформляется в виде таблицы, называемой индексом. Этот метод существенно ускоряет процедуру поиска записи в файле. Обратимся вновь к примеру файла «перечень книг», в котором каждая запись состоит из атрибутов автор, издатель, год выпуска и др. пусть ключом является выражение Автор = <фамилия автора>. Упорядочим всех авторов в порядке алфавита.

 

 

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


Виртуальная память

После написания пользователем программы на языке высокого уровня на первом этапе она (программа) должна испытывать ряд преобразований. Эти преобразования называют установлением связей. Они проходят в два этапа:

1) трансляция – определение относительных адресов программы;

2) редактирование связей – организация связей между отдельно транслируемыми программами.

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

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


Метод таблицы страниц

 

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

· номер клетки ncase;

· индикатор присутствия p resent (1 бит);

· индикатор модификации modif (1 бит);

· тип разрешенного доступа (защиты) prot.

При обращении к памяти соответствие между виртуальным и физическим адресами устанавливается так, как показано на рисунке. Если страница присутствует в памяти, то:

modif [npage] указывает, была ли страница модифицирована с момента ее загрузки в память; prot [npage] указывает тип разрешенного доступа к странице.

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


 

Планирование процессов и нитей


 

 

В отличие от Windows, в которой реализована многозадачность без вытеснения (non-preemptive multitasking), в Windows NT используется механизм многозадачности с вытеснением (preemptive multitasking).

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

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

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

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

Windows NT поддерживает 32 уровня приоритетов, разделенных на два класса - класс реального времени и класс переменных приоритетов (рисунок 1.3). Нити реального времени, приоритеты которых находятся в диапазоне от 16 до 31, являются более приоритетными процессами и используются для выполнения задач, критичных ко времени.

В Windows NT определено 4 класса приоритетов процессов:

· IDLE_PRIORITY_CLASS - уровень 4

· NORMAL_PRIORITY_CLASS - уровень 9 при интерактивной работе процесса (forground) и уровень 7 при работе в фоновом режиме (background)

· HIGH_PRIORITY_CLASS - уровень 13

· REALTIME_PRIORITY_CLASS - уровень 24

На выполнение всегда выбирается нить с самым высоким приоритетом. Каждый раз, когда необходимо выбрать нить для выполнения, диспетчер прежде всего просматривает очередь готовых нитей реального времени и обращается к другим нитям, только когда очередь нитей реального времени пуста. Обычно большинство нитей в системе попадают в класс нитей с переменными приоритетами, диапазон приоритетов которых от 0 до 15. Этот класс имеет на-звание "переменные приоритеты" потому, что диспетчер настраивает систему, выбирая (понижая или повышая) приоритеты нитей этого класса.

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

Итак, нить освобождает процессор, если:

· нить блокируется, уходя в ожидание,

· нить завершается,

· нить исчерпала квант,

· нить вытеснена более приоритетной нитью.

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

· Квантование - нитям отводится квант времени, по истечении которого выполнение нити прекращается.

· Абсолютные приоритеты - при появлении в очереди нити с более высоким приоритетом, чем у активной в данный момент, выполнение последней немедленно прерывается.

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

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

 


Управление памятью Windows

Контексты памяти


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

Процессор разделяет 32- разрядный линейный адрес на три компонента. Старшие 10 бит адреса являются индексом в каталоге страниц, а следующие 10 бит адреса - индексом в таблице страниц. Последний шаг вычислений заключается в использовании оставшихся 12 бит линейного адреса в качестве смещения в области, указанной в таблице страниц.

Таблица секций

Между заголовком и секциями модуля отображается таблица секций.

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

Каждый элемент таблицы содержит следующую информацию:

– имя секции;

– виртуальный размер секции;

– относительный виртуальный адрес;

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

К примерам часто встречающихся секций можно отнести:

1.. text. Программный код общего назначения, генерируемый компилятором или ассемблером.

2.. data. Данная секция содержит все глобальные и статические переменные, которые были проинициализированы во время компиляции. Компоновщик объединяет все секции.data из разных объектных и lib – файлов в одну секцию.data в EXE – файле.

3. idata. Эта секция содержит информацию о функциях, которые модуль импортирует.

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

3.. rsrc. Содержит ресурсы модуля.

Диски и файловые системы

Файловая система FAT 32

32-разрядная файловая система FAT32 была введена с выпуском Windows 95 и поддерживается Windows 2000. FAT32 предназначена для использования на томах, объем которых превышает 2 Гбайт.

 

Размеры кластеров по умолчанию для FAT16 и FAT32.

Размер диска Размер кластера FAT16 Размер кластера FAT32  
До 32 Мбайт 512 байт Не поддерживается
32-63 Мбайт 1 Кбайт Не поддерживается
64-127 Мбайт 2 Кбайт Не поддерживается
128-255 Мбайт 4 Кбайт Не поддерживается
256-511 Мбайт 8 Кбайт Не поддерживается
512-1023 Мбайт 16 Кбайт 4 Кбайт
1024-2047 Мбайт 32 Кбайт 4 Кбайт
2048-8191 Мбайт Не поддерживается 4 Кбайт
8192-16383 Мбайт Не поддерживается 8 Кбайт
16384-32767 Мбайт Не поддерживается 16 Кбайт
От 32 Гбайт Не поддерживается 32 Кбайт

 

Преймущества FAT32:

ü Под держка томов до 2 Тбайт

ü Более э ффективное расходование дискового пространства. Использует более мелкие кластеры.

ü Повышение надежности и более быстрая загрузка программ. FAT32 обладает возможностью перемещать корневой каталог и использовать резервную копию.

 

 

Файловая система NTFS

 

NTFS позволяет назначать права доступа к отдельным файлам. Если файл будет скопирован из раздела NTFS в раздел FAT, то все права доступа и другие уникальные атрибуты, присущие NTFS, будут утрачены.

Единицей дискового пространства в NTFS используется кластер. Размер кластера зависит от размера раздела.

 

Таблица зависимости размера кластера по умолчантю от размера раздела для NTFS.

Размер раздела Количество секторов в кластере Размер кластера  
До 512 Мбайт 1 512 байт
513-1024 Мбайт 2 1 Кбайт
1025-2048 Мбайт 4 2 Кбайт
2049-4096 Мбайт 8 4 Кбайт
4097-8192 Мбайт 16 8 Кбайт
8193-16384 Мбайт 32 16 Кбайт
16385-32768 Мбайт 64 32 Кбайт
От 32678 Мбайт 128 64 Кбайт

 

Каждый файл на томе NTFS представлен записью в специальном файле, называемом Главной таблицей файлов (Master File Table, MFT).

В отличие от разделов FAT и HPFS все пространство тома NTFS представляет собой либо файл, либо часть файла. Основой структуры тома NTFS является Главная таблица файлов (Master File Table, MFT), которая содержит по крайней мере одну запись для каждого файла тома, включая одну запись для самой себя. Каждая запись имеет длину 2К.

Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT. Каждый файл и каталог на томе NTFS состоит из набора атрибутов.

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

Загрузочный сектор тома NTFS располагается в начале тома, а его копия - в середине тома. Загрузочный сектор состоит из стандартного блока параметров BIOS, количества секторов в томе, а также начального логического номера кластера основной копии MFT и зеркальной копии MFT.

Файлы NTFS состоят по крайней мере из следующих атрибутов:

· заголовок (H - header)

· стандартная информация (SI - standard information)

· имя файла (FN - file name)

· данные (data)

· дескриптор безопасности (SD - security descriptor)

 

Небольшие файлы

Рис. 1.5. Небольшие файлы

Небольшие файлы (small). Если файл имеет небольшой размер, то он может целиком располагаться внутри одной записи MFT размером 2К (рисунок 1.5). Из-за того, что файл может иметь переменное количество атрибутов, а также из-за переменного размера атрибутов нельзя наверняка утверждать, что файл уместится внутри записи. Однако, обычно файлы размером менее 1500 байт помещаются внутри записи MFT.

Большие файлы

Большие файлы (Large). Если файл не вмещается в одну запись MFT, то этот факт отображается в значении атрибута "данные", который содержит признак того, что файл является нерезидентным, то есть, что файл находится вне таблицы MFT. В этом случае атрибут "данные" содержит виртуальный номер кластера для первого кластера каждого фрагмента данных (data run), а также количество непрерывных кластеров в каждом фрагменте (рисунок 1.6).

Рис. 1.6. Большие файлы

Очень большие файлы

Очень большие файлы (huge). Если файл настолько велик, что его атрибут данных не помещается в одной записи, то этот атрибут становится нерезидентным, то есть он находится в другой записи таблицы MFT, ссылка на которую помещена в исходной записи о файле (рисунок 1.7). Эта ссылка называется внешним атрибутом (external attribute). Нерезидентный атрибут содержит указатели на фрагменты данных.

Рис. 1.7. Очень большие файлы

 

Сверхбольшие файлы

Сверхбольшие файлы (extremely huge). Для сверхбольших файлов внешний атрибут может указывать на несколько нерезидентных атрибутов (рисунок 1.8). Кроме того, внешний атрибут, как и любой другой атрибут может храниться в нерезидентной форме, поэтому в NTFS не может быть атрибутов слишком большой длины, которые система не может обработать.

Рис. 1.8. Сверхбольшие файлы

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

Списки файлов

Имеется две формы списка файлов.

Небольшие списки файлов (small indexes). Если количество файлов в каталоге невелико, то список файлов может быть резидентным в записи в MFT, являющейся каталогом (рисунок 1.9). В этом случае он называется небольшим каталогом. Небольшой список файлов содержит значения атрибутов файла. По умолчанию это имя файла, а также номер записи MTF, содержащей начальную запись файла.

Рис. 1.9. Небольшие каталоги

Большие списки файлов (large index). По мере того, как каталог растет, список файлов может потребовать нерезидентной формы хранения. Однако начальная часть списка всегда остается резидентной в корневой записи каталога в таблице MFT (рисунок 1.10). Имена файлов резидентной части списка файлов являются узлами B-дерева. Остальные части списка файлов размещаются вне MFT. Для их поиска используется специальный атрибут "размещение списка" (Index Allocation - IA), представляющий собой набор номеров кластеров, которые указывают на остальные части списка. Одни части списков являются листьями дерева, а другие являются промежуточными узлами, то есть содержат наряду с именами файлов атрибут Index Allocation, указывающий на списки файлов более низких уровней.

Рис. 1.10. Большие каталоги

Атрибуты файлов и каталогов

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

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

Ниже приведен список атрибутов.

· Attribute List - определяет список атрибутов, которые являются допустимыми для данного конкретного файла;

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

· MS-DOS Name - этот атрибут содержит имя файла в формате 8.3;

· Version - атрибут содержит номер последней версии файла;

· Security Descriptor - этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет, какого рода операции над этим файлом нужно регистрировать;

· Volume Version - версия тома, используется только в системных файлах тома;

· Volume Name - отметка тома;

· Volume Information - номер версии NTFS;

· Data - содержит обычные данные файла;

· MFT bitmap - этот атрибут содержит карту использования секторов на томе;

· Index Root - корень B-дерева, используемого для поиска файлов в каталоге;

· Index Allocation - нерезидентные части индексного списка B-дерева;

· External Attribute Information - содержит номер первого кластера и количество кластеров нерезидентного атрибута;

· Standard Information - этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо из других атрибутов файла, например, время создания файла, время обновления и другие.

Короткие имена

NTFS поддерживает имена файлов длиной до 255 символов. Имена файлов NTFS используют набор символов UNICODE с 16-битовыми символами. NTFS автоматически генерирует поддерживаемое MS-DOS имя для каждого файла. Таким образом, файлы NTFS могут использоваться в сети операционными системами MS-DOS и OS/2. Это особенно важно для файловых серверов в организациях, которые используют персональные компьютеры с этими двумя или тремя операционными системами. Создавая имена файла по схеме 8.3, NTFS также позволяет приложениям MS-DOS и Windows 3.х работать с файлами, имеющими длинные имена NTFS.

Поскольку NTFS использует набор символов UNICODE для имен файлов, существует возможность использования некоторых запрещенных в MS-DOS символов. Для генерации короткого имени файла в стиле MS-DOS NTFS удаляет все запрещенные символы, точки (кроме одной), а также любые пробелы из длинного имени файла. Далее имя файла усекается до 6 символов, добавляется тильда (~) и номер. Например, каждому недублированному имени файла добавляется ~1, повторяющиеся имена файлов заканчиваются символами ~2, ~3 и т.д. Расширение имени файла усекается до 3 символов.

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

На FAT короткое имя образуется путем использования первых 6 символов от длинного плюс знак "~" плюс цифра. Далее следует расширение файла. Если в длинном имени имеются пробелы, то они игнорируются. Если имеется несколько файлов с длинными именами, различающимися деталями за пределами первых 6 символов, то у коротких имен, соответствующих им будет изменяться последняя цифра. Если таких похожих файлов больше четырех, то первые 6 символов определяются по специальному алгоритму, а окончание имени всегда одинаково: "~5".



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 33; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.13.173 (0.154 с.)