- •Что такое процесс?
- •Адресное пространство
- •Набор ресурсов
- •Объект-процесс
- •Что такое поток?
- •Многозадачность и мультипроцессорная обработка
- •Многопоточность
- •Объект-поток
- •История
- •Опорная модель osi
- •Встроенная сетевая поддержка
- •Сетевые api
- •Разрешение имен
- •Встроенные сетевые компоненты
- •Открытая архитектура
- •Доступ пользовательского режима к удаленным файловым системам
- •Транспортные протоколы
- •Среда ndis для сетевых драйверов
- •Среда распределенных приложений
- •Удаленный вызов процедур
- •Именованные каналы
- •Корпоративные сети и распределенная защита
Встроенная сетевая поддержка
Программы пользовательского режима (например, API ввода-вывода Win32) выдают запрос на удаленный ввод-вывод, вызывая базовые сервисы ввода-вывода NT. После некоторой предварительной обработки диспетчер ввода-вывода создает пакет запроса ввода-вывода (IRP) и передает его одному из зарегистрированных драйверов файловой системы, в данном случае редиректору Windows NT. Редиректор направляет пакет драйверам нижнего уровня (драйверам транспортов), которые обрабатывают его и передают по сети.
Когда запрос приходит на машину, работающую под управлением Windows NT, он принимается драйверами транспорта, после чего проходит еще через несколько драйверов
Сетевые API. Разрешение имен.
Сетевые api
Рассмотрим, каким образом приложение получает доступ к сети. Windows NT предоставляет для этого несколько способов:
• API ввода-вывода Win32. Функции ввода-вывода выполняют стандартные функции открытия, закрытия, чтения, записи и т. д. Соответствующие запросы проходят по сети только в том случае, когда файл или именованный канал находятся на удаленной машине. Как правило, это означает, что имя файла является именем UNC или начинается с буквы, указывающей на диск на удаленной машине.
• Сетевые API Win32 (WNet). Эти функции полезны таким приложениям, как File Manager, которые выполняют соединение с удаленными файловыми системами и их просмотр. Функции WNet можно использовать для просмотра файловых систем Microsoft и других по сетям LAN Manager, NetWare, VINES и т. д.
• Win32 API именованных каналов и почтовых ящиков. Именованные каналы обеспечивают высокоуровневый интерфейс передачи данных между двумя процессами, независимо от того, является ли принимающая сторона локальной или удаленной. Почтовые ящики выполняют аналогичные функции, однако вместо обеспечения канала "один к одному" между принимающей и передающей сторонами они предоставляют механизмы связи "один ко многим" и "многие к одному". Почтовые ящики полезны для посылки широковещательных сообщений произвольному числу процессов.
• API NetBIOS. Эти API обеспечивают обратную совместимость для тех программ MS-DOS, 16-разрядной Windows и OS/2, которые передают данные непосредственно по сети. Имеется также новая 32-разрядная версия.
• API Windows Sockets. Эти API реализуют 1б и 32-разрядные сокеты — стандартный сетевой интерфейс, используемый UNIX. Windows NT также содержит код нижнего уровня, обеспечивающий поддержку приложений UNIX и позволяющий легко осуществлять доступ к глобальной сети Internet.
• Средство удаленного вызова процедур (RPC). Соответствующая библиотека периода выполнения и компилятор позволяют программистам с легкостью создавать распределенные приложения .
Путь каждого из API к сети пролегает по разным маршрутам. Далее диспетчер ввода-вывода посылает IRP редиректору. В отличие от этого, API Windows Sockets и NetBIOS реализованы как DLL, которые вызывают сервисы ввода-вывода NT, и диспетчер ввода-вывода направляет IRP драйверам Windows Sockets и NetBIOS соответственно.
Вызовы API WNet (реализованного в виде DLL) проходят через сетевой компонент, называемый сервисом рабочей станции (workstation service). На сетевом жаргоне термин сервис (service) обозначает серверный процесс, выполняющий некую конкретную функцию (в смысле "работу") и, возможно, экспортирующий API, который поддерживает эту функцию. Сервисы выполняют следующие функции:
• Администрирование встроенного редиректора — сервис рабочей станции и сервера — сервис сервера (server service).
• Рассылка оповещений подключенным пользователям — сервис оповещений (alerter service), например, при переполнении жесткого диска.
• Прием сообщений от других систем — сервис сообщений (messenger service), например, уведомлений о том, что завершено выполнение задания на печать.
Сервис — это процесс, похожий на защищенную подсистему Windows NT. Некоторые сервисы просто выполняются в фоновом режиме, в то время как другие предоставляют API, которые могут вызывать потоки других процессов, посылая сообщения данному сервису. В отличие от защищенных подсистем, сервисы, имеющие собственные API, для обмена сообщениями со своими клиентами обычно используют RPC, а не LPC. Применение RPC делает сервисы доступными процессам как на локальной, так и на удаленной машине
Сервис рабочей станции является, в сущности, надстройкой пользовательского режима для редиректора Windows NT. Он поддерживает API WNet, предоставляет функции конфигурации редиректора и содержит код пользовательского режима для получения статистики редиректора. Когда приложение вызывает функцию API WNet, этот вызов вначале поступает сервису рабочей станции, а затем уже к диспетчеру ввода-вывода NT и далее к редиректору.
За загрузку и запуск сервисов Windows NT отвечает компонент, называемый контроллером сервисов (service controller). Он также предоставляет средства загрузки и выгрузки драйверов, которые не загружаются при запуске системы. Многие сетевые компоненты реализованы в виде драйверов и, таким образом, загружаются в систему (и удаляются из нее) контроллером сервисов.
