Программный интерфейс Windows

ТЕМА 7. РАБОТА С ОПЕРАЦИОННЫМИ СИСТЕМАМИ. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ

Лекция 6. Системные механизмы Windows.

План занятия:

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

2. Сетевые средства Windows.

3. Программный интерфейс Windows.

4. Программный интерфейс Windows: Управление процессами.

5. Управление виртуальной и физической памятью и рабочими наборами в Windows

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

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

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

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

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

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


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

 

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


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

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

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

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

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

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

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

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

Сетевые средства Windows

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

· NDIS (Network Device Interface Specification)— отделяет сетевые адаптеры от транспортных протоколов, так чтобы каждый из них можно было изменить, не оказывая влияния на другой.

· TDI (Transport Driver Interface)— обеспечивает, чтобы каждая из компонент уровня сеанса могла использовать любой транспортный механизм.

Windows реализует транспортные протоколы как драйверы, которые могут быть динамически добавлены к системе или удалены из нее.

Протокол server message block (SMB)используется для передачи через сеть запросов на ввод-вывод. Он имеет четыре типа сообщений:

· Session control (управление сеансом)

· File (файл)

· Printer (принтер)

· Message (сообщение).

Система Network basic Input/Output system (NetBIOS)- сетевой интерфейс Windows с абстрагированием от аппаратуры. Она используется в Windows для:

· Установки логических имен в сети

· Установления логической последовательности сеансов между двумя логическими именами в сети

· Поддержки надежной передачи данных для сеанса с помощью запросов NetBIOS или SMB.

NetBEUI (NetBIOS Extended User Interface)– сетевой протокол по умолчанию для одноранговых сетей Windows 95 и Windows for Workgroups. Используется для совместного использования ресурсов в подобных сетях.

Windows 2000 использует протокол Интернета TCP/IPдля соединения с различными ОС и аппаратными платформами.

Протокол PPTP (Point-to-Point Tunneling Protocol)используется для коммуникации между модулями Remote Access Server, работающими на машинах под Windows, соединенных через Интернет.

Протокол NWLinkпредназначен для объединения сетей NetBIOS и Novell NetWare.

Протокол Data Link Control (DLC)используется для доступа к mainframe-компьютерам IBM и принтерам HP, непосредственно подсоединенным к сети.

Системы на базе Windows могут взаимодействовать с компьютерами Macintoshс помощью протокола Apple Talk, если сервер в сети, работающий под Windows ч, использует пакет Windows Services for Macintosh.

Windows поддерживает распределенные приложения с помощью именованных систем типа NetBIOS, именованных конвейеров (pipes), mail-слотов, сокетов типа Windows Sockets, удаленных вызовов процедур - Remote Procedure Calls (RPC) и протоколов Network Dynamic Data Exchange (NetDDE).

Системы типа NetBIOS могут взаимодействовать через сеть, используя протоколы NetBEUI, NWLink или TCP/IP.

Именованные конвейеры– это механизм передачи сообщений через сетевую коннекцию. Они именуются с использованием uniform naming convention( UNC ).

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

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

Механизм RPC в Windows следует широко используемому стандарту Distributed Computing Environmentдля RPC - сообщений, так что программы, использующие RPC для Windows, имеют высокую степень переносимости.

RPC – сообщения посылаются с использованием NetBIOS, или Winsock в сетях TCP/IP, или именованных конвейеров в сетях LAN Manager.

Windows предоставляет язык Microsoft Interface Definition Language(используемый в модели CORBA) для описания имен, аргументов и результатов удаленных процедур.

В Windows приложение может использовать API для ввода-вывода Windows, для доступа к файлам удаленного компьютера теми же средствами, как к локальным файлам, при условии, что на удаленном компьютере исполняется MS-NET server.

Перенаправитель( redirector ) - это объект клиентской стороны, который пересылает запросы на ввод-вывод удаленных файлов. Эти запросы затем удовлетворяются сервером.

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

Доступ к удаленному файлувыполняется по следующей схеме.

· Приложение вызывает менеджер ввода-вывода для запроса на открытие файла (предполагается, что имя файла – в стандартном формате UNC).

· Менеджер ввода-вывода конструирует пакет запроса на ввод-вывод.

· Менеджер ввода-вывода распознает, что это запрос к удаленному файлу, и вызывает специальный драйвер, называемый Multiple Universal Naming Convention Provider (MUP).

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

· Перенаправитель, который может удовлетворить данный запрос, отвечает MUP.

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

· Перенаправитель посылает сетевой запрос удаленной системе.

· Сетевые драйверы удаленной системы получают запрос и передают его драйверу сервера.

· Драйвер сервера перепоручает этот запрос драйверу соответствующей файловой системы.

· Соответствующий драйвер вызывается для доступа к данным.

· Результаты возвращаются драйверу сервера, который пересылает данные перенаправителю, передавшему запрос.

Сетевые домены.Windows типа NT использует концепцию домена для управления глобальными правами доступа между группами. Домен (domain)– это группа машин, использующих ОС типа Windows NT Server, которые используют одну и ту же политику безопасности и одну и ту же пользовательскую базу данных.

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

· Однонаправленную: A доверяет B

· Двунаправленную, или транзитивную: A доверяет B, B доверяет C, следовательно, A, B, C доверяют друг другу

· Перекрестную (Crosslink) – допускается, чтобы аутентификация миновала иерархию, с целью сокращения аутентификационного трафика.

Разрешение имен в сети.Традиционный механизм разрешения имен в сети IP – это процесс преобразования имени компьютера в IP-адрес. Например, www.bell-labs.com преобразуется в 135.104.1.14.

Windows обеспечивает несколько методов разрешения имен:

· Windows Internet Name Service (WINS)

· broadcast name resolution

· domain name service (DNS)

· хост-файл

· LMHOSTS – файл.

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

Реализация протокола WINS использует Dynamic Host Configuration Protocol (DHCP),который автоматически обновляет адресные конфигурации в базе данных WINS без вмешательства пользователя или системного администратора.

Программный интерфейс Windows

Доступ к объектам ядра. Процесс получает доступ к объекту ядра, называемому XXX, путем вызова функции CreateXXXдля получения (открытия) ссылки ( handle ) на XXX. Ссылка уникальна для данного процесса.

Ссылка может быть закрыта вызовом функции CloseHandle. Система может удалить данный объект, если счетчик ссылок на него стал равным нулю.

Windows применяет три способа совместного использования объекта несколькими процессами:

· Дочерний процесс наследует ссылку на объект

· Один процесс дает объекту имя при его создании, а другой процесс открывает данное имя

· Функцию DuplicateHandle, которая обеспечивает, если известна ссылка на процесс и значение ссылки, получение для другого процесса ссылки на тот же объект.