
- •А. Аппаратное обеспечение компьютеров
- •1. Раздел "Основы теории компьютеров"
- •2. Минимизация булевых функций с помощью диаграмм Вейча.
- •3. Определение и применение базиса при построении произвольных функций алгебры-логики.
- •4. Сложение и вычитание чисел с фиксированной запятой.
- •5. Умножение чисел с плавающей запятой.
- •6. Форматы команд.
- •7. Схема выполнения машинной двухадресной команды типа "Регистр-память" на однопроцессорном компьютере.
- •8. Схема выполнения машинной двухадресной команды типа "Регистр-регистр" на однопроцессорном компьютере.
- •2. Раздел "Архитектура вычислительных систем"
- •1. Архитектура кэш-памяти. Ассоциативное распределение информации в кэш-памяти.
- •2. Архитектура кэш-памяти. Прямое распределение (отображение) информации в кэш-памяти.
- •3. Архитектура векторного блока супер-ЭВМ CYBER-205. Особенности её конвейеров, обеспечивающие механизм "зацепления команд".
- •4. Векторные процессоры: структура аппаратных средств.
- •5. Пять основных архитектур высокопроизводительных ВС, их краткая характеристика, примеры.
- •6. SMP архитектура. Достоинства и недостатки. Область применения, примеры ВС на SMP.
- •7. MPP архитектура. История развития. Основные принципы. Концепция, архитектура и характеристики суперкомпьютера Intel Paragon.
- •8. Кластерная архитектура. Проблема масштабируемости. Примеры.
- •10. Понятие конвейера. "Жадная" стратегия. Понятие MAL в теории конвейера.
- •3. Раздел "Схемотехника ЭВМ"
- •1. Этапы проектирования комбинационных схем на примере дешифратора на 4 выхода: определение, таблица истинности, функция, логическая схема. Увеличение разрядности до 16-ти выходов.
- •2. Этапы проектирования комбинационных схем на примере мультиплексора 4-1: определение, таблица истинности, функция, логическая схема. Увеличение разрядности до 16-1.
- •3. Этапы проектирования комбинационных схем на примере схем сравнения двухразрядных слов: определение, таблица истинности, функция, логическая схема. Схема сравнения четырёхразрядных слов на элементах "Исключающее ИЛИ".
- •6. Синтез многовыходных комбинационных схем. Этапы проектирования в базисе И-НЕ.
- •7. Триггерные схемы: определение, классификация, условные графические обозначения, динамические параметры. Обобщённая структура двухступенчатого триггера, диаграмма его работы, условное графическое обозначение, динамические параметры.
- •8. Синтез двухступенчатого триггера по заданной таблице внешних переходов: таблица истинности, минимизация, схема. Построить временную диаграмму для двух переключений триггера, определить максимальные задержки переключений.
- •9. Счётчики: определение, модуль счётчика, динамические параметры. Примеры суммирующего, вычитающего и реверсивного счётчиков: схемы, временные диаграммы.
- •10. Счётчики: определение, модуль счётчика. Организация цепей переноса: схемы, динамические параметры. (CP)
- •11. Синтез синхронных счётчиков с заданным модулем на заданном типе триггера (DV, JK).
- •Б. Программное обеспечение компьютеров
- •4. Раздел "Алгоритмы и структура данных"
- •1. Понятие логических структур данных. Отображение структуры данных в памяти вектором и списком. Типы списков. Определение, основные операции; особенности их реализации.
- •2. Стек и очередь: определение, основные операции. Особенности выполнений операций при реализации стека и очереди вектором.
- •3. Стек и очередь: определение, основные операции. Особенности выполнения операций при реализации стека и очереди списком.
- •4. Просматриваемая динамическая таблица-вектор: определение, основные операции, особенности их реализации.
- •5. Просматриваемая динамическая таблица-список: определение, основные операции, особенности их реализации.
- •6. Упорядоченная таблица-вектор: определение, основные операции, особенности их реализации.
- •7. Таблица произвольного доступа: определение, основные операции, отображение в памяти. Функция рандомизации, её назначение.
- •9. Перемешанная таблица, использующая перемешивание сложением: определение, основные операции, особенности их реализации.
- •10. Перемешанная таблица, использующая перемешивание сцеплением: определение, основные операции, особенности их реализации.
- •5. Раздел "Базы данных"
- •1. Системы с базами данных. Понятие системы управления базами данных СУБД. Функции СУБД.
- •2. Понятие независимости от данных. Трёхуровневая архитектура ANSI-SPARC. Сравнительная характеристика уровней.
- •3. Модель данных. Назначение моделей данных. Компоненты моделей данных. Классификация моделей данных.
- •5. База данных реляционного типа. Основные понятия и структура реляционной модели. Реляционные языки. Основные правила целостности реляционной модели.
- •6. Реляционная алгебра. Основные операции реляционной алгебры.
- •7. Язык SQL. Операторы определения и манипулирования данными. Выборка данных из таблиц.
- •8. Модель данных "сущность-связь". Основные концепции и способы их представления на диаграммах. Современные методологии построения моделей "сущность-связь".
- •9. Нормализация отношений. Цель нормализации. Приведение к нормальным формам.
- •10. Жизненный цикл приложения баз данных. Основные фазы проектирования базы данных.
- •6. Раздел "Операционные системы"
- •1. Файловые системы современных операционных систем. Интерфейс пользователя для работы с файловой системой.
- •2. Принцип защиты данных в операционных системах. Управление правами доступа к файлам.
- •3. Способы группирования команд в операционных системах. Командные файлы. Программные каналы, конвейеры команд.
- •4. Обзор возможностей командных процессоров (оболочек) операционных систем.
- •5. Принципы организации многозадачного режима в операционных системах.
- •6. Коммуникационные средства многопользовательских операционных систем.
- •7. Генерация, конфигурирование, настройка операционной системы на потребности конкретного пользователя.
- •8. Средства и способы обеспечения многопользовательского режима в операционных системах.
- •9. Понятие процесса. Управление процессами в операционной системе UNIX.
- •10. Понятие программного канала. Средства управления программными каналами.

9. Перемешанная таблица, использующая перемешивание сложением: определение, основные операции, особенности их реализации.
(Алгоритмы и структуры данных, лекция 14.04.2004)
Перемешивание сложением:
Учитывает порядок поступления элементов в таблицу. Шаг перемешивания - сложение индексов с каким-то шагом.
Шаг перемешивания и размер таблицы должны быть взаимно простыми числами. Желательно:
h = N2 , где h - шаг перемешивания, N - размер таблицы.
Свойства:
1.Вся перемешанная таблица отображается вектором;
2.Размер таблицы (вектора) должен быть достаточным для размещения всех элементов таблицы и отображения их ключей (так как значение ключа отображается в индекс вектора);
3.Разделение таблицы на две области является весьма условным и зависит от конкретных значений ключей включаемых в таблицу элементов (в одной ситуации
некоторый элемент вектора может быть отнесен к основной области, в другой |
– |
этот же элемент принадлежит области переполнения). |
|
Особенности: |
|
1.Вся таблица - вектор
2.Чем более разреженная таблица, тем легче и быстрее поиск.
3.При поиске и при вставке алгоритм перемешивания одинаков!
4.При вставке разливают свободную позицию и удалённую
5.Алгоритм поиска может быть модифицирован (?).
Основные операции: добавление, поиск, удаление элемента.
1) Добавление элемента (особенности реализации):
Пусть функция расстановки I(k)=k%10, и набор данных 12, 48, 3, 5, 7, 63, 15, 202, 103, 188, 30, 43, 6, 18, 19. При занесении элемента в таблицу, прежде всего, вычисляется производный ключ и анализируется позиция таблицы (определяемая значением производного ключа):
•Если эта позиция свободна, элемент заносится в таблицу (в основную область), и для занесения потребуется только одно обращение к таблице.
•Если позиция таблицы занята, тогда начинается процесс перемешивания: последовательно выбираются следующие позиции таблицы с целью найти свободную. В результате в общем случае для занесения элемента в таблицу
требуется несколько обращений.
Определение "открытое перемешивание" обусловлено тем свойством, что элементы таблицы, просматриваемые, начиная с конкретной позиции, являются открытыми для ключей, отображаемых в другие позиции. Как только свободная позиция будет найдена, элемент записывается в нее, и эта позиция считается принадлежащей области переполнения.
Если же при поиске свободной позиции мы возвращаемся в исходную точку, значит в таблице нет свободного места.

12 |
|
|
|
63 |
|
|
202 |
|
|
|
|
I(k) |
|
Ключ Информация |
I(k) |
|
Ключ Информация |
I(k) |
|
Ключ Информация |
|||
0 |
|
|
0 |
|
|
0 |
30 |
... |
|||
|
1 |
|
|
15 |
1 |
|
|
|
1 |
18 |
... |
|
|
|
|
|
|
|
|||||
|
2 |
12 |
... |
I(k) |
2 |
12 |
... |
19 |
2 |
12 |
... |
|
3 |
3 |
... |
3 |
3 |
... |
|
3 |
3 |
... |
|
48 |
|
|
|||||||||
4 |
|
|
|
4 |
63 |
... |
I(k) |
4 |
63 |
... |
|
|
|
|
|
||||||||
I(k) |
5 |
5 |
... |
|
5 |
5 |
... |
|
5 |
5 |
... |
6 |
|
|
|
6 |
15 |
... |
|
6 |
15 |
... |
|
|
7 |
7 |
... |
|
7 |
7 |
... |
|
7 |
7 |
... |
|
8 |
48 |
... |
|
8 |
48 |
... |
|
8 |
48 |
... |
|
9 |
|
|
|
9 |
202 |
... |
|
9 |
202 |
... |
|
10 |
|
|
|
10 |
|
|
|
10 |
103 |
... |
|
11 |
|
|
|
11 |
|
|
|
11 |
188 |
... |
|
12 |
|
|
|
12 |
|
|
|
12 |
43 |
... |
|
13 |
|
|
|
13 |
|
|
|
13 |
6 |
... |
|
|
|
a) |
|
|
|
b) |
|
|
|
c) |
Важный результат, который всегда необходимо учитывать при построении функции расстановки, состоит в том, что для случайных записей средняя длина поиска минимизируется, если функция расстановки отображает одинаковое количество ключей на все позиции таблицы-вектора от 1 до M.
При занесении элементов в таблицу нужно иметь возможность определять, занята позиция таблицы или свободна. Для этого достаточно включить в элемент таблицы дополнительное поле занятости. Структура элемента таблицы может быть представлена
следующим образом: struct Item{
int |
busy; |
/* признак занятости позиции таблицы */ |
int |
key; |
|
Type info; |
|
};
2) Поиск:
Поиск элемента осуществляется по такому же правилу: вычисляется производный ключ и анализируется позиция таблицы, которая определяется значением производного ключа.
1.Если искомый ключ находится в этой позиции, поиск завершен успешно, причем потребовалось только одно обращение к таблице.
2.Если позиция свободна, поиск заканчивается не успешно – в таблице нет элемента с искомым ключом.
3.Если позиция таблицы занята, но ключи не совпадают, выбирается и анализируется следующий элемент таблицы (с учетом используемого шага перемешивания).
3)Удаление элемента:
Если для таблицы определена операция удаления элемента (только для динамических таблиц), нужно иметь в виду следующее:
1.При удалении элемента нельзя перемещать информацию в таблице, так как это может привести к нарушению пути доступа к элементу, и элемент, занесенный в таблицу до выполнения операции удаления, в дальнейшем может быть не найден. Достаточно отметить найденную позицию, в которой находится удаляемый элемент, как удаленную.
2.При занесении в таблицу нового элемента удаленная позиция должна рассматриваться как свободная.

3.При поиске элемента удаленная позиция не должна рассматриваться ни как свободная (иначе нельзя будет найти элементы, занесенные в таблицу перед удалением элемента и расположенные после него), ни как занятая; она должна просто пропускаться.
Недостатки:
В приведенном выше примере скопление записей образовалось после третьей позиции, в результате чего для занесения элемента с ключом 202 потребовалось 8 обращений к таблице. Подобное скопление неизбежно при использовании открытого перемешивания. Можно несколько улучшить результаты, если переопределить понятие следующей позиции таблицы. В общем случае использование открытого перемешивания при определении следующей позиции требует увеличения индекса элемента на некоторую величину h, называемую шагом перемешивания (другими словами, значение индекса складывается с шагом перемешивания; поэтому открытое перемешивание называют еще перемешиванием сложением). Значение шага перемешивания может быть любым, но обязательно взаимно простым с величиной, определяющей размер таблицы, чтобы обеспечить просмотр всех ее позиций (например, для таблицы размером 14 элементов можно использовать шаг перемешивания 3 или 5, но нельзя 2 или 6). Выбор шага перемешивания может повлиять на количество обращений к таблице.
10. Перемешанная таблица, использующая перемешивание сцеплением: определение, основные операции, особенности их реализации.
(Алгоритмы и структуры данных, лекция 14.04.2004)
Перемешивание сцеплением:
Область переполнения представлена семейством списков. Свойства таблицы при использовании перемешивания сцеплением:
1.Таблица явно разделяется на 2 области - основную и областьпереполнения.
2.Основная область таблицы представлена вектором, размер которого должен быть достаточен для отображения всех значений ключей.
3.Область переполнения представляет собой семейство списков - отдельный список для каждой области.
Структура элемента. Элемент перемешанной таблицы, использующей перемешивание сцеплением, должен иметь ещё одно поле: поле связи с элементами из области переполнения:
Основная область |
|
Область переполнения |
|
|
|||
ключ |
информация |
|
ключ |
информация |
0 |
|
|
|
|
0 |
|
|
|
|
|
|
|
|
ключ |
информация |
|
|
|
... |
... |
0 |
|
|
ключ |
информация |
0 |
|
|
0 |
|
|
|
|
|
На практике отображающий вектор (основную область таблицы) можно представить только массивом указателей на элементы таблицы, а все записи включать в область переполнения. В этом случае все операции с таблицей сначала осуществляют выбор необходимого списка (элемента массива указателей), а затем реализуется требуемая операция со списком (соответствующие операции со списками были рассмотрены ранее). При такой организации таблицы минимальная длина доступа будет равна 2, так как всегда требуется, по крайней мере, одно дополнительное обращение к области переполнения. С другой стороны, выполнение операций вставки и удаления при такой