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

4. Можно определить объект-наследник существующего объекта. В этом случае тип определяется следующим образом:

Type

ИмяОбъектаНаследника = Object (Имя ОбъектаПрародителя)

Новые ПоляОбъектаНаследника;

НовыеМетодыОбъектаНаследника;

End;

Этот процесс, с помощью которого один тип наследует характеристики другого типа, называется наследованием. Наследник называется порожденным (дочерним) типом, а тип, наследующий свои характеристики, называется порождающим (родительским) типом. Тип “наследник” иногда называется производным типом.

Переменным типа объект можно присваивать не только значения этого же типа, но и любого производного от него. Пусть имеются экземпляр Person типа TPerson и экземпляр Student типа TStudent, тогда возможно следующее присваивание:

Person := Student;

Подобная операция заполнит поля данных Person значениями аналогичных полей, унаследованных Student. Методы таким образом не присваиваются. Поскольку производный тип всегда получается не меньшим, чем прародительс­кий, операция присваивания возможна именно таким путем:

Прародитель  Наследник.

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

5. With Canvas Do

Begin

Pen.Color := clRed;

Pen.Width := 10;

MoveTo(10, 10);

LineTo(ClientWidth – 10, ClientHeight – 10);

End;

Билет №26

1. Данные строкового типа – это последовательность символов переменной длины. Такой тип еще называют типом string. Он во многом похож на одномерный массив символов, однако, в отличие от последнего, количество символов в строке–переменной может меняться от 0 до N, где N – максимальное количество символов в строке. Тип данных string определяется следующим образом:

Описание строкового типа состоит из ключевого слова string, после которого в квадратных скобках указано максимальное количество символов строки данного типа. Это количество может выражаться с помощью целой константы или имени целой константы. Если максимальный размер строки не указан, то он автоматически принимается равным 255 – максимально возможная длина строки. (Существуют еще ASCIIZ–строки, длина которых может достигать 65536 символов, но для работы с такими строками нужна особая директива компилятору). Длина переменной такого типа может динамически изменяться между 1 и значением константы. Символы в строке следует воспринимать как пронумерованные в интервале от 1 до значения константы.

2. Потенциальный ключ – суперключ, который не содержит подмножества, также являющегося суперключом данного отношения.

Потенциальный ключ К для данного отношения R обладает двумя свойствами:

- уникальность. В каждом кортеже отношения R значение ключа К единст­венным образом идентифицируют этот кортеж;

- неприводимость. Никакое допустимое подмножество ключа К не обладает свойством уникальности.

Отношение может иметь несколько потенциальных ключей. Если ключ состоит из нескольких атрибутов, то он называется составным ключом. Рассмотрим отношение Branch. Конкретное значение атрибута City может определять сразу несколько отделений компании (например, в Москве может находиться два отделе­ния). Поэтому данный атрибут не может быть выбран в качестве потенциального ключа. Однако, поскольку для каждого от­деления компании задается его уникальный номер, каждое значение этого номера (атрибут Вnо) может определять не больше одного кортежа, а потому Вnо является потенциальным ключом. Аналогично, атрибуты Tel_No и Fax_No также являются потенциальными ключами этого отношения.

3. Машины типа SIMD состоят из большого числа идентичных процессорных элементов, имеющих собственную память. Все процессорные элементы в такой машине выполняют одну и ту же программу. Машина типа SIMD, составленная из большого числа процессоров, может обеспечить очень высокую производительность только на тех задачах, при решении которых все процессоры могут делать одну и ту же работу. Модель вычислений для машины SIMD очень похожа на модель вычислений для векторного процессора: одиночная операция выполняется над большим блоком данных.

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

Модели вычислений на векторных и матричных ЭВМ настолько схожи, что эти ЭВМ часто обсуждаются как эквивалентные.

4. Рассмотрим задачу управления процессором для однопрограммных операционных систем. В такой ОС существует два процесса: системный процесс – процесс выполнения программ ОС и пользовательский процесс – процесс выполнения программ пользователя.

Системный процесс существует постоянно: с момента загрузки операционной системы и до конца ее работы. Он может быть заблокирован (например, ждать команды пользователя на выполнение программы).

Переключение “пользовательский процесс – системный процесс” в однопрограммной ОС связано со следующими событиями в вычислительной системе:

- завершение пользовательского процесса;

- обращение пользовательского процесса к системному процессу для выполнения каких-либо функций ОС.

Переключение “системный процесс – пользовательский процесс” связано с:

- созданием пользовательского процесса;

- завершением выполнения функций ОС, используемых пользовательским процессом.

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

5. TPerson = Object

Name : string[25]; Dolgn : string[25]; Stavka : Real; Constructor Init (Nm, Dg : String; Sv : Real);

Function GetName : String; Function GetDolgn : String; Function GetStavka : Real;

Procedure ShowAll; Virtual;

end;

TStudent = Object (TPerson)

Ball : Real; Constructor Init (Nm, Dg : String; Sv, Bl : Real);

Function GetBall : Real; Function GetSum : Real; Virtual;

Procedure ShowAll; Virtual;

end;

Билет №27

1. Если Х – переменная–множество, а Е – множественное выражение, то присваивание:

Х := Е

допустимо только в том случае, если все элементы Е относятся к базовому типу Х.

К любым объектам со структурой множества применимы операции: объединение, пересечение, разность. Если предположить, что А и В – выражения одного типа, то:

А + В – множество из элементов А и В (объединение);

А * В – множество общих для А и В элементов (пересечение);

А – В – множество элементов А, не входящих в В (разность).

К множественным операндам применимы пять операций отношения. Предположим, А и В – множественные выражения одного типа, а е – порядковое выражение базового типа.

е in A – вхождение в множество; результат true, если е элемент А, иначе – false;

А = В – равенство множеств;

А <>В – неравенство множеств;

А <= В – включение; результат true, если А подмножество В;

А >= В – включение; результат true, если В подмножество А.

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

2. Третья нормальная форма (3НФ). Хотя 2НФ-отношения в меньшей степени обладают избыточностью данных, чем 1НФ-отношения, они все еще могут страдать от аномалий обновления. Так, при попытке обновления имени владельца недвижимости (например, Tony Shaw с номе­ром С093 (атрибут Owner No)) потребуется обновить две строки отношения Ргорerty_Owner. Если обновить только одну из этих двух строк, база данных попадет в противоречивое состояние. Эта аномалия обновления вызывается транзитивной зависимостью, присутствующей в данном отношении. Она может быть устранена путем приведения данного отношения к третьей нор­мальной форме. В этом разделе транзитивные зависимости рассматриваются вместе с третьей нормальной формой.

3. В кэш-памяти прямого отображения адрес памяти, по которому происходит обра­щение, однозначно определяет строку кэша, в которой может находиться требуе­мый блок. Принцип работы такого кэша поясним на примере несекторированного кэша объемом 256 Кбайт с размером строки 32 байта и объемом кэшируемой основной памяти 64 Мбайт – типичный кэш системной платы для Pentium.

Кэшируемая основная память условно разбивается на страницы (в данном случае по 256 Кбайт), размер которых совпадает с размером кэш-памяти (256 Кбайт). Кэш­-память (и, условно, страницы основной памяти) делятся на строки (256 Кбайт/32= 8 Кбайт строк). Архитектура прямого отображения подразумевает, что каждая строка кэша может отображать из любой страницы кэшируемой памяти толь­ко соответствующую ей строку. Поскольку объем основной памяти много больше объема кэша, на каждую строку кэша может претендовать множество блоков памяти с одинаковой младшей частью адреса (смещением внутри страницы). Одна строка в определен­ный момент может, естественно, содержать копию только одного из этих блоков. Номер (адрес) строки в кэш-памяти называется индексом (index). Тег несет инфор­мацию о том, какой именно блок занимает данную строку (то есть старшая часть адреса или номер страницы). Память тегов должна иметь количество ячеек, рав­ное количеству строк кэша, а ее разрядность должна быть достаточной, чтобы вместить старшие биты адреса кэшируемой памяти, не попавшие на шину адреса кэш-памяти. Кроме адресной части тега, с каждой строкой кэша связаны биты признаков действительности и модифицированности данных. В начале каждого обращения к кэшируемой памяти контроллер вначале считывает ячейку каталога с заданным индексом, сравнивает биты адреса тега со старшими битами адреса памяти и анализирует признак действи­тельности. Этот анализ выполняется в специальном цикле слежения (snoop cycle), иногда его назы­вают циклом запроса (inquire). Если в результате анализа выясняется, что требуе­мого блока нет в кэше, генерируется (или продолжается) цикл обращения к ос­новной памяти (случай кэш-промаха). В случае попадания запрос обслуживается кэш-памятью. В случае промаха после считывания основной памяти приемником информации новые данные помещаются в строку кэша (если она чистая), а в ее тег помещаются старшие биты адреса и устанавливается признак действительно­сти данных. Независимо от объема затребованных данных в кэш из основной па­мяти строка переписывается вся целиком (поскольку признак действительности относится ко всем ее байтам). Если контроллер кэша реализует упреждающее считывание (read ahead), то в последующие свободные циклы шины также обно­вится и следующая строка (если она была чистой). Чтение «про запас» позволяет при необходимости осуществлять пакетный цикл чтения из кэша через границу строки.

Такой кэш имеет самую простую аппаратную реализацию и применяется во вторичном кэше большинства системных плат. Однако ему присущ серьезный недостаток. Если в процессе вы­полнения программы процессору поочередно будут требоваться блоки памяти, смещенные относительно друг друга на величину, кратную размеру страницы, то кэш будет работать интенсивно, но вхолостую (cache trashing). Очередное обра­щение будет замещать данные, считанные в предыдущем и необходимые в следу­ющем обращении, – т.е. будет сплошная череда кэш-промахов. Переключение страниц в многозадачных ОС также снижает количество кэш-попаданий, что от­ражается на производительности системы. Увеличение размера кэша при сохра­нении архитектуры прямого отображения даст не очень существенный эффект, поскольку разные задачи будут претендовать на одни и те же строки кэша. Не увеличивая объема, можно повысить эффективность кэширования изменением структуры кэша, о чем пойдет речь ниже.

Объем кэшируемой памяти (Мcached) при архитектуре прямого отображения оп­ределяется объемом кэш-памяти (Vcache) и разрядностью памяти тегов (N):

Мcached = Vcache · 2N, в нашем случае Мcached = 256 Кбайт · 28 = 64 Мбайт.

Иногда в описании кэша прямого отображения фигурирует понятие набор (set), что может ввести в заблуждение. Оно применяется вместо термина строка (line) в секторированном кэше прямого отображения, а сектор тогда называют строкой. С набо­ром (как и строкой несекто­рированного кэша) связана информация о теге, отно­сящаяся ко всем элементам набора (строкам или секторам). Кроме того, каждый элемент набора (строка или сектор) имеет собственный бит действительности в кэш-каталоге.

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

Способность ОС к “экранированию” сложностей реальной аппаратуры ярко проявляется в одной из основных подсистем ОС – файловой системе. ОС виртуализирует отдельный набор данных, хранящихся на внешнем накопителе, в виде файла – простой неструктурированной последовательности байтов, имеющей символьное имя. Для удобства работы с данными файлы группируются в каталоги, которые, в свою очередь, образуют группы – каталоги более высокого уровня. Пользователь, применяя средства ОС, может выполнять над файлами и каталогами такие действия, как поиск по имени, удаление, вывод содержимого на внешнее устройство, изменение и сохранение содержимого.

5. TPerson = Object

Name : string[25];

Dolgn : string[25];

Stavka : Real;

Procedure Init (Nm, Dg : String; Sv : Real);

Function GetName : String;

Function GetDolgn : String;

Function GetStavka : Real;

Procedure ShowName;

Procedure ShowDolgn;

Procedure ShowStavka;

end;

TStudent = Object (TPerson)

Ball : Real;

Procedure Init (Nm, Dg : String; Sv, Bl : Real);

Function GetBall : Real;

Function GetSum : Real;

Procedure ShowBall;

Procedure ShowSum;

Procedure ShowAll;

end;

Билет №28

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

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

Иногда программы, состоящие из процедур и функций, называют модульными. В Турбо Паскале есть специальное понятие модуля, под которым понимается автономно компилированная программная единица, которая в своем составе может иметь и свой раздел описаний и свои подпрограммы. Поэтому, используя термин модуль, следует пояснять, что при этом имеется в виду: или модуль - подпрограмма, или модуль - автономно компилируемая программная единица. На наш взгляд, чтобы исключить путаницу с терминами, целесообразно подпрограмму рассматривать как самостоятельный блок. Но термин модуль также имеет право на существование.

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

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

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

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

- сохранение контекста текущего потока, который требуется сменить;

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

- запуск нового потока на выполнение.

Поскольку операция переключения контекстов существенно влияет на произ­водительность вычислительной системы, программные модули ОС выполняют диспетчеризацию потоков совместно с аппаратными средствами процессора.

5. Type

Uk = ^Elem;

Elem = Record

x : Integer;

next : Uk;

End;

Var p, q : Uk; i : Integer;

Begin

p := Nil;

For i := 3 downto 1 do

Begin

New(q);

Readln(q^.x);

q^.next := p;

p:=q;

End;

End.

Билет №29

1. Класс TОbject реализует функции, которые обязательно будет выполнять любой объект, который может быть создан в среде разработки. В первую очередь это создание и уничтожение экземпляра объекта.

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

Constructor Create;

Для уничтожения экземпляра объекта в TObject предназначены методы Destroy и Free:

Destructor Destroy; Virtual;

Procedure Free

Destroy обеспечивает освобождение всех занимаемых экземпляром объекта ресурсов. При уничтожении объектов рекомендуется вместо деструктора вызывать метод Free, который просто вызывает деструктор, но перед этим проверяет, чтобы указатель на экземпляр объекта был не пустым (не был равен Nil). Это позволяет избежать серьезных ошибок.

Если объект является владельцем других объектов (например, форма владеет всеми размещенными на ней компонентами), то его метод Free автоматически вызовет эти же методы для всех объектов. Поэтому при закрытии формы разработчик избавлен от необходимости заботиться об уничтожении всех компонентов.

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

Функция ClassName: ShortString; возвращает имя объекта, которое может быть использовано для идентификации. Например, один метод-обработчик щелчка на кнопке может работать с несколькими типами компонентов кнопок:

Procedure TForm1.Button1Click(Sender : TObject);

Begin

If Sender.ClassName = ‘TButton’ Then (Sender AS TButton).Enabled := False;

If Sender.ClassName = ‘TSpeedButton’ Then

(Sender AS TSpeedButton).Down := True;

End;

Метод ClassNamesIs (const Name : string) : Boolean; позволяет определить, принадлежит ли данный объект тому типу, имя которого передано в параметре Name. В случае положительного ответа функция возвращает True.

2. Суперключ – атрибут или множество атрибутов, которое единственным образом (superkey) идентифицирует кортеж данного отношения.

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

3. Логическое распределение оперативной памяти определяется не только при­меняемой операционной системой, но и особенностями аппаратной реализа­ции IBM-совместимых PC. Знание строения ОЗУ необходимо для программ­ной оптимизации системы.

Можно выделить пять важнейших логических областей оперативной памяти:

- Стандартная оперативная память (Conventional Memory);

- ЕМS-память (Expanded Memory Specification) – дополнительная память;

- UMA (Upper Memory Area) – верхняя память;

- HMA (High Memory Area);

- XMS (Extended Memory Specification) – расширенная память

4. Основные характеристики ККС. К корпоративной сети, как и к другим типам компьютерных сетей, предъявляется ряд требований. Главное из них – обеспечение пользователям возможности оперативного доступа к разделяемым ресурсам всех компьютеров, объединенных в сеть. Решению этой основной задачи подчинены остальные требования: по производительности, надежности, безопасности, управляемости, совместимости, расширяемости, масштабируемости и прозрачности. Качество предоставления услуг сетью определяется тем, насколько полно выполняются эти требования, особенно по производительности и надежности.

5. BOOL CDDClipper::Create(CDirectDraw* pDD, HWND hWnd)

{

ASSERT(!m_pIClip);

ASSERT(pDD);

ASSERT(hWnd);

m_hr = pDD->GetInterface()->CreateClipper(0, &m_pIClip, NULL);

if (FAILED(m_hr)) return FALSE;

ASSERT(m_pIClip);

m_hr = m_pIClip->SetHWnd(0, hWnd);

return SUCCEEDED(m_hr);

Билет №30

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

Date – возвращает текущую дату;

DateToStr (d : TDateTime) – преобразует дату в строку символов;

DateTimeToStr(d : TDateTime) – преобразует дату и время в строку символов;

Time – возвращает текущее время;

TimeToStr(T : TDateTime) – преобразует время в строку.

2. Транзитивная зависимость – если для атрибутов А, В и С некоторого отношения существуют зависимости вида А–>В и В–>С, то говорят, что атрибут С транзитивно зависит от атрибута А через атрибут В (при условии, что атрибут А функционально не зависит ни от атрибута В, ни от атрибута С).

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

А–>В и В–>С.

В данном случае транзитивная зависимость А–>С осуществляется через атрибут В. Это утверждение справедливо только в том случае, если атрибут А функционально не зависит от атрибутов В и С.

3НФ – отношение, которое находится в первой и второй нормальных формах и не имеет не входящих в первичный ключ атрибутов, которые находились бы в транзитивной функциональной зависи­мости от этого первичного ключа.

Нормализация 2НФ-отношений с образованием 3НФ-отношений включает устранение транзитивных зависимостей. Если в отношении существует транзи­тивная зависимость между атрибутами, то транзитивно-зависимые атрибуты удаляются из него и помещаются в новое отношение вместе с копией их детерминанта.

3. Архитектура – аппаратные средства и программное обеспечение данного устройства.

Термин “архитектура системы” часто употребляется как в узком, так и в широком смысле этого слова. В узком смысле под архитектурой понимается архитектура системы команд.

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

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

Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном этапе развития вычислительной техники, являются архитектуры CISC и RISC.

RISC (Reduced (Restricted) Instruction Set Computer) – уменьшенный набор команд, которыми пользуется микропроцессор компьютера, содержащий только наиболее простые команды.

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

CISC (Complete Instruction Set Computer) – полный набор команд микропроцессора.

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

Лидером в разработке CISC-процессоров считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно:

- сравнительно небольшое число регистров общего назначения;

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

- большое количество методов адресации;

- большое количество форматов команд различной разрядности;

- преобладание двухадресного формата команд;

- наличие команд обработки типа регистр-память.

4. Различают следующие способы маршрутизации.

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

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

3. Смешанная маршрутизация. Характеризуется тем, что в ней в определенном соотношении реализованы принципы централизованной и распределенной маршрутизации. К ней относится, например, гибридная адаптивная маршрутизация

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

5. void CDirectDraw::_ReleaseAll()

{

if (m_bRestore) {

RestoreMode();

}

if (m_pFrontBuffer) {

delete m_pFrontBuffer;

m_pFrontBuffer = NULL;

}

if (m_pBackBuffer) {

delete m_pBackBuffer;

m_pBackBuffer = NULL;

}

if (m_pClipper) {

delete m_pClipper;

m_pClipper = NULL;

}

if (m_pPalette) {

delete m_pPalette;

m_pPalette = NULL;

}

m_bSWRender = FALSE;

Билет №31

1. Обработчик события – фрагмент программы, который выполняется в ответ на определенное изменение в программе или в Windows. Этот фрагмент должен представлять собой последовательность операторов языка Object Pascal, оформленных в виде процедуры. В окне инспектора объектов на странице Events следует найти событие OnClick и дважды щелкнуть мышью по правой части строки. Delphi самостоятельно сделает заготовку для обработчика события OnClick. Активизируется окно кода с заголовком процедуры и операторными скобками:

Procedure TForm1.Button1Click(Sender: TObject);

Begin

End;

2. Различаются централизованные и распределенные базы данных. Централизованная база данных хранится в памяти одной вычисли­тельной системы. Если эта вычислительная система является ком­понентом сети ЭВМ, возможен распределенный доступ к такой базе данных – доступ к ней пользователей различных ЭВМ данной сети. Такой способ использования баз данных часто применяют в локальных сетях персональных ЭВМ.

Появление сетей ЭВМ позволило наряду с централизованными создавать и распределенные базы данных. Распределенная база данных состоит из нескольких, возможно, пересекающихся или да­же дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Однако пользователь распределенной базы данных не обязан знать, каким образом ее компоненты размещены в узлах сети, и представляет себе эту базу данных как единое це­лое. Работа с такой базой данных осуществляется с помощью сис­темы управления распределенной базой данных (СУРБД). Данные, содержащиеся в распределенной базе данных, их пред­ставление на всех уровнях архитектуры СУРБД и размещение в се­ти описываются в системном справочнике, который сам может быть декомпозирован и размещен в различных узлах сети.

Части распределенной базы данных, размещенные на отдельных ЭВМ сети, управляются собственными (локальными) СУБД и могут использоваться одновременно как самостоятельные локальные базы данных. Локальные СУБД не обязательно должны быть одинаковы­ми в разных узлах сети. Объединение неоднородных локальных баз данных в единую распределенную базу данных является сложной научно-технической проблемой. Ее решение потребовало проведе­ния большого комплекса научных исследований и эксперименталь­ных разработок.

Базы данных можно разделить на базы данных первого поколения: иерархические, сетевые; второго поколения: реляционные; третьего поколения: объектно-ориентированные, обектно-реляционные.

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