Обсуждено на заседании кафедры ПВС

advertisement
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И
АВТОМАТИЗИРОВАННЫХ СИСТЕМ
«УТВЕРЖДАЮ»
проректор СГТУ
по учебной работе
проф. Лобачева Г.В.
__________________
ПРОГРАММА
междисциплинарного вступительного экзамена
для поступающих в магистратуру
по направлению 230100.68
«ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
(по кафедре «Программное обеспечение вычислительной
техники и автоматизированных систем»)
Программа обсуждена на заседании кафедры
9 февраля 2010 г. протокол № 25
Зав.каф. ПВС______________ Байбурин В.Б.
Программа утверждена на заседании
УМКС по направлению
26 января 2010 г. протокол № 3
Председатель УМКС _____________ Байбурин В.Б.
Саратов 2010
Общие вопросы информатики и вычислительной техники
1.
Понятие архитектуры вычислительных систем (ВС). Классификация ВС. Принципы
организации CISC и RISC архитектур.
2.
Многопроцессорные системы. Симметричная и асимметричная многопроцессорность.
Методы организации памяти и обработки информации в таких системах.
3.
Методы организации сетей ЭВМ. Основные принципы их функционирования.
Классификация сетей по масштабу и топологии. Понятие сетевого протокола.
Семиуровневая модель OSI/ISO. Способы маршрутизации сообщений в сетях ЭВМ. Сетевая
архитектура TCP/IP: основные принципы организации и функционирования.
Операционные системы
4.
Основные средства аппаратной поддержки функций ОС: система прерываний, защита
памяти, механизм преобразования адресов в системах виртуальной памяти, управление
периферийными устройствами.
5.
Стратегии управления оперативной памятью.
Виртуальная память. Статическая и
динамическая сборка.
6.
Распределение и использование ресурсов вычислительной системы и управление ими.
Основные подходы и алгоритмы планирования. Системы реального и разделенного
времени.
7.
Взаимодействие процессов. Разделяемая память, средства синхронизации. Очереди
сообщений и другие средства обмена данными.
8.
Управление доступом к данным. Файловые системы (основные типы, характеристики).
Системы программирования (СП)
9.
Языки программирования. Концепции процедурно-ориентированного, объектноориентированного, логического и функционального программирования.
Раннее
(статическое) и позднее (динамическое) связывание, статическая и динамическая типизация.
10. Понятие о методах трансляции. Лексический, синтаксический, семантический анализ.
Основные алгоритмы генерации объектного кода. Машинно-ориентированные языки
(ассемблеры), области применения, мнемоники, метки (символы). Макросредства,
макровызовы, языки макроопределений, условная макрогенерация, принципы реализации.
Системы программирования, типовые компоненты СП: языки, трансляторы, редакторы
связей, отладчики, текстовые редакторы.
11. Принципы
модульного, компонентного, объектно-ориентированного проектирования,
шаблоны проектирования. Моделирование программных систем, язык UML. Современные
подходы к автоматическому синтезу программ.
Методы хранения, организация и доступ к данным
12. Концепция типа и моделей данных. Абстрактные типы данных. Объекты (основные
свойства и отличительные черты). Иерархическая, сетевая, реляционная алгебра отношений.
Основные структуры данных, алгоритмы обработки и поиска. Организация физического
уровня баз данных. Методы индексирования и сжатия данных.
13. Понятие транзакции. Понятие целостности (consistency) данных.
14. Реляционная модель. Нормальные формы. Язык SQL. Средства управления и изменения
схемы базы данных, определения ограничений целостности.
15. Язык XML. Структурная модель документа (DTD). Адресация содержания XMLдокументов согласно спецификации Xlink/Xpointer/XPath.
Математическая логика и теория алгоритмов
16. Логика высказываний. Основные тождества логики высказываний. Приведение формулы к
СДНФ и СКНФ. Секвенциальное исчисление высказываний, теорема о замене. Теорема о
существовании КНФ, теорема о полноте исчисления секвенций.
17. Теория множеств. Основные тождества теории множеств. Теорема об эквивалентностях и
разбиениях. Теорема Кантора-Бернштейна, теорема Кантора. Счётность множества слов в
счётном алфавите. Несчётность множества вещественных чисел. Равномощность множества
вещественных чисел и множества всех подмножеств натуральных чисел. Основные
свойства булевых алгебр. Теорема Стоуна для конечных булевых алгебр.
18. Логика предикатов и теория моделей. Семантическая эквивалентность формул, основные
тождества логики предикатов. Секвенциальное исчисление предикатов, теорема о
корректности. Теорема о замене. Приведение формулы к предваренной нормальной форме.
Теорема о существовании модели. Теорема Гёделя о полноте и теорема компактности
Мальцева. Теоремы Ливенгейма-Скулема. Аксиоматизируемые классы, конечно
аксиоматизируемые классы. Характеризация классов, замкнутых относительно подмоделей
и расширений.
19. Теория вычислимости. Примитивно-рекурсивные, общерекурсивные и частичнорекурсивные функции. Машины Тьюринга, теорема о правильной вычислимости частичнорекурсивных функций. Кодировка машин Тьюринга. Теорема о нормальной форме Клини.
Эквивалентность классов вычислимых функций. Универсальные рекурсивные функции.
Клиниевская нумерация, теорема о неподвижной точке. Теорема Райса. Теорема об
эквивалентных определениях рекурсивно-перечислимых множеств. Теорема Поста. Теорема
о проекции, теорема о графике. Представимость рекурсивных функций в арифметике Пеано.
Теорема Гёделя о неполноте. Теоремы о неразрешимости логики предикатов и арифметики.
Существование
рекурсивно-перечислимого,
но
не
рекурсивного
множества,
неразрешимость проблемы остановки программы.
Дискретный анализ
20. Полнота и замкнутость систем булевых функций. Основные замкнутые классы. Теорема
Поста о полноте. Сложность реализации булевых функций в классе схем из
функциональных элементов. Теорема Шеннона о сложности реализации булевых функций в
классе схем из функциональных элементов.
21. Оценки хроматического числа графов. Раскраска графа. Теорема Брукса. Теорема Визинга.
Независимые множества и покрытия в графах. Теорема о числе паросочетаний и числе
реберного покрытия. Паросочетания в двудольных графах, теоремы Холла и Кенига.
22. Формула
включений
и
исключений.
Производящие
функции,
возвратные
последовательности и линейные рекуррентные соотношения; общее решение линейного
рекуррентного соотношения.
Методы оптимизации и принятия решений
23. Необходимые условия оптимальности
для задач нелинейного и выпуклого
программирования. Теорема Куна–Таккера (локальная форма). Функция
Лагранжа.
Понятие седловой точки. Теорема Куна–Таккера (нелокальная форма).
24. Задачи линейного программирования (ЛП). Эквивалентность понятий базисного
допустимого решения и вершины множества допустимых решений. Критерий
разрешимости задачи ЛП. Симплекс-метод. Двойственные задачи ЛП. Первая и вторая
теоремы двойственности.
25. Задача коммивояжера. Нижние оценки целевой функции. Метод ветвей и границ.
Алгоритм с гарантированной оценкой точности 2 для метрического случая.
26. Матричные игры. Определение Седловой точки. Необходимые и достаточные условия
равенства верхней и нижней цен игры в чистых стратегиях. Теорема фон–Неймана.
Теория информации
27. Циклические коды. Определение циклического кода. Теорема о необходимом и
достаточном условии существования циклического кода с порождающим многочленом g(x).
Кодирование и декодирование циклических кодов. Примеры циклических кодов: коды
Хэмминга, коды Боуза-Чоудхури-Хоквингема (БЧХ-коды).
28. Разделимые и префиксные коды. Стоимость кодирования. Неравенство КрафтаМакмиллана. Оптимальное кодирование. Метод Хаффмена. Энтропия. Метод Шеннона для
бернуллиевских источников. Теорема Шеннона для бернуллиевских источников. Критерий
разделимости побуквенного кодирования. Теоремы Маркова.
Организация ЭВМ, комплексов и систем
Традиционная архитектура фон Неймана. Основные архитектурные принципы построения
компьютера. Компьютер фон Неймана. Узкие места компьютера фон Неймана и его
усовершенствования.
30. Подсистема памяти современного микропроцессора. Основной принцип построения
иерархической памяти. Типичная схема иерархии памяти. Виртуальная память.
31. Влияние параметров иерархии памяти на время исполнения программы. Рекомендации для
написания эффективных программ с учетом параметров иерархической памяти.
32. Техника конвейеризации.
Командный конвейер. Примеры командного конвейера.
Количество ступеней. Причины приостановки конвейера и техника их преодоления.
33. Архитектуры с параллелизмом на уровне команд. Сравнение способов выявления
параллелизма в суперскалярных и VLIW-архитектурах. Примеры архитектур.
34. Архитектура
суперскалярных
процессоров.
Базисные
принципы
организации
суперскаляров. Основные блоки суперскалярных процессоров. Причины, ограничивающие
эффективность суперскаляров. Пути их устранения. Примеры процессоров.
35. Архитектура процессоров с явным параллелизмом на уровне команд (EPIC). Базисные
принципы организации. Itanium – пример EPIC/VLIW-архитектуры. Предикатное
выполнение команд. Аппаратная поддержка программной конвейеризации. Спекуляция по
данным и управлению. Регистровый стек.
36. Способы реализации многопоточности в современных микропроцессорах. Примеры
многопоточных микропроцессоров.
Основы параллельного программирования
37. Определение процесса. Два главных типа взаимодействия параллельных процессов.
38. Модель параллельно-последовательного программирования на системах с распределенной
памятью и две её подмодели. Характеристика модели. Пример языка, поддерживающего
данную модель.
39. Модель параллельного программирования на системах с общей памятью. Характеристика
модели. Пример языка, поддерживающего данную модель.
40. Сеть Петри (определение). Графическое изображение сети Петри. Два основных свойства
сети Петри. Правила срабатывания переходов.
41. Определение взаимной блокировки (дидлока) двух и более процессов. Необходимые
условия возникновения дидлока. Два подхода в борьбе с дидлоками.
42. Задача взаимного исключения. Понятие критического интервала, разделяемого и
неразделяемого ресурса.
43. Семафоры. Операции над семафорами (семантика). Привести пример решения задачи
взаимного исключения с помощью семафоров при доступе к общему ресурсу для двух и
более процессов.
44. Мониторы. Свойства. Взаимное исключение, условные переменные. Отличие мониторов от
″классов″ в языках последовательного программирования, например, С++.
Дискретный анализ
45. Формула
включений
и
исключений.
Производящие
функции,
возвратные
последовательности и линейные рекуррентные соотношения; общее решение линейного
рекуррентного соотношения.
46. Полнота и замкнутость систем булевых функций. Основные замкнутые классы. Теорема
Поста. Сложность реализации булевых функций в классе схем из функциональных
элементов. Теорема Шеннона о сложности реализации булевых функций в классе схем из
функциональных элементов.
47. Число связности графа. Плоские и планарные графы. Формула Эйлера. Правильная
вершинная раскраска графа.
48. Независимые множества и покрытия в графах. Теорема о числе паросочетания и числе
реберного покрытия. Паросочетания в двудольных графах. Теоремы Холла, Кенига и
Фробениуса.
49. Конечные автоматы. Теоремы синтеза и анализа конечных автоматов.
29.
Элементы вычислительной математики
50. Итерационные методы решения линейных алгебраических систем большой размерности.
51. Численные методы решения обыкновенных дифференциальных уравнений.
52. Численное интегрирование.
53. Разностные схемы. Устойчивость разностных схем.
54. Дискретное преобразование Фурье.
Теория принятия решений
55. Задача коммивояжера. Нижние оценки целевой функции. Метод ветвей и границ. Алгоритм
с гарантированной оценкой точности 2 для метрического случая.
56. Задача календарного планирования. Критические работы, пути и критическое время
проекта. Т-поздние расписания для задачи со складируемыми ресурсами. Алгоритм
вычисления Т-поздних расписаний.
57. Матричные игры. Определение Седловой точки. Необходимые и достаточные условия
равенства верхней и нижней цен игры в чистых стратегиях. Теорема Фон–Неймана.
Методы оптимизации
58. Необходимые условия оптимальности
для задач нелинейного и выпуклого
программирования. Понятие седловой точки.
59. Задачи линейного программирования (ЛП). Эквивалентность понятий базисного
допустимого решения и вершины множества допустимых решений. Критерий
разрешимости задачи ЛП. Симплекс-метод и его лексикографический вариант. Метод
искусственного базиса. Двойственные задачи ЛП. Первая и вторая теоремы двойственности.
ЛИТЕРАТУРА
О С Н О В Н А Я.
1. Орлов С., Цилькер Б. Организация ЭВМ и систем. - СПб.: Питер, 2007. – 672 с.
2. Малышкин В.Э., Корнеев В.Д. Параллельное программирование мультикомпьютеров. –
Новосибирск: Изд-во НГТУ, 2006.
3. Таненбаум Э. Архитектура компьютера. – СПб: Питер, 2006.
4. Таненбаум Э. Компьютерные сети. – СПб: Питер, 2007.
5. Таненбаум Э. Современные операционные системы. - СПб: Питер, 2007.
6. Иртегов Д. Введение в операционные системы. – СПб: БХВ-Петербург, 2008.
7. Жмакин А.П. Архитектура ЭВМ. – СПб.: БХВ-Петербург, 2006.- 320с.
8. Степанов А.Н. Архитектура вычислительных систем и компьютерных сетей. – СПб.: Питер,
2007.- 509 с.
ДОПОЛНИТЕЛЬНАЯ
9. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++.
– 2-е изд.- М.: Бином, 2000.
10. Буч Г., Рамбо Дж., Якобсон А. Язык UML. Руководство пользователя. – М.: ДМК, 2000.
11. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного
проектирования. Паттерны проектирования. - СПб: Питер, 2001.
12. Роберт С. Мартин. Быстрая разработка программ: принципы, примеры, практика. – М.:
Издательский дом «Вильямс», 2004.
13. Дейт К. Дж. Введение в системы баз данных. - Москва-Санкт-Петербург-Киев: Изд. дом
“Вильямс”, 2005.
14. Грабер М. SQL. - M.: Лори, 1999.
15. Даконта М., Саганич А. XML и Java 2. – СПб: Питер, 2001.
16. Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты. - М.:
Издательский дом ''Вильямc'', 2001.
17. Емеличев В.А. и др. Лекции по теории графов. - М.: Наука, 1990.
18. Нигматуллин Р.Г. Сложность булевых функций. – Казань: Изд-во Казанского ун-та, 1983.
19. Холл М. Комбинаторика. - М.: Мир. 1970.
20. Соловьева Ф.И. Введение в теорию кодирования: Учебное пособие/ Новосиб. гос. ун-т.
Новосибирск, 2006.
21. Эндрюс Г.Р. Основы многопоточного параллельного и распределенного программирования. –
М.: Изд. Дом Вильямс, 2003. – 330 с.
22. Воеводин В.В. , Воеводин Вл.В. Параллельные вычисления. – СПб: БХВ – Петербург, 2002. –
609с.
23. Яблонский С.В. Введение в дискретную математику. - М.: Наука, 1979.
24. Кузнецов О.П., Адельсон-Вельский Г.М. Дискретная математика для инженера.- М., 1980
25. Новиков Ф.А. Дискретная математика для программистов. 2000-2001.
26. Карманов В. Г. Математическое программирование. - М.: Наука, 2003.
27. Братко И. Программирование на Прологе для искусственного интеллекта. - М.: Мир, 1990. 560 с.
28. Грис Д. Конструирование компиляторов для цифровых вычислительных машин. - М.: Мир,
1975.
29. Емельянов П.Г. Абстрактная интерпретация императивных программ.//Системная
Информатика. Вып.6. - Новосибирск: Наука, 1998. - стр.7-47.
30. Кларк Э., Грамберг О., Пелед Д. Верификация моделей программ. - М.: МЦНМО, 2002.
31. Метакидес Г., Нероуд А. Принципы логики и логического программирования. - М., изд-во
"Факториал", 1998.
32. Хоггер К. Введение в логическое программирование. - М.: Мир, 1988.
33. Чень Ч., Ли Р. Математическая логика и автоматическое доказательство теорем. - М.: Мир,
1983. - 360 с.
Заведующий кафедрой ПВС
д.ф.-м.н., профессор Байбурин В.Б.
Download