- •Операционные системы
- •Владимирского государственного университета
- •Оглавление
- •1 Операционные системы. Общие понятия 5
- •2 Однопользовательские операционные системы 11
- •3 Сетевые операционные системы 13
- •4 Управление локальными ресурсами 17
- •5 Современные концепции и технологии проектирования операционных систем 43
- •Введение
- •1Операционные системы. Общие понятия
- •1.1Понятие и функции операционной системы
- •1.1.1Ос как расширенная машина
- •1.2Этапы развития ос
- •1.3Классификация ос
- •1.3.1Особенности алгоритмов управления ресурсами
- •Поддержка многозадачности
- •Поддержка многопользовательского режима
- •Вытесняющая и невытесняющая многозадачность
- •Поддержка многонитевости
- •Многопроцессорная обработка
- •1.3.2Особенности аппаратных платформ
- •1.3.3Особенности областей использования
- •1.3.4Особенности методов построения
- •2Однопользовательские операционные системы
- •2.1Структура однозадачной операционной системы
- •2.2Структура многозадачной операционной системы
- •3Сетевые операционные системы
- •3.1Структура сетевой операционной системы
- •3.2Одноранговые сетевые ос и ос выделенных серверов
- •4Управление локальными ресурсами
- •4.1Понятие ресурса
- •4.1.1Свойства и классификация ресурсов
- •4.1.2Действия над ресурсами
- •4.2Управление процессами
- •4.2.1Состояние процессов
- •4.2.2Алгоритмы планирования процессов
- •4.2.3Вытесняющая и невытесняющая многозадачность
- •4.2.4Нити
- •4.2.5Взаимодействие процессов Разделяемая память
- •Программные каналы
- •Системы, управляемые событиями
- •4.2.6Средства синхронизации процессов Проблема синхронизации
- •Критическая секция
- •4.3Управление памятью
- •4.3.1Типы адресов
- •4.3.2Методы распределения памяти без использования дискового пространства
- •Распределение памяти фиксированными разделами
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •4.3.3Методы распределения памяти с использованием дискового пространства Понятие виртуальной памяти
- •Страничное распределение
- •Сегментное распределение
- •Странично-сегментное распределение
- •Свопинг
- •4.3.4Иерархия запоминающих устройств. Принцип кэширования данных
- •4.4Управление вводом-выводом
- •4.4.1Физическая организация устройств ввода-вывода
- •4.4.2Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств, слой операционной системы
- •Пользовательский слой программного обеспечения
- •4.5Файловая система
- •4.5.1Имена файлов
- •4.5.2Типы файлов
- •4.5.3Логическая организация файла
- •4.5.4Физическая организация и адрес файла
- •4.5.5Права доступа к файлу
- •4.5.6Общая модель файловой системы
- •4.5.7Отображаемые в память файлы
- •4.5.8Современная архитектура файловой системы
- •5Современные концепции и технологии проектирования операционных систем
- •5.1Требования, предъявляемые к ос нового поколения
- •5.2Пользовательский интерфейс
- •5.2.1Интерфейс cli
- •5.2.2Интерфейс gui
- •5.3Операционная система Windows nt
- •5.3.1История создания
- •5.3.2Особенности Windows nt версий 4.0 и 5.0
- •5.3.3Требования к аппаратуре
- •5.3.4Области использования Windows nt
- •5.3.5Микроядерная структура Windows nt
- •5.3.6Планирование процессов и нитей
- •5.3.7Управление памятью
- •5.3.8Файловые системы Windows nt
- •Файловая система fat
- •Файловая система ntfs Структура ntfs
- •Короткие имена
- •Надежность ntfs
- •5.3.9Управление вводом-выводом в Windows nt
- •5.3.10Встроенная сетевая поддержка в Windows nt
- •5.3.11Доменная справочная служба Windows nt
- •5.3.12Служба каталогов Active Directory Общие сведения о службе каталогов
- •Архитектура Active Directory
- •Модель данных
- •Логическая структура
- •Модель защиты данных
- •Модель управления
- •Свойства Active Directory
- •Интеграция dns
- •Именование объектов
- •Доступ к Active Directory
- •Виртуальные контейнеры
- •Глобальный каталог
- •Безопасность
- •Репликация
- •Деревья и лес
- •Логическая структура
- •Публикация
- •Литература
5.3.10Встроенная сетевая поддержка в Windows nt
В отличие от большинства других операционных систем, Windows NT изначально разрабатывалась с учетом возможности работы в сети. В результате этого функции совместного использования файлов, устройств и объектов встроены в интерфейс с пользователем. Администраторы могут централизовано управлять и контролировать работу сетей в масштабах крупных предприятий.
Сетевые функции Windows NT реализуются многими программными компонентами, и две наиболее важные из них имеют самую долгую историю в сетях Microsoft: редиректор и сетевой сервер. Редиректор переправляет локальные запросы ввода-вывода на удаленный сервер, а сервер принимает и обрабатывает эти запросы.
Первые варианты редиректора и сервера Microsoft были написаны на ассемблере и располагались над существующим системным программным обеспечением MS-DOS. Новые редиректор и сервер встроены в Windows NT, они не зависят от архитектуры аппаратных средств, на которых работает ОС. Они написаны на С и выполнены как загружаемые драйверы файловой системы, которые могут загружаться или выгружаться в любое время. Они также могут сосуществовать с редиректорами и серверами других производителей.
Сетевой редиректор обеспечивает средства, необходимые одному компьютеру Windows NT для доступа к ресурсам другого компьютера по сети. Редиректор Windows NT обеспечивает доступ к удаленным файлам, именованным конвейерам и принтерам. Так как он поддерживает SMB-протокол, то он работает с существующими серверами MSNET и LAN Manager, обеспечивая доступ к системам MS-DOS, Windows и OS/2 из Windows NT.
Основная задача редиректора – поддержка распределенной файловой системы, которая ведет себя подобно локальной файловой системе, хотя она и работает через ненадежную среду (сеть). Когда связь отказывает, редиректор ответственен за восстановление соединения, если это возможно, или же за возврат кода ошибки, чтобы приложение смогло повторить операцию.
Как и редиректор, сервер Windows NT на 100% совместим с существующими SMB-протоколами MS-NET и LAN Manager. Эта полная совместимость позволяет серверу обрабатывать запросы, исходящие не только от систем Windows NT, но и от других систем, работающих с программным обеспечением LAN Manager. Как и редиректор, сервер выполнен в виде драйвера файловой системы.
Реализация сервера как драйвера файловой системы позволяет достичь большей производительности, по сравнению с его работой как серверного процесса пользовательского режима. Хотя сервер и не является драйвером в обычном смысле, и он не управляет файловой системой на самом деле, использование модели драйвера обеспечивает некоторые преимущества.
Главное из них состоит в том, что драйвер реализован в среде NT executive и может вызывать кэш-менеджер NT непосредственно, что повышает скорость передачи данных. Например, когда сервер получает запрос на чтение большого количества данных, он вызывает кэш-менеджер для определения места расположения этих данных в кэше (или для загрузки этих данных в кэш, если их там нет) и для фиксации данных в памяти. Затем сервер передает данные непосредственно из кэша в сеть, исключая ненужные доступ к диску или копирование данных. Аналогично, при запросе на запись данных сервер вызывает кэш-менеджер для резервирования места для поступающих данных. Затем сервер пишет данные непосредственно в кэш. Записывая данные в кэш, сервер возвращает управление клиенту гораздо быстрее; затем кэш-менеджер записывает данные на диск в фоновом режиме (используя страничные средства менеджера виртуальной памяти).
Windows NT поддерживает не только сети Microsoft, но и другие за счет использования следующих средств:
доступ к файловым системам, не совместимым с Microsoft, для подключения к ресурсам, удаленным файлам и устройствам ввода-вывода осуществляется через общий интерфейс Win32 API (WNet API);
несколько драйверов сетевого транспортного протокола могут быть загружены в одно и то же время, редиректоры для доступа к ним используют общий интерфейс;
Windows NT обеспечивает интерфейс и среду NDIS 3.0 для драйверов сетевых адаптеров для доступа к транспортным драйверам Windows NT.
За последние десятилетия получили распространение различные протоколы передачи информации по сети. Хотя Windows NT и не поддерживает все транспортные протоколы, она, по крайней мере, разрешает включать их поддержку, если есть их реализации третьими фирмами.
В Windows NT транспортные протоколы реализованы в виде драйверов, которые подобно редиректорам могут загружаться и выгружаться из системы. В традиционной сетевой модели редиректор, который использует конкретный транспортный протокол, должен знать, какого типа сообщение ожидает драйвер этого протокола, и посылать ему запросы в его формате. Нижние уровни редиректора должны быть переписаны для поддержки механизма передачи данных для каждого транспортного протокола.
Windows NT решает эту проблему использованием единого программного интерфейса, называемого transport driver interface (TDI) – интерфейс транспортных драйверов для редиректоров и других высокоуровневых сетевых драйверов. TDI позволяет редиректорам и драйверам оставаться независимым от транспорта. Таким образом, одна версия редиректора или сервера может пользоваться любым транспортным механизмом (см. рис. 5.11).
TDI обеспечивает набор функций, которые редиректоры могут использовать для пересылки любых типов данных с помощью транспортного уровня. TDI поддерживает как связи с установлением соединения (виртуальные связи), так и связи без установления соединения (датаграммные связи). Microsoft Windows NT обеспечивает следующие транспорты:
NetBEUI (NetBIOS Extended User Interface) – транспортный протокол локальной сети, рассчитанный на односегментные сети;
TCP/IP – транспорт, используемый в Internet и ОС Unix;
IPX/SPX – набор транспортных протоколов, используемых Novell в сетях NetWare;
DECnet транспорт – протокол, используемый корпорацией DEC, который позволяет Windows NT связываться с сетями DECnet;
AppleTalk – протокол, разработанный фирмой Apple Computer, который позволяет системам Apple Macintosh взаимодействовать с Windows NT;
XNX – это протокол Xerox Corporation, который использовался в ранних сетях Ethernet;
VINES – протокол сетей Banyan VINES.
Сетевые адаптеры поставляются вместе с сетевыми драйверами, которые раньше часто писались в расчете на взаимодействие с определенным транспортным протоколом – например, XNS или TCP/IP. Так как Windows NT позволяет загружать драйверы различных транспортных протоколов, то производители сетевых адаптеров, использующие такой подход, должны были бы писать для одного сетевого адаптера несколько сетевых драйверов, поддерживающих несколько транспортных протоколов. Чтобы помочь производителям избежать этого, Windows NT обеспечивает интерфейс и среду, называемые «спецификация интерфейса сетевого драйвера» (NDIS - Network Driver Interface Specification), которые экранируют сетевые драйверы от деталей различных транспортных протоколов (см. рис. 5.12).
Вместо написания транспортно-зависимого драйвера для Windows NT, сетевые производители придерживаются интерфейса NDIS. Таким образом, пользователь может работать с сетью TCP/IP и сетью NetBEUI (или DECnet, NetWare, VINES и т.п.), используя один сетевой адаптер и один сетевой драйвер. Каждый драйвер NDIS ответственен за посылку и прием пакетов через свое сетевое соединение, а также за управление сетевым адаптером.
Windows NT обладает средствами для создания и выполнения распределенных приложений. Под распределенной обработкой раньше обычно понимали файловый и принтерный сервис.
Теперь под распределенной обработкой понимают более сложные механизмы модели клиент-сервер. Вместо хранения больших файлов баз данных на удаленной машине и копирования их для обработки на локальную машину каждый раз, когда пользователь хочет сделать запрос к базе данных, программное обеспечение, такое как Microsoft SQL Server, позволяет пользователю передать запрос на поиск в базе данных на удаленной машине. После завершения обработки операций поиска и сортировки на удаленной машине на пользовательскую машину возвращаются только результаты поиска. Такие вычисления по схеме клиент-сервер минимизируют нагрузку на сеть и загружают удаленный процессор, оставляя локальный процессор свободным. Преимущество подобных приложений состоит в том, что они используют процессорные циклы удаленных, часто более мощных компьютеров.
ОС должна обеспечивать средства для успешной реализации сетевых вычислений по схеме клиент-сервер. Вызов удаленных процедур (Remote Procedure Call - RPC) – является одним из таких средств, которое позволяет программисту создавать приложение, состоящее из любого количества процедур, некоторые из которых выполняются локально, а некоторые – на удаленных компьютерах через сеть.
Идея вызова удаленных процедур состоит в расширении хорошо известного и понятного механизма передачи управления и данных внутри программы, выполняющейся на одной машине, на передачу управления и данных через сеть. Средства удаленного вызова процедур предназначены для облегчения организации распределенных вычислений.