Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КН и ИТ программа и вопросы.doc
Скачиваний:
9
Добавлен:
01.12.2018
Размер:
78.85 Кб
Скачать

П Р О Г Р А М М А

ГОСУДАРСТВЕННОГО ЭКЗАМЕНА

ПО КОМПЬЮТЕРНЫМ НАУКАМ И ИНФОРМАЦИОННЫМ ТЕХНОЛОГИЯМ

для студентов специальности «Математика» (5 курс ОДО), направлений «Математика» и «Математика. Компьютерные науки» (2 курс магистратуры),

проходящих подготовку по дополнительной образовательной программе

«Разработчик профессионально ориентированных компьютерных технологий»

Выпуск 2012 года

АРХИТЕКТУРА ЭВМ

1. Понятие архитектуры ЭВМ. Поколения ЭВМ. Основные устройства ПЭВМ.

Классические принципы построения архитектуры ЭВМ фон Неймана: Использование двоичной системы, принцип хранимой программы, принцип последовательного выполнения операций, принцип произвольного доступа к ячейкам памяти. Поколения ЭВМ. 1-е (ламповое) и 2-е (транзисторное) поколения — классическая архитектура фон Неймана: Процессор, состоящий из АЛУ и УУ и работающие под его управлением устройство ввода (данные передаются к процессору), устройство вывода (данные передаются от процессора), внешнее запоминающее устройство и оперативное запоминающее устройство, обменивающиеся с процессором данными в обоих направлениях. 2-е поколение: появление операционных систем; программирование на языках высокого уровня. 3-е поколение: переход к интегральным схемам, шинная архитектура ЭВМ, выделение видео памяти, снятие нагрузки с ЦП на интеллектуальные контролеры внешних устройств. 4-е поколение: миниатюризация (БИС), появление персональных ЭВМ многопроцессорных суперЭВМ. Открытая архитектура: вопросы совместимости и стандартизации интерфейсов и устройств. Системный блок: материнская плата (full- mini- micro- at\atx\btx; полупрограммные интегрированные устройства; типы и количество слотов расширений), БП (at\atx\btx максимальная сила тока и мощность устройств 12V и 5V), BIOS, ЦП (разрядность, частота, количество ядер, поддерживаемые мультимедиа инструкции, кэш), ОЗУ (тип, объём), видео карта (поддерживаемые инструкций OpenGL, DirectX, тип и объём видеопамяти, частоты работы), аудио карта (кол-во каналов, частота и глубина дискретизации), сетевая карта (скорость передачи данных), НЖМД (объём, тип интерфейса, форм-фактор), оптический привод (тип, скорость чтения-записи); манипулятор «мышь» (тип, интерфейс подключения, точность позиционирования); устройства ввода и вывода.

2. Основные элементы архитектуры IA-32. Процессор, регистры процессора, их назначение.

Суперскалярная архитектура; предсказание вычислений; разрядность адресной шины 32\36 бит, шины данных 32\64\128 бит. Сверхоперативная память. Классификация регистров процессора. Эволюционное именование регистров (EAX/AX/AH/AL). Регистры общего назначения: предназначение по умолчанию (EAX — аккумулятор, EBX — базовый регистр адреса, ECX — счетчик циклов, EDX — регистр данных, ESP — указатель вершины стека, EBP — указатель базы кадра стека, ESI — индекс источника в цепочечных операциях, EDI — индекс приёмника в цепочечных операциях. Сегментная модель программы; сегментные регистры. Регистры состояния и управления: флаги регистра EFLAGS.

3. Цикл выполнения команд. Классификация команд процессора. RISC и CISC процессоры.

Стандартные действия при выполнении каждой команды ЭВМ: 1) считывается очередная команда программы согласно содержимому счетчика адреса команд; 2) счетчик команд автоматически изменяется так, чтобы в нем содержался адрес следующей команды; 3) считанная в регистр команд операция расшифровывается, извлекаются необходимые данные и над ними выполняются требуемые действия. Исключительные ситуации (останов и прерывания). Оптимизация методом опережающей выборки. Общая классификация команд: 1. команды передачи данных (mov, lea, push, pop); 2. ариф­ме­ти­че­ские операции (inc, dec, add, sub, mul); 3. логические операции (and, or, xor, not, test); 4. сдвиги двоичного кода (shr\sar, shl\sal); 5. команды управления (loop, cmp, jmp, jCC: e,n,g,l,a,b). Принципы построения системы команд: CISC и RISC наборы команд. RISC-ядро современных CISC x86-совместимых процессоров.

Основы программирования

1. Типизация в алгоритмических языках программирования. Литералы; переменные и константы: объявление и инициализация; арифметические выражения; приведение типов в языке программирования Си или Паскаль. Ввод-вывод данных в языке Си или Паскаль.

Алгоритм: понятие и свойства. Алгоритмические языки программирования высокого уровня: исходный код, синтаксические и семантические ошибки, ошибки времени выполнения. Примитивные типы данных, классификация: числовые и нечисловые, целочисленные (в том числе, указатели) и вещественные, знаковые и беззнаковые типы. Понятие о литералах, переменных и константах. Особенности объявления и инициализации переменных и констант. Приоритет выполнения операций в арифметических выражениях. Правила преобразования типов данных в выражениях. Использование стандартных библиотек функций для организации ввода-вывода. Автоматическое приведение типов в аргументах функций.

2. Алгоритмы ветвления и возврата и их реализация в языке Си или Паскаль.

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

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

3. Статические одномерные массивы. Понятие и способы объявления. Способы представления многомерных массивов на примере двумерных массивов.

Массивы как непрерывные блоки типизированных данных в памяти. Буферное, матричное и рекуррентное представление многомерного массива на примере двумерных массивов. Операция взятия индекса. Особенности объявления и инициализации массивов в языках программирования. Реализация базовых алгоритмов над массивами: поиск минимального (максимального) значения (результат — значение; результат — индекс: зависимость результата от строгости условия определения промежуточного результата); сумма (произведение), среднее арифметическое (геометрического) элементов, в том числе по удовлетворению значения условию, по удовлетворению позиции условию; алгоритмы сортировки, модификации данных по удовлетворению значения условию, по удовлетворению позиции условию.

4. Основные принципы работы с файлами на языке программирования Си или Паскаль.

Понятие о файловой системе. Классификация файлов по типу и режиму доступа. Текстовые и бинарные файлы. Использование дескриптора файла и файлового курсора. Файлы прямого и последовательного доступа. Общий порядок работы с файлами: 1) связь файла с дескриптором; 2) открытие файла; 3) чтение и (или) запись данных; 4) закрытие файла. Необходимость закрытия файла для сброса файлового кэша. Функциональные возможности языка программирования по работе с текстовыми и бинарными файлами. Результаты открытия файлов в разных режимах доступа. Возможности языка программирования по ручной отладке результата выполнения операций ввода-вывода.

5. Функции пользователя. Перегрузка функций. Типы аргументов. Глобальные переменные. Создание библиотек функций пользователя. Принципы построения многомодульных приложений.

Функциональная декомпозиция. Порядок объявления и реализации функций пользователя. Идентификация функции по имени, количеству аргументов, порядку следования аргументов (по их типу). Локальные и глобальные переменные. Проблема читабельности исходного кода. Проблема возврата нескольких значений. Аргументы — значения и аргументы — ссылки. Создание модулей функций, определенных пользователем на языке программирования Си или Паскаль. Проблема циклических ссылок при подключении модулей.

6. Динамические структуры данных и операции над ними. Динамическое управление памятью. Использование указателей.

Проблема фрагментации памяти. Проблема динамического (run-time) управления размером массива. Однонаправленный список и операции над ним. Проблема утечки памяти. FIFO, LIFO (LILO, FILO) очереди. Понятие динамических структур данных: двунаправленный список, кольцо, стек, дерево (в том числе, взвешенное дерево, бинарное дерево). Реализация динамических массивов на двунаправленной очереди. Использование указателей на структуру (запись) в качестве поля самой структуры (записи). Необходимые методы для самостоятельной реализации динамического массива. Возможности стандартных библиотек по использованию динамических массивов.