Конспект лекций по предмету "Информатика"


Организация структур данных в ОЗУ

Структура информационного массива определяется один раз на этапе его создания и в процессе использования уже не изменяется. В языках программирования это достигается описанием структуры в блоке описаний программы; в СУБД - установлением перечня и последовательности полей записи на начальном этапе создания базы данных. Всякое изменение структуры (например, введение дополнительного поля записи или удаление имеющегося) эквивалентно созданию новой структуры. Что же касается количества записей в структурированном информационном массиве, то при представлении его в ОЗУ компьютера возможны две ситуации: либо под него выделяется область ОЗУ фиксированного размера, либо размер области при необходимости может меняться.
В первом варианте в начале работы программы происходит резервирование областей ОЗУ для хранения информационных массивов. С этой целью в тексте программы указывается, какого типа и размера информационные массивы будут в дальнейшем использованы. В процессе выполнения программы могут меняться значения элементов информационного массива, но не его размер. По этой причине в случае, если размер (число элементов) массива не известен заранее (например, количество учеников в классе), приходится осуществлять избыточное резервирование, что, безусловно, приводит к нерациональному использованию памяти компьютера. Именно таким образом происходит резервирование памяти при описании массивов и других структурных данных в языке PASCAL. Отсутствие возможностей динамического описания массивов (т.е. введение новых массивов или изменение размеров имеющихся в процессе выполнения программы) считается одним из существенных недостатков языка программирования.
Информационные массивы, допускающие изменение размера (но не структуры!) называются динамическими. В этом случае данные могут иметь последовательное или связное представление в ОЗУ.
Последовательное представление иллюстрируется рис. 6.5. В этом варианте данные (отдельные записи) размещаются в соседних последовательно расположенных ячейках памяти. На размещение одной записи может потребоваться несколько ячеек (машинных слов), но их количество одинаково для каждой из записей (в представленном на рис. 6.5,а примере - 12), поэтому идентификатор записи однозначно связывается с номером первой ячейки, начиная с которой запись размещается. Физический порядок следования полностью соответствует логическому. Такая совокупность записей называется последовательным списком. Для его хранения в ОЗУ выделяется блок ячеек фиксированного размера. При выполнении команды обрабатывающей программы «Добавить запись» происходит увеличение размера массива на одну строку в конце блока и при необходимости производится перезапись массива в ОЗУ (возможно, с изменением адресов). В добавленной строке размещается новая запись, как это показано на рис. 6.5,б. При изъятии каких-то записей по команде «Удалить запись» соответствующая строка очищается и после перезаписи заполняется содержимым следующих ячеек (рис. 6.5,в).



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



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


Не сдавайте скачаную работу преподавателю!
Данный конспект лекций Вы можете использовать для создания шпаргалок и подготовки к экзаменам.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.