Автор работы: Пользователь скрыл имя, 29 Марта 2011 в 16:28, шпаргалка
Работа содержит ответы на вопросы по дисциплине "Программирование".
Билет №3
1. Архитектура СУБД и ее основные функции.
ОТВЕТ:
Система управления базами данных (СУБД) - комплекс программных и языковых средств, необходимых для создания и модификации базы данных, добавления, модификации, удаления, поиска и отбора информации, представления информации на экране и в печатном виде, разграничения прав доступа к информации, выполнения других операций с базой.
Архитектура СУБД
Компонент «Данные, метаданные» включает не только данные, но и информацию о структуре данных (метаданные).
Компонент «Блок памяти» получает требуемую информацию из места хранения данных и изменяет в нем соответствующую информацию по требованию расположенных выше уровней системы. В простых системах баз данных блоком памяти может служить система файлов операционной системы. Однако для повышения эффективности СУБД обычно осуществляет прямой контроль памяти.
Блок памяти состоит из двух компонентов:
1.
Блок файлов контролирует
2.
Блок буфера управляет
Компонент «Компилятор запросов» обрабатывает различные обращения к СУБД и запрашивает изменение данных и метаданных. Он предлагает наилучший способ выполнения необходимой операции и выдает соответствующие команды блоку памяти.
Как правило, компилятором запросов обрабатывается три типа обращения к СУБД:
1. Запросы
2. Модификации (модифицирующие запросы) – операции по изменению данных (удаление, добавление, изменение).
3.
Модификации схемы базы данных
– команды администраторов баз
данных, которые имеют право изменять
схему базы данных либо
Компонент «Блок транзакций» отвечает за целостность системы и должен обеспечить одновременную обработку многих запросов, отсутствие интерференций запросов (интерференция – сложение, в данном случае необходимо исключить наложение запросов и их взаимодействие) и защиту данных в случае выхода системы из строя. Блок транзакций взаимодействует с компилятором запросов, т.к. для разрешения конфликтных ситуаций должен учитывать, на какие данные воздействуют текущие запросы. В силу этого некоторые вопросы могут быть отложены, и может быть установлена очередность их выполнения. Блок транзакций взаимодействует также с блоком памяти, т.к. схемы защиты данных обычно включают в себя хранение файла регистрации изменений данных.
Функций СУБД:
1.
Непосредственное управление
Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы).
2.
Управление буферами
СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти.
3. Управление транзакциями.
Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД.
4. Журнализация.
Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Для восстановления БД нужно располагать некоторой дополнительной информацией. Наиболее распространенным методом поддержания такой избыточной информации является ведение журнала изменений БД.
Журнал - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализуются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения БД (например, операции удаления строки из таблицы реляционной БД), иногда - минимальной внутренней операции модификации страницы внешней памяти; в некоторых системах одновременно используются оба подхода.
5. Поддержка языков БД.
Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т.е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т.е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.
Стандартным
языком наиболее распространенных в
настоящее время реляционных
СУБД является язык SQL (Structured Query Language)
2. Сопроцессоры. Назначение, система команд на примере процессоров Intel x86.
ОТВЕТ:
Сопроцессор - это специальная интегральная схема, которая работает в содружестве с главным процессором. Обычно сопроцессор настраивается на выполнение какой-нибудь специфической функции - математической операции или графического представления. И эту операцию сопроцессор может реализовывать во много раз быстрее, чем главный процессор.
Сопроцессор - обычный микропроцессор, но не столь универсальный, как любой член семейства Intel 8086. Обычно сопроцессор разрабатывается как специальное устройство по реализации конкретно определенной функции. Как и любой другой микропроцессор, сопроцессор работает по тем же принципам. Он просто выполняет программы содержащие последовательность микропроцессорных команд. Вся деятельность сопроцессора определяется главным микропроцессором, который может посылать сопроцессору команды на выполнение программ и формирование результатов. В обычном режиме микропроцессор выполняет все функции компьютера. И лишь, когда встречается задача, с которой лучше справится сопроцессор, ему выдаются данные и команды, а главный микропроцессор ожидает результаты.
Сопроцессоры, большей частью использующиеся с РС, являются математическими сопроцессорами. В математике они специализируются по умножению и делению чисел (они едва ли быстрее обычных микропроцессоров по части сложения и вычитания). Математические сопроцессоры называют еще процессорами с плавающей точкой. Потому что они особенно великолепны при работе с числами с плавающей точкой. Такие числа часто используются в научных расчетах и представляются мантиссой и ординатой (десятичная степень, определяющая положение десятичной точки).
Математический сопроцессор — сопроцессор для расширения командного множества центрального процессора и обеспечивающий его функциональностью модуля операций с плавающей запятой, для процессоров, не имеющих интегрированного модуля.
Модуль операций с плавающей запятой — часть процессора для выполнения широкого спектра математических операций над вещественными числами.
Простым «целочисленным» процессорам для работы с вещественными числами и математическими операциями требуются соответствующие процедуры поддержки и время для их выполнения. Модуль операций с плавающей запятой поддерживает работу с ними на уровне примитивов — загрузка, выгрузка вещественного числа (в/из специализированных регистров) или математическая операция над ними выполняется одной командой, за счёт этого достигается значительное ускорение таких операций.
Преимущества, которые получаются от установки математического сопроцессора, зависят от того, какие задачи решаются на вашем компьютере. Согласно Intel сопроцессор может уменьшить время выполнения математических операций, таких, как умножение, деление и возведение в степень на 80% и более. Скорость выполнения простых операций, таких, как сложение и вычитание, может быть совсем не уменьшена.
Сопроцессор и главный микропроцессор могут работать на разных тактовых частотах. Сопроцессоры могут работать от тактового генератора драйверов микропроцессоров или от специального предназначенного для сопроцессора генератора. Когда отношение двух частот - микропроцессора и сопроцессора выражается целым числом, они работают синхронно и могут выполнять свои задания, а также передавать друг другу информацию оптимальным образом. Несинхронизированная работа требует, чтобы один или другой из них ожидал завершения цикла своего партнера, что влечет за собой появление небольшого, но реального периода ожидания.
Сопроцессоры Intel семейства x86
Для процессоров семейства x86 с 8086/8088 по 386, модуль операций с плавающей запятой был выделен в отдельную микросхему, называемую математическим сопроцессором. Для установки сопроцессора на плате компьютера предусматривался отдельный разъём.
Сопроцессор не является полноценным процессором, так как не умеет делать многих необходимых для этого операций (например, не умеет работать с программой и вычислять адреса памяти), являясь всего лишь придатком центрального процессора.
Устройство FPU
Модуль операций с плавающей запятой представляет собой стековый калькулятор, работающий по принципу обратной польской записи (форма записи математических выражений, в которой операнды расположены перед знаками операций). Перед операцией аргументы помещаются в LIFO-стек, при выполнении операции необходимое количество аргументов снимается со стека. Результат операции помещается в стек, где может быть использован в дальнейших вычислениях или может быть снят со стека для записи в память. Также поддерживается и прямая адресация аргументов в стеке относительно вершины.
Внутри FPU числа хранятся в 80-битном формате с плавающей запятой, для записи же или чтения из памяти могут использоваться:
Вещественные числа в трёх форматах: коротком (32 бита), длинном (64 бита) и расширенном (80 бит).
Двоичные целые числа в трёх форматах: 16, 32 и 64 бита.
Упакованные целые десятичные числа (BCD) числа - длина максимального числа составляет 18 упакованных десятичных цифр (72 бита).
Система команд сопроцессора
Система включает около 80 команд. Их классификация:
Команды передачи данных
- Вещественные данные
- Целочисленные данные
- Десятичные данные
- Загрузка констант (0, 1, число Пи, log2(10), log2(e), lg(2), ln(2))
- Обмен
- Условная пересылка (Pentium II/III)
Команды сравнения данных
- Вещественные данные