Основная образовательная программа высшего профессионального образования Направление подготовки

Вид материалаОсновная образовательная программа

Содержание


Содержание курса
Содержание курса
Содержание курса
Содержание курса
Подобный материал:
1   2   3   4   5   6

СОДЕРЖАНИЕ КУРСА

  1. Принципы построения операционных систем


Операционная система. Определение. Поколения операционных систем. Функции операционных систем. Классификация операционных систем по особенностям алгорифмов управления ресурсами, особенностям аппаратных платформ, особенностям областей использования. Сетевые операционные системы. Распределенные операционные системы. Аппаратная поддержка распределенных операционных систем.

  1. Вычислительный процесс и его реализация с помощью ОС


Определение термина "процесс". Процессы и программы. Состояния процесса. Операции над процессами. Потоки (нити) управления. Сравнительный анализ нитей и процессов. Классы нитей. Реализация пользовательских нитей с помощью библиотеки функций.
  1. Управление вычислительными процессами


Синхронизация параллельных процессов. Проблема критических участков. Анализ подходов к решению проблемы. Алгорифм Деккера. Аппаратная поддержка взаимоисключений: запрещение прерываний, test&set. Синхронизация памяти: membar. Программная реализация взаимоисключений: блокирование (spin lock). Cемафоры: определение, назначение, реализация. Задача взаимодействия писателя и читателя и ее решение с помощью блокировок и семафоров. Мониторы: определение, назначение, реализация. Переменная условия. Решение задачи взаимодействия писателей и читателей. Проблема тупиков. Необходимые условия возникновения тупиков. Алгорифм банкира. Модели для анализа свойств асинхронных процессов. Уровни планирования. Приоритеты. Алгорифмы планирования.
  1. Управление вводом-выводом, реальной памятью


Иерархия памяти. Управление памятью. Привязка команд и данных к адресам: времена компиляции, загрузки, исполнения. Именующая функция. Редактор связей. Соглашения о связях. Функция памяти. Способы реализации отображения. Аппаратная поддержка. Управление файловой системой. Управление устройствами ввода/вывода.
  1. Управление виртуальной памятью


Стратегии размещения, подкачек, вытеснения.
  1. Стандартные сервисные программы


Использование стандартных сервисных программ; профилактика устойчивой работы дисков.
  1. Машинно-зависимые свойства ОС


Прерывания, планирование процессов, обслуживание ввода-вывода, управление реальной и виртуальной памятью.
  1. Машинно-независимые свойства ОС


Работа с файлами, управление заданиями, распределение ресурсов, защита.
  1. Распределенные системы


Синхронизация, распределение процессов, распределенная разделяемая память. Проблемы синхронизации в распределенных системах. Логические часы. Алгорифм Лампорта. Физические часы. Алгорифм Беркли. Взаимное исключение в распределенных системах. Алгорифмы: централизованный, распределенный, маркерного кольца. Алгорифм избрания координатора. Атомические транзакции. Реализация транзакций. Организация распределения процессоров. Модели: рабочих станций и процессорного пула. Алгорифмы распределения процессоров и планирования в распределенных системах. Распределенная разделяемая память. Системы с разделяемой памятью.
  1. Способы построения ОС


Типы архитектур операционных систем. Ядро операционной системы. Функции ядра. Микроядерные ОС. Экзоядерные ОС.
  1. Обзор современных ОС и операционных оболочек


Доминирование операционных систем Unix и Windows. Распределенная ОС Ameoba.

Операционная система Unix. История Unix. Версии Unix. Многонитевость в некоторых версиях Unix. Семейства нитей POSIX и Microsoft. Состояния процесса в ОС Unix. Системные функции управления процессами. Взаимодействие между процессами в Unix. Сигналы. Классы сигналов. Работа с сигналами. Принципы планирования процессов в Unix. Приоритеты. Редактор связей ld в Unix. Типы порождаемых модулей. Модели связывания.
  1. Управления памятью в Unix


Свопинг и подкачка по запросу. Система управления вводом-выводом в Unix. Системные функции ввода/вывода. Файловая система в Unix. Оболочки Unix. Программное окружение Unix.
  1. Сохранность и защита программных систем


Безопасность информационных технологий. Три основные задачи по защите информационных технологий. Иерархия классов безопасных систем. Криптология, криптография, криптоанализ.
  1. Интерфейсы и основные стандарты в области системного программного обеспечения.



Б.3.10. Базы данных

СОДЕРЖАНИЕ КУРСА

  1. Введение


Роль и место СУБД в прикладных системах. Основные функции СУБД. Взаимодействие СУБД с другими компонентами программного обеспечения. История развития СУБД.
  1. Модели данных и языки запросов


Неформальное определение модели данных и ранние модели данных. Значение высокоуровневых языков запросов. Реляционная модель данных: определение, основные операции реляционной алгебры, эквивалентность языков запросов. Теория нормализации. Пост-реляционные модели данных: объектные модели данных, объектно-реляционные модели. Пространственные, временные, многомерные данные. Слабоструктурированная модель данных. Язык запросов SQL в реляционных и пост-реляционных системах. Объектные и дедуктивные языки запросов. Языки запросов для слабоструктурированных данных.
  1. Теория транзакций


Определение транзакций и их роль в поддержке согласованности и защите от отказов. Критерии согласованности. Теория сериализуемости. Модель управления транзакциями: планировщики и протоколы. Двухфазный протокол блокирования и его корректность. Обнаружение тупиков. Многоуровневое блокирование и недвухфазные протоколы блокирования. Неблокирующие протоколы управления транзакциями. Теория ведения журналов и восстановления после отказов. Распределенные системы: двухфазный протокол завершения. Раскопированные данные: протоколы голосования.
  1. Архитектуры СУБД и приложений


Однопользовательские и многопользовательские архитектуры СУБД. Функции СУБД в архитектуре клиент-сервер. Роль и функции СУБД в многоуровневых архитектурах с серверами приложений.
  1. Методы реализации ядра СУБД


Функции и состав ядра СУБД. Структуры хранения для различных типов и моделей данных. Методы индексирования. Алгоритмы выполнения алгебраических операций в реляционной и пост-реляционных системах. Методы оптимизации запросов. Управление оперативной памятью: буферизация. Методы ведения журналов, алгоритмы откатов транзакций и восстановления после отказов. Параллельные серверы баз данных. Распределенные системы: выполнение запросов, репликация и фрагментация данных, особенности выполнения транзакций.
  1. Распределенные и неоднородные системы


Роль неоднородных систем. Уровни неоднородности: архитектуры вычислительных систем, моделей данных, семантическая неоднородность. Интеграция неоднородных моделей данных. Устранение семантических неоднородностей. Неоднородные автономные системы. Методы поддержки согласованности в неоднородных системах. СУБД в распределенных объектных системах. Мониторы транзакций. Серверы приложений. Доступ к базам данных из Интернет.
  1. Моделирование и проектирование приложений


Методологии проектирования прикладных систем, использующих базы данных и жизненный цикл баз данных. Проектирование баз данных с использованием модели “сущность-связь”. Объектные методологии проектирования приложений. Программные средства автоматизации проектирования. Выбор СУБД для реализации прикладной системы.
  1. Разработка приложений


Техника использования языка запросов SQL. Работа с базами данных в обычных языках программирования. Универсальные интерфейсы доступа к базам данных: ODBC, JDBC и другие. Методы создания высокоэффективных приложений.
  1. Администрирование баз данных


Планирование емкости и мощности системы. Управление доступом к СУБД: пользователи и полномочия. Управление отказоустойчивостью (создание резервных копий, процедуры восстановления). Сопровождение баз данных.
  1. Физическое проектирование и настройка производительности


Проектирование физической схемы базы данных. Выбор цели оптимизации системы. Анализ производительности и выявление узких мест. Настройка сервера СУБД. Анализ планов выполнения запросов и их настройка. Управление оптимизатором запросов.


Б.3.11. Технология разработки программного обеспечения

СОДЕРЖАНИЕ КУРСА

  1. Понятие технологии программирования


Особенности промышленного программирования, "программирование для себя" и "программирование для хозяина".

Жизненный цикл программы
  1. Постановка задачи, оценка осуществимости


Как оценить сложность задачи? Реальность ее решения в заданные сроки при заданных финансовых ограничениях.
  1. Планирование


Сетевой график, диаграмма Гантта, треугольник – сроки, работы, ресурсы.

Управление

Регулярные проверки соответствия графику, меры преодоления отставаний. "Добавлять людей в горящий коллектив – все равно, что заливать пожар керосином"
  1. Тестирование, обеспечение качества


Оценка качества – существенно более широкая задача, чем тестирование.
  1. Оценка качества трансляторов как пример количественно обоснованной оценки


Методика Уичмана.
  1. Групповая разработка, управление версиями


Единый репозиторий проекта. Системы SourceSafe, PVCS.

Организация коллектива разработчиков


Матричный метод, метод главного хирурга, кольцевые схемы фирмы Microsoft.
  1. Документирование


ГОСТ ЕСПД и другие стандарты.

Сопровождение: Исправление ошибок, внесение дополнительной функциональности, повышение эффективности.
  1. Управление качеством


Стандарты ISO 9000, CMM, SPICE.
  1. Структурное проектирование


Иерархическая декомпозиция, базовые структурные конструкции, неэквивалентность структурного проектирования и программирования без goto.
  1. CASE-средства


Примеры инструментальных технологических средств.
  1. Реинжиниринг программных систем


Перевод устаревших программ на новые языки и платформы, возвратное проектирование – извлечение знаний из текста программы.


Б.3.12. Теория вычислительных процессов и структур

СОДЕРЖАНИЕ КУРСА

  1. Теория схем программ


Мотивация, историческая справка. Стандартные схемы: базис, операторы, граф.

Интерпретация схемы, программа. Исполнение программы: допустимые цепочки, значение программы.

Эквивалентность, тотальность, пустота, свобода. Корректные отношения эквивалентности.

Свободные интерпретации. Теоремы Лакхэма-Парка-Патерсона.

Двоичный двухголовочный автомат (ДДА): определение и свойства. Неразрешимость проблемы пустоты ДДА.

Моделирование ДДА стандартной схемой. Неразрешимость проблем пустоты и эквивалентности стандартных схем.

Частичная разрешимость проблемы тотальности.

Задача Поста и ее частичнаня разрешимость. Обратная задача Поста и ее неразрешимость.

Сведение проблемы свободы схемы к задаче пустоты системы Поста. Неразрешимость проблемы свободы.

Логико-термальная (ЛТ) эквивалентность стандартных схем: мотивация, определение. Корректность ЛТ-эквивалентности.

Разрешимость ЛТ-эквивалентности.

Полная система ЛТ-эквивалентных преобразований.
  1. Семантическая теория программ


Логическая спецификация программ.

Анализ корректности последовательных программ.

Аксиоматическая семантика последовательных программ.

Автоматизация верификации программ.

Доказательство корректности программ в проблемных областях.

Верификация недетерминированных и параллельных программ.

Языки спецификаций. Языки, специализированные по средствам (табличные, эквациональные, функциональные, диаграммные и сетевые, модуляризации и структуризаоснованные на крупных операциях). Языки, специализированные по области применения (управление, структуры данных, языки и трансляторы, базы данных и знаний, пакеты прикладных программы). Универсальные и расширяемые языки.

Денотационная, операционная и аксиоматическая семантики. Теория неподвижных точек. Семантика состояний. Абстрактные типы данных и сигнатурные графы.

Формальные методы спецификации программ. VDM (венский метод построения программ). Логико-алгебраические спецификации. Машины абстрактных состояний.
  1. Модели вычислительных процессов


Модели вычислительных процессов: Модель графов распределения ресурсов. Сети Петри. Вычислительные схемы.

Взаимодействие процессов, асинхронные процессы: Синхронизация параллельных процессов. Проблема критических участков. Анализ подходов к решению проблемы. Алгорифм Деккера. Программная реализация взаимоисключений: блокирование (spin lock).

Cемафоры и мониторы: определение, назначение, реализация.

Протоколы и интерфейсы: открытость разработки стандартов; уровневые протоколы; драйверы; средства оконного интерфейса.

Функциональное программирование. Лямбда-исчисление и язык Лисп. Нормальные алгорифмы Маркова и язык Рефал. Комбинаторная логика и язык Миранда.

Логическое программирование. SLD-резолюция и язык Пролог.
  1. Сети Петри


Принципы построения: неформальное и формальное определение и способы представления сетей
Петри и описание их подклассов.

Алгоритмы поведения: дерево достижимости и анализ структурной ограниченности, сохраняемости,
повторяемости сетей Петри; избыточные сети Петри и инварианты сетей Петри, алгоритм Тудика.

Способы реализации.

Области применения: моделирование систем на основе сетей Петри и расширения сетей Петри.

Принципы и способы технической реализации моделей процессов и структур.


Разработчики:


Санкт-Петербургский государственный

университет

Декан

математико-механического

факультета



Г.А. Леонов


Санкт-Петербургский государственный

университет



Заведующий кафедрой

Информатики



Н.К. Косовский


Санкт-Петербургский государственный

университет



Заведующий кафедрой

Системного программирования



А.Н. Терехов


Санкт-Петербургский государственный

университет



Заведующий кафедрой

Параллельных алгоритмов



Ю.К. Демьянович


Санкт-Петербургский государственный

университет


Заведующий лабораторией Исследования операций

НИИММ им. В.И. Смирнова



Б.А. Новиков


Санкт-Петербургский государственный

университет



Доцент кафедры

Информатики



В.А. Костин



Эксперты:


Санкт-Петербургский

Институт Информатики

РАН



Директор СПИРАН



Р.М. Юсупов


ЗАО

“МОТОРОЛА”


Ведущий научный

сотрудник



В.П. Котляров

ООО

Санкт-Петербургский

“Центр разработок ЕМС”


Директор

по разработке



В.М. Нестеров