Thrashing (информатика) - Thrashing (computer science)

В Информатика, взбучка происходит, когда компьютер виртуальная память ресурсы используются чрезмерно, что приводит к постоянному состоянию пейджинг и ошибки страницы, подавляя большинство применение -уровневая обработка.[1] Это вызывает производительность компьютера деградировать или разрушиться. Ситуация может продолжаться бесконечно, пока пользователь не закроет некоторые запущенные приложения или пока активные процессы не освободят дополнительные ресурсы виртуальной памяти.


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

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


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

«Обмолачивание» также используется в контекстах, отличных от систем виртуальной памяти; например, чтобы описать тайник проблемы в вычислениях или синдром глупого окна в сети.

Обзор

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

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

Если процессы используют всю основную память и нуждаются в дополнительных страницах памяти, возникает каскад серьезных промахи в кеше известный как ошибки страницы произойдет, часто приводя к заметному отставание в операционной системе ответная реакция. Этот процесс вместе с бесполезной повторяющейся сменой страниц известен как «перебивание». Это часто приводит к высокой загрузке ЦП, что может привести к остановке системы. В современных компьютерах может происходить сбой в системе подкачки (если ее недостаточно физическая память или время доступа к диску слишком велико), или в подсистеме связи ввода-вывода (особенно в конфликты из-за доступа к внутренней шине ), так далее.

В зависимости от конфигурации и задействованных алгоритмов пропускная способность и задержка системы может ухудшиться на несколько порядки величины. Переработка - это состояние, при котором ЦП меньше выполняет «продуктивную» работу, а «подкачивает» больше. Общее время доступа к памяти может увеличиваться, поскольку память более высокого уровня работает так же быстро, как следующий более низкий уровень в иерархии памяти.[2] ЦП настолько занят перестановкой страниц, что не может реагировать на пользовательские программы и прерывать их столько, сколько требуется. Возбуждение происходит, когда в памяти слишком много страниц, и каждая страница ссылается на другую страницу. Реальная память становится меньше, чтобы вместить все страницы, поэтому она использует «виртуальную память». Когда каждая выполняемая страница требует эту страницу, которая в настоящее время не находится в реальной памяти (ОЗУ), она помещает некоторые страницы в виртуальную память и настраивает требуемую страницу в ОЗУ. Если ЦП слишком занят выполнением этой задачи, происходит сбой.

Причины

В виртуальная память системы, сбой может быть вызван программами или рабочими нагрузками, которые местонахождение ссылки: если рабочий набор программы или рабочей нагрузки невозможно эффективно удерживать в физической памяти, тогда постоянная подкачка данных, т.е. может произойти обмолота. Этот термин впервые был использован во времена существования ленточных операционных систем для описания звука, издаваемого лентами, когда данные быстро записывались и читались. IBM System / 370 серии универсальный компьютер может быть инструкцией выполнения, пересекающей границу страницы, которая указывает на саму инструкцию перемещения, которая также пересекает границу страницы, сама указывающая на источник и цель, которые пересекают границы каждой страницы. Таким образом, общее количество страниц, задействованных в этой конкретной инструкции, равно восьми, и все восемь страниц должны одновременно присутствовать в памяти. Если ни одна из восьми страниц не может быть заменен (например, чтобы освободить место для любой из других страниц), инструкция выдаст ошибку, и каждая попытка перезапустить ее будет терпеть неудачу, пока не будут заменены все восемь страниц.

Другое использование

Обмолота лучше всего известна в контексте памяти и хранения, но аналогичные явления происходят и для других Ресурсы, в том числе:

Обработка кеша

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

TLB обмолота

Где резервный буфер перевода (TLB) действует как кеш для блок управления памятью (MMU), который переводит виртуальные адреса в физические адреса, слишком мал для рабочего набора страниц. Пробуксовка TLB может происходить даже в том случае, если кэш инструкций или кэш данных не происходит, потому что они кэшируются в разных размерах. Инструкции и данные кешируются небольшими блоками (строки кеша ), а не целые страницы, но поиск адресов выполняется на уровне страницы. Таким образом, даже если рабочие наборы кода и данных помещаются в кеш, если рабочие наборы фрагментированный на многих страницах рабочий набор виртуальных адресов может не помещаться в TLB, что приводит к перегрузке TLB.

Взбивание кучи

Частые вывоз мусора, из-за невозможности выделить память для объекта, из-за недостаточного количества свободной памяти или недостаточной непрерывной свободной памяти из-за фрагментация памяти называется перебивкой кучи.[3]

Обработка процессов

Аналогичное явление происходит для процессов: когда рабочий набор процесса не может быть запланированный - поэтому не все взаимодействующие процессы запланированы для одновременного запуска - они испытывают "перегрузку процессов" из-за того, что они постоянно планируются и внепланируются, и они развиваются очень медленно.[4]

Смотрите также

использованная литература

  1. ^ Деннинг, Питер Дж. (1968). «Взбучка: причины и профилактика» (PDF). Труды AFIPS, Fall Joint Computer Conference. 33: 915–922. Получено 2012-02-15.
  2. ^ Л., Хеннесси, Джон (2012). Компьютерная архитектура: количественный подход. Паттерсон, Дэвид А., Асанович, Крсте. (5-е изд.). Уолтем, Массачусетс: Морган Кауфманн. ISBN  9780123838728. OCLC  755102367.
  3. ^ Методы оптимизации и настройки производительности процессоров IBM, включая IBM POWER8, "куча + обмолачивание" п. 170
  4. ^ Остерхаут, Дж. К. (1982). «Методы планирования для параллельных систем» (PDF). Труды Третьей Международной конференции по распределенным вычислительным системам. С. 22–30.CS1 maint: ref = harv (ссылка на сайт)