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

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

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

Более детально правило "50%" рассматривается в работах П. 1. М. Пач1еэ, В1Т 20 (1980), 279-288; С. М. Вееэев, Сошр, Х 20 (1983), 25 — 35; О. СЬ. Рйий, Сошр. Х 27 (1984), 328-333. Если не учитывать это интересное правило, наши знания о производительности алгоритмов динамического распределения памяти почти полностью базируются на экспериментах по методу Монте-Карло. При выборе алгоритма выделения памяти для конкретных машины и класса приложения (или конкретного приложения) поучительно провести собственные моделирующие динамическое распределение памяти эксперименты.

Автор провел ряд таких экспериментов непосредственно перед написанием этого раздела (и правило "50%" было замечено во время этих экспериментов до того, как было найдено его доказательство). Рассмотрим здесь вкратце методы и результаты проведенных экспериментов. Основная моделирующая программа работает следующим образом. В начальный момент работы программы, когда значение Т1ИЕ равно нулю, доступна вся память.

Р1. Увеличить Т1ИЕ на 1. Р2. Освободить все блоки в системе, которые должны быть освобождены при текущем значении Т1ИЕ, РЗ. Вычислить две величины, 5 (случайный размер) и Т (случайное время жизни), основанные на некотором распределении вероятностей, с помощью методов из главы 3. Р4. Выделить новый блок длиной 8, который необходимо освободить в момент (Т1ИЕ+ Т). Вернуться к шагу Р1. 1 Каждый раз по достижении переменной Т1ИЕ значения, кратного 200, выводились детальные статистические данные о производительности алгоритмов выделения и освобождения.

Для каждой пары алгоритмов использовалась одна и та же последовательность значений 8 и Т. После того как величина Т1ИЕ превышала 2000, система обычно приходила в более или менее стабильное состояние с неизменными показателями. Однако иногда на шаге РЗ алгоритм прекращал свою работу из-за невозможности выделить необходимый объем памяти. Пусть С вЂ” общее количество доступных ячеек памяти и пусть 5 и Т средние величины Я и Т на шаге РЗ. Легко видеть, что ожидаемое количество занятых слов памяти в каждый момент составляет ЯТ при достаточно болыпом значении Т1ИЕ.

Когда в экспериментах БТ было больше, чем ~1 С, обычно происходило переполнение памяти (часто прежде, чем в действительности происходил запрос на выделение С слов памяти). Память можно было заполнить на 90% при малом по сравнению с С размере блока, но когда размеры блока могли превысить -'С (вместе с блоками меньших размеров), наблюдалась тенденция программы к "заполнению" памяти при реальном использовании менее — С ячеек памяти. Эмпирические результаты 1 2 свидетельствуют о том, что для эффектлвной работы систем динамического распределения памяти не должны использоваться блоки размером свыше — С.

Причину такого поведения можно понять, если вспомнить правило "50%": если система достигает состоянии равновесия, при котором размер среднего свободного блока 5 меньше размера среднего используемого блока г, то можно ожидать получения невыполнимого запроса, кроме ситуации, когда "на всякий пожарный случай" имеется достаточно большой свободный блок.

Следовательно, в насыщенных системах без переполнения 5 > г, и мы имеем С = 5М + гФ > гМ + г5У а 1эр+ 1) г5У. Общее количество использованной памяти, таким образом, составляет г5У ( С/1г2р+1). Когда р в 1, использовать больше примерно Аз ячеек памяти невозможно. Эксперименты по моделированию систем динамического выделения памяти проводились с тремя распределениями размера блоков 5: (81) равновероятный выбор целого числа из диапазона от 100 до 2000; (Яй) выбор размера (1, 2, 4, 8, 16, 32) с вероятностями (~э1, ~1, э,,в, —,э, эт) соответственно; (Яу) равновероятный выбор размера из множества (10, 12, 14, 16, 18, 20, 30, 40, 50, 60, 70, 80, 90, 100, 150, 200, 250, 500, 1000, 2000, 3000, 4000).

Время Т обычно представлнло собой случайное целое равномерно распределенное число в диапазоне от 1 до 1 для фиксированного 1 = 10, 100 или 1000. Кроме того, были проведены эксперименты, в которых Т на шаге РЗ представляло собой случайное число, равномерно распределенное в диапазоне от 1 до щ1п(Д15), 12500), где 15 — количество единиц времени, оставшегося до ближайшего освобождения занятого блока из имеющихся в настоящий момент в системе. Это распределение времени использовалось для моделирования ситуации "почти последним выделен — первым освобожден" (а!пюэы1аэы!и-йгэмоп1): если Т всегда выбирается ( 15, система выделения памяти выродится в простую стековую операцию, не требующую использования сложных алгоритмов (см. упр. 1). Указанное распределение вынуждает выбранное Т быть ббльшим, чем Г, около 20% рвз, так что мы имеем почию стековую операцию.

При использовании такого распределения алгоритмы, подобные алгоритмам А, В и С, ведут себя гораздо лучше, чем обычно; очень редко возникало (если возникало вообще) более двух блоков в списке АтА11., в то время как выделялось около 14 блоков. С другой стороны, алгоритмы системы двойников, Н и Б, при использовании такого распределения оказывались медленнее, поскольку в стекообразных операциях приходится чаще, чем обычно, расщеплять и сливать блоки. Вывод теоретических свойств этих распределений слишком сложен (см. упр, 32). На рис.

42 была приведена конфигурация памяти в момент Т1ИЕ = 5000 с использованием распределения размеров 1Я! ) и с равномерно распределенным между 1 и 100 временем при выделении по методу первого подходящего (алгоритмы А и В). В этом эксперименте вероятность р, которая входит в правило "50%", ранна 1, так что можно было бы ожидать, что количество свободных блоков составит около половины количества выделенных блоков. На самом деле на рис.

42 показан 21 свободный н 53 выделенных блока. Это не опровергает правило "50%"; например, в момент Т1МЕ = 4600 имелось 25 свободных и 49 выделенных блоков. Конфигурация, приведенная на рис. 42, просто показывает, что правило "50%" подвержено статистическим отклонениям. Число свободных блоков. в целом, находится в диа- О 1000 2000 ЭООО 4000 0000 0000 7000 БООО 9000 10000 00000 гОООО 40000 00000 00000 100000 100000 Рнс 43, Карта памяти, полученная с помощью метода наилучшего подходящего, (Сравните ее с картой, представленной на рис, 42, которая показывает результат работы метода первого подходящего, и с рис.

44, на котором в виде дерева представлена карта памяти в результате работы системы двойников с той же последовательностью запросов.) назоне от 20 до 30, в то время как количество выделенных блоков находится в диапазоне от 46 до 50. На рис. 43 приведена конфигурация памяти, псаученкая про шех Оюе данных, что о кон16иерра11ил на рис, 43, но с использованием метода наилучшего подходящего. Константа с иэ шага А4' бь1ла принята равной 16 для устранения малых блоков, и как результат — вероятность р упала до 0.7 и количество свободных областей уменьшилось, При изменении распределения времени в диапазояе от 1 до 1000 (вместо диапазона от 1 да 100) ситуация была аналогична показанной иа рис.

42 и 43, но все соответствующие величины были умножены приблизительно на 10. Например, в ситуации, аналогичной показанной на рис. 42, было 615 вьщеленных и 240 свободных блоков; в ситуации, подобной приведенной на рис. 43, имелось 176 свободных блоков, Во всех экспериментах по сравнению методов первого подходящего и наилучшего подходящего последний всегда превосходит первый. После исчерпания размере памяти метод первого подходящего в большинстве случаев остается работоспособным дольше метода наилучшего подходящего.

Система двойников испытывалась с теми данными, которые привели к результатам, изображенным,на рис, 42 и 43. Итоговьш данные представлены на рис. 44, Здесь все размеры а диапазоне от 207 до 612 рассматривались ках 612, в диапазоне от 613 до 1024 — как 1024 и т. д. В среднем зто означает увеличение запроса на одну треть (см, упр. 21); система двойников, конечно, лучше работает при распределении размеров (ой), а не при распределении (01). Обратите внимание на то, что на рис. 44 нме1отся доступные блоки размеров 2', 2'О, 2", 2г1, 2'з и 2".

Моделирование системы двойников показало, что ее производительность выше, чем ожидалось, Ясно, гго иногда эта система позволяет иметь два смежных свободных блока одинакового размера без их слияния (если они не квляются двойниками). Но такая гитуация не представлена на рис. 44 и в действительности крайне редка на практиие. Переполнение памяти происходило прн выделении 96% памяти, что отражает удивительно хороший баланс выделения памяти, Кроме того, очень редко требуетгя разделение блоков в алгоритме н (и их слияние в алгоритме 6)1 дерево остается о щкь похожим па изображенное на рис.

44 со свободными блоками на чаще всего используемых уровнях. Некоторые математические результаты, позво- 217 21Я 21З 217 211 29 28 Рис. 44. Карта памяти, полученная при помощи системы двойников, (Структура дерева указывает на деление некоторых больших блоков на двойников половинного размера, Квадратами помечены свободные блоки.) ляющие понять такое поведение на нижних уровнях дерева, были получены в работе Р. Ж. Рцгбош, Лг., ап71 8.

М. 81181ег, ХАСЛХ 17 (1970), 683- 697. Еще одним сюрпризом стало превосходное поведение алгоритма А после модификации, описанной в упр. 6. Потребовалось в среднем только 2.8 проверки размера свободного блока при использовании распределения размеров (о1) и времени, равномерно распределенного между 1 и 1000, а более чем в половине случаев требовалось минимальное значение — одна итерации.

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

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

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

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