Файл: Зубов В.С. Математическое обеспечение цифровых вычислительных машин и систем учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.07.2024

Просмотров: 84

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

-18-

ниыаемый характер упорядоченности множества объектов и дос­ тупа к отдельным его объектам (вне связи с "физической"

упорядоченностью описывающих их данных и средствами их хра­ нения и обработки). Рассмотрим их примеры.

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

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

его смысловая значимость

зависит от них (от "контекста").

В связи с этим доступ к

элементам строки при её обработке

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

разбиение строки на части, поэлементное сравнение строк.

Массив - это множество элементов, расположенных таким образом, что упорядоченное множество целых чисел ( индексов)

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

С содержательной точки зрения массив представляет стру­ ктуру данных, которая обычно отражает аналогичную реально существующую структуру системы объектов (например, структу-

-1 9 -

ру уравнений, их систем ), имеющих, зачастую, физическую сущ­

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

его положением, но положение элемента в массиве обычно пол­

ностью определяет его роль в вычислительном процессе. К та­

ким элементам можно применить лишь небольшое количество про­ стых операций: сравнение, арифметические операции. Иногда

помимо указанных фактографических сведений элемент массива содержит текстовый документ или набор документов, относя­

щихся к тому же объекту.

Очередь и магазин представляют собой динамические по

составу и размеру структуры данных, соответствующие строке.

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

ки Сначала очереди"), а в

магазине - только в

его верхушке.

В каждый момент доступен

лишь один элемент,

для доступа к

элементам, расположенным внутри очереди или магазина, тре­ буется их "выталкивание" в начало или верхушку соответственна

Стеком назовём динамическую структуру, отличающуюся от магазина лишь тем, что в стеке доступ к любому элементу при чтении осуществляется как в векторе (одномерном массиве),

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

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



-2 0 -

произвсшьной, но одинаковой для обеих последовательностей длины, содержащий, как минимум, I элемент. Следовательно,

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

Графически дерево изображается направленным графом без пиклов и петель (некоторые структуры данных, например, фра­ зовые языковые структуры, изображаются ориентированным гра­ фом, в котором могут быть циклы и петли). Использование де­ ревьев в реальных структурах предполагает определение неко­ торые процедур, так как в одних случаях узлы дерева пред­ ставляют описания объектов или списки описаний (как элемен­ ты в массиве), а в других случаях последовательности, со­ ставляющие дерево, аналогичны строкам (деревья-"словари’1) .

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

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

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

ичасто именуемыми таблицами. информационными массивами ищп

§4 .Структура оперативной памяти ЭВМ; её надстройка

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


-2 2 -

ДЛИНЫ, как их длины, так и адреса их начальной компоненты.

Некоторые единицы данных постоянной длины при этом также оказываются состоящими из нескольких компонент, например,

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

свою очередь, векторы более мелких адресуемых единиц.

Структуры более высокого уровня надстраиваются над этой базовой структурой памяти путём использования программ и

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

При наиболее общем рассмотрении следует,до-ввдимоцу,

различать 3 способа адресации: способы подразумеваемой,

прямой и косвенной адресации (классификация видов адресации в машинно-ориентированных языках более обширна). При под­

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

образом выделено. Так, для его размещения может быть исполь­ зован неадресуемый регистр, например, сумматор. Другим слу­ чаем является непосредственное указание операнда в коде ко­

манда. Такие операнда именуются буквальными или литералами.

На использование подразумеваемых адресов указывает либо спе­

циальный код

операция,либо специальный символ в адресной части.

В случае

прямой адресации*положение операнда задаётся

-2 3 -

НОМврОМ адресуемого элемента памяти, где операнд размещён.

При косвенной адресации в коде команды указывается адрес

не самого операнда, а элемента, где хранится адрес операнда.

Назовём его К-элементом. Если множество К-элементов имеет

меньшую мощность, чем множество элементов адресуемой памяти,

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

памяти последовательно, одним и тем же блоком команд испо­

льзование косвенной адресация позволяет сохранять неизменной их кодировку. Распространённым случаем является совместное использование прямой и косвенной адресации, когда действите­ льное положение операнда определяется сумюй прямого адреса и содержимого К-элемента. Здесь типичными являются. 2 случая;

а) Относительная базовая адресация. Прямой адрес опреде­ ляет базу - начало (конец) отсчёта адресов, содержимое К-

элемента, именуемого в данном случае индексным регистром или ячейкой, задаёт положение адресуемого им элемента отно­ сительно базы. Неизменность кодировки команд в этом случае ведёт к уменьшению затрат на переадресацию и восстановление исходного состояния программы, выполняемых изменением содер­ жимого К-элемента (или нескольких К-алементов).

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

мента, называемого базовым регистром. Его содержимое при выполнении программы или её части неизменно и называется базой. Другая часть адреса, содержащегося в команде, зада­ ёт положение адресуемого элемента относительно базы. В эту часть адреса,в принципе, может включаться адрес ивдекс-реги-


отра для использования согласно случаю "а ". Базовые регистры используются в современных ЭВМ с целью обеспечения перемеща­ емости программ и сокращения длины адресной части команды.

При этом программа и обрабатываемые данные могут быть загру­ жены, возможно отдельными сегментами, в любые свободные зо­

ны памяти без переработки адресов в программе. Содержимое

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

Характерным случаем оовместного использования прямой и

подразумеваемой адресации является текущая относительная адресация, когда положение адресуемого элемента определяет­ ся суммой адреса, задающего положение исполняемой команды,

и адреса, содержащегося внутри неё.

Реальное представление списка, под которым в общем олу-

чае понимается организованная совокупность последовательно­

стей, а чаще - единственная последовательность, определяет­ ся способом получения адресов его элементов. Рассмотрим

типичные случаи.

А. Сгшоок. заданный подразумеваемой последовательностью адресов. В простейшем случае это натуральная последователь­ ность адресов. Если же элементами списка типа А являются другие списки типа А, то последовательность адресов элементов такого описка обычно имеет вид арифметической прогрессии,при­ чём один из её элементов - база - должен быть задан. Такие списки часто именуются последовательными. В дальнейшем изло­ жении встретятся примеры и более сложных случаев.

Следствием используемого способа задания адресов является возможность прямого обращения к элементам списка типа А по ах номерам и необходимость реорганизации списка при добавле-

-2 5 -

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

жет быть выполнено физическим его устранением, что также требует реорганизации списка, либо символическим способом -

заменой элемента т.н . пустым элементом, обозначаемым специ­ альным знаком. Символическое исключение не всегда удобно,

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

Б. Список, заданный последовательностью поягмнх адресов,

которая имеет вид списка типа А и именуется оглавлением.

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

в е к т о р а д р е с у е м ы х э л е м е н т о в памяти (элементы данных изображены отрезками)

Рис.2. Пример списка элементов данных, заданного оглавлением (адресные связи показаны стрелками).