AOP_Tom1 (1021736), страница 128

Файл №1021736 AOP_Tom1 (Полезная книжка в трёх томах) 128 страницаAOP_Tom1 (1021736) страница 1282017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 128)

Все это выполнялось несмотря на наличие около 250 доступных блоков. Тот же эксперимент с немодифицнрованным алгоритмом А показал, что в среднем необходимо около 125 итераций (т. е. каждый раз проверяется половина списка АЧА11.); 200 и более проверок понадобилось примерно в каждом пятом случае. Такое поведение немодифицированного алгоритма А в действительности может быть предсказано как следствие правила "50%". При равновесии в части памяти, содержщцей последнюю половину выделенных блоков, находится также последняя половина свободных блоков; эта часть требует половину времени при освобождении блока и соответственно должна использоваться в половине случаев выделения памяти для поддержки состояния равновесия. Это же обоснование применимо и при замене половины любой другой частью (данные замечания были сделаны Д. М.

Робсоном (Л. М. ВоЬэоп)). Упражнения к этому разделу включают И1Х-программы для двух основных методов, которые рекомендуются к использованию на основе приведенных выше замечаний: (!) модифицированный согласно упр. 12 и 16 алгоритм А (система граничных дескрипторов) и (61) система двойников.

Вот приближенные результаты работы этих методов. Время выделения Время освобождения Система граничных дескрипторов: Система двойников: 18, 29, 31 или 34 27+ 265 33+ 7А 19+ 25Л Упомянутые выше технологии были применены и к другим алгоритмам выделения памяти. Однако эти методы оказались настолько плохи по сравнению с алгоритмами, описанными в настоящем разделе, что здесь будет дано только их краткое описание. а) Для каждого размера используется свой список ауа11..

Единый свободный блок при необходимости разбивается на два меньших блока, но никаких попыток вновь объединить такие блоки не предпринимается. Карта памяти становится фрагментированной на все меньшие и меньшие части, пока не принимает совершенно ужасный вид. Простая схема наподобие этой практически эквивалентна раздельному распределению в несвязанных областях, по одной области для каждого размера блока. Ь) Была предпринята попытка выполнения двухуровневого выделения. Память делилась на 32 больших сектора. Для выделения больших блоков размером 1, 2 Здесь А > 1 — необходимое для поиска достаточно большого блока количество итераций, В > 0 — количество разбиений блока на два (начальная разность 1 — и в алгоритме В) и 5 > 0 — количество слияний двойников при работе алгоритма Я.

Моделирующие эксперименты указывают, что при данных предположениях относительно распределения размеров (31) и времени, выбираемом в диапазоне от 1 до 1000, можно получить в среднем А = 2.8, В = 5 = 0.04. (Средние значения для распределения времени "почти последним выделен — первым освобожден", которое описано выше„составляют А = 1.3, Л = 5 = 0.9.) Это показывает, что оба метода весьма быстры (система двойников для М1Х несколько быстрее). Напомним, что для системы двойников необходимо примерно на 44% больше памяти, если размеры блоков не ограничены степенями 2. Соответствующее время для выполнения алгоритма сборки мусора и уплотнения из упр. 33 составляет около 104 единиц при поиске свободного узла, если предположить, что сборка мусора происходит в момент заполненности памяти примерно наполовину, а узлы имеют среднюю длину.

5 слов с двумя связями на узел. "За" и "против" этого метода обсуждаются в разделе 2.3.5. Когда память не сильно загружена и выполняются соответствующие ограничения, сборка мусора и уплотнение весьма эффективны; например, на компьютере М1Х метод сборки мусора быстрее двух других, если память не заполнена более чем на треть н узлы относительно малы. Егчи удовлетворяются условия, лежащие в основе метода сборки мусора, наилучшей стратегией может оказаться разделение пула памяти на две половины и выполнение всех последующих выделений памяти в одной половине. Вместо освобождения становящихся неиспользуемыми блоков мы просто ожидаем, пока текущая половина памяти не заполнится. Затем можно скопировать все активные данные в другую половину, одновременно удаляя все "дыры" между блоками при помощи метода, подобного приведенному в упр.

33. Размер каждой половины пула может изменяться при переключении с одной половины на другую. или 3 (очень редка — ббльших размеров) соседних секторов использовался метод выделения памяти "в лоб". Каждый такой большой блок разделялся для удовлетворения запросов на вььаеление памяти до тех пор, пока в текущем большом блоке не оставалось памяти (при этом начинал использоваться другой большой блок), Каждый большой блок возвращался в свободную память только после освобождения всех выделенных из него блоков памяти. Данный метод почти всегда быстро приводит к нехватке памяти. Хотя этот частный метод двухуровневого выделения и был нерабатоспособен с использовавшимися автором данными прн моделировании динамического распределения, возникают ситуации (на практике очень нечастые), когда многоуровневая стратегия мажет оказаться предпочтительной.

Например, если большая программа работает в несколько стадий, возможно, что на разных стадиях используются узлы разных типов и отдельные типы узлов применяются только в отдельных подпрограммах. В некоторых программах может оказаться желательным использование нескольких различных стратегий распределения памяти для различных классов узлов. Идея выделения памяти по зонам, быть может, с помощью различных стратегий в каждой зоне и с возможностью освобождения всей зоны, рассматривается в работе Воцй!ае Т. Ноев, САСМ 10 (1967), 461-492, Другие эмпирические результаты, полученные при изучении динамического распределения памяти, приводятся в следующих рабатах: В.

Напбе)1, САСМ 12 (1969), Вбо-369, 372; Р. %. Рцгбош, Б. М. Бс!61ег, апс1 Т. О. СЬеаш, ШТ 11 (19Т1), 1В7-195; В. Н, Магйо!!и, В.. Р. Рагше!ее, апд М. БсЬагво!7, ХВМ Був1евв Х 10 (1971), 263-304! Л. А, СашрЬе!1, Совр. Х 14 (1971), Т-9, '3оЬп Е, БЬоге, САСМ 16 (1975), 433 — 440,' 5(огшап Н. Х!е1веп, САСМ 20 (1977), В64-В73, "Е. Метод распрадвлеииога подходящего. Если распределение размеров блоков известно заранее н все блоки освобождаются равновероятно, независимо ат момента их выделения, можно использовать технологию (которая в данных предпо. лежаниях превосходит технологии общего назначения), предложенную Э, Г.

Коффманом (мл.) (Е. О. Са!Тшап, 3г.) и Ф, Т. Лейтоном (Р. Т, Ье!Вйоп) 1,7. Саври1ег аль Буе1еи Бс!. 36, (1969), 2-35]. Их "метод распределенного подходящего" (б!в!г(Ьц!еф бс ве1Ьоб) работает путем разделения памяти на примерно Ф + ~/У!БМ слатов, где )7 — максимальное число блоков, которые будут обрабатываться в установившемся состоянии.

Каждый слат имеет фиксированный размер, хотя различные слаты могут иметь различные размеры, Главное заключается в том, что любой глот имеет фиксированные границы, н он может либо быть пустым, либо содержать единственный выделенный блок. Первые )7 слатов схемы Коффмана-Лейтона распаложекы в соответствии с заданным распределением размеров, а оставшиеся ~/У!ВУ слатов имеют максимальный размер, Например, если предположить, что размеры блоков равномерно распределены между 1 и 256 и если необходимо обработать )Ч = 2ы таких блоков, следует разделить память нв )7/256 = 2' слатов каждого размера 1, 2, ..., 266, за которыми следует "область переполнения", содержащая ч'У 16 Ф = 2" 14 = 1792 блоков размером 256.

Когда система работает при полной загрузке, ожидается работа с Ф блоками среднего размера ф, занимающими ЯТЖ 2а'+2" 2105344 ячеек памяти (вто каличеш'ва памяти, выделенное для первых !у слатов). Кроме того, имеется 1792 256 ж 455752 ячеек памяти для обработки случайных отклонений; этн дополнительные накладные расходы составляют 0(Х '~' )ой Ф) от обшего объема памяти, в отличие ов пропорциональных Х в случае системы двойников, и становятся незначимыми прк Х -+ оо. В нашем примере, однако, накладные расходы остаются на уровне 18% от общего количества памяти.

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

Если начальный слог для каждого поиска действительно выбирается случайным образом между 1 и Х, частых вторжений в область переполнения не будет, В самом деле, если вставить ровно Х влементов, начиная со случайных слотов, переполнение будет встречаться в среднем только 0(~/У) раэ, Объяснение этого факта заклю. чается в том, что можно сравнить данный алгоритм с хешированием с линейным исследованием (алгоритм 6.41.), которое имеет то же самоа поведение, но поиск пустой нчейки возвращается от Ф к 1 вместо перехода в область переполнения. Анализ алгоритма 6.41, в теореме 6,4К показывает, что при вставке Х элементов среднее смещение каждого элемента от его хеш-вдреса составляет 5(ч(Х) — 1) э/~~Ф78.

Из круговой симметрии следует, что вто среднее значение — то же, что и среднее количество переходов поиска от слота 5 к слоту й+ 1 для каждого 5, Переполнения в методе распределенного подходящего соответствуют поискам, переходящим от слота Ж к слогу 1, с той лишь разницей, что наша ситуация даже лучше, поскольку некоторого переполнения можно избежать без возвратов к началу, Таким образом, в среднем встречается менее ~/яЮ/8 переполнений. В этом анализе не приняты во внимание удаления, которые сохраняют предположения алгоритма 6.41 только в случае, когда мы перемещаем блоки назад при удалении другого блока, находящегося между их начальными и выделенными слотамн (см. алгоритм 6.4В). Кроме того, однако, их перемещение назад только увеличивает вероятность переполнения, Наш анализ также некорректен для подсчета влияния одновременного наличия более Ю блоков; это может случиться, если предположить, что время между выделениями блоков составляет 1/Х от времени их жизни, Если имеется более Х блоков, необходим расширенный анализ алгоритма 6,41„но Коффман и Лейтон доказали, что область переполнения почти никогда не потребует больше чем ~/У)8 Ю слотов; вероятность завершения работы составляет менее 0(Х м) для всех М.

В нашем примере начальный слог для поиска во время выделения не выбирается равномерно среди слатов 1, 2,, Ю. Вместо этого он равномерно выбирается среди слогов 1, 65, 129,, Ю -63, поскольку имеется У/256 = 64 слогов каждого размера, Но такое отклонение от рассмотренной в предыдущем разделе случайной модели делает переполнение даже менее вероятным, чем предсказано. Впрочем, не стоит держать пари, если нарушаются предположения о распределении размера блоков н времени их занятости, Р.

Характеристики

Тип файла
DJVU-файл
Размер
7,53 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее