Спонсор: Microsoft
Опубликован: 13.11.2010 | Уровень: для всех | Доступ: свободно | ВУЗ: Санкт-Петербургский государственный университет
Лекция 28:

Системные механизмы Windows

< Лекция 27 || Лекция 28: 1234 || Лекция 29 >
Аннотация: В лекции рассмотрены: система файлов Windows; сетевые средства Windows; программный интерфейс Windows; управление памятью, процессами, заданиями, многопоточность в Windows; поддержка параллельного программирования в Windows; управление физической памятью и рабочими наборами в Windows.
Ключевые слова: Windows, целый, API, управление памятью, поддержка, параллельное программирование, базовая, NTFS, file system, структура системы, диск, ПО, метаданные, информация, кластер, размер кластера, FAT16, LCN, файл, поток, MS-DOS, Unix, объект, идентификатор, ID, номер последовательности, ссылка, пространство имен, структура данных, транзакция, запись, undo, операции, файловая система, целостное состояние, объектная модель, дескриптор, MFT, атрибут, список, права, драйвер, SCSI, логический, 'volume', set, round-robin, отображение, disk mirroring, with, parity, mirror, compression, код ошибки, память, связь, сеть, тип сообщения, printer, сетевой интерфейс, абстрагирование, NetBIOS, SMB, сетевой протокол, одноранговая сеть, windows 95, workgroup, remote, access server, Интернет, NetWare, mainframe, IBM, сервер, pipe, слот, remote procedure call, RPC, network, dynamic data exchange, система типов, NetBeui, IP, компонент, интерфейс, LAN Manager, CORBA, приложение, MS-NET, server, UNC, удаление файла, запрос удаления, группа, политика безопасности, двунаправленность, транзитивность, адрес, BELLE, COM, WIN, broadcasting, доступ, счетчик, дочерний процесс, DLL, адресное пространство процесса, фоновый процесс, ядро, приоритет потока, мьютекс, mutex, win32, критическая секция, параллельный процесс, исполнение, передача сообщений, GUI, очередь, виртуальная память, виртуальный адрес, адресное пространство, куча, heap, region, распределение памяти, совместный доступ, динамический метод, физическая страница, предел, значение, x86, представление, гигабайт, место, физическая память, алгоритм, Windows Server, операция ввода/вывода, кэш данных, системная утилита, FIFO, таблица страниц, единица, table, file reference, транзакционная, безопасность, утилита, объединение, block, PPTP, DLC, AppleTalk, winsock api, DNS, системный объект, soft, real-time, fiber, локальная память, thread, local storage, множества, logically, cluster, управление безопасностью, redirector, создание процесса

Презентацию к данной лекции Вы можете скачать здесь.

Введение

Система Windows использует целый ряд оригинальных системных механизмов, которым и посвящена данная лекция. Данная лекция, как и предыдущая ( "Обзор архитектуры и возможностей систем Windows 2000/XP/2003/Vista/2008/7" ), предназначена для детального изучения архитектуры, принципов организации, системных механизмов и возможностей Windows. Рассмотрены система файлов, сетевые средства, API, управление памятью, процессами, задачами, поддержка параллельного программирования в Windows.

Система файлов Windows

Базовая система файлов ОС Windows 2000, как и ОС Windows NT, - NTFS (NT File System). В данном разделе рассмотрим ее подробно.

Фундаментальная структура системы файлов Windows 2000 (NTFS) – том (volume).Том создается утилитой администрирования диска. Структура тома основана на логическом диске (partition).Том может занимать часть диска, целый диск или распределяться по нескольким дискам ( рис. 28.1). Все метаданные, такие как информация о томе, хранятся в обычном файле.

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

NTFS использует логические номера кластеров - logical cluster numbers (LCN) в качестве дисковых адресов. Файл в NTFS – не просто байтовый поток, как в MS-DOS или в UNIX, но структурированный объект, состоящий из атрибутов. Каждый файл в NTFS описывается одной или несколькими записями в массиве, хранящемся в специальном файле, называемом Master File Table (MFT).Каждый файл в томе NTFS имеет уникальный идентификатор (ID), называемый ссылкой на файл - file reference.Это 64-битовое число, состоящее из 48-битового номера файла и 16-битового номера последовательности. Ссылка на файл может использоваться для выполнения внутренних проверок целостности.

Пространство имен NTFS организовано в иерархию директорий. Индексный корень ( index root ) содержит верхний уровень B+ - дерева.

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

Безопасность тома NTFS реализована на основе объектной модели Windows 2000. Каждый файловый объект имеет дескриптор безопасности, хранящийся в записи MFT. Данный атрибут содержит маркер доступа владельца файла, а также список управления доступом, устанавливающий права каждого пользователя для доступа к данному файлу.

FtDisk, дисковый драйвер Windows 2000, устойчивый к сбоям, обеспечивает несколько способов объединения нескольких SCSI-дисков в один логический том. Он логически конкатенирует диски, образуя один логический том (набор дисков тома – volume set). Драйвер выполняет обработку нескольких частей тома по принципу round-robin для формирования "полосатого множества" (stripe set),или disk striping ) – рис. 28.2. Stripe set – набор от 2 до 32 дисков, логически объединенных в единый том. При записи данных в stripe set данные записываются порциями по 64 Кбайта (которые могут распределяться произвольным образом между дисками stripe set). Это позволяет сэкономить время в случае, если работа с дисками stripe set может выполняться параллельно. Такая схема не гарантирует сохранности данных.

Как вариант используется схема stripe set with parity ( рис. 28.3), которая позволяет восстановить данные в случае сбоя.

Зеркальное отображение дисков (Disk mirroring) - это надежная схема, использующая множество "зеркал" (mirror set) — две секции одного размера на разных частях диска с идентичным содержимым ( рис. 28.4).

Для обработки запорченных дисковых секторов FtDisk использует аппаратный метод, называемый предохранением секторов ( sector sparing ), а NTFS использует программный метод, называемый повторным отображением кластеров ( cluster remapping ).

На рис. 28.1 изображена структура тома NTFS, размещаемого на двух логических дисках.

Том NTFS, размещаемый на двух дисках.

увеличить изображение
Рис. 28.1. Том NTFS, размещаемый на двух дисках.

Stripe set, размещенное на двух дисках, изображено на рис. 28.2.

Stripe set на двух дисках.

увеличить изображение
Рис. 28.2. Stripe set на двух дисках.

Stripe set with parity на трех дисках изображено на рис. 28.3.

Stripe set with parity на трех дисках.

увеличить изображение
Рис. 28.3. Stripe set with parity на трех дисках.

Mirror set на двух дисках изображено на рис. 28.4.

Mirror set на двух дисках.

увеличить изображение
Рис. 28.4. Mirror set на двух дисках.

Сжатие в файловой системе NTFS.Для сжатия файла NTFS разделяет данный файл на модули сжатия (compression units) - блоки по 16 смежных кластеров.

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

Точки повторного анализа (peparse points) в файловой системе NTFS при обращении вызывают генерацию кода ошибки. Они содержат информацию для менеджера ввода-вывода, какие действия выполнять дальше. Точки повторного анализа могут быть использованы для обеспечения функциональности монтирования, как в UNIX. Они могут быть также использованы для доступа к файлам, которые перенесены в отдельно размещаемую память.

< Лекция 27 || Лекция 28: 1234 || Лекция 29 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков