Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROS_K_EKZAMENU_SiAOD.docx
Скачиваний:
65
Добавлен:
27.09.2019
Размер:
120.34 Кб
Скачать
  1. Пространственная сложность программы.

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

1). Во время выполнения проги, оперативная память компьютера занята командами программы и внутренними данными, с кот. оперирует программа. При определении пространственной сложности нас интересует объем памяти, занимаемый данными. Нужно отметить, что входной и выходной файлы не содержатся в оперативной памяти и адресное пространство используется для хранения переменных и передачи параметров. Число одновременно сущ. в памяти переменных меняется в теч. времени работы проги. Наибольший интерес представляет оценка максимального объема необходимой памяти. Эту оценку наз. пространственной сложностью проги. Она может выражаться через несколько величин, отражающих размер решаемой задачи. Вычислить пространственную сложность можно след. образом:

  1. составляется схема вызовов подпрограмм

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

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

2). При анализе интеллектуальной сложности алгоритма исследуется понятность алгоритмов и сложность их разработки.

  1. Взаимосвязь различных типов сложности.

Помимо временной и пространственной сложности есть интеллектуальная сложность.

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

  1. Контрольные замеры.

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

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

  1. Файлы. Их организация и обработка.

Структуры данных для внешней памяти

В алгоритмах до этого предполагалось, что объем входных данных позволяет обходиться основной, то есть оперативной памятью.

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

Характеристики доступа к устройствам внешней памяти отличаются от х-ристик доступа к внутренней памяти и способы доступа к файлам имеет ограничения. ОС делит внешнюю память на блоки одинакового размера и размер блока зависит от типа ОС и находится в диапазоне от 512-4096 байт.

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

А для организации связи блоков между собой ОС чаще всего исп. древовидную структуру.

Блок 1 Блок … 2 Блок n

Допустим, что для хранения адреса блока надо 4 байта.

4096 – длина блока.

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

Работа с файлом происх след образом:

  1. файл рассматривается, как последовательность блоков

  2. каждый блок содержит целое число записей

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

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

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