Конспект СПО (2 часть)

advertisement
Оглавление
Операционные системы семейства Windows .................................................................................................. 4
Структура системы Windows 2000 ............................................................................................................... 4
Исполняющая система ................................................................................................................................... 4
Подсистемы окружения ................................................................................................................................. 5
Загрузка Windows ............................................................................................................................................... 5
Этапы загрузки Windows ............................................................................................................................... 5
Драйвера в Windows ...................................................................................................................................... 6
Одно и много уровневые драйверы .............................................................................................................. 6
Объекты Windows .......................................................................................................................................... 7
Состояния потока ........................................................................................................................................... 8
Планирование процессов и потоков ................................................................................................................. 8
Создание процесса ......................................................................................................................................... 9
Создание потока ............................................................................................................................................. 9
Завершение потока ....................................................................................................................................... 10
Завершение процесса ................................................................................................................................... 10
Синхронизация процессов и потоков ............................................................................................................. 10
Семафоры ...................................................................................................................................................... 11
Мьютексы ..................................................................................................................................................... 11
События......................................................................................................................................................... 11
Критические секции ..................................................................................................................................... 11
Проблемы семафоров................................................................................................................................... 11
Управление памятью Windows ....................................................................................................................... 11
Невыгружаемый пул .................................................................................................................................... 11
Выгружаемый пул ........................................................................................................................................ 12
Ограничения на размер невыгружаемого пула ..................................................................................... 12
Распределение виртуального адресного пространства............................................................................. 12
Защита памяти .............................................................................................................................................. 12
Преобразование виртуальных адресов в физические ............................................................................... 12
Проблемы ручного управления памятью................................................................................................... 13
Файловые системы Windows........................................................................................................................... 13
Структура тома NTFS .................................................................................................................................. 13
Структура файлов NTFS .............................................................................................................................. 14
Каталоги NTFS ............................................................................................................................................. 15
Файловая система CDFS .............................................................................................................................. 15
Файловая система UDF ................................................................................................................................ 15
Resident File System ...................................................................................................................................... 15
Восстанавливаемость файловых систем .................................................................................................... 16
Упреждающее протоколирование транзакций .......................................................................................... 16
1
Восстанавливаемость файловой системы NTFS ....................................................................................... 16
Сравнение надёжности файловых систем NTFS и ReFS .......................................................................... 17
Безопасность Windows..................................................................................................................................... 18
Организация контроля доступа в Windows .............................................................................................. 18
Разрешения на доступ к каталогам и файлам. ........................................................................................... 18
Диспетчер прерываний ................................................................................................................................ 19
Уровни запросов прерываний ..................................................................................................................... 20
Средства взаимодействия процессов и потоков............................................................................................ 20
Очереди сообщений ..................................................................................................................................... 22
Каналы........................................................................................................................................................... 22
Отображаемые файлы .................................................................................................................................. 23
Mailslot (почтовые ящики) .......................................................................................................................... 23
Сокеты ........................................................................................................................................................... 23
Администрирование операционных систем .................................................................................................. 23
Понятие безопасности. Требования безопасности.................................................................................... 24
Угрозы безопасности. Классификация....................................................................................................... 24
Технология защищённого канала ............................................................................................................... 25
Случайная потеря данных ........................................................................................................................... 26
Системный подход к обеспечению безопасности ..................................................................................... 26
Базовые принципы политики безопасности .............................................................................................. 27
Выявление вторжений ................................................................................................................................. 27
Подходы к выявлению вторжений ............................................................................................................. 28
Базовые технологии безопасности ............................................................................................................. 28
Аутенфикация............................................................................................................................................... 28
Защита пользовательских паролей ............................................................................................................. 29
Авторизация пользователя .......................................................................................................................... 30
Аудит ............................................................................................................................................................. 30
Хранение паролей Windows ........................................................................................................................ 31
Шифрованная файловая система ................................................................................................................ 32
Шифрование ................................................................................................................................................. 33
Аутентификация с пользователем одноразового пароля ......................................................................... 36
Сетевые и распределённые операционные системы и среды ...................................................................... 36
Сетевые службы и сетевые сервисы ........................................................................................................... 37
Клиенты, рабочие станции, хосты, узлы.................................................................................................... 37
Варианты построения сетевых ОС ............................................................................................................. 37
Одноранговые и серверные операционные системы .................................................................................... 37
Особенности серверных ОС ........................................................................................................................ 38
Распределённые операционные системы и среды ........................................................................................ 38
Два способа организации файловых операций ......................................................................................... 38
2
Файловые серверы типа “statefull” и “stateless” ........................................................................................ 39
Достоинства и недостатки ........................................................................................................................... 40
Блокировки файлов ...................................................................................................................................... 40
Передача сообщений в распределённых системах ................................................................................... 40
Структура модели ISO OSI. Функции уровней ......................................................................................... 41
Коммуникационные примитивы ................................................................................................................. 42
Вызов удалённых процедур ........................................................................................................................ 43
Сетевые файловые системы ............................................................................................................................ 45
Network File System(NFS) ............................................................................................................................ 45
Протокол NFS ............................................................................................................................................... 45
Реализация NFS ............................................................................................................................................ 46
Три основных уровня архитектуры NFS.................................................................................................... 46
Протокол монтирования NFS...................................................................................................................... 46
Служба каталогов сетевых серверных ОС..................................................................................................... 47
Архитектура Active Directory ...................................................................................................................... 47
Система Kerberos .......................................................................................................................................... 48
Концепции DLL ............................................................................................................................................ 49
Основы технологии COM, COM+ .............................................................................................................. 49
Системы реального времени ........................................................................................................................... 50
Концепция процесса в СРВ ......................................................................................................................... 51
Управление памятью в ОСРВ ..................................................................................................................... 51
Прерывания................................................................................................................................................... 51
Часы и таймеры ............................................................................................................................................ 52
3
Операционные системы семейства Windows
Структура системы Windows 2000
ОС Windows делится на 2 части:
1.
Основная часть ОС, работающая в режиме ядра(управление процессорами, памятью,
файловой системой, устройствами и т.д.).
2.
Пользовательский режим. Подсистемы окружения, работающие в режиме пользователя
(процессы, помогающие пользователям выполнять определённые системные функции).
Основная часть разделена на несколько уровней, каждый из которых пользуется службами лежащего
ниже уровня. Основными уровнями являются:

Системные службы (сервисные процессы, являющиеся системными демонами).

Исполняющая система (супервизор или диспетчер).

Драйверы устройств.

Ядро операционной системы.

Уровень аппаратных абстракций (HAL).
Два нижних уровня написаны на языке C и ассемблере и являются частично машинно-независимыми.
Работа уровня HAL заключается в том, чтобы предоставить всей остальной системе абстрактные
аппаратные устройства, свободные от индивидуальных особенностей аппаратуры.
Состав HAL:

Набор низкоуровневых функций, обеспечивающих взаимодействие с аппаратно-
зависимыми элементами ядра, драйверов и исполнительной системы.
Назначение ядра – сделать остальную часть ОС независимой от аппаратуры. Для этого на основе HAL
оно формирует абстракции более высоких уровней.
Ядро представляет поддержку двум классам объектов:

Управляющим объектам. Это объекты заданий(несколько процессов могут быть
определены в задание), прерываний.

Объектам диспетчеризации. Это семафоры, мьютексы, события, таймеры, очереди
файлов и так делее.
У каждого потока есть контекст (содержимое, которое сохраняется при приостановлении потока) и
дескриптор.
Исполняющая система
Исполняющая система написана на языке C и состоит из 10 компонентов:

Менеджер объектов.

Менеджер ввода – вывода.

Менеджер процессов.

Менеджер памяти.
4

Менеджер безопасности.

Менеджер кеша.

Менеджер plug-and-play.

Менеджер энергопотребления.

Менеджер конфигурации.

Менеджер вызова локальной процедуры.

Интерфейс графических устройств GDI.
Системные службы предоставляют интерфейс исполняющей системе.
Основная часть, состоящая из ядра и исполняющей системы хранится в файле ntoskrnl.exe. Интерфейс
Win32 и графических устройств хранится в файле win32.sys. Системный интерфейс для связи
пользовательского режими с режимом ядра хранится в NTDLL.DLL.
Подсистемы окружения
В Windows существует 3 типа компонентов, работающих в режиме пользователя:

Динамические библиотеки.

Подсистемы окружения.

Служебные процессы.
Эти компоненты работают вместе, предоставляя пользовательским процессам 3 различных
документированных интерфейса прикладного программирования.
Одну dll библиотеку может использовать множество потоков одновременно. При этом она хранится в
памяти в одном экземпляре.
Пользовательские приложения вызывают системные сервисы через DLL подсистемы:
1.
Функция реализована в пользовательском режиме внутри DLL подсистемы.
2.
DLL библиотека обращается к другой DLL, которая обращается к ядру ОС.
3.
Для выполнения функции происходит обращение к подсистеме Win32, которая
выполняет всю работу самостоятельно или обращается к системному вызову.
Загрузка Windows
BIOS – микросхема, которая содержит программу.
Этапы загрузки Windows
1.
Самотестирование при включении (Power On Self Test).
2.
Системная BIOS ищет загрузочный диск(в порядке, заданном пользователем).
3.
Считывание главной загрузочной записи MBR (Master Boot Record) загружаемого
4.
Анализ таблицы разделов и определение раздела, в котором находится загружаемая ОС.
5.
Передача управления загрузочному сектору нулевого раздела, в котором находится ОС.
6.
Программа загрузочного сектора находит в корневом каталоге раздела файл ntldr.
диска.
5
7.
Программа ntldr считывает файл Boot.ini, в котором хранятся списки файлов hal.dll,
ntoskernel.exe (в Boot.ini указано количество ЦПУ, ОП, F часов реального времени). Загружается и
выполняет программу ntdetect.com.
8.
Загружаются файлы hal.dll, ntoskernel.exe и bootvid.dll. Программа ntldr считывает
реестр, чтобы найти драйверы, необходимые для завершения загрузки (дя микросхем, мат. Платы,
клавиатуры, мыши и т.д.)
9.
Загрузчик считывает драйверы и передаёт управление программе ntoskernel.exe.
10.
Создание менеджера сеансов. До этого пункта работа велась в привилегированном
режиме. Дальше будет работа в пользовательском режиме.
11.
Запуск подсистемы окружения Win32(csrss.exe), считывание реестра и выполнение
указанных команд, создание файлов подкачки и открытие нужных dll.
12.
Создание демона регистрации winlogon.exe.
13.
Создание менеджера аутенфикации lass.exe.
14.
Запуск родительского процесса всех служебных процессов services.exe.
15.
Выбор из реестра профиля пользователя и запуск требуемой оболочки.
Драйвера в Windows
Поддерживаются два типа драйверов:
1.
2.
Драйверы пользовательского режима

Драйверы виртуальных устройств

Драйверы принтеров
Драйверы режима ядра

Драйверы файловой системы

Унаследованные драйверы

Драйверы видеоадаптеров

Драйверы потоковых устройств

WDM драйверы. Поддерживают технологию plug and play
Драйверы в режиме ядра выполняются в одном из трёх контекстов:
1.
В контексте пользовательского потока
2.
В контексте системного потока режима ядра
3.
Как результат прерываний
Одно и много уровневые драйверы
Драйверы могут быть одноуровневые, но большинство драйверов являются многоуровневыми.
Обработка запросов ввода-вывода разделяется между несколькими драйверами. Результаты работы одних
драйверов передаются другим.
По своей структуре драйвер устройства является файлом exe или dll. Драйверы можно рассматривать
как dll режима ядра для задач, не решаемых из пользовательского режима.
Менеджер ввода-вывода обеспечивает среду для функционирования драйверов, а так же предоставляет
механизмы для их загрузки, выгрузки и управления.
6
При установке устройства менеджер ввода-вывода назначает уникальный набор системных ресурсов:

Уровни запросов на прерывания (IRQ)

Каналы прямого доступа к памяти (DMA)

Адреса портов ввода вывода (I/O)

Диапазоны адресов памяти
Объекты Windows
В Windows любой ресурс системы, который одновременно может быть использован более чем одним
процессом, включая файлы, совместно используемую память и физические устройства реализован в виде
объекта и управляется рядом функций.
Менеджер объектов выполняет следующие функции:

Выделяет память для объекта.

Присоединяет к объекту дескриптор безопасности.

Создаёт и манипулирует структурой каталогов объектов, в которых хранятся имена
объекта.

Создаёт описатель объекта и возвращает его вызывающему процессу.

Каждый объект состоит из двух частей: заголовка объекта и тела объекта.

Менеджер объектов работает с заголовком объекта, а другие компоненты работают с
телами объектов тех типов, которые они сами создают.

Заголовок объекта используется менеджером без учёта типа объекта.

Объект процесс, как и другие объекты, содержит заголовок, который создаёт и
инициализирует менеджер объектов.

Формат тела объекта определяется типом объекта (объект файл, объект поток, объект
принтер).
Атрибуты тела объекта процесса:

Идентификатор процесса.

Токен доступа.

Базовый приоритет.

Процессорная совместимость.

Предельное значение квот (по памяти и процессорному времени).

Время исполнения. Общее количество времени, в течении которого выполняются все
потоки процесса.
Атрибуты тела объекта потока:

Идентификатор клиента.

Контекст потока – информация ,которая необходима ОС для того, чтобы продолжить
выполнение прерванного потока.

Динамический приоритет – значение приоритета потока в данный момент времени.

Базовый приоритет – нижний предел динамического приоритета потока. Всегда равен
базовому приоритету процесса.
7

Процессорная совместимость.

Время выполнения.

Состояние предупреждения.

Счётчик остановок.
Объекты исполнительной системы, доступные WIN 32 API:

Символьная ссылка.

Процесс.

Поток.

Задание.

Раздел реестра.

Файл.

Маркер доступа.

Событие.
Состояния потока
Состояния потока:

Инициализация.

Готовность. У потока есть всё, но не хватает только процессора (пул потоков).

Первоочередная готовность. Для каждого процессора системы выбирается один поток,
который будет выполняться следующим (самый первый поток в очереди). Когда условия позволяют,
происходит переключение на контекст этого потока.

Выполнение. Поток выполняется процессором и покинет это состояние либо, если он
завершится, либо, если появится более приоритетный поток или закончится квант времени, либо если
он ожидает какое-либо событие.

Ожидание. Поток может оказаться в этом состоянии либо по своей инициативе, если он
ожидает некоторый объект для того, чтобы синхронизировать своё выполнение, либо ОС (например,
подсистема ввода вывода) может ожидать что-то в интересах потока, либо подсистема окружения
может заставлять поток приостановить себя.

Переходное состояние. Поток переходит в переходное состояние, если он готов к
выполнению, но страница, содержащая стек потока выгружена из оперативной памяти на диск в файл
подкачки.

Завершение. Поток находится в этом состоянии, когда он завершил свою работу, но его
ещё не удалил менеджер потоков.
Планирование процессов и потоков
Операционная система распределяет системное время между потоками, выделяя каждому из них
определённую долю времени (квант). Процессорное время выделяется по очереди каждому потоку, но при
этом учитывается так же приоритет потока. Когда прекращается выполнение первичного потока процесса,
уничтожается и сам процесс.
8
Всего 32 приоритета.
Есть 2 класса приоритетов:

пользовательский(1-15) ОС может менять приоритет такого потока

системный(16-32) ОС не может менять приоритет такого потока
Нельзя перевести поток из одного класса в другой.
Ядро Windows запускает тот из потоков, готовых к выполнению, который обладает наивысшим
приоритетом.
Процесс может изменить или установить свой собственный приоритет или приоритет другого
процесса ,если это разрешено атрибутами защиты.
Потоки получают приоритеты на безе классов приоритетов своих процессов.
Приоритеты потоков могут принимать значения в интервале +- 2 относительно базового приоритета
процесса.
Есть 4 класса базового приоритета процесса:

IDLE_PRIORITY_CLASS. Базовый приоритет 4.

NORMAL_PRIORITY_CLASS. Базовый приоритет равен 7-9.

HIGH_PRIORITY_CLASS. Базовый приоритет равен 13.

REAL_TIME_PRIORITY_CLASS. Базовый приоритет равен 24.
Создание процесса

Создать дескриптор и поместить его в таблицу процессов.

Проинициализировать значения полей общего назначения дескриптора процесса.

Создать виртуальное адресное пространство процесса (ВАП) и сформировать его
структуру.

Заполнить необходимыми данными ВАП процесса (разместить в нём код, данные и

Выделить процессу ресурсы, которые он может использовать сразу после создания.

Оповестить подсистемы, принимающие участие в управлении процессами, о создании
т.д.).
нового процесса.

Создать первичный поток приложения.
Создание потока

Создать дескриптор потока и поместить его в таблицу потоков.

Проинициализировать значения полей общего назначения дескриптора потока.

Создать области данных, необходимые для функционирования потока в данной
аппаратурной архитектуре.

Инициализировать поле дескриптора «аппаратный контекст выполнения потока».

Оповестить подсистемы, принимающие участие в управлении потоками о создании
нового потока.

Перевести поток в состояние «готов к выполнению».
9
Завершение потока

Сохранить статические данные потока и код возврата в его дескрипторе.

Перевести все ресурсы, принадлежащие потоку, в непротиворечивое и стабильное
состояние.

Освободить все ресурсы, принадлежащие потоку или использовавшиеся потоком.

Оповестить подсистемы, принимающие участие в управлении потоками о завершении

Установить состояние потока в значение «завершён».

Если данный поток является последним активным потоком в процессе – завершить
потока.
процесс.

После выполнения всех действий остаётся дескриптор потока, содержащий его код
возврата и статистические данные. Момент уничтожения дескриптора зависит от реализации.
Завершение процесса

Завершить выполнение всех потоков процесса.

Сохранить статистические данные процесса и код возврата в его дескрипторе.

Перевести все ресурсы, принадлежащие процессу, в стабильное состояние.

Освободить все ресурсы, принадлежавшие процессу или использовавшиеся процессом.

Освободить ВАП и уничтожить его.

Оповестить подсистемы, принимающие участие в управлении процессами о
завершении процесса.

Установить состояние процесса в значение «завершён».
Момент уничтожения дескриптора процесса зависит от реализации.
Синхронизация процессов и потоков
В Windows реализована вытесняющая многозадачность – это значит, что в любой момент времени
система может прервать выполнение одного потока и передать управление другому.
Поэтому необходим механизм, позволяющий потокам согласовывать свою работу с общими
ресурсами. Этот механизм получил название механизма синхронизации потоков.
Существует несколько объектов синхронизации:

Взаимоисключающие (mutex)

Критическая секция

Семафор

Событие

Сами процессы и потоки.
Любой объект синхронизации может находиться в сигнальном состоянии.
Потоки могут проверять текущее состояние объекта или ждать изменения состояния объекта и таким
образом согласовывать свои действия.
Все операции с объектами синхронизации являются атомарными и неделимыми.
10
Семафоры
Семафоры – примитивы синхронизации более высокого уровн, чем признаки блокировки.
Семафор – это целочисленное неотрицательная переменная, для которой определены 2 операции P и
V. P ожидает выполнения условия sem > 0, затем уменьшает sem на 1 и возвращает управление. V увеличивает
sem на 1.
Операции P и V выполняются атомарно.
Виды семафоров:

Двоичный семафор. Двоичным семафором можно считать мьютекс и событие.

Счётный семафор. S инициализируется значением n(число доступных единиц ресурса).
Мьютексы
Объекты взаимоисключения (мьютексы) позволяют координировать взаимное исключение доступа к
разделяемому ресурсу. Сигнальное состояние (установлен) соответствует моменту времени, когда объект не
принадлежит ни одному потоку и его можно захватить.
Для того, чтобы объявить взаимоисключение принадлежащим текущему потоку, надо вызвать одну из
ожидающих функций.
События
Объекты события используются для уведомления ожидающих потоков о наступлении какого-либо
события. Различают два вида событий – с ручным и автоматическим сбросом.
Ручной сброс осуществляется функцией ResetEvent. События с ручным сбросом используются для
уведомления сразу нескольких потоков.
При использовании события с автосбросом уведомление получит и продолжит своё выполнение
только один ожидающий поток, остальные будут ожидать дальше.
Критические секции
Позволяет программисту выделить участок кода, где поток получает доступ к разделяемому ресурсу.
Критическая секция может использоваться только для потоков одного процесса.
Поскольку критические секции не являются объектами ядра, их можно использовать для
синхронизации потоков принадлежащих только одному процессу.
Проблемы семафоров
Невозможность взять более одной еденицы ресурса.
Тогда можно защищать циклы ожидания при помощи мьютекса или объекта.
Управление памятью Windows
Невыгружаемый пул
Ядро и драйверы используют невыгружаемый пул для хранения данных, к которым можно обратиться
в случае, когда система не может обработать страничные ошибки.
Ядро входит в такой режим в случаях, когда оно выполняет процедуры обработки прерываний (ISR) и
отложенные вызовы процедур (DPC) – функции, связанные с аппаратными прерываниями.
11
Выгружаемый пул
Выгружаемый пул получил своё название, потому что Windows может записать данные, которые он
хранит в файл подкачки, позволяя тем самым использовать физическую память, которая при этом
освобождается в других целях. Структуры данных, которые представлены в виде отображаемых на память
файлов, называемых секциями, так же хранятся в выгружаемом пуле.
Ограничения на размер невыгружаемого пула
Ограничения на размер невыгружаемого пула вычисляются исходя из того, сколько адресного
пространства выделено другим ресурсам, в особенности таблицам страниц.
Распределение виртуального адресного пространства
Виртуальная память Windows обеспечивает каждому процессу 4гб виртуального адресного
пространства. Примерно по 2 гб для ОС и пользовательской программы.
Область от 0 до 2гб доступна в пользовательском режиме. Это адресное пространство содержит
прикладные модули .exe и .dll библиотеки. 2 участка 0-64 кб и 2гб-64кб недоступны в пользовательском
режиме.
Верхний диапазон адресов 2гб-4гб зарезервирован для исполнительной системы Windows, ядра и
драйверов устройств – компонентов, работающих в привилегированном режиме процессора.
Защита памяти
Страницам
памяти
можно
назначать
права
доступа.
Доступ
может
быть
запрещён
(PAGE_NOACCESS), PAGE_READONLY, PAGE_READWRITE, PAGE_EXECUTE.
Возможна комбинация разрешений.
Защита COPY-ON_WRITE – это ленивое вычисление. Позволяет нескольким процессам организовать
их карту ВАП таким образом, что они используют одну физическую страницу, пока один из процессов не
изменит страницу. При записи для процесса создаётся собственный экземпляр страницы.
Преобразование виртуальных адресов в физические
Преобразование выполняется с аппаратной поддержкой. Базовый адрес каталога страниц физической
памяти заносится в регистр CR3 процессора. Виртуальный 32-разнядный адрес содержит:

Разряды с 31 по 22 – значение индекса в каталоге страниц. По значению индекса
определяется номер таблицы страниц и её базовый адрес в оперативной памяти.

Разряды с 21 по 12 – индекс таблицы страниц. По индексу в таблице страниц система
находит запись, называемую дескриптором страницы. Выполняется анализ младшего бита
дескриптора страницы (valid bit). Если значение бита установлено в 1, данная страница находится в
физической памяти и из дескриптора извлекается номер физической страницы. К нему
пристыковывается смещение страницы (разряды с 11 по 0). Если valid bit установлен в 0, страница
выгружена в файл подкачки. В этом случае дескриптор страницы содержит номер файла подкачки (до
16) и номер страницы файла подкачки.
12
Проблемы ручного управления памятью
В любом языке, допускающем создание объектов в динамической памяти, потенциально возможны две
проблемы: висячие ссылки и утечки памяти.
При автоматическом управлении памятью, обнаруживает неиспользованную память и освобождает её
сборщик мусора.
Периодически сборщик мусора выполняет дефрагментацию оперативной памяти и отыскивает висячие
ссылки.
Для обнаружения неиспользуемых объектов и выделенной для них памяти используются:

Алгоритм пометок. Периодически выполняется просмотр всех объектов рекурсивно и
формируется список «живых» объектов. Память, выделенная для неотмеченных объектов
освобождается.

Алгоритм подсчёта ссылок. При создании каждого объекта для него создаётся счётчик
ссылок. Если счётчик равен нулю, память выделенная под объект освобождается.
Алгоритм пометок является более трудоёмким, но гарантированно удаляет группы объектов,
использование которых прекратилось, но в которых имеются ссылки друг на друга (циклические ссылки).
Алгоритм подсчёта ссылок более производителен, но циклический мусор не удаляет.
Как только определено множество недостижимых объектов, сборщик мусора может освободить
память.
Неперемещающий сборщик мусора быстро освобождает память, но тратит больше времени на её
выделение, из-за фрагментации.
Перемещающий сборщик мусора требует сравнительно больше времени на этапе сборки мусора (для
дефрагментации), зато память выделяется очень быстро.
Для обеспечения высокой скорости доступа к объектам в динамической памяти, объекты, поля
которых используются совместно, перемещающий сборщик позволяет размещать в памяти недалеко друг от
друга. Тогда они вероятнее окажутся в кэше процессора одновременно, что уменьшит количество обращений
к относительно медленному ОЗУ.
CLR. Выделение объектов производится в последовательных адресах памяти. Если свободной памяти
нет, запускается сборщик мусора с дефрагментацией.
Алгоритм работы сборщика мусора CLR построен исходя из правил, полученных статистическим и
опытным путём. Вводится понятие поколений. По одному из правил, объекты, выжившие после первой
сборки мусора и дефрагментации, объявляются первым поколением. В следующий раз, они перемещаются во
второе поколение. Объекты пережившие две сборки мусора остаются в хипе навсегда и сборщик мусора не
занимается их дефрагментацией.
Файловые системы Windows
Структура тома NTFS
Основой структуры тома является главная таблица файлов, которая содержит одну или несколько
записей для каждого файла тома т одну запись для самой себя (размер записи 1, 2 или 4 кбайт).
13
Том состоит из последовательности кластеров, порядковый номер кластера в томе – логический номер
кластера.
Файл состоит из последовательности кластеров, порядковый номер кластера внутри файла называется
виртуальным номером кластера. Размер кластера от 512 байт до 64 кбайт.
Базовая единица распределения дискового пространства – отрезок – непрерывная область кластеров.
Файл целиком размещается в записи таблицы MFT (если позволяет размер). В противном случае в
записи MFT хранится резидентная часть файла (некоторые его атрибуты), а остальная часть файла хранится в
отдельном отрезке тома или нескольких отрезках.
Структура файлов NTFS
Файлы и каталоги состоят из набора атрибутов, атрибут содержит следующие поля : тип, длина, имя.
Они образуют заголовок и значение.
Системный набор включает следующие атрибуты:

Attribute List

File Name

Security Descriptor

Data

Index Allocation. Нерезидентные части индексного списка B-дерева

Standard Information (время создания, обновления и т.д.)
Файлы в зависимости от способа размещения делятся на небольшие, большие, очень большие и
сверхбольшие.
Небольшие файлы (small). Если файл имеет небольшой размер, то он может целиком располагаться
внутри одной записи MFT, имеющей, например, размер 4 кбайт. Небольшие файлы NTFS состоят по крайней
мере из следующих аттрибутов.

Стандартная информация.

Имя файла.

Данные.

Дескриптор безопасности.
Большие файлы (large). Если данные не помещаются в одну запись MFT, то этот факт отражается в
заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, то есть,
находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию каждого
отрезка данных.
Очень большие файлы. Если файл настолько велик, что его атрибут данных, хранящий адреса
нерезидентных отрезков данных, не помещается в первой записи, то этот атрибут помещается во вторую
запись MFT, а ссылка на такой атрибут помещается в основную запись файла. Ссылка содержится в атрибуте
Attribute List. Сам атрибут данных по прежнему содержит адреса нерезидентных отрезков.
Сверхбольшие файлы. Для этих файлов в атрибуте Attribute List можно указать несколько атрибутов,
расположенных в дополнительных записях MFT. Кроме того, можно использовать двойную косвенную
адресацию, когда нерезидентный атрибут будет ссылаться на другие нерезидентные атрибуты.
14
Каталоги NTFS
Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит атрибут Index
Root. Индекс содержит список файлов, входящих в каталог. Индексы позволяют сортировать файлы для
ускорения поиска, основанного на значении определённого атрибута. Обычно в файловых системах файлы
сортируются по имени. NTFS позволяет использовать для сортировки любой атрибут, если он хранится в
резидентной форме.
Имеются две формы хранения списка файлов.
Небольшие каталоги (small indexex). Если количество файлов в каталоге невелико, то список файлов
может быть резидентным в записи в MFT, являющейся каталогом. Для резидентного хранения списка
используется единственный атрибут – Index Root. Список файлов содержит значения атрибутов файла. По
умолчанию – это имя файла, а так же номер записи MFT, содержащей запись файла.
Большие каталоги. По мере того как каталог растёт, список файлов может потребовать нерезидентной
формы хранения. Однако, начальная часть списка всегда остаётся резидентной в корневой записи каталога в
таблице MFT. Имена файлов резидентной части списка файлов являются узлами B-дерева. Остальные части
списка файлов размещаются вне MFT. Для из поиска используется специальный атрибут Index Allocation,
представляющий собой адреса отрезков, хранящих остальные части списка файлов каталога. Узлы дерева
делят весь список файлов на несколько групп. Имя каждого файла-узла является именем каждого файла в
соответствующей группе. При поиске файла его имя сравнивается с узлами, это даёт возможность быстро
определить, в каком отрезке находится искомый файл. Внутри отрезка поиск выполняется перебором.
Файловая система CDFS
А Windows 2000 обеспечивается поддержка файловой системы CDFS, отвечающей стандарту ISO
9660, описывающему расположение информации на CD-ROM.
Файловая система UDF
Спецификация формата файловой системы, независимой от операционной системы для хранения
файлов на оптических дисках. UDF призвана заменить CDFS.
Resident File System
Файловая система, которая появилась в Windows 8.
Для открытия, закрытия, а так же чтения файлов, файловая система ReFS использует те же самые
интерфейсы доступа к данным API, что и файловая система NTFS.
Изменения в области создания структур папок и файлов и управления ими обеспечивают
автоматические исправление ошибок объектов файловой системы и самой системы, максимальное
масштабирование, работу в режиме постоянного подключения.
Для всех этих нововведений используется концепция B+ деревьев. Данная концепция заключается в
том, что в папки в данной файловой системе структурированы в виде обычных таблиц, а файлы выступают в
роли записей данной таблицы.
Ядром файловой системы ReFS является таблица объектов, которая называется центральным
каталогом, и в которой перечислены все таблицы в системе.
15
Свободное место на диске описывается 3 отдельными иерархическими таблицами для малых, средних,
и больших фрагментов свободного пространства.
Имена файлов и длина пути ограничена 32 килобайтами, для их хранения используется Unicode.
Для защиты как информации о файле, так и данных файла используются контрольные суммы. Это даёт
возможность восстановления данных в случае ошибки.
Восстанавливаемость файловых систем
Восстанавливаемость – это свойство, которое гарантирует, что в случае отключения питания или краха
системы, когда данные теряются, все начатые файловые операции будут либо успешно завершены, либо
отменены без отрицательных последствий для работоспособности файловой системы.
Для восстановления некорректных файловых систем, использующих кеширование диска, в
операционных системах предусматриваются специальные утилиты, такие как, ScanDisk для FAT или Chkdisk
для NTFS.
Проблемы, связанные с восстановлением файловой системы, могут быть решены при помощи техники
протоколирования транзакций. В системе должны быть определены транзакции – неделимые работы, которые
не могут быть выполнены частично.
Упреждающее протоколирование транзакций
1.
Перед изменением какого-либо блока данных на диске или в дисковом кэше
производится запись в специальный системный файл – журнал транзакций.
2.
Если транзакция прерывается, то информация журнала регистрации используется для
приведения файлов, каталогов и служебных данных файловой системы в исходное состояние, то есть
производится откат.
3.
Если транзакция фиксируется, то и об этом делается запись в журнал регистрации, но
новые значения измеренных данных сохраняются в журнале ещё некоторое время, чтобы сделать
возможным повторение транзакции, если это потребуется.
Восстанавливаемость файловой системы NTFS
Восстанавливаемость обеспечивается только для системной информации. Сохранность данных
пользователя не гарантируется.
Журнал регистрации транзакций в NTFS делится на две части:

Область рестарта. Содержит информацию о том, с какого места необходимо будет
читать журнал транзакций для проведения процедуры восстановления системы. Для надёжности
хранятся две области рестарта.

Область протоколирования. Содержит записи обо всех изменениях в системных данных
файловой системы, произошедших в результате выполнения транзакций в течение некоторого
периода. Все записи идентифицируются логическим последовательным номером LSN. Записи о
подоперациях, принадлежащих одной транзакции, образуют связанный список: каждая последующая
запись содержит номер предыдущей записи. Заполнение области протоколирования идёт циклически,
после исчерпания всей памяти, отведённой под область протоколирования, новые записи помещаются
на место самых старых.
16
Существует несколько типов записей в журнале транзакций:

Запись модификации.

Запись контрольной точки.

Запись фиксации транзакций.

Запись таблицы модификации.

Запись таблицы модифицированных страниц.
Журнал транзакций, как и все остальные файлы, кешируется в буферах оперативной памяти и
периодически сбрасывается на диск.
Файловая система NFTS все действия с журналом транзакций выполняет только путём запросов к
специальной службе LFS. Эта служба размещает в журнале новые записи, сбрасывает на диск все записи до
некоторого заданного номера, считывает записи в прямом и обратном порядке.
Сравнение надёжности файловых систем NTFS и ReFS
С точки зрения архитектуры файловой системы ReFS имеет все требуемые инструменты для
безопасного восстановления файлов даже после серьёзного сбоя оборудования. Главный минус системы
хранения журналов в файловой системе NTFS и ей подобных – то, что обновление диска может повредить
записанные ранее метаданные при сбое питания во время записи –этот эффект называется «оборванная
запись».
Для предотвращения оборванных записей, разработчики Microsoft избрали новый подход, при котором
части структур матаданных содержат собственные идентификаторы, что позволяет проверить принадлежность
структур. Ссылки на метаданные содержат 64 битные контрольные суммы блоков, на которые производится
ссылка.
Переименование файла в ReFS:
1.
В файловой системе ReFS, новое имя для файла или папки записывает в свободное
место, при этом старое имя сразу не стирается.
2.
Как только новое имя будет записано, в файловой системе ReFS происходит создание
ссылки на новое имя.
При отказе в NTFS:
1.
Записывается запрос на изменение в журнал.
2.
После отказа питания процесс переименования прерывается, и не остаётся записи ни о
прежнем ни о старом именах.
3.
Перезагрузка Windows.
4.
Вслед за этим запускается программа исправления ошибок.
5.
Восстановить имя можно только с помощью журнала.
При отказе в ReFS:
1.
В файловой системе ReFS, новое имя для файла или папки записывает в свободное
место, при этом старое имя сразу не стирается.
2.
Отказ и перезагрузка.
3.
Checkdisk берёт старое имя.
17
Безопасность Windows
Организация контроля доступа в Windows
Проверка прав доступа для объектов любого типа выполняется централизованно с помощью монитора
состояния защиты (Security Reference Monitor), работающего в привилегированном режиме.
Для системы
безопасности
Windows
характерно наличие большого количества
субъектов
безопасности.
Группам пользователей можно наделять права.
Windows поддерживает три класса операций доступа, которые отличаются типом субъектов и
объектов, участвующих в операции.

Разрешения. Это множество операций ,которые могут быть определены для субъектов
всех типов по отношению к объектам любого типа: файлам, каталогам, принтерам, секциям памяти.

Права. Определяются для субъектов типа группа на выполнение некоторых системных
операций: установку системного времени, архивирование файлов, выключение компьютера. В этих
операциях участвует особый объект доступа –операционная система в целом. Некоторые права у
встроенной группы являются так же встроенными – их у одной группы нельзя удалить.

Возможности пользователей. Определяются для отдельных пользователей на
выполнение действий, связанных с формированием их операционной среды. Например изменение
состава главного меню программы.
При входе пользователя в систему для него создаётся так называемый токен доступа, включающий:

Идентификатор пользователя.

Идентификаторы всех групп, в которые входит пользователь.

Список управления доступом по умолчанию, который состоит из разрешений и
применяется к создаваемым процессом объектам.

Список прав пользователя на выполнение системных действий.
Все объекты снабжаются дескриптором безопасности, который содержит список управления доступом
(ACL). Список состоит из элементов. Каждый элемент соответствует одному идентификатору пользователя
или группы и правами этого субъекта по отношению к объекту.
Разрешения на доступ к каталогам и файлам.
Доступ к каталогам и файлам контролируется за счёт установки соответствующих разрешений.
Разрешения в Windows NT бывают индивидуальные и стандартные. Индивидуальные разрешения
относятся к элементарным операциям над каталогами, а стандартные разрешения являются объединением
нескольких индивидуальных разрешений.
Разрешения (индивидуальные)

Read

Write

Execute

Delete
18

Change Permission

Take Ownership
Для файлов определено четыре стандартных резрешения (в скобках соответствующие наборы
индивидуальных разрешений)

No Access (ни одного)

Read (RX)

Change (RWXD)

Full Control (Все разрешения)
Избирательный доступ имеет место, когда для каждого объекта сам владелец может определить
допустимые операции с объектами. Этот подход называется так же произвольным доступом, так как
позволяет администратору и владельцам объектов определить права доступа произвольным образом, по их
желанию. Между пользователями и группами пользователей в системах с избирательным доступом нет
жёстких иерархических взаимоотношений, то есть взаимоотношений, которые определены по умолчанию, и
которые нельзя изменить.
Мандатный доступ. Это такой подход к определению прав доступа, при котором система наделяет
пользователя определёнными правами по отношению к каждому разделяемому ресурсу в зависимости от того,
к какой группе пользователь отнесён. От имени системы выступает администратор, а владельцы объектов
лишены возможности управлять доступом к ним по своему усмотрению.
Диспетчер прерываний
Диспетчер прерываний Windows NT работает с программной моделью прерываний, единой для всех
аппаратных платформ, поддерживаемых Windows NT.
Все источники прерываний делятся на несколько классов, и каждому классу присваивается уровень
запроса прерывания – InterruptRequestLevel, IRQL. Этот уровень и представляет приоритет данного класса.
Операционная система программным образом поддерживает внутреннюю переменную, называемую
IRQL выполняемого процессором кода, которая по назначению соответствует уровню прерывания
процессора. Если процессор, на котором работает ОС, поддерживает переменную, то она используется.
Общая схема обработки прерываний:
1.
При поступлении в процессор сигнала запроса на прерывание/исключение вызывается
диспетчер прерываний, который запоминает информацию об источнике прерывания и анализирует его
приоритет.
2.
Если приоритет запроса ниже или равен IRQL прерванного кода, то обслуживание этого
запроса откладывается и данные о запросе помещаются в соответствующую очередь запросов, после
чего происходит быстрый возврат к прерванному обработчику прерываний.
3.
По завершении обработки высокоприоритетного прерывания управление возвращается
диспетчеру прерываний, который просматривает очереди отложенных прерываний и выбирает из них
наиболее приоритетное. При этом уровень IRQL снижается до уровня выбранного прерывания.
19
4.
Если же запрос имеет более высокий приоритет, чем IRQL текущего кода, то текущий
обработчик прерываний вытесняется и ставится в очередь, соответствующего по значению IRQL, а
управление передаётся новому обработчику в соответствии с IRQL запроса.
5.
Уровень IRQL процессора делается равным уровню IRQL принятого на выполнение
запроса.
Таким образом запрос на прерывание принимается диспетчером прерываний всегда независимо от
текущего уровня IRQL выполняемого кода, но диспетчер прерываний не передаёт его на обработку
соответствующей процедуре обработки прерываний, а помещает в программную очередь запросов.
Уровни запросов прерываний
Всего существует 32 уровня прерываний (0 - 31). Прерывания с IRQL (0-2) являются программными, а
прерывания с IRQL(3 - 31) являются аппаратными.
Прерывание с уровнем IRQL=0, строго говоря, прерыванием не является, так как оно не может
прервать работу никакого кода (ведь этот код должен выполняться на ещё более низком уровне прерывания, а
такого уровня нет). На этом IRQL выполняются потоки пользовательского режима.
Средства взаимодействия процессов и потоков
Межпроцессное взаимодействие – набор способов обмена данными между множеством потоков в
одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных
между собой сетью.
IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и
удалённых вызовов.
Методы IPC зависят от пропускной способности и задержки взаимодействия между потоками и
типами передаваемых данных.
Виды механизмов межпроцессного взаимодействия.
Механизм IPC
Назначение
Буфер обмена
Пересылка
выполняется
по
данных
между
желанию
и
программами
под
контролем
пользователя.
OLE 2.0
Имеются
пересылки
встроенные
данных
через
функции
границы
для
процессов.
Излишне сложен для простого обмена данными.
Сообщения WM_COPYDATA
Способ пересылки блока данных из одной
программы в другую. Используется в тех случаях,
когда скорость передачи данных не является
критической
и
не
требует
синхронизировать
20
передачу данных.
Объекты синхронизации
Объекты
отнести
к
синхронизации
механизмам
IPC.
тоже
Конечно,
можно
объём
передаваемых данных очень невелик: например,
одному процессу нужно передать «я закончил
работу» и т.д.
Библиотеки динамической компоновки
Библиотеки динамической компоновки так
же
обеспечивают
обмен
данными
между
процессами.
Сигналы
Применяются для уведомления о некотором
событии, произошедшем в системе.
Анонимные каналы
Полезны для организации прямой связи
между двумя процессами на одном ПК.
Именованные каналы
Полезны для организации прямой связи
между двумя процессами на одном ПК или сети.
Почтовые ячейки
Полезны для организации связи одного
процесса со многими на одном ПК или в сети.
Гнёзда
Полезны для организации пересылки данных
как в Windows программы, та к и в прочие
программы, функционирующие на одном ПК.
Очереди сообщений
Данный
протокол
может
работать
с
удалёнными процессами и даже с процессами,
которые на данный момент недоступны. Доставка
сообщений по адресу гарантируется.
Файлы, отображаемые в память
Обеспечивают
объектам
одновременный
файла-отображения
из
доступ
к
нескольких
процессов.
Выделяются три уровня средств IPC

Локальный.

Удалённый.
21

Высокоуровневый
Средства локального уровня IPC привязаны к процессору и возможны только в пределах компьютера.
К этому виду IPC принадлежат очереди сообщений, разделяемая память и анонимные каналы.
Коммуникационное пространство этих IPC, поддерживается только в пределах локальной системы. Из-за этих
ограничений для них могут реализовываться более простые и более быстрые интерфейсы.
Удалённые IPC предоставляют механизмы, которые обеспечивают взаимодействие как в пределах
одного процессора, так и между программами на различных процессорах, соединённых через сеть. Сюда
относятся именованные каналы, почтовые ящики, сокеты, а так же удалённые вызовы процедур.
Под высокоуровневыми IPC обычно подразумеваются пакеты программного обеспечения, которые
реализуют промежуточный слой между системной платформой и приложением. Эти пакеты предназначены
для переноса уже испытанных протоколов коммуникации приложения на более новую архитектуру.
Очереди сообщений
С помощью очередей сообщений можно из одной или нескольких задач независимым образом
посылать сообщения некоторой задаче приёмнику. При этом только процесс приёмник может читать и
удалять сообщения из очереди, а процессы-клиенты имеют право лишь помещать в очередь свои сообщения.
Следовательно очередь работает только в одном направлении. Если же необходима двухсторонняя очередь, то
можно создать две очереди.
При чтении сообщения из очереди оно не удаляется, и при желании может быть прочитано несколько
раз.
В очередях присутствуют не сами сообщения, а только их адреса в памяти и размер.
Очереди сообщений предоставляют возможность использовать несколько дисциплин обработки
сообщений:

FIFO

LIFO

Приоритетный доступ

Произвольный доступ
Во время чтения из очереди задача-приёмник пользуется следующей информацией:

Идентификатор процесса, который передал сообщение.

Адрес и длина переданного сообщения.

Признак необходимости ждать, если очередь пуста.

Приоритет переданного сообщения.

Номер освобождаемого семафора, когда сообщение передаётся в очередь.
Каналы
Традиционный канал – «безымянен», потому что существует анонимно и только во время выполнения
процесса.
Именованный канал – существует в системе и после завершения процесса. Он должен быть
«отсоединён» или удалён, когда уже не используется. Процессы обычно подсоединяются к каналу для
осуществления взаимодействия между процессами.
22
Канал представляет собой буфер в оперативной памяти, поддерживающий очередь байт по алгоритму
FIFO. Для программиста этот буфер выглядит как безымянный файл, в который можно писать и читать,
осуществляя обмен данными.
Канал обеспечивает автоматическую синхронизацию процессов – если при использовании системного
вызова read в буфере нет данных, то процесс, обратившийся к ОС с системным вызовом read, переводится в
состояние ожидания и активируется при появлении данных в буфере.
Отображаемые файлы
Проецируемые файлы применяются для:
1.
Загрузки и выполнения exe и dll файлов. Это позволяет существенно экономить как на
размере страничного файла, так и на времени, необходимом для подготовки приложения к
выполнению.
2.
Доступа к файлу данных, размещённому на диске. Это позволяет обойтись без
операций файлового ввода-вывода, буферизации его содержимого.
3.
Разделения данных между несколькими процессами, выполняемыми на одной машине.
Mailslot (почтовые ящики)
Каналы Mailslot позволяют выполнять одностороннюю передачу от одного или нескольких клиентов к
одному или нескольким серверам. Главная особенность каналов заключается в том, что они, в отличие от
других средств, позволяют передавать данные в широковещательном режиме. Это означает, что на
компьютере или в сети могут работать несколько серверных процессов, способных получать сообщения через
каналы Mailslot. При этом один клиентский процесс может посылать сообщения сразу всем этим серверным
процессам.
Сокеты
Сокеты –название программного интерфейса для обеспечения обмена данными между процессами.
Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных
между собой сетью. Сокет –абстрактный объект, представляющий конечную точку соединения.
Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с
конечными аппаратами телефонной сети, а серверные – с коммутаторами. Клиентское приложение (например,
браузер) использует только клиентские сокеты, а серверное (веб-сервер), к которому клиентское приложение
посылает запросы, как клиентские, так и серверные сокеты.
Каждый процесс может создать слушающий сокет (серверный сокет) и привязать его к какому-нибудь
порту операционной системы. Слушающий процесс обычно находится в цикле ожидания, то есть просыпается
при появлении нового соединения.
Сокеты используются для передачи данных по сети интернет, используют протокол TCP/IP.
Администрирование операционных систем
Системный администратор – специалист, ответственный за поддержание многопользовательской
компьютерной системы, включая локальный и глобальные сети.
Основные задачи системного администрирования:
23

Установка и конфигурирование нового аппаратного и программного обеспечения.

Устранение неполадок в системе.

Управление и обслуживание пользователей вычислительной системы.
o
Создание и поддержки учётных записей пользователей.
o
Управление доступом пользователей к ресурсам.
o
Выделение дискового пространства пользователя.
o
Управление
и
поддержка
совместного
использования
информационных
хранилищ.

o
Подготовка и сохранение резервных копий данных.
o
Установка и конфигурирование обновлений.
o
Управление службой печати.
Ответственность за информационную безопасность компании.
o
Выстраивание
системы
безопасности
на
физическом,
аппаратном
и
программном уровне.

o
Предотвращение компьютерных вирусов.
o
Документирование своей работы.
Мониторинг и управление производительностью системы с целью поддержания её на
требуемом уровне и возможного увеличения.
Понятие безопасности. Требования безопасности.
Безопасность – совокупность проблем, связанных с использованием информации для решения задач
пользователей компьютерной системы.
Безопасность информационных систем включает:

Безопасность
отдельных
компьютеров
–
защита
данных,
хранящихся
и
обрабатывающихся компьютером, рассматриваемым как автономная система.

Сетевая безопасность – защита данных при передаче по линиям связи и защита от
несанкционированного доступа в сеть.
Безопасной является система, удовлетворяющая следующим требованиям:

Конфиденциальность –гарантия того, что информация будет доступна только
авторизированным пользователям.

Целостность – гарантия сохранности данными правильных значений.

Доступность – постоянная готовность системы к обслуживанию авторизированных
пользователей.

Аутентичность – способность системы проверять идентичность пользователя.
Угрозы безопасности. Классификация.
Угроза – любое действие, направленное на нарушение конфиденциальности, целостности или
доступности информации, а так же нелегальное использование ресурсов информационной системы.
Атака – реализованная угроза.
Риск – вероятностная оценка величины возможного ущерба в результате успешно проведённой атаки.
24
Неумышленные угрозы – угрозы вызванные ошибочными действиями лояльных сотрудников по
причине их низкой квалификации или безответственности, а так же последствиями ненадёжной работы
программных и аппаратных средств.
Умышленные угрозы могут быть вызваны целенаправленными действиями сотрудников.
Типы умышленных угроз:

Незаконное проникновение под видом легального пользователя.

Разрушение системы с помощью программ вирусов.

Нелегальные действия легального пользователя.

Подслушивание внутрисетевого трафика.

Прерывание. Компоненты системы выходят из строя, становятся недоступными или
непригодными. Это атака, целью которой является нарушение доступности.
Технология защищённого канала
Функции защищённого канала:

Взаимная аутентификация абонентов при установлении соединения (обмен паролями).

Защита передаваемых по каналу сообщений от несанкционированного доступа путём
шифрования.

Подтверждение целостности поступающих по каналу сообщений (передача с
сообщением его дайджеста).
Схемы образования защищённого канала:

Программными средствами на удалённых компьютерах ЛВС предприятия.

Оборудованием поставщика услуг публичной сети, расположенным на границе между
частной и публичной сетями.

Перехват. Это атака, целью которой является нарушение конфиденциальности, в
результате чего доступ к компонентам системы получают несанкционированные стороны.

Изменение. Несанкционированная сторона не только получает доступ к системе, но и
вмешивается в работу её компонентов. Целью атаки является нарушение целостности.

Подделка. Несанкционированная сторона помещает в систему поддельные объекты.
Целью этой атаки является нарушение аутентичности.
Злоумышленник – нелегальный пользователь, сумевший зарегистрироваться в системе.
Пассивный злоумышленник пытается прочитать то, что ему не положено.
Активный злоумышленник пытается незаконно изменить данные с различными целями, вплоть до
разрушения системы.
Методы вторжения:

Попытки изменить пароли.

Настойчивый перебор всех коротких паролей.

Перебор слов из подключённого списка.
25

Сбор о пользователях их личной информации: хобби, имена животных.

Использование в качестве вероятного пароля дат рождения, номеров комнат, номеров
удостоверений.

Использование в качестве вероятного пароля номеров автомобилей.

Использование троянских коней.

Перехват сообщений, которыми обмениваются пользователи.
Случайная потеря данных
Форс-мажор: пожары, наводнения, землетрясения, войны, восстания, крысы, изгрызшие кабели,
магнитные ленты или гибкие диски.
Аппаратные и программные ошибки, сбои центрального процессора, нечитаемые диски или ленты,
ошибки в программах (в том числе в операционной системе), ошибки при передаче данных.
Человеческий фактор: неправильный ввод данных, неверно установленные диски или ленты, запуск не
той программы, потерянный диск, невыполненное резервное копирование и т. п.
Системный подход к обеспечению безопасности
Морально-этические
средства
защиты
–
нормы,
сложившиеся
по
мере
распространения
вычислительных средств в обществе (аморальность покушений на чужие информационные ресурсы).
Законодательные средства защиты – законы, постановления, нормативные акты и стандарты,
которыми регламентируются правила использования и обработки информации, а также вводятся меры
ответственности за их нарушение.
Административные меры – действия руководства предприятия для обеспечения информационной
безопасности. (режим работы сотрудников, их должностные инструкции, строго определяющие порядок
работы с конфиденциальной информацией на компьютере; правила приобретения предприятием средств
безопасности. Представители администрации, которые несут ответственность за защиту информации, должны
26
выяснить, насколько безопасным является использование продуктов, приобретенных у зарубежных
поставщиков. Особенно это касается продуктов, связанных с шифрованием. В таких случаях желательно
проверить наличие у продукта сертификата)
Психологические меры безопасности.
Физические средства защиты - проверка поставляемой аппаратуры на отсутствие аппаратных
«жучков», средства наружного наблюдения, устройства, блокирующие физический доступ к отдельным
блокам компьютера, различные замки и другое оборудование, защищающие помещения, где находятся
носители информации, от незаконного проникновения.
Технические средства информационной безопасности – программное и аппаратное обеспечение
системы, контроль доступа, аутентификация и авторизация, аудит, шифрование информации, антивирусная
защита, контроль сетевого трафика.
Надежная
работа
программных
и
аппаратных
средств
системы,
средства
обеспечения
отказоустойчивости и восстановления операционной системы, целостности и доступности приложений и баз
данных.
Базовые принципы политики безопасности
1.
Минимальный уровень привилегий на доступ к данным
2.
Комплексный подход к обеспечению безопасности.
3.
Баланс надежности защиты всех уровней.
4.
Использование средств, обеспечивающих максимальную защиту при атаке (например,
полная блокировка автоматического пропускного пункта при его отказе, полная блокировка входа в
сеть и др.).
5.
Единый контрольно-пропускной путь – весь трафик через один узел сети (например,
через межсетевой экран firewall).
6.
Баланс возможного ущерба от угрозы и затрат на ее предотвращение.
7.
Ограничение служб, методов доступа для лиц, имеющих доступ в
Интернет и из
Интернета во внутреннюю сеть предприятия. Политика доступа к службам Интернет и политика
доступа к ресурсам внутренней сети.
Выявление вторжений
27
Подходы к выявлению вторжений
Выявление статистических отклонений (пороговое обнаружение –пороги частот различных событий,
профильное обнаружение). Эффективно против притворщиков, бессильно против правонарушителей.
Выявление на основе правил (выявление отклонений от обычных характеристик, идентификация
проникновения –поиск подозрительного поведения). Эффективно против взломщиков.
Базовые технологии безопасности
•
В разных программных и аппаратных продуктах, предназначенных для защиты данных,
часто используются одинаковые подходы, приемы и технические решения. К таким базовым
технологиям безопасности относятся аутентификация, авторизация, аудит и технология защищенного
канала.
Аутенфикация
Аутентификация (authentification) предотвращает доступ к сети нежелательных лиц и разрешает вход
для легальных пользователей.
Доказательства аутентичности:
1)
знание некоего общего для обеих сторон секрета: пароля или факта (дата, место
события и др.);
2)
владение уникальным предметом (физическим ключом, электронной магнитной
картой);
3)
собственные биохарактеристики: радужная оболочка глаза, отпечатки пальцев, голос и
т. д.
Чаще всего для доказательства аутентичности используются пароли. С целью снижения уровня
угрозы раскрытия паролей администраторы применяют встроенные программные средства
28
операционных систем для формирования политики назначения и использования паролей.
Аутентификация взаимная: клиент – сервер, приложение – пользователь и т. д.
Защита пользовательских паролей
•
Одностороннее (необратимое) шифрование. Пароль используется для генерации ключа
для функции шифрования.
•
Контроль доступа к файлу с паролями. Доступ ограничен одной учетной записью или
малым числом учетных записей (администраторы).
29
Авторизация пользователя
1. Система авторизации имеет дело только с легальными пользователями, которые успешно прошли
процедуру аутентификации.
2. Цель подсистемы авторизации – предоставить каждому легальному пользователю те виды доступа и
к тем ресурсам, которые были для него определены администратором системы.
3. Система авторизации использует различные формы правил доступа к ресурсам: a) избирательные
права – в операционных системах универсального назначения; б) мандатный подход – деление информации на
уровни в зависимости от степени ее секретности (для служебного пользования, секретно, сов. секретно,
особой важности) и пользователей по форме допуска (первая, вторая, третья).
4. Процедуры авторизации реализуются программными средствами операционных систем или
отдельными программными продуктами.
5. Схемы авторизации: децентрализованные (на рабочих станциях), централизованные (на серверах),
комбинированные.
Аудит
Аудит (auditing) – фиксация в системном журнале событий, происходящих в операционной системе,
имеющих отношение к безопасности и связанных с доступом к защищаемым системным ресурсам.
Регистрация успешных и неуспешных действий:
Регистрация в системе;
Управление учетной записью;
Доступ к службе каталогов;
Доступ к объекту;
Использование привилегий;
Изменение политики;
Исполнение процессов и системные события.
Аудит включается в локальной (групповой) политике аудита.
Журнал безопасности содержит записи, связанные с системой безопасности.
30
Хранение паролей Windows
Главным аспектом безопасности Windows является сохранность паролей учётных записей с правами
Администратора, т.к. знание пароля администратора позволяет получить полный доступ к компьютеру как
локально, так и по сети. Однако, даже знание пароля администратора не даёт возможности к чтению паролей
всех пользователей.
Информация
об
учётных
записях
пользователей
хранится
в
ветке
реестра
HKEY_LOCAL_MACHINE\SAM (SAM – Security Account Manager).
Работа с этим разделом реестра ведётся системой «на лету».
Пароли хранятся не в явном виде, а в виде хэшей, то есть в виде контрольных сумм паролей.
Хэш –это численная величина полученная из текстовой строки. Хеш строится с помощью
одностороннего преобразования.
Среди структуры SAM файлв присутствует структура, называемая V-блок. Она имеет 32 бита и
содержит в себе хэш паоля для локального входа – NT Hash длиной 16 байт, а так же хэш, используемый при
аутенфикации доступа к общим ресурсам других компьютеров – LanMan Hash или LM Hash длиной также 16
байт.
Формирование NT Hash:

Пароль пользователя преобразуется в Unicode-строку.

Генерируется хэш на основе данной строки с использованием алгоритма MD4.

Полученный хэш шифруется алгоритмом DES (симметричный алгоритм шифрования),
причём в качестве ключа используется идентификатор пользователя. Это необходимо, чтобы два
пользователя с одинаковыми паролями имели разные хэши.
Все пользователи имеют разные RID (идентификаторы пользователя). RID администратора равен 500,
гостя –501. Все остальные пользователи получают идентификаторы 1001, 1002 и так далее.
31
Формирование LM Hash:

Пароль пользователя преобразуется в верхний регистр и дополняется нулями до длины
14 байт.

Полученная строка делится на две половинки по 7 байт и каждая из них по отдельности
шифруется алгоритмом DES, на выходе которого получает 8-байтный хэш. В сумме же имеем один
хэш длиной 16 байт.

Далее LM Hash дополнительно шифруется так же как и в шаге 3 формирования NT

Для повышения безопасности хранения паролей, полученные хэши дополнительно
Hash.
шифруются ещё одним алгоритмом с помощью утилиты syskey.
Шифрованная файловая система
32
Encrypting FileSystem – система шифрования данных, реализующая шифрование на уровне файлов в
операционных системах Windows.
Данная система предоставляет возможность «прозрачного шифрования» данных, хранящихся на
разделах с файловой системой NTFS.
EFS работает, шифруя каждый файл с помощью алгоритма симметричного шифрования, зависящего
от версии операционной системы и настроек. При этом используется случайно сгенерированный ключ для
каждого файла, называемый File Encription Key.
FEK защищается путём ассиметричного шифрования. FEK сохраняется в альтернативном потоке $FEK
файловой системы NTFS.
Шифрование / расшифрование файлов прозрачно для пользователей и приложений. EFS не шифрует
файлы, передаваемые по сети, поэтому для защиты передаваемых данных необходимо использовать другие
протоколы.
Шифрование
33
Пара процедур – шифрование и дешифрование называется криптосистемой.
34
35
Аутентификация с пользователем одноразового пароля
Сетевые и распределённые операционные системы и
среды
Сетевая ОС предоставляет пользователю виртуальную вычислительную систему, работать с которой
проще, чем с реальной сетевой аппаратурой. В то же время эта виртуальная система не полностью скрывает
распределённую природу своего реального прототипа.
Термин «Сетевая операционная система» используется в двух значениях:

Совокупность взаимодействующих ОС всех компьютеров в сети.

Операционная система отдельного компьютера, позволяющая ему работать в сети.
В идеальном случае сетевая ОС должна предоставлять пользователю в виде единой виртуальной
машины. В этом случае сетевая ОС является распределённой ОС. Распределённая ОС существует как единая
ОС в масштабах всей вычислительной системы.
Существует два типа распределённых операционных систем:

Мультипроцессорная
операционная
система.
Она
управляет
ресурсами
мультипроцессора.

Мультикомпьютерная ОС. Разрабатывается для гомогенных (состоящих из нескольких
однородных системных блоков) мультикомпьютеров.
Средства управления локальными ресурсами компьютера реализуют все функции ОС автономного
компьютера (распределение оперативной памяти между процессами, планирование и диспетчеризацию
процессов, управление процессорами в мультипроцессорных системах, управление внешней памятью,
интерфейс пользователя).
Сетевые средства можно разделить на три компонента:

Средства предоставления локальных ресурсов и услуг в общее пользование – серверная
часть ОС.

Средства запроса доступа к удалённым ресурсам и услугам –клиентская часть ОС.

Транспортные средства ОС, которые совместно с коммуникационной системой
обеспечивают передачу сообщений между компьютерами сети.
Очень полезной функцией клиентской части является способность отличать запрос к удалённому
файлу от запроса к локальному файлу. Редиректор – компонент клиентской части (может быть оформлен
отдельным модулем), который распознаёт и перенаправляет запрос либо к удалённым ресурсам, либо к
локальным.
Транспортные средства управляют передачей сообщений между клиентской и серверной частями по
коммуникационной системе сети.
Функции транспортных средств:

Формирование сообщений.

Разбиение сообщения на части.

Преобразование имён компьютеров в числовые адреса.
36

Организация надёжной доставки сообщений.

Определение маршрута в сложной сети.
Правила
взаимодействия
компьютеров
при
передаче
сообщений
по
сети
фиксируется
в
коммуникационных протоколах.
Сетевые службы и сетевые сервисы
Совокупность серверной и клиентской частей ОС, предоставляющих доступ к конкретному типу
сетевого ресурса, называется сетевой службой.
Сетевой сервис – это набор услуг, предоставляемых сетевой службой. Сетевые службы
ориентированы на пользователя и администратора сети.
Наиболее важными для пользователей являются файловая служба и служба печати. Спектр служб
может включать: почтовую службу, удалённый терминальный доступ, передача файлов, видеоконференции и
др.
К службам, ориентированным на администратора относятся: служба мониторинга сети, служба
безопасности, резервного копирования, архивирования и др.
Сетевые службы имеют клиент-серверную архитектуру.
Клиенты, рабочие станции, хосты, узлы
Клиенты сети – компьютеры и другие сетевые устройства (например, принтеры), имеющие доступ к
ресурсам сети, так же программы, имеющие доступ к программам сервера. Чаще всего клиент – компьютер
пользователя сети.
Рабочая станция.

Клиентский (пользовательский) компьютер, на котором установлена клиентская
операционная система.

Высокопроизводительный компьютер, интенсивно использующий сетевые и локальные
ресурсы.
Хост – компьютер или другое устройство сети, имеющее IP-адрес.
Узел – точка соединения в сети – компьютер или другое устройство, предназначенное для
распознавания и обработки запросов на передачу информации другим узлам сети.
Варианты построения сетевых ОС
На практике сложилось несколько подходов к построению сетевых операционных систем,
различающихся глубиной внедрения сетевых служб в операционную систему.
1.
Сетевые службы глубоко встроены в ОС.
2.
Сетевые службы объединены в виде некоторого набора – оболочки.
3.
Сетевые службы производятся и поставляются в виде отдельного продукта.
Одноранговые и серверные операционные системы
В зависимости от того, как распределены функции между компьютерами сети, они могут выступать в
трёх разных ролях:
37

Компьютер,
занимающийся
исключительно
обслуживанием
запросов
других
компьютеров, играет роль выделенного сервера сети.

Компьютер, обращающийся с запросами к ресурсам других машин, исполняет роль
клиентского узла.

Компьютер, совмещающий функции клиента и сервера является одноранговым узлом.
Возможные схемы построения сети:

Сеть на основе одноранговых узлов. Одноранговая сеть.

Сеть на основе клиентов и серверов. Сеть с выделенными серверами.

Сеть, включающая узлы всех типов. Гибридная сеть.
Особенности серверных ОС
Особенности серверных ОС:

Поддержка мощных аппаратных платформ.

Поддержка большого числа одновременно выполняемых процессов и сетевых
соединений.

Включение в состав ОС компонентов централизованного администрирования сети.

Аутентификация и авторизация пользователей в сети.

Более широкий набор сетевых служб.
Распределённые операционные системы и среды
Два способа организации файловых операций
Файловая система ОС должна предоставлять пользователям набор операций работы с файлами,
оформленный в виде системных вызовов. Этот набор обычно состоит из таких системных вызовов, как
“CRUD”.
Чаще всего с одним и тем же файлом пользователь выполняет не одну операцию, а
последовательность операций. После большого количества операций чтения и записи пользователь завершает
работу с данным файлом и переходит к другому.
Какие бы операции не выполнялись над файлом, ОС необходимо выполнить ряд универсальных для
всех операций действий:
1.
По символьному имени файла найти его характеристики, которые хранятся в файловой
системе на диске.
2.
Скопировать характеристики файла в оперативную память, так как только таким
образом программный код может их использовать.
3.
На основании характеристик файла проверить права пользователя на выполнение
запрошенной операции.
4.
Очистить область памяти, отведённую под временное хранение характеристик файла.
Системный вызов “Open” включает в себя действия 1, 2, 3, а системный вызов “Close” –действие 4.
Кроме того, каждая операция включает ряд уникальных действий, направленных на чтение
определённого набора кластеров диска, удаление файла и т.п.
38
Способы организации файловых операций:
1.
Для каждой операции выполняются как универсальные, так и уникальные действия.
Такая схема называется схемой без запоминания состояния операций (stateless).
2.
Все универсальные действия выполняются в начале и конце последовательности
операций, а для каждой промежуточной операции выполняются только уникальные действия
(statefull).
Подавляющее большинство файловых систем поддерживает второй способ, как более быстрый и
экономичный.
Первый способ обладает одним преимуществом –он более устойчив к сбоям в работе системы, так как
каждая операция является самодостаточной и не зависит от результата предыдущей. Поэтому первый способ
иногда применяется в распределённых сетевых файловых системах, когда сбои из-за потерь пакетов или
отказов одного из сетевых узлов более вероятны, чем при локальном доступе к файлам.
Файловые серверы типа “statefull” и “stateless”
Файловый сервер может быть реализован по одной из двух схем:

Без запоминания данных о последовательности файловых операций клиента (stateless).

С запоминанием данных о последовательности файловых операций клиента (statefull).
Для сервера stateless каждый запрос должен содержать исчерпывающую информацию, необходимую
серверу для выполнения требуемой операции. Эта информация увеличивает длину сообщения и время,
которое тратит сервер на локальное открытие файла. Серверы, работающие по схеме stateless, не
поддерживают в протоколе обмена с клиентами таких операций, как открытие и закрытие файлов.
Принципиально набор команд, предоставляемых клиенту, может состоять только из двух команд: read и write.
Эти команды должны передавать в своих аргументах всю необходимую для сервера информацию – имя
файла, смещение от начала файла и количество читаемых или записываемых байт данных.
Когда клиент посылает запрос на сервер stateless, сервер выполняет его, отсылает ответ, а затем
удаляет из своих внутренних таблиц всю информацию о запросе. Между запросами на сервер не хранится
никакой текущей информации о состоянии клиента.
Для того чтобы обеспечить приложениям, работающим на клиентских машинах, привычный файловый
интерфейс, включающий вызовы открытия и закрытия файлов, клиент файловой службы должен
самостоятельно поддерживать таблицы открытых его приложениями файлов.
Серверы statefull работают по схеме, обычной для любой локальной файловой службы. Такой сервер
поддерживает тот же набор вызовов, что и локальная система, то есть вызовы open, read, write, seek.
Открывая файлы по вызову open, переданному по сети клиентом, сервер statefull должен запоминать в
своей внутренней памяти, какие файлы открыл каждый пользователь. Обычно при открытии файла
клиентскому приложению возвращается по сети дескриптор файла или другое число, которое используется
при последующих вызовах для идентификации файла.
При поступлении вызовы read, write или seek сервер использует дескриптор файла для определения,
какой файл нужен. В этой таблице хранится также значение указателя на текущую позицию в файле,
относительно которой выполняется операция чтения или записи.
39
Достоинства и недостатки
Серверы stateless:

Отказоустойчивы.

Меньше памяти сервера расходуется на таблицы.

Нет ограничений на число открытых файлов.

Отказ клиента не создаёт проблем для сервера.
Серверы statefull:

Более короткие сообщения при запросах.

Лучше производительность.

Возможно опережающее чтение.

Возможна блокировка файлов.
Блокировки файлов
Блокировки файлов и отдельных записей в файлах являются средством синхронизации между
процессами, пытающимися использовать один и тот же файл одновременно.
Процессы могут иметь соответствующие права доступа к файлу, но одновременное использование
этих прав (в особенности права записи) может привести к некорректным результатам. Если доступ к файлу не
управляется блокировками, то каждый пользователь, который имеет право записи в файл, работает со своей
копией данного файла. Результат такого редактирования непредсказуем – он зависит от того, в какой
последовательности записывали изменения в файл применяемые пользователями редакторы.
Многопользовательские операционные системы обычно поддерживают специальный системный
вызов, позволяющий программисту установить и проверить блокировки на файл и его отдельные области. В
его аргументах указывается дескриптор файла, для которого нужно установить или проверить блокировки,
тип операции, а так же область блокирования – смещение от начала файла и размер в байтах.
Запрошенная блокировка записи не может быть установлена в том случае, если другой процесс уже
установил свою блокировку записи на тот же файл. То есть блокировка записи является исключительной.
Блокировки чтения не являются исключительными и могут устанавливаться на файл в том случае, если их
области действия не перекрываются. Если на какую-то область файла установлена блокировка чтения, то на
эту область нельзя установить блокировку записи.
Передача сообщений в распределённых системах
Межпроцессное взаимодействие в компьютерных системах осуществляется:
1.
Совместным использованием данных, помещённых в разделяемую память.
2.
Передачей данных в виде сообщений.
Сообщение состоит из заголовка и набора данных определённого типа переменной длины.
Заголовок содержит:
1.
Адресное поле. Оно состоит из двух частей – адреса процесса-отправителя и адреса
процесса-получателя. Адрес каждого процесса может, в свою очередь, иметь некоторую структуру,
позволяющую найти нужный процесс в сети, состоящей из большого количества компьютеров.
40
2.
Последовательный номер, являющийся идентификатором сообщения. Используется для
идентификации потерянных сообщений и дубликатов сообщений в случае отказов в сети.
Набор данных содержит:
1.
Поле типа данных, указывающего, какие данные передаются.
2.
Поле длины данных, определяющее длину передаваемых данных.
3.
Поле данных, содержащее передаваемые данных.
Подсистема передачи сообщений (транспортная подсистема) обеспечивает набор средств для
организации взаимодействия процессов по сети. Назначение этой системы – экранировать детали сложных
сетевых протоколов от программиста. Подсистема позволяет процессам взаимодействовать посредством
простых примитивов.
Системные средства обеспечения связи могут быть сведены к двум коммуникационным примитивам:

Send(отправить).

Receive(получить).
Структура модели ISO OSI. Функции уровней
1. Физический уровень. (Physical Layer) На данном уровне основной единицей передачи информации
является бит (bit)
2. Канальный уровень. (Data Link Layer) Основной единицей является фрейм(frame). Фрейм –
особым образом сгруппированная группа битов физического уровня, к которому добавляется битовый
заголовок, содержащий аппаратные адреса отправителя и получателя, контрольную сумму для определения
целостности фрейма и некоторые флаги, управляющие процессом передачи.
3.Сетевой уровень. (Network Layer ) Основной единицей является пакет. Функцией данного уровня
является объединение сетей. На данном уровне работает процесс маршрутизации – выбора оптимального
маршрута передачи пакета. Пакет представляет собой информационный блок, содержащий информацию
вышестоящего уровня, плюс заголовок, содержащий сетевые адреса отправителя и получателя и служебную
информацию.
4. Транспортный уровень. (Transport Layer ) Протоколы транспортного уровня обеспечивают
надежную передачу данных для протоколов более высоких уровней или для приложений. К фунциям уровня
относятся обнаружение и исправление ошибок при передаче сообщения, контроль доставки, или
восстановление аварийно прерванной связи, фрагментация пакетов с целью оптимизировать доставку
сообщений.
5.Сеансовый уровень. (Session Layer ) Отвечает за поддержание сеанса связи, позволяя приложениям
взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса,
обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием
сеанса в периоды неактивности приложений.
6. Уровень представлений.( Presentation Layer ) На данном уровне обеспечивается кодирование
исходного сообщения. К примерам можно отнести представление текста в кодировке ASCII или Unicode,
сжатие видео MPEG, и т.п.
41
7.Уровень приложений. (Application Layer ) Основной задачей данного уровня является организация
интерфейса между объектом – отправителем сообщения, представление сообщения в машиннообрабатываемом виде и передача его на более низкие уровни модели.
Коммуникационные примитивы
Коммуникационные примитивы (send и receive) могут быть оформлены :
1.
как внутренние процедуры ядра ОС (в этом случае ими могут использоваться только
модули ОС) ;
2.
как системные вызовы (доступные в этом случае процессам в пользовательском
режиме);
3.
как блокирующие или неблокирующие примитивы.
42
Вызов удалённых процедур
Вызов удаленных процедур (RPC) позволяет организовать взаимодействие программ
в сети,
например для организации сетевых распределенных вычислений.
Характерными чертами RPC являются:
асимметричность (одна из сторон является инициатором взаимодействия),
синхронность (выполнение вызывающей процедуры блокируется с момента выдачи запроса и
возобновляется только после возврата из вызываемой процедуры).
Сложности реализации RPC:
1.
Разными (разнесенными в пространстве) адресными полями компьютеров, что создает
проблемы в передаче параметров и результатов, особенно если машины и ОС не идентичны.
2.
Отсутствие разделяемой памяти означает, что значения параметров должны копироваться с
одной машины на другую.
3.
RPC использует нижележащую систему обмена сообщениями, однако это не должно быть явно
видно ни в определении процедур, ни в самих процедурах.
4.
В реализации RPC участвует как минимум два процесса, аварийное завершение любого из них
может привести к проблемам.
5.
Неоднородность языков программирования и операционных сред.
Этапы выполнения RPC
RPC достигает прозрачности следующим путем:
Когда вызываемая процедура действительно является удаленной, в библиотеку помещается вместо
локальной процедуры другая версия процедуры, называемая клиентским стабом (stub - заглушка). Подобно
оригинальной процедуре, стаб работает
с использованием вызывающей последовательности, только в
отличие от локальной процедуры он не помещает параметры в регистры и не запрашивает у ядра данные,
вместо этого он формирует сообщение для отправки ядру удаленной машины.
43
Работа на клиентской стороне:
После того, как клиентский стаб был вызван программой-клиентом, его первой задачей является
заполнение буфера отправляемым сообщением.
Параметры должны быть преобразованы в соответствующий формат и вставлены в буфер сообщения.
К этому моменту сообщение готово к передаче, поэтому выполняется прерывание по вызову ядра.
Когда ядро получает управление, оно переключает контексты, сохраняет регистры процессора и карту
памяти, устанавливает новую карту памяти, которая будет использоваться для работы в режиме ядра. Т.к.
контексты ядра и пользователя различаются, ядро должно скопировать сообщение в свое собственное
адресное пространство, чтобы иметь к нему доступ, запомнить адрес назначения, и передать его сетевому
интерфейсу.
Работа на стороне сервера:
Поступающие биты помещаются принимающей аппаратурой либо во встроенный буфер, либо в
оперативную память.
Когда вся информация будет получена, генерируется прерывание. Обработчик прерывания проверяет
правильность данных пакета и определяет, какому стабу следует их передать. Если ни один из стабов не
ожидает этот пакет, обработчик должен либо поместить его в буфер, либо вообще отказаться от него. Если
имеется ожидающий стаб, то сообщение копируется ему.
Выполняется переключение контекстов, в результате чего восстанавливаются регистры и карта
памяти, принимая те значения, которые они имели в момент, когда стаб сделал вызов receive.
Серверный стаб распаковывает параметры и помещает их в стек. Когда все готово, выполняется вызов
сервера.
44
Сетевые файловые системы
Элементы сетевой файловой системы:

Локальные файловые системы.

Интерфейсы локальной файловой системы

Серверы сетевой файловой системы.

Клиенты сетевой файловой системы (программы, работающие на компьютерах,
подключённых к сети).

Интерфейс файловой системы.

Протокол клиент-сервер сетевой файловой системы.
Network File System(NFS)
NFS абстрагирована от типов файловых систем как сервера, так и клиента. Взаимодействующие
рабочие станции рассматриваются как набор независимых машин с независимыми файловыми системами, что
позволяет совместно использовать файловые системы прозрачным образом.

Удалённая директория монтируется на локальную директорию. Смонтированная
директория трактуется как полное поддерево локальной файловой системы.

Спецификация удалённой директории для операции монтирования не является
прозрачной. Необходимо указать имя машины с удалённой директорией. После этого файлы
удалённой директории могут быть доступны.

С учётом назначения полномочий доступа, потенциально любая файловая система,
может быть смонтирована удалённо поверх существующей директории.

NFS спроектирована для работы в неоднородном окружении различных машин.

NFS использует примитивы RPC (Remote Procedure Call), реализованные поверх XDR –
протокола.

Спецификация NFS различает сервисы и фактически удалённые файловые системы.

NFS – серверы не имеют состояния. Каждый запрос должен иметь полный набор
аргументов.
Протокол NFS
Предоставляет набор RPC для удалённых операций над файлами. Процедуры поддерживают
следующие операции:

Поиск файла в директории.

Чтение набора элементов директории.

Управление ссылками и директориями.

Доступ к атрибутам файлов.

Чтение и запись файлов.
NFS – протокол не поддерживает механизмы управления параллельным доступом.
NFS – протокол осуществляет доступ только к тем частям файла, к которым обратился процесс, и
основное достоинство его в том, что он делает этот доступ прозрачным. Это означает, что любое приложение
45
клиента, которое может работать с локальным файлом с таким же успехом может работать и с NFS файлом
без каких либо модификаций самой программы.
Реализация NFS
Реализация NFS состоит из нескольких компонентов. Некоторые из них локализованы либо на сервере,
либо на клиенте, а некоторые используются и тем и другим.

Протокол NFS определяет набор запросов, которые могут быть направлены клиентом к
серверу, а так же набор аргументов и возвращаемые значения для каждого из этих запросов.

Протокол удалённого вызова процедур определяет формат всех взаимодействий между
клиентом и сервером. Каждый запрос NFS посылается как запрос RPC.

Внешнее
представление
данных
обеспечивает
машинно-независимый
метод
кодирования данных для пересылки через сеть.

Программный код сервера NFS отвечает за обработку всех запросов клиента и
обеспечивает доступ к экспортируемым файловым системам.

Программный код клиента NFS реализует все обращения клиентской стороны к
удалённым файлам путём посылки серверу одного или нескольких запросов RPC.

Протокол монтирования определяет семантику монтирования и размонтирования
файловых систем NFS.

Демон mountd обрабатывает запросы монтирования. На клиенте набор демонов biod
обрабатывает асинхронный ввод/вывод блоков файлов NFS.

Менеджер блокировок сети и монитор состояния сети вместе обеспечивают средства
для блокировки файлов в сети.
Три основных уровня архитектуры NFS

UNIX – интерфейс файловой системы. Основан на вызовах open, read, write, close calls).

Уровень Virtual File System. Различает локальные и удалённые файлы, и в дальнейшем
локальные файлы обрабатываются в соответствии с типами их файловых систем.
o
VFS активизирует операции, специфичные для конкретной файловой системы,
для обработки локальных запросов в соответствии с типами систем.
o

Вызывает процедуры NFS – протокола для удалённых запросов.
NFS – сервисный уровень – нижний уровень архитектуры, который реализует NFS –
протокол.
Протокол монтирования NFS

Устанавливает первоначальную логическую связь между сервером и клиентом.

Операция
монтирования
включает
имя
удалённой
директории,
подлежащей
монтированию, и имя машины-сервера, на которой она хранится.

Исполняя запрос на монтирование, соответствующий этому списку сервер возвращает
file handle –ключ к дальнейшему доступу.
46

File
handle
–идентификатор
файловой
системы
и
номер
индексного
узла,
идентифицирующий монтируемую директорию внутри экспортируемой файловой системы.

Операция монтирования изменяет только точку зрения пользователя и не влияет на
серверную часть.
Служба каталогов сетевых серверных ОС
Служба каталогов представляет собой базу данных и совокупность служб для именования, хранения и
выборки информации в распределённой среде, доступных клиентам и администраторам этой среды.
Причины, требующие в сети централизованной базы данных справочной информации:

Появление корпоративных информационных систем. Усложнение задач управления
пользователями. Централизованное хранение учётных записей пользователей.

Управление сетевыми ресурсами. Прозрачность доступа к сетевым ресурсам.

Управление сетью на основе базы данных о топологии сети и характеристик её
компонентов.

Организация управления распределёнными приложениями.

Предоставление справочной информации для работы сетевых служб и сервисов.

Управление качеством обслуживания сетевого трафика.
Способы реализации службы каталогов:

Локальные базы справочных служб узкого (специализированного) назначения.

Единая централизованная справочная служба на основе распределённой базы данных.
Служба каталогов использует два типа сетей:

Сеть, объединяющая несколько локальных баз данных. Достоинства: простота,
удобство при небольшом количестве пользователей.

Сеть, объединяющая компьютеры в домен. Домен представляет собой группу
компьютеров, к которым может применяться единая политика администрирования. Достоинства:
централизованное администрирования, возможность масштабирования.
Архитектура Active Directory
Возможности, предоставляемые службой каталогов:

Централизованное управление всеми корпоративными ресурсами.

Масштабируемость – способность охватывать домены, деревья, леса доменов.

Расширяемость каталогов с возможностью добавления новых классов объектов.

Интеграция с DNS. Автоматическое преобразование доменных имён в IP адреса.

Администрирование с использованием групповых политик.

Единая регистрация в сети. Доступ к ресурсам независимо от их расположения в сети.

Безопасность информации, достигаемая централизованной защитой сети.

Гибкость изменений в структуре каталогов в соответствии с изменениями в структуре
предприятия.

Репликация изменений по схеме с многими ведущими.
47
Компоненты Active Directory:

Логическая структура.
o
Объект – конкретная сущность (пользователь, принтер, папка, компьютер) с
отличительным набором атрибутов.
o
Контейнер – логическое объединение, группирующее объекты или контейнеры
по некоторому признаку.
o
Организационное
подразделение
–
некоторый
контейнерный
объект,
организующий объекты в логические административные группы.
o
Домен – группа компьютеров, совместно использующих общую БД каталога.
o
Лес
доменов
–объединение
одного
или
более
деревьев,
совместно
использующих информацию каталога.

Физическая структура.
o
Контроллер домена –компьютер с серверной ОС Windows Server, хранящий
раздел каталога и отвечающий за аутентификацию пользователей.
o
Подсеть – сетевая группа с заданной областью IP адресов и сетевой маской,
которая имеет определённое графическое положение.
o
Сайт – одна или несколько подсетей со своим множеством IP адресов.
Система Kerberos
Kerberos – это дополнительная сетевая система/протокол, позволяющая пользователям авторизоваться
через защищённые сервисы на защищённом сервере. Такие сервисы как удалённый вход, удалённое
копирование, защищённое копирование файлов между системами и другие задачи с высоким риском
становятся допустимо безопасными и более контролируемыми.
Принципы системы:

Все процедуры аутентификации между клиентами и серверами сети выполняются через
посредника, которому доверяют обе стороны.

Клиент должен доказывать свою аутентичность для доступа к каждой службе.

Все обмены по сети выполняются с использованием алгоритма шифрования DES.

Сетевая служба Kerberos построена по архитектуре клиент-сервер.
Протокол основан на понятии Ticket (билет).
Ticket является зашифрованным пакетом данных, который выдаётся доверенным центром
аутентификации.
Когда пользователь выполняет первичную аутентификацию, после успешного подтверждения его
подлинности KDC выдаёт первичное удостоверение пользователя для доступа к сетевым ресурсам – Ticket
Granting Ticket. В дальнейшем, при обращении к отдельным ресурсам сети, пользователь, предъявляя TGT,
получает от KDC удостоверение для доступа к конкретному сетевому ресурсу.
Одним из преимуществ протокола Kerberos, обеспечивающим высокий уровень безопасности,
является то, что при любых взаимодействиях не передаются ни пароли, ни значения хеша в открытом виде.
48
При работе с протоколом Kerberos необходимо, чтобы системные часы всех участвующих во
взаимодействии узлов были синхронизированы.
Концепции DLL
DLL
(англ. dynamic-link
library —
«библиотека
динамической
компоновки»,
«динамически
подключаемая библиотека») — понятие операционных систем Microsoft Windows и IBM OS/2, динамическая
библиотека, позволяющая многократное использование различными программными приложениями. K DLL
относятся также элементы управления ActivX и драйверы.
В мире UNIX аналогичные функции выполняют так называемые разделяемые объекты (shared objects).
Библиотеки DLL не присоединены непосредственно к выполняемым файлам с помощью редактора
связей.
В выполняемый файл занесена только информация об их местонахождении. В момент выполнения
программы загружается вся библиотека целиком. Благодаря этому разные процессы могут пользоваться
совместно одними и теми же библиотеками, находящимися в памяти. Такой подход позволяет сократить
объем памяти, необходимый для нескольких приложений, использующих много общих библиотек, а также
контролировать размеры ЕХЕ-файлов.
Первоначально предполагалось, что введение DLL позволит эффективно организовать память и
дисковое пространство, используя только один экземпляр библиотечного модуля для различных приложений.
Это было особенно важно для ранних версий Microsoft Windows с жёсткими ограничениями по памяти.
Предполагалось улучшить эффективность разработок и использования системных средств за счёт
модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо
наращивать систему, не затрагивая приложений. Кроме того, динамические библиотеки могли использоваться
разнотипными приложениями
В дальнейшем идея модульности выросла в концепцию COM
Основы технологии COM, COM+
COM
(англ. Component
Object
Model —
объектная
модель
компонентов) —
это
стандарт,
предназначенный для создания программного обеспечения на основе взаимодействующих компонентов,
каждый из которых может использоваться во многих программах одновременно. Этот двоичный стандарт
обеспечивает средства, с помощью которых объекты и компоненты, разработанные на разных языках
программирования разными поставщиками и работающие в различных операционных системах, могут
взаимодействовать без каких-либо изменений в двоичном (исполняемом) коде.
Стандарт COM мог бы быть универсальным и платформо-независимым, но закрепился в основном на
операционных системах семейства Windows.
Основным понятием, которым оперирует стандарт COM, является COM-компонент. Программы,
построенные на стандарте COM, фактически не являются автономными программами, а представляют собой
набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный
идентификатор (GUID) и может одновременно использоваться многими программами. Компонент
взаимодействует с другими программами через COM-интерфейсы — наборы абстрактных функций и свойств.
49
Информация, необходимая сервисам СОМ и приложениям-клиентам для размещения и создания
экземпляров компонентов, хранится в реестре Windows. Обратившись к реестру, приложения могут
определить количество и тип установленных в системе компонентов.
Информация
в
реестре
упорядочена
иерархически
и
имеет
несколько
предопределенных
высокоуровневых разделов. Важным подразделом HKEY_CLASSES_ROOT является CLSID (идентификаторы
классов), в котором описывается каждый компонент, установленный в системе.
Системы реального времени
Реальное время в ОС – это способность ОС обеспечивать требуемый уровень сервиса в определённый
промежуток времени. Для СРВ характерно:

Гарантированное время реакции на внешние события.

Жёсткая подсистема планирования процессов.

Повышенные требования к времени реакции на внешние события и реактивности.
Помимо детерминированности при обработке прерываний, для обработки в режиме реального времени
важно обеспечить планирование задач с поддержкой периодических интервалов времени.
Для обеспечения стабильной работы ОСРВ необходимо, чтобы определить определённая задача
выполнялась через некоторый период времени.
Виды ОСРВ.
Динамические свойства программ реального времени принято характеризовать тремя определениями:

Программы «жёсткого» (hard)

И мягкого (soft)

Интенсивного (условного) реального времени.
Жёсткое реальное время предусматривает наличие гарантированного времени отклика системы на
конкретное событие. Абсолютная величина времени значения не имеет.
Мягкое реальное время. Отказ системы допустим в одном проценте случаев. Операция может быть
выполнена повторно. Используется в банковских системах, в системах бронирования.
Интенсивное реальное время. Является скорее психологической нежели технической характеристикой.
Встроенные системы реального времени. Необходимо введение некоторого декларативного срока, до
истечения которого задача должна обязательно выполниться.
Основные требования к ВСРВ:

ОС должна быть многозадачной и допускающей вытеснение.

ОС должна обладать понятием приоритета для потоков.

ОС должна поддерживать предсказуемые механизмы синхронизации.

ОС должна обеспечить механизм наследования приоритетов.

Поведение ОС должно быть известным и предсказуемым.
Классической для клиент ОСРВ является клиент серверная архитектура, на основе микроядра. Однако
для улучшения производительности приложения используется подход на основе тонкого ядра: ядро работает в
фоновом режиме, на нём выполняются задачи, не относящиеся к реальному времени.
Подход на основе наноядра.
50
Наноядро обеспечивает возможность совместно использовать аппаратные ресурсы несколькими ОС.
Так как оно позволяет абстрагировать аппаратные ресурсы и управлять приоритетами ОС, оно обеспечивает
поддержку режима РВ.
Концепция процесса в СРВ
Главная проблема СРВ – планирование задач. Используются процессы с дедлайном. Процесс с
дедлайном должен выполниться пока не наступил дедлайн.
В ОСРВ используется статический и динамический алгоритмы планирования процессов.
При статическом планировании приоритет задаётся каждому процессу.
RMS. Чем чаще задача переходит в состояние готовности, тем выше её приоритет.
DMS. Чем меньше крайний срок задачи – тем выше её приоритет.
Динамическое планирование.
EDF. Наибольший приоритет имеют те задачи, у которых меньше времени до крайнего срока.
LLF. Наибольший приоритет имеют задачи с наименьшим резервным временем.
Каждая рабочая задача характеризуется следующими временными параметрами:

R – release time. Момент времени, когда задача становится готова к выполнению.

D – absolute deadline. Момент времени, к которому задача должна завершить очередную

S – Sturb time. Момент времени, когда задача начала исполняться.
работу.
Управление памятью в ОСРВ
Модель без защиты – системные и пользовательские адресные пространства, не защищённые друг от
друга, используют два сегмента памяти для кода и для данных. При этом от системы не требуется никакого
управления памятью.
Моделью защиты система/пользователь – системное адресное пространство защищено от адресного
пространства пользователя. Системные и пользовательские процессы выполняются в общем ВАП, при этом
требуется защита, обеспечиваемая страничным механизмом защиты.
Модель защиты пользователь/пользователь – к предыдущей модели добавляется защита между
пользовательскими процессами.
Модель защиты виртуальной памяти – каждый процесс выполняется в своей собственной виртуальной
памяти.
В системах лёгкого реального времени возможно динамическое распределение памяти.
Прерывания
Процедуры управления прерываниями:

Программа обработки прерывания (IRS). Программа низкого уровня в ядре с
ограниченными системными вызовами.

Поток обработки прерываний (ISD) – поток уровня приложения, который управляет
прерываниями с доступом ко всем системным вызовам.
51
Часы и таймеры
Для каждого процесса и потока определяются часы процессного времени. На базе этих часов строятся
таймеры, которые измеряют перерасход времени процессом или потоком, позволяя динамически выявлять
программные ошибки или ошибки времени выполнения.
Большинство СРВ оперируют относительно времени.
При синхронизации абсолютное время не используется.
Сетевая ОСРВ QNX Neutrino

Передовая архитектура.

Множество аппаратных платформ.

Многозадачность, многоядерность.

Адаптивное квантование ресурсов ЦПУ в соответствии со стандартом ARINC G53.

Технологическое обеспечение.
Модель процессов QNX обеспечивает значительно большую защиту, чем многие ОС:

Полную защиту памяти между процессами.

Передачу сообщений для единого и управляемого IPC.

Наследование приоритетов на основе чёткой клиент-серверной модели.

Детериенирование диспетчеризации жёсткого реального времени.

Детализированная модель прав доступа для устройств файлов и памяти.

Лимиты памяти файловых дескрипторов, ЦПУ и приоритетов, задаваемых для
ограничений зациклившихся процессов с помощью POSIX.
Адаптивный диспетчер позволяет гарантировать выделение минимальных квот ЦПУ в процентах
процессорного времени, предоставляемых группам потоков, процессов и приложений.
52
Download