Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информатике1.doc
Скачиваний:
39
Добавлен:
02.05.2014
Размер:
598.02 Кб
Скачать

3. Управляющие регистры (Control Registers) cro, cr1, cr2, cr3 хранят признаки состояния процессора, общие для всех задач. Этих регистров в процессорах 8086/88 не было.

Регистр CRO обеспечивает общее управление режимами работы процессора. На­значение некоторых бит регистра CRO:

- РЕ - разрешение защиты. Установка этого флага инструк­цией переводит процессор в защищенный режим.

- МP - мониторинг сопроцессора.

- ЕМ - эмуляция сопроцессора. Установка этого флага позволяет прозрач­но осуществлять его программную эмуляцию.

- TS - флаг переключения задач, устанавливается автоматически при переключении задач.

- ЕТ - индикатор поддержки инструкций математического со­процессора.

- PG - включение механизма страничной переадресации памяти.

Регистр CR1 не используется.

Регистр CR2 хранит 32-битный линейный адрес, по которому был получен последний отказ страницы памяти.

Регистр CR3 используется для управления страничной орга­низацией памяти. В старших 20 битах хранится физичес­кий базовый адрес таблицы каталога страниц.

Регистр CR4 (присутствует в процессорах Pentium и выше) содержит биты разре­шения архитектурных расширений.

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

Подсистема ввода-вывода (Input-Output Subsystem) мультипрограммной ОС при обмене данными с внешними устройствами компьютера должна решать ряд об­щих задач, из которых наиболее важными являются следующие:

- организация параллельной работы устройств ввода-вывода и процессора;

- согласование скоростей обмена и кэширование данных;

- разделение устройств и данных между процессами;

- обеспечение удобного логического интерфейса между устройствами и осталь­ной частью системы;

- поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера;

- динамическая загрузка и выгрузка драйверов;

- поддержка нескольких файловых систем;

- поддержка синхронных и асинхронных операций ввода-вывода.

5. type

list = record

n : integer;

fio : array [1..20] of char;

mark : array [1..3] of integer

end;

var B : list;

Билет №15

1. Стек – линейный список, в котором добавления и исключения элемента производятся с одного конца, называемого вершиной стека. Соблюдается принцип “первым пришел – последним ушел”.

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

Работа со стеком осуществляется через указатель стека. При выполнении загрузки элемента в стек данные записываются на место, определяемое указателем стека, а указатель стека изменяет свое состояние и задает следующую свободную ячейку блока памяти. При извлечении элемента из стека указатель стека возвращается назад на один шаг.

Добавить элемент в стек:

New(q); Readln(q^.x); q^.next := p; p := q;

Считать значение элемента из стека и исключить его из стека:

q := p; p := q^.next; y := q^.x; dispose(q);

Считать элемент, не удаляя его из стека:

y := p^.x;

Списки могут быть не только линейными, но и кольцевыми. В кольцевом списке для последнего элемента следующим является первый, а если список двунаправленный, то для первого предыдущим является последний. Как и линейный, кольцевой список определяется указателем на свой первый элемент. При просмотре линейного списка переход от одного элемента к другому осуществляется до тех пор, пока рабочий указатель не станет равен Nil. При просмотре кольцевого списка надо переходить к следующему элементу до тех пор, пока рабочий указатель не совпадет с указателем на первый элемент. Поэтому первый элемент должен обрабатываться отдельно, а просмотр при помощи цикла следует начинать со второго элемента.

Мультисписки представляют собой структуру, каждый элемент которой входит в более чем один список одновременно и имеет соответствующее числу списков количество полей связи. Часто в виде мультисписков представляют матрицы очень большой размерности, в которых большинство элементов равны 0 (такие матрицы называются разреженными). Мультисписки обеспечивают эффективное хранение таких структур в памяти: хранятся только те элементы, которые отличны от 0. Каждый элемент входит в два списка: в список-строку и список-столбец. Вся матрица представлена m + n списками, где m и n – соответственно число строк и число столбцов матрицы, каждый элемент хранит значение элемента матрицы и две ссылки: на следующий элемент в строке и на следующий элемент в столбце, указатели на начала этих списков хранятся в двух массивах. Описание типа данных одного элемента матрицы-мультисписка аналогично описанию элемента-очереди или узла дерева. Для описания матрицы потребуется два массива – массив указателей на первые элементы списков–строк и на первые элементы списков-столбцов.

2. Язык QBE использует визуальный подход для организации доступа к информации в базе данных, построенный на применении шаблонов запросов, предложенных в 1977 г. Работа в QBE – задание образцов значений в шаблоне запроса, предусматривающем тот тип доступа к базе данных, который требуется в данный момент, например, получение ответа на некоторый вопрос.

Язык QBE был разработан компанией IBM в 1970-е годы. Он предназначался для пользователей, заинтересованных в выборке информации из баз данных. Средства языка QBE могут быть использованы для ввода запросов к информации, сохраняемой в одной или более таблицах, а также для определения набора полей, которые должны присутствовать в результирующей таблице. Отбор записей может проводиться по конкретному или общему критерию и предусматривать выполнение необходимых вычислений на основе сохраняемой в таблицах информации. Кроме того, средства языка QBE можно использовать для выполнения различных операций с таблицами, например, для вставки и удаления записей, модификации значений полей или создания новых полей и таблиц. Продемонстрируем эти возможности.

Запрос к содержащейся в базе данных информации необходимо сконструировать таким образом, чтобы указать СУБД, какие именно данные нас интересуют. Чаще всего используется тип запросов, который принято называть запросами на выборку. Запросы на выборку позволяют просматривать, анализировать или вносить измене­ния в данные, сохраняемые в одной или нескольких таблицах.

3. Параллельная и последовательная передачи данных хотя и служат одной цели - обмену данными и связи между периферией (устройствами ввода/вывода) и модулем обработки данных (материнской платой), но используют различные методы и принципы обмена информацией.

Параллельная связь означает, что биты передаются все одновре­мен­но (параллельно). При этом здесь принципиальным становится понятие разрядности шины.

В отличие от последовательной передачи данных параллельная передача, как правило, однонаправленная, т.е. данные передаются только в одном на­правлении.

В отличие от параллельной передачи данных отдельные биты пересылаются (или принимаются) пос­ледовательно друг за другом, при этом возможен обмен данными в двух на­правлениях. Уровень напряжения последовательного интерфейса изменяется в пределах от –25 В до +25 В. Благодаря этому относительно высокому значе­нию напряжения повышается помехоустойчивость, и данные могут переда­ваться без потерь по кабелю длиной 50 м и более.

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

4. Внешние (аппаратные) прерывания могут возникать в результате действий пользователя или оператора за терминалом или же в результате поступления сигналов от аппарат­ных устройств – сигналов завершения операций ввода-вывода, вырабатываемых контроллерами внешних устройств компьютера, такими, как принтер или нако­питель на жестких дисках, или же сигналов от датчиков управляемых компьюте­ром технических объектов. Внешние прерывания называют также аппаратными, отражая тот факт, что прерывание возникает вследствие подачи некоторой аппа­ратурой (например, контроллером принтера) электрического сигнала, который передается (возможно, проходя через другие блоки компьютера, например кон­троллер прерываний) на специальный вход прерывания процессора. Данный класс прерываний является асинхронным по отношению к потоку инструкций преры­ваемой программы. Аппаратура процессора работает так, что асинхронные пре­рывания возникают между выполнением двух соседних инструкций, при этом система после обработки прерывания продолжает выполнение процесса уже на­чиная со следующей инструкции.

5. IMPLEMENT_SERIAL(C3dMouseInDev, C3dInputDevice, 0)

C3dMouseInDev::C3dMouseInDev()

: m_ptPrev(-1, -1), m_ptCur(-1, -1)

{

memset(&m_st, 0, sizeof(m_st));

m_st.dPov = -1;

m_strName = "Mouse";

m_dwFlags = 0;

m_bCaptured = 0;

Билет №16

1. Сущность виртуальных методов заключается в том, что методу присваивается одно имя, которое используется в иерархии объектов, причем каждый объект в этой иерархии реализует это действие своим собственным, пригодным для него способом. Во время компиляции процедуры должно быть неизвестно, объект какого типа будет ей передан в качестве фактического параметра. Такой параметр называется полиморфным объектом и отсюда название полиморфизм.

Метод становится виртуальным, когда за его определением в типе объекта ставится служебное слово Virtual:

Procedure ИмяМетода (параметры); Virtual;

или

Function ИмяМетода (параметры) : ТипЗначения ; Virtual;

При виртуализации методов должны выполняться следующие условия:

1. Если прародительский тип объекта описывает метод как виртуальный, то все его производные типы, которые реализуют метод с тем же именем, должны описать этот метод тоже как виртуальный. Другими словами, нельзя заменять виртуальный метод статическим.

2. Порядок расположения, количество и типы формальных параметров в одноименных виртуальных методах должны быть неизменными.

3. В описании объекта должен присутствовать специальный метод, инициализирующий объект (обычно ему дают название Init). В этом методе служебное слово Procedure в объявлении и реализации должно быть заменено на слово Constructor. Это служебное слово обозначает особый вид процедуры – конструктор, который выполняет установочную работу для механизма виртуальных методов. Конструктор всегда вызывается до первого вызова виртуального метода.

Различие между вызовом статического метода и виртуального метода заключается в том, что в первом случае компилятору заранее известна связь объекта с методом, и он устанавливает ее на этапе компиляции. Такое связывание называется ранним. Во втором – компилятор как бы откладывает решение до момента выполнения программы. Это позднее связывание. Каждый тип объекта, содержащий виртуальные методы, имеет таблицу виртуальных методов (ТВМ) – сегмент данных, содержащий размер типа объекта и для каждого виртуального метода указатель кода, исполняющий данный метод. Конструктор устанавливает связь между вызывающим его экземпляром объекта и ТВМ этого объекта.

Имеется только одна ТВМ для каждого типа объекта. Отдельные экземпляры объекта содержат только адрес ТВМ, но не саму ТВМ. Конструктор устанавливает значение этого адреса.

Соседние файлы в предмете Информатика