- •Операционные системы
- •1. Назначение и функции операционных систем. История развития
- •1.1. Основные функции операционных систем
- •1.2. Эволюция ос
- •1.2.1. Первый период (1945 -1955)
- •1.2.2. Второй период (1955 - 1965)
- •1.2.3. Третий период (1965 – 1980)
- •1.2.4. Четвертый период (1980 - настоящее время)
- •2. Классификация операционных систем
- •2.1. Классификация ос в зависимости от особенностей алгоритмов управления ресурсами
- •2.1.1. Поддержка многозадачности
- •2.1.2 Поддержка многопользовательского режима
- •2.1.3 Вытесняющая и невытесняющая многозадачность
- •2.1.4 Поддержка многонитевости.
- •2.1.5 Наличие механизма многопроцессорной обработки
- •2.2. Классификация ос в зависимости от особенностей аппаратных платформ
- •2.3. Классификация ос по областям использования
- •2.4. Особенности методов построения ос
- •3. Управление процессами
- •3.1. Состояния процессов
- •3.2. Контекст и дескриптор процесса
- •3.3. Алгоритмы планирования процессов
- •3.4. Средства синхронизации и взаимодействия процессов
- •3.4.1. Проблема синхронизации
- •3.4.2 Критическая секция
- •3.4.3 Тупики
- •3.4.4 Нити
- •4. Управление памятью
- •4.1. Типы адресов
- •4.2. Методы распределения памяти без использования дискового пространства
- •4.2.1. Распределение памяти фиксированными разделами
- •4.2.2. Распределение памяти разделами переменной величины
- •4.2.3. Перемещаемые разделы
- •4.3 Методы распределения памяти с использованием дискового пространства
- •4.3.1. Понятие виртуальной памяти
- •4.3.2. Страничное распределение
- •4.3.3. Сегментное распределение
- •4.3.4. Странично-сегментное распределение
- •4.3.5. Свопинг
- •4.4. Иерархия запоминающих устройств. Принцип кэширования данных
- •5. Управление вводом-выводом
- •5.1. Физическая организация устройств ввода-вывода
- •5.2. Организация программного обеспечения ввода-вывода
- •5.2.1. Обработка прерываний
- •5.2.2. Драйверы устройств
- •5.2.3. Независимый от устройств слой операционной системы
- •5.2.4. Пользовательский слой программного обеспечения
- •6. Файловая система
- •6.1. Правила именования и типы файлов
- •6.2. Логическая организация файла
- •6.3. Физическая организация и адрес файла
- •6.4. Права доступа к файлу
- •6.5. Кэширование диска
- •6.6. Общая модель файловой системы
- •6.7. Современные архитектуры файловых систем
- •7. Управление распределенными ресурсами
- •7.1. Базовые примитивы передачи сообщений в распределенных системах
- •7.2. Способы адресации
- •7.3. Блокирующие и неблокирующие примитивы
- •7.4. Буферизуемые и небуферизуемые примитивы
- •7.5. Надежные и ненадежные примитивы
- •8. Современные концепции проектирования операционных систем
- •8.1. Расширяемость
- •8.2. Переносимость
- •8.3. Совместимость
- •8.4. Безопасность
- •9. Варианты построения информационных приложений
- •9.1. Типовые компоненты информационных приложений
- •9.2. Централизованные многотерминальные системы
- •9.3. Файл-серверные приложения
- •9.4. Приложения клиент-сервер
- •9.5. Распределенные вычисления
- •9.6. Офисные системы
- •9.7. Информационные системы на основе Internet/Intranet-технологии
- •10. Концепции windows nt
- •10.1 Структура: nt-executive и защищенные подсистемы
- •10.2. Множественные прикладные среды в Windows nt
- •10.3. Объектно-ориентированный подход в Windows nt
- •10.4. Процессы и нити
- •10.5. Алгоритм планирования процессов и нитей
- •10.6. Сетевые средства Windows nt
- •10.7. Совместимость линейки операционных систем Windows nt с Novell NetWare
- •Оглавление
9.5. Распределенные вычисления
Удаленный доступ к базам данных является частным случаем режима распределенных вычислений, при котором клиент запрашивает выполнение операторов или процедур управления данными (хранимых процедур и триггеров) на удаленном сервере баз данных. Распределенные вычисления представляют собой процедурный подход к реализации распределенных приложений, при этом клиент вызывает удаленное выполнение процедур, запросов и заданий на сервере приложений. Распределенные вычисления появляются в том случае, когда явно выделяется сервер приложений, который обеспечивает прикладную логику обработки данных, что присуще трехзвенным архитектурам клиент-сервер.
Трехзвенная архитектура позволяет еще больше сбалансировать нагрузку на разные узлы и сеть, а также способствует специализации инструментов для разработки приложений. Сбалансированная трехзвенная архитектура устраняет недостатки двухзвенной модели. В этих схемах клиент выделен для выполнения функций и логики представлений PS и PL, имеет программный интерфейс для вызова приложения на среднем уровне. Сервер БД выделен для услуг обработки данных DS и файловых операций FS (без риска использования хранимых процедур). Средний уровень представляет собой сервер приложений, на котором выполняется прикладная логика BL и с которого логика обработки данных DL вызывает операции DS.
Примером такой системы является неоднородная архитектура клиент-сервер на основе ПК в локальной сети NetWare, Unix-сервера приложений c монитором транзакций Tuxedo на Sun SPARCserver 20 MP и сервера баз данных Oracle7 в среде Solaris на Sun SPARCserver 1000.
Централизация логики приложения упрощает администрирование и сопровождение, а также обеспечивает доступ к ресурсам по именам. Четко разделяются платформы и инструменты для реализации интерфейса и прикладной логики, что позволяет с наибольшей отдачей реализовать их специалистам узкого профиля. И, наконец, изменения прикладной логики не затрагивают интерфейса, и наоборот. Но поскольку границы между компонентами PL, BL и DL размыты, прикладная логика может появиться на всех трех звеньях. Сервер приложений с помощью монитора транзакций обеспечивает интерфейс с клиентами и другими серверами, может управлять транзакциями и гарантировать целостность распределенной БД путем двухфазной фиксации в неоднородной среде. Средства удаленного вызова процедур наиболее соответствуют идее распределенных вычислений, они обеспечивают вызов из любого узла сети прикладной процедуры, расположенной на другом узле, передачу параметров, удаленную обработку и возврат результатов. Сервер приложений может также управлять асинхронными очередями сообщений, которые обеспечивают надежное завершение транзакций. С ростом систем клиент-сервер необходимость трех звеньев становится более очевидной. Продукты для трехзвенной архитектуры являются относительно новыми. Несколько производителей продают мониторы транзакций для построения таких систем: Tuxedo (BEA System), Encina TP monitor (IBM), TopEnd (NCR) и ACMS TP monitor (DEC). Эти инструменты в основном ориентированы на среду Unix, однако прикладные серверы можно строить на MS Windows NT с использованием вызова удаленных процедур RPC и протокола Named Pipes для организации связи клиентов с сервером приложений.
На практике в локальной сети могут использоваться смешанные архитектуры двухзвенные и трехзвенные с одним и тем же сервером БД. С учетом глобальных связей архитектура может иметь больше трех звеньев. Сейчас появляются новые инструментальные средства для гибкой сегментации приложений клиент-сервер по различным узлам сети.