- •Оглавление
- •Классификация операционных систем
- •2. Структура, состав и назначение подсистем типовой системы программирования (Visual Studio или Delphi).
- •4. Взаимодействие программ — интеграция приложени: технология com — основные принципы, типы и правила построения программных интерфейсов, достоинства и недостатки.
- •5. Объект, сервер, клиент. Схема взаимодействия клиента и объекта com. Объект
- •Интерфейс
- •Интерфейс iUnknown
- •Библиотека сом
- •Создание объекта
- •6. Технологи обмена сообщениями: проблемы интеграции приложений, основные принципы, шаблоны, достоинства и недостатки.
- •7. Принципы построения корпоративных информационных систем (кис), их типы и проблемы. Основные проблемы реализации архивных хранилищ. К основным принципам построения кис относятся:
- •Корпоративные информационные системы можно также разделить на два класса: финансово-управленческие и производственные.
- •Также различают виды кис, такие как заказные (уникальные) и тиражируемые кис.
- •Основные проблемы реализации архивных хранилищ
- •8. Синхронизация: семафоры, мьютексы, барьеры, взаимоблокировки — реентерабельность.
- •Семафоры
- •Мьютексы
- •Барьеры
- •Взаимоблокировки
- •Реентерабельность
- •Синхронизация при низком irql
- •Механизмы синхронизации режима ядра
- •Объекты диспетчера ядра
- •Условия освобождения различных синхронизирующих объектов
- •10. Основные системные механизмы Windows и их назначение.
- •Диспетчеризация ловушек
- •Диспетчер объектов
- •Синхронизация
- •Системные рабочие потоки
- •Глобальные флаги Windows
- •Трассировка событий ядра
- •Объекты исполнительной системы
- •Структура объектов
- •Методы объекта
- •Описатели объектов и таблица описателей, принадлежащая процессу
- •Внутренние объекты, объекты исполнительной системы (executive objects)
- •Хранение объектов в памяти
- •Имена объектов
- •Стандартные каталоги объектов
- •Пространство имен сеанса
- •Диспетчеризация 32-разрядных системных сервисов
- •Диспетчеризация 64-разрядных системных сервисов
- •Диспетчеризация системных сервисов режима ядра
- •Прерывания dpc или диспетчеризации
- •Прерывания apc
- •Необработанные исключения
- •Трассировка событий ядра
- •17. Реестр Windows: назначение, организация, ключи, ульи, редактирование, достоинства и недостатки. Реестр
- •Логическая структура реестра
- •Структура реестра
- •Хранение реестра
- •18. Статическое и динамическое связывание, dll-библиотеки — назначение, структура. Статические и динамические библиотеки.
- •Основные этапы компьютерного моделирования
- •Виды алгоритмов
- •Основные этапы полного построения алгоритма.
- •Правильность алгоритма.
- •Реализация алгоритма.
- •Принципы эффективных алгоритмов.
- •Правила оформления текстов программ.
- •Архитектура программного обеспечения в качестве классического жизненного цикла системы — недостатки классического цикла.
- •Основные параметры при разработке архитектуры.
- •Примеры технологии проектирования пс (стратегии проектирования: водопадная, инкрементная, эволюционная, спиральная стратегии)
- •Понятие надежности по
- •Отказы, сбои, восстановление
- •Основные задачи технической диагностики
- •Показатели качества и надежности программных средств (iso 9126:1991)
- •Тестирование корректности определения и использования данных на маршрутах исполнения программы.
- •Основные типы
- •Средства разработки
- •Загрузка/выгрузка
- •Организация и точки входа
- •Диспетчер PnP
- •Структуры драйверов в ос
- •23. Администрирование программного обеспечения пк: принципы, задачи, документирование, регламентные работы — профилактика. Администрирование программного обеспечения пк
- •Принципы
- •Документирование
- •Регламентные работы — профилактика.
- •Средства разработки .Net-приложений
- •Корпоративные .Net-серверы и их краткие характеристики
- •Сервер Application Center
- •Реализация Web-ферм, кластеров
- •Exchange Server и его основные функции
Загрузка/выгрузка
Кроме проблемы разработки новых драйверов существует также проблема включения драйвера в состав модулей работающей ОС, то есть динамической загрузки-выгрузки драйвера. Так как набор потенциально поддерживаемых данной ОС периферийных устройств всегда существенно шире набора устройств, которыми ОС должна управлять при установке на конкретной машине, то ценным свойством ОС является возможность динамически загружать в оперативную память требуемый драйвер (без останова ОС) и выгружать его после того, как потребность в поддержке устройства миновала, что может существенно сэкономить системную область памяти.
Альтернативой динамической загрузке драйверов при изменении текущей конфигурации внешних устройств компьютера является повторная компиляция кода ядра с требуемым набором драйверов, что создает между всеми компонентами ядра статические связи вместо динамических. Например, таким образом решалась данная проблема в ранних версиях операционной системы UNIX. При статических связях между ядром и драйверами структура ОС упрощается, но этот подход требует наличия исходных кодов модулей операционной системы, доступность которых скорее является исключением (для некоммерческих версий UNIX), а не правилом. Кроме того, в этом варианте работающую предыдущую версию операционной системы необходимо остановить и заменить новой, а перерывы в работе ОС в некоторых применениях могут и не допускаться. Поддержка динамической загрузки драйверов является практически обязательным требованием для современных универсальных операционных систем.
Организация и точки входа
При написании любого драйвера необходимо помнить четыре основных момента:
возможные точки, входа драйвера;
контекст, в котором могут быть вызваны точки входа драйвера;
последовательность обработки типичных запросов;
уровень IRQL, при котором вызывается точка входа, и, следовательно, ограничения на использование некоторых функций ОС каждая (!!!) функция ОС может быть вызвана только при определенных уровнях IRQL (см. описание любой функции в DDK, там всегда указаны эти уровни).
Архитектура драйвера Windows NT использует модель точек входа, в которой Диспетчер Ввода/вывода вызывает специфическую подпрограмму в драйвере, когда требуется, чтобы драйвер выполнил специфическое действие. В каждую точку входа передается определенный набор параметров для драйвера, чтобы дать возможность ему выполнить требуемую функцию.
Базовая структура драйвера состоит из набора точек входа, наличие которых обязательно, плюс некоторое количество точек входа, наличие которых зависит от назначения драйвера.
Диспетчер PnP
Диспетчер PnP работает в тесном взаимодействии с диспетчером ввода-вывода и драйвером шины (bus driver) — одной из разновидностей драйверов устройств. Он управляет выделением аппаратных ресурсов, а также распознает устройства и реагирует на их подключение или отключение. Диспетчер PnP и драйверы шины отвечают за загрузку соответствующего драйвера при обнаружении нового устройства. Если устройство добавляется в систему, в которой нет нужного драйвера устройства, компоненты исполнительной системы, отвечающие за поддержку PnP, вызывают сервисы установки устройств, поддерживаемые диспетчером PnP пользовательского режима.
