- •Операционные системы
- •Владимирского государственного университета
- •Оглавление
- •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.3Требования к аппаратуре
Для работы Windows NT Workstation 4.0 необходимо:
процессор – не ниже i486;
ОЗУ – не менее 12 Мбайт (нормальная работа вдвое больше);
дисковое пространство – 108 Мбайт (нормальная работа вдвое больше).
Для работы Windows NT Server 4.0 необходимо:
процессор – не ниже i486,
ОЗУ – не менее 16 Мбайт;
дисковое пространство – не менее 148 Мбайт
На практике для сервера средней загруженностью необходимо наличие 32 Мбайт оперативной памяти и жесткого диска емкостью не менее 1 Гбайт.
Для работы Windows NT Server 5.0 (Windows 2000 Server):
процессор – не ниже i586,
ОЗУ – не менее 32 Мбайт;
дисковое пространство – не менее 300 Мбайт
5.3.4Области использования Windows nt
Windows NT Server может быть использован в качестве сервера в корпоративной сети, при этом он может выполнять функции контроллера доменов, что позволяет структурировать сеть и тем самым упрощать задачи администрирования и управления. Он может используется также в качестве файл-сервера, принт-сервера, сервера приложений, сервера удаленного доступа и сервера связи (программного маршрутизатора).
Клиентами в сети с Windows NT Server могут являться компьютеры с установленными на них различными операционными системами. Стандартно поддерживаются: Windows NT Workstation, MS-DOS, OS/2, Windows 3.11 for Workgroups, Windows 9x, клоны UNIX, Macintosh. Основные клиенты входят в стандартную поставку Windows NT Server.
Под управлением Windows NT Server может работать сервер баз данных SQL Server фирмы Microsoft, а также другие серверы баз данных, такие как Oracle и Sybase, Adabas и InterBase.
Windows NT Server может использоваться как сервер связи с мэйнфреймами IBM и системами IBM AS400. Для этого создан специальный продукт Microsoft SNA Server, позволяющий легко объединить в одной сети IBM PC-совместимые рабочие станции и мощные мейнфреймы
Windows NT Server является платформой для Microsoft Exchange – пакета для коллективной работы, построенного на основе почтового сервера.
Windows NT Server является платформой для Web-серверов, Web-броузеров, информационно-поисковых систем, систем электронной коммерции в сети Internet.
Операционная система Windows NT Workstation используется прежде всего как клиент в сетях Windows NT Server, а также в сетях NetWare, Unix.
5.3.5Микроядерная структура Windows nt
При разработке структуры Windows NT была использована концепция микроядра. В соответствии с этой идеей ОС делится на несколько подсистем – серверов, каждая из которых выполняет отдельный набор сервисных функций – например, сервис памяти, сервис по созданию процессов или сервис по планированию процессов. Каждый сервер выполняется в пользовательском режиме, выполняя циклическую проверку, не появился ли запрос от клиента на одну из его сервисных функций. Клиент, которым может быть либо другая компонента ОС, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Этот запрос перехватывается ядром, которое из-за ограниченности выполняемых функций в случае такой организации называется микроядром. Ядро ОС, работая в привилегированном режиме, доставляет сообщение нужному серверу. Сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения (см. рис. 5.1). Микроядро играет роль регулировщика – оно проверяет сообщения, пересылает их между серверами и клиентами и предоставляет доступ к аппаратуре.
Использование концепции микроядра способствует переносимости операционных систем, поскольку весь машинно-зависимый код изолирован в микроядре, а значит для переноса системы на новый процессор требуется меньше изменений, и все они логически сгруппированы вместе. Операционная система Windows NT может работать на компьютерах, построенных на базе процессоров Intel, PowerPC, DEC Alpha, MIPS.
Технология микроядер является основой построения множественных прикладных сред, которые обеспечивают совместимость программ, написанных для разных ОС. В среде Windows NT, кроме 32-битовых приложений, могут выполняться приложения MS-DOS, 16-битовые Windows-приложения, Posix- и OS/2-приложения.
Поскольку пересылка сообщений не так быстра, как обычные вызовы функций, разработчики Windows NT отказались от модели микроядра в ее чистом виде. Кроме собственно микроядра, в привилегированном режиме работает часть Windows NT, называемая executive – исполнительная подсистема. Она включает ряд компонентов, которые управляют виртуальной памятью, объектами, вводом-выводом и файловой системой (включая сетевые драйверы), взаимодействием процессов и, частично, системой безопасности. Часть Windows NT, работающая в пользовательском режиме состоит из серверов Windows NT, называемых также защищенными подсистемами (рис. 5.2).
Так как защищенные подсистемы автоматически не могут совместно использовать память, они общаются друг с другом посредством посылки сообщений. Сообщения могут передаваться как между клиентом и сервером, так и между двумя серверами. Все сообщения проходят через executive. Защищенные подсистемы Windows NT работают в пользовательском режиме и создаются Windows NT во время загрузки операционной системы. Сразу после создания они начинают бесконечный цикл своего выполнения, отвечая на сообщения, поступающие к ним от прикладных процессов и других подсистем. Для упрощения на рисунке взаимодействие приложений с защищенными подсистемами иллюстрируется стрелками, соединяющими их напрямую, однако в действительности взаимодействие приложений с защищенными подсистемами реализуется через ядро путем обмена сообщениями.
Поддержку защищенных подсистем обеспечивает исполнительная подсистема Windows NT - executive, которая работает в пространстве ядра и никогда не сбрасывается на диск. Ее составными частями являются:
Менеджер объектов. Создает, удаляет и управляет объектами NT executive – абстрактными типами данных, используемыми для представления ресурсов системы.
Монитор безопасности. Устанавливает правила защиты на локальном компьютере.
Менеджер процессов. Создает и завершает, приостанавливает и возобновляет процессы и нити, а также хранит о них информацию.
Менеджер виртуальной памяти. Управляет распределением памяти между процессами, а также средствами виртуальной памяти.
Средства локального вызова процедур. Передают сообщения между клиентскими и серверными процессами одного и того же компьютера.
Подсистема ввода-вывода. Включает в себя следующие компоненты: 1) менеджер ввода-вывода предоставляет средства ввода-вывода, независимые от устройств; 2) файловые системы, это NT-драйверы, выполняющие файл-ориентированные запросы к локальным устройствам и к удаленным файловым системам; 5) менеджер кэша, реализующий кэширование диска; 4) драйверы устройств NT executive, низкоуровневые драйверы, которые непосредственно управляют устройством.
Исполнительная подсистема (NT-executive) в свою очередь основывается на службах нижнего уровня, предоставляемых ядром (его можно назвать и микроядром) NT. В функции ядра входит:
планирование нитей,
обработка прерываний и исключительных ситуаций,
синхронизация процессоров для мультипроцессорных систем,
восстановление системы после сбоев.
Обратиться к ядру можно только посредством прерывания. Ядро расположено над уровнем аппаратных абстракций (Hardware Abstraction Level HAL), который концентрирует в одном месте основную часть машинно-зависимых процедур. Располагается HAL между NT executive, ядром и аппаратным обеспечением и скрывает от системы такие детали, как контроллеры прерываний, интерфейсы ввода/вывода и механизмы взаимодействия между процессорами. Такое решение позволяет легко переносить Windows NT с одной платформы на другую путем замены только слоя HAL.
Среди всех защищенных подсистем можно выделить так называемые подсистемы окружения - Win32, 16-битный Windows, DOS, OS/2, Posix. Каждая из этих подсистем реализует соответствующий прикладной программный интерфейс. Windows NT использует подсистемы окружения со следующими целями:
обеспечить несколько программных интерфейсов (APIs), сохраняя как можно более простым базовый программный код (NT executive);
экранировать базовую операционную систему от изменений или расширений в поддерживаемых API;
объединить часть глобальных данных, требуемых всем API, и в то же время отделить данные, требуемые одному API от данных, требуемых другим API;
защитить окружение каждого API от приложений, а также от окружений других API и защитить базовую операционную систему от различных окружений;
позволить операционной системе расширяться в будущем за счет новых API.