- •Операционные системы
- •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. Варианты построения информационных приложений
Групповые и корпоративные информационные системы и соответствующие приложения могут строиться различными способами:
– многотерминальные централизованные вычислительные системы;
– системы на основе локальной сети ПК (файл-серверные приложения);
– системы с архитектурой клиент-сервер;
– системы с распределенными вычислениями;
– офисные системы;
– системы на основе Internet/Intranet-технологий.
9.1. Типовые компоненты информационных приложений
Выделим в информационном приложении типовые функциональные компоненты, достаточные для формирования любого приложения на основе баз данных.
PS (Presentation Services) – средства представления.
Обеспечиваются устройствами, принимающими ввод от пользователя и отображающими то, что сообщает ему компонент логики представления PL, а также реализуют соответствующую программную поддержку. Данная компонента может быть текстовым терминалом или Х-терминалом, а также персональным компьютером или рабочей станцией в режиме программной эмуляции терминала или Х-терминала.
PL (Presentation Logic) – логика представления.
Управляет взаимодействием между пользователем и ЭВМ. Обрабатывает действия пользователя по выбору альтернативы меню, по нажатию кнопки или при выборе элемента из списка.
BL (Business or Application Logic) – прикладная логика.
Набор правил для принятия решений, вычислений и операций, которые должно выполнить приложение.
DL (Data Logic) – логика управления данными.
Операции с базой данных (SQL-операторы SELECT, UPDATE и INSERT), которые нужно выполнить для реализации прикладной логики управления данными.
DS (Data Services) – операции с базой данных.
Действия СУБД, вызываемые для выполнения логики управления данными, такие как манипулирование данными, определения данных, фиксация или откат транзакций и т. п. На этом уровне также компилируются SQL-предложения.
FS (File Services) – файловые операции.
Дисковые операции чтения и записи данных для СУБД и других компонент. Обычно являются функциями ОС.
9.2. Централизованные многотерминальные системы
В централизованной системе, характерной для Unix, терминал реализует лишь функции представления данных PS, тогда как остальные функции обеспечивает центральный узел. Центр должен реагировать на каждый запрос пользователя (PL), выполнять логику приложения (BL, DL) и извлекать данные из БД (DS, FS). Имеются две серьезные проблемы для централизованной схемы: трудно обеспечить графический интерфейс; каждый дополнительный пользователь и приложение вносят существенную нагрузку на сервер, теряется масштабируемость.
9.3. Файл-серверные приложения
В отличии от централизованной системы архитектура «файл-сервер» не имеет сетевого разделения компонентов диалога PS и PL, использует ПК для функций отображения, что облегчает построение графического интерфейса. Файл-сервер только извлекает данные из файлов, так что дополнительные пользователи и приложения добавляют лишь незначительную нагрузку на ЦП. Каждый новый клиент добавляет вычислительную мощность к сети.
9.4. Приложения клиент-сервер
Архитектура клиент-сервер предназначена для разрешения проблем файл-серверных приложений путем разделения компонентов приложения и размещение их там, где они будут функционировать более эффективно. Особенностью архитектуры клиент-сервер является использование выделенных серверов баз данных, понимающих запросы на языке структурированных запросов SQL и выполняющих поиск, сортировку и агрегирование информации на месте без излишней перекачки данных на рабочие станции.
Другая отличительная черта серверов БД – это наличие справочника данных, в котором записаны структура БД, ограничения целостности данных, форматы и даже серверные процедуры обработки данных по вызову или по событиям в программе. Объектами разработки в таких приложениях помимо диалога и логики обработки являются, прежде всего, реляционная модель данных и связанный с ней набор SQL-операторов для типовых запросов для этой БД.
Большинство конфигураций клиент-сервер использует двухзвенную модель, состоящую из клиента, который обращается к услугам сервера.
Для эффективной реализации такой схемы часто применяют неоднородную сеть. Предполагается, что диалоговые компоненты PS и PL размещаются на клиенте, что позволяет обеспечить графический интерфейс. Типовое определение архитектуры клиент-сервер – приложение на клиенте, СУБД на сервере использует эту схему.
Двухзвенные схемы приводят к некоторым проблемам в сложных приложениях со множеством пользователей, с запутанной логикой, с неоднородными БД и разнородными входами в БД:
– необходимость администрирования приложений для большого числа клиентов при отсутствии унификации в конфигурациях клиентов и средств управления изменениями;
– чрезмерное использование хранимых процедур для реализации прикладной логики снижает масштабируемость сервера и не способствует переносимости приложений;
– возрастает время реакции из-за ожидания завершения пакетного задания на сервере и влияния таких заданий на диалоговых пользователей;
– обеспечение целостности распределенной транзакции в неоднородной распределенной БД.
Ряд перечисленных проблем может быть решен при использовании режима распределенных вычислений.